diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 123014908b..562d671c8e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -2,5 +2,8 @@ version: 2 updates: - package-ecosystem: "github-actions" directory: "/" + labels: CI + reviewers: + - "qmk/collaborators" schedule: interval: "daily" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 70566c425a..691770a5af 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -34,7 +34,7 @@ jobs: qmk --verbose generate-docs - name: Deploy - uses: JamesIves/github-pages-deploy-action@v4.3.4 + uses: JamesIves/github-pages-deploy-action@v4.4.0 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BASE_BRANCH: master diff --git a/.gitignore b/.gitignore index e9bf3c2205..51b0a38e0a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,10 @@ .DS_Store ._* +# Merge files +*.orig +*.rej + # Build artifacts .clang_complete .build/ @@ -27,16 +31,11 @@ quantum/version.h *.uf2 # Old-style QMK Makefiles -/keyboards/*/Makefile -/keyboards/*/*/Makefile -/keyboards/*/*/*/Makefile -/keyboards/*/*/*/*/Makefile -/keyboards/*/*/*/*/*/Makefile -/keyboards/*/keymaps/Makefile -/keyboards/*/*/keymaps/Makefile -/keyboards/*/*/*/keymaps/Makefile -/keyboards/*/*/*/*/keymaps/Makefile -/keyboards/*/*/*/*/*/keymaps/Makefile +/keyboards/**/Makefile + +# kbfirmware.... +/keyboards/**/kb.h +/keyboards/**/kb.c # Eclipse/PyCharm/Other IDE Settings *.iml diff --git a/.gitmodules b/.gitmodules index 48c7035afa..681693a5a4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -18,6 +18,3 @@ [submodule "lib/printf"] path = lib/printf url = https://github.com/qmk/printf -[submodule "lib/pico-sdk"] - path = lib/pico-sdk - url = https://github.com/qmk/pico-sdk.git diff --git a/Makefile b/Makefile index fc6d016448..4c2e6a04dc 100644 --- a/Makefile +++ b/Makefile @@ -401,7 +401,6 @@ ifndef SKIP_GIT if [ ! -e lib/lufa ]; then git submodule sync lib/lufa && git submodule update --depth 50 --init lib/lufa; fi if [ ! -e lib/vusb ]; then git submodule sync lib/vusb && git submodule update --depth 50 --init lib/vusb; fi if [ ! -e lib/printf ]; then git submodule sync lib/printf && git submodule update --depth 50 --init lib/printf; fi - if [ ! -e lib/pico-sdk ]; then git submodule sync lib/pico-sdk && git submodule update --depth 50 --init lib/pico-sdk; fi git submodule status --recursive 2>/dev/null | \ while IFS= read -r x; do \ case "$$x" in \ diff --git a/builddefs/bootloader.mk b/builddefs/bootloader.mk index 3d4c03b01c..eba8e280e4 100644 --- a/builddefs/bootloader.mk +++ b/builddefs/bootloader.mk @@ -200,10 +200,6 @@ ifeq ($(strip $(BOOTLOADER)), tinyuf2) OPT_DEFS += -DBOOTLOADER_TINYUF2 BOOTLOADER_TYPE = tinyuf2 endif -ifeq ($(strip $(BOOTLOADER)), rp2040) - OPT_DEFS += -DBOOTLOADER_RP2040 - BOOTLOADER_TYPE = rp2040 -endif ifeq ($(strip $(BOOTLOADER)), halfkay) OPT_DEFS += -DBOOTLOADER_HALFKAY BOOTLOADER_TYPE = halfkay diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index b5616a438f..dc86b232df 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -13,14 +13,6 @@ endif include paths.mk include $(BUILDDEFS_PATH)/message.mk -# Helper to add defines with a 'QMK_' prefix -define add_qmk_prefix_defs - ifdef $1 - # Need to cater for 'STM32L4xx+' - OPT_DEFS += -DQMK_$(2)="$($1)" -DQMK_$(2)_$(shell echo $($1) | sed -e 's@+@Plus@g' -e 's@[^a-zA-Z0-9]@_@g' | tr '[:lower:]' '[:upper:]') - endif -endef - # Set the qmk cli to use QMK_BIN ?= qmk @@ -398,12 +390,10 @@ ifneq ("$(KEYMAP_H)","") CONFIG_H += $(KEYMAP_H) endif -OPT_DEFS += -DKEYMAP_C=\"$(KEYMAP_C)\" - # project specific files SRC += \ $(KEYBOARD_SRC) \ - $(QUANTUM_DIR)/keymap_introspection.c \ + $(KEYMAP_C) \ $(QUANTUM_SRC) \ $(QUANTUM_DIR)/main.c \ @@ -446,14 +436,6 @@ else include $(TMK_PATH)/protocol/$(PLATFORM_KEY).mk endif -# Setup definitions based on the selected MCU -$(eval $(call add_qmk_prefix_defs,MCU_ORIG,MCU)) -$(eval $(call add_qmk_prefix_defs,MCU_ARCH,MCU_ARCH)) -$(eval $(call add_qmk_prefix_defs,MCU_PORT_NAME,MCU_PORT_NAME)) -$(eval $(call add_qmk_prefix_defs,MCU_FAMILY,MCU_FAMILY)) -$(eval $(call add_qmk_prefix_defs,MCU_SERIES,MCU_SERIES)) -$(eval $(call add_qmk_prefix_defs,BOARD,BOARD)) - # TODO: remove this bodge? PROJECT_DEFS := $(OPT_DEFS) PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS) @@ -487,19 +469,6 @@ check-size: build check-md5: build objs-size: build -ifeq ($(strip $(TOP_SYMBOLS)),yes) -all: top-symbols -check-size: top-symbols -top-symbols: build - echo "###########################################" - echo "# Highest flash usage:" - $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n10 | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' - echo "###########################################" - echo "# Highest RAM usage:" - $(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n10 | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g' - echo "###########################################" -endif - include $(BUILDDEFS_PATH)/show_options.mk include $(BUILDDEFS_PATH)/common_rules.mk diff --git a/builddefs/build_test.mk b/builddefs/build_test.mk index bd9b372c33..5ad33b19c5 100644 --- a/builddefs/build_test.mk +++ b/builddefs/build_test.mk @@ -42,7 +42,7 @@ VPATH += \ all: elf -VPATH += $(TEST_PATH) $(COMMON_VPATH) +VPATH += $(COMMON_VPATH) PLATFORM:=TEST PLATFORM_KEY:=test BOOTLOADER_TYPE:=none @@ -63,7 +63,6 @@ include $(TMK_PATH)/protocol.mk include $(QUANTUM_PATH)/debounce/tests/rules.mk include $(QUANTUM_PATH)/encoder/tests/rules.mk include $(QUANTUM_PATH)/sequencer/tests/rules.mk -include $(QUANTUM_PATH)/wear_leveling/tests/rules.mk include $(PLATFORM_PATH)/test/rules.mk ifneq ($(filter $(FULL_TESTS),$(TEST)),) include $(BUILDDEFS_PATH)/build_full_test.mk diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 2edc1bdef0..c976b8296d 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -92,29 +92,10 @@ ifeq ($(MUSIC_ENABLE), yes) SRC += $(QUANTUM_DIR)/process_keycode/process_music.c endif -VALID_STENO_PROTOCOL_TYPES := geminipr txbolt all -STENO_PROTOCOL ?= all ifeq ($(strip $(STENO_ENABLE)), yes) - ifeq ($(filter $(STENO_PROTOCOL),$(VALID_STENO_PROTOCOL_TYPES)),) - $(call CATASTROPHIC_ERROR,Invalid STENO_PROTOCOL,STENO_PROTOCOL="$(STENO_PROTOCOL)" is not a valid stenography protocol) - else - OPT_DEFS += -DSTENO_ENABLE - VIRTSER_ENABLE ?= yes - - ifeq ($(strip $(STENO_PROTOCOL)), geminipr) - OPT_DEFS += -DSTENO_ENABLE_GEMINI - endif - ifeq ($(strip $(STENO_PROTOCOL)), txbolt) - OPT_DEFS += -DSTENO_ENABLE_BOLT - endif - ifeq ($(strip $(STENO_PROTOCOL)), all) - OPT_DEFS += -DSTENO_ENABLE_ALL - OPT_DEFS += -DSTENO_ENABLE_GEMINI - OPT_DEFS += -DSTENO_ENABLE_BOLT - endif - - SRC += $(QUANTUM_DIR)/process_keycode/process_steno.c - endif + OPT_DEFS += -DSTENO_ENABLE + VIRTSER_ENABLE ?= yes + SRC += $(QUANTUM_DIR)/process_keycode/process_steno.c endif ifeq ($(strip $(VIRTSER_ENABLE)), yes) @@ -173,36 +154,33 @@ ifeq ($(strip $(QUANTUM_PAINTER_ENABLE)), yes) include $(QUANTUM_DIR)/painter/rules.mk endif -VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling +VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi EEPROM_DRIVER ?= vendor ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver) else OPT_DEFS += -DEEPROM_ENABLE - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom - COMMON_VPATH += $(DRIVER_PATH)/eeprom - COMMON_VPATH += $(PLATFORM_COMMON_DIR) ifeq ($(strip $(EEPROM_DRIVER)), custom) # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM + COMMON_VPATH += $(DRIVER_PATH)/eeprom SRC += eeprom_driver.c - else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling) - # Wear-leveling EEPROM implementation - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING - SRC += eeprom_driver.c eeprom_wear_leveling.c else ifeq ($(strip $(EEPROM_DRIVER)), i2c) # External I2C EEPROM implementation OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C + COMMON_VPATH += $(DRIVER_PATH)/eeprom QUANTUM_LIB_SRC += i2c_master.c SRC += eeprom_driver.c eeprom_i2c.c else ifeq ($(strip $(EEPROM_DRIVER)), spi) # External SPI EEPROM implementation OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI + COMMON_VPATH += $(DRIVER_PATH)/eeprom QUANTUM_LIB_SRC += spi_master.c SRC += eeprom_driver.c eeprom_spi.c else ifeq ($(strip $(EEPROM_DRIVER)), transient) # Transient EEPROM implementation -- no data storage but provides runtime area for it OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT + COMMON_VPATH += $(DRIVER_PATH)/eeprom SRC += eeprom_driver.c eeprom_transient.c else ifeq ($(strip $(EEPROM_DRIVER)), vendor) # Vendor-implemented EEPROM @@ -213,13 +191,17 @@ else ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) # Emulated EEPROM OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_FLASH_EMULATED - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash - COMMON_VPATH += $(DRIVER_PATH)/flash - SRC += eeprom_driver.c eeprom_stm32.c flash_stm32.c + COMMON_VPATH += $(DRIVER_PATH)/eeprom + SRC += eeprom_driver.c + SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c + SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) # True EEPROM on STM32L0xx, L1xx OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1 - SRC += eeprom_driver.c eeprom_stm32_L0_L1.c + COMMON_VPATH += $(DRIVER_PATH)/eeprom + COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom + SRC += eeprom_driver.c + SRC += eeprom_stm32_L0_L1.c else ifneq ($(filter $(MCU_SERIES),KL2x K20x),) # Teensy EEPROM implementations OPT_DEFS += -DEEPROM_TEENSY @@ -227,61 +209,32 @@ else else # Fall back to transient, i.e. non-persistent OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT + COMMON_VPATH += $(DRIVER_PATH)/eeprom SRC += eeprom_driver.c eeprom_transient.c endif else ifeq ($(PLATFORM),ARM_ATSAM) # arm_atsam EEPROM OPT_DEFS += -DEEPROM_SAMD - SRC += eeprom_samd.c + SRC += $(PLATFORM_COMMON_DIR)/eeprom_samd.c else ifeq ($(PLATFORM),TEST) # Test harness "EEPROM" OPT_DEFS += -DEEPROM_TEST_HARNESS - SRC += eeprom.c - endif - endif -endif - -VALID_WEAR_LEVELING_DRIVER_TYPES := custom embedded_flash spi_flash legacy -WEAR_LEVELING_DRIVER ?= none -ifneq ($(strip $(WEAR_LEVELING_DRIVER)),none) - ifeq ($(filter $(WEAR_LEVELING_DRIVER),$(VALID_WEAR_LEVELING_DRIVER_TYPES)),) - $(call CATASTROPHIC_ERROR,Invalid WEAR_LEVELING_DRIVER,WEAR_LEVELING_DRIVER="$(WEAR_LEVELING_DRIVER)" is not a valid wear leveling driver) - else - FNV_ENABLE := yes - OPT_DEFS += -DWEAR_LEVELING_ENABLE - OPT_DEFS += -DWEAR_LEVELING_$(strip $(shell echo $(WEAR_LEVELING_DRIVER) | tr '[:lower:]' '[:upper:]')) - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling - COMMON_VPATH += $(DRIVER_PATH)/wear_leveling - COMMON_VPATH += $(QUANTUM_DIR)/wear_leveling - SRC += wear_leveling.c - ifeq ($(strip $(WEAR_LEVELING_DRIVER)), embedded_flash) - OPT_DEFS += -DHAL_USE_EFL - SRC += wear_leveling_efl.c - POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_efl_config.h - else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), spi_flash) - FLASH_DRIVER := spi - SRC += wear_leveling_flash_spi.c - POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_flash_spi_config.h - else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), legacy) - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash - SRC += flash_stm32.c wear_leveling_legacy.c - POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_legacy_config.h + SRC += $(PLATFORM_COMMON_DIR)/eeprom.c endif endif endif VALID_FLASH_DRIVER_TYPES := spi -FLASH_DRIVER ?= none -ifneq ($(strip $(FLASH_DRIVER)), none) +FLASH_DRIVER ?= no +ifneq ($(strip $(FLASH_DRIVER)), no) ifeq ($(filter $(FLASH_DRIVER),$(VALID_FLASH_DRIVER_TYPES)),) - $(call CATASTROPHIC_ERROR,Invalid FLASH_DRIVER,FLASH_DRIVER="$(FLASH_DRIVER)" is not a valid flash driver) + $(error FLASH_DRIVER="$(FLASH_DRIVER)" is not a valid FLASH driver) else OPT_DEFS += -DFLASH_ENABLE - ifeq ($(strip $(FLASH_DRIVER)),spi) + ifeq ($(strip $(FLASH_DRIVER)), spi) OPT_DEFS += -DFLASH_DRIVER -DFLASH_SPI COMMON_VPATH += $(DRIVER_PATH)/flash SRC += flash_spi.c - QUANTUM_LIB_SRC += spi_master.c endif endif endif @@ -547,7 +500,7 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) endif endif -VALID_WS2812_DRIVER_TYPES := bitbang pwm spi i2c vendor +VALID_WS2812_DRIVER_TYPES := bitbang pwm spi i2c WS2812_DRIVER ?= bitbang ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) @@ -589,6 +542,12 @@ ifeq ($(strip $(LED_TABLES)), yes) SRC += $(QUANTUM_DIR)/led_tables.c endif +ifeq ($(strip $(TERMINAL_ENABLE)), yes) + SRC += $(QUANTUM_DIR)/process_keycode/process_terminal.c + OPT_DEFS += -DTERMINAL_ENABLE + OPT_DEFS += -DUSER_PRINT +endif + ifeq ($(strip $(VIA_ENABLE)), yes) DYNAMIC_KEYMAP_ENABLE := yes RAW_ENABLE := yes @@ -636,14 +595,6 @@ ifneq ($(strip $(DEBOUNCE_TYPE)), custom) QUANTUM_SRC += $(QUANTUM_DIR)/debounce/$(strip $(DEBOUNCE_TYPE)).c endif - -VALID_SERIAL_DRIVER_TYPES := bitbang usart vendor - -SERIAL_DRIVER ?= bitbang -ifeq ($(filter $(SERIAL_DRIVER),$(VALID_SERIAL_DRIVER_TYPES)),) - $(call CATASTROPHIC_ERROR,Invalid SERIAL_DRIVER,SERIAL_DRIVER="$(SERIAL_DRIVER)" is not a valid SERIAL driver) -endif - ifeq ($(strip $(SPLIT_KEYBOARD)), yes) POST_CONFIG_H += $(QUANTUM_DIR)/split_common/post_config.h OPT_DEFS += -DSPLIT_KEYBOARD @@ -668,11 +619,11 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes) endif endif + SERIAL_DRIVER ?= bitbang OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]')) ifeq ($(strip $(SERIAL_DRIVER)), bitbang) QUANTUM_LIB_SRC += serial.c else - QUANTUM_LIB_SRC += serial_protocol.c QUANTUM_LIB_SRC += serial_$(strip $(SERIAL_DRIVER)).c endif endif @@ -684,12 +635,6 @@ ifeq ($(strip $(CRC_ENABLE)), yes) SRC += crc.c endif -ifeq ($(strip $(FNV_ENABLE)), yes) - OPT_DEFS += -DFNV_ENABLE - VPATH += $(LIB_PATH)/fnv - SRC += qmk_fnv_type_validation.c hash_32a.c hash_64a.c -endif - ifeq ($(strip $(HAPTIC_ENABLE)),yes) COMMON_VPATH += $(DRIVER_PATH)/haptic diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index 6573257c78..d3acddc87b 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -1,5 +1,19 @@ # Hey Emacs, this is a -*- makefile -*- #---------------------------------------------------------------------------- +# WinAVR Makefile Template written by Eric B. Weddington, Jg Wunsch, et al. +# +# Released to the Public Domain +# +# Additional material for this makefile was written by: +# Peter Fleury +# Tim Henigan +# Colin O'Flynn +# Reiner Patommel +# Markus Pfaff +# Sander Pool +# Frederik Rouleau +# Carlos Lamas +# # Enable vpath seraching for source files only # Without this, output files, could be read from the wrong .build directories @@ -24,15 +38,36 @@ NO_LTO_OBJ := $(filter %.a,$(OBJ)) MASTER_OUTPUT := $(firstword $(OUTPUTS)) + + # Output format. (can be srec, ihex, binary) FORMAT = ihex # Optimization level, can be [0, 1, 2, 3, s]. +# 0 = turn off optimization. s = optimize for size. +# (Note: 3 is not always the best optimization level. See avr-libc FAQ.) OPT ?= s -# Compiler flag to set the C and C++ language standard level -CSTANDARD = -std=gnu11 -CXXSTANDARD = -std=gnu++14 +# Compiler flag to set the C Standard level. +# c89 = "ANSI" C +# gnu89 = c89 plus GCC extensions +# c99 = ISO C99 standard (not yet fully implemented) +# gnu99 = c99 plus GCC extensions +CSTANDARD = -std=gnu99 + + +# Place -D or -U options here for C sources +#CDEFS += + + +# Place -D or -U options here for ASM sources +#ADEFS += + + +# Place -D or -U options here for C++ sources +#CXXDEFS += -D__STDC_LIMIT_MACROS +#CXXDEFS += -D__STDC_CONSTANT_MACROS +#CXXDEFS += # Speed up recompilations by opt-in usage of ccache USE_CCACHE ?= no @@ -40,8 +75,12 @@ ifneq ($(USE_CCACHE),no) CC_PREFIX ?= ccache endif -#---------------- C Compiler Options ---------------- - +#---------------- Compiler Options C ---------------- +# -g*: generate debugging information +# -O*: optimization level +# -f...: tuning, see GCC manual and avr-libc documentation +# -Wall...: warning level +# -Wa,...: tell GCC to pass this to the assembler. ifeq ($(strip $(LTO_ENABLE)), yes) ifeq ($(PLATFORM),ARM_ATSAM) $(info Enabling LTO on arm_atsam-targeting boards is known to have a high likelihood of failure.) @@ -72,14 +111,23 @@ CFLAGS += -Wstrict-prototypes ifneq ($(strip $(ALLOW_WARNINGS)), yes) CFLAGS += -Werror endif +#CFLAGS += -mshort-calls +#CFLAGS += -fno-unit-at-a-time +#CFLAGS += -Wundef +#CFLAGS += -Wunreachable-code +#CFLAGS += -Wsign-compare CFLAGS += $(CSTANDARD) # This fixes lots of keyboards linking errors but SHOULDN'T BE A FINAL SOLUTION # Fixing of multiple variable definitions must be made. CFLAGS += -fcommon -#---------------- C++ Compiler Options ---------------- - +#---------------- Compiler Options C++ ---------------- +# -g*: generate debugging information +# -O*: optimization level +# -f...: tuning, see GCC manual and avr-libc documentation +# -Wall...: warning level +# -Wa,...: tell GCC to pass this to the assembler. ifeq ($(strip $(DEBUG_ENABLE)),yes) CXXFLAGS += -g$(DEBUG) endif @@ -93,17 +141,57 @@ CXXFLAGS += -Wundef ifneq ($(strip $(ALLOW_WARNINGS)), yes) CXXFLAGS += -Werror endif +#CXXFLAGS += -mshort-calls +#CXXFLAGS += -fno-unit-at-a-time +#CXXFLAGS += -Wstrict-prototypes +#CXXFLAGS += -Wunreachable-code +#CXXFLAGS += -Wsign-compare +#CXXFLAGS += $(CSTANDARD) #---------------- Assembler Options ---------------- - ASFLAGS += $(ADEFS) ifeq ($(VERBOSE_AS_CMD),yes) ASFLAGS += -v endif -#---------------- Linker Options ---------------- +#---------------- Library Options ---------------- +# Minimalistic printf version +PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min +# Floating point printf version (requires MATH_LIB = -lm below) +PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt + +# If this is left blank, then it will use the Standard printf version. +PRINTF_LIB = +#PRINTF_LIB = $(PRINTF_LIB_MIN) +#PRINTF_LIB = $(PRINTF_LIB_FLOAT) + + +# Minimalistic scanf version +SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min + +# Floating point + %[ scanf version (requires MATH_LIB = -lm below) +SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt + +# If this is left blank, then it will use the Standard scanf version. +SCANF_LIB = +#SCANF_LIB = $(SCANF_LIB_MIN) +#SCANF_LIB = $(SCANF_LIB_FLOAT) + + +MATH_LIB = -lm CREATE_MAP ?= yes + + +#---------------- Linker Options ---------------- +# -Wl,...: tell GCC to pass this to linker. +# -Map: create map file +# --cref: add cross reference to map file +# +# Comennt out "--relax" option to avoid a error such: +# (.vectors+0x30): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_12' +# + ifeq ($(CREATE_MAP),yes) LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref endif @@ -113,11 +201,20 @@ endif #LDFLAGS += -Wl,--relax LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) -LDFLAGS += -lm +LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) +#LDFLAGS += -T linker_script.x # You can give EXTRALDFLAGS at 'make' command line. LDFLAGS += $(EXTRALDFLAGS) #---------------- Assembler Listings ---------------- +# -Wa,...: tell GCC to pass this to the assembler. +# -adhlns: create listing +# -gstabs: have the assembler create line number information; note that +# for use in COFF files, additional information about filenames +# and function names needs to be present in the assembler source +# files -- see avr-libc docs [FIXME: not yet described there] +# -listing-cont-lines: Sets the maximum number of continuation lines of hex +# dump that will be displayed for a given single line of source input. ADHLNS_ENABLE ?= no ifeq ($(ADHLNS_ENABLE),yes) diff --git a/builddefs/mcu_selection.mk b/builddefs/mcu_selection.mk index d676e0c06a..d5fb731e08 100644 --- a/builddefs/mcu_selection.mk +++ b/builddefs/mcu_selection.mk @@ -116,41 +116,6 @@ ifneq ($(findstring MK66FX1M0, $(MCU)),) BOARD ?= PJRC_TEENSY_3_6 endif -ifneq ($(findstring RP2040, $(MCU)),) - # Cortex version - MCU = cortex-m0plus - - # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 - CHIBIOS_PORT = ARMv6-M-RP2 - - ## 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 = RP - MCU_SERIES = RP2040 - - # Linker script to use - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ - # or /ld/ - STARTUPLD_CONTRIB = $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/ld - MCU_LDSCRIPT ?= RP2040_FLASH - LDFLAGS += -L $(STARTUPLD_CONTRIB) - - # Startup code to use - # - it should exist in /os/common/startup/ARMCMx/compilers/GCC/mk/ - MCU_STARTUP ?= rp2040 - - # Board: it should exist either in /os/hal/boards/, - # /boards/, or drivers/boards/ - BOARD ?= GENERIC_PROMICRO_RP2040 - - # Default UF2 Bootloader settings - UF2_FAMILY ?= RP2040 - FIRMWARE_FORMAT ?= uf2 -endif - ifneq ($(findstring STM32F042, $(MCU)),) # Cortex version MCU = cortex-m0 diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk index 98537e6da2..f67d009191 100644 --- a/builddefs/show_options.mk +++ b/builddefs/show_options.mk @@ -5,6 +5,7 @@ BUILD_OPTION_NAMES = \ CONSOLE_ENABLE \ COMMAND_ENABLE \ NKRO_ENABLE \ + TERMINAL_ENABLE \ CUSTOM_MATRIX \ DEBOUNCE_TYPE \ SPLIT_KEYBOARD \ @@ -45,7 +46,6 @@ OTHER_OPTION_NAMES = \ LEADER_ENABLE \ PRINTING_ENABLE \ STENO_ENABLE \ - STENO_PROTOCOL \ TAP_DANCE_ENABLE \ VIRTSER_ENABLE \ OLED_ENABLE \ diff --git a/builddefs/testlist.mk b/builddefs/testlist.mk index 8a30a44972..b8d22bce80 100644 --- a/builddefs/testlist.mk +++ b/builddefs/testlist.mk @@ -4,7 +4,6 @@ FULL_TESTS := $(notdir $(TEST_LIST)) include $(QUANTUM_PATH)/debounce/tests/testlist.mk include $(QUANTUM_PATH)/encoder/tests/testlist.mk include $(QUANTUM_PATH)/sequencer/tests/testlist.mk -include $(QUANTUM_PATH)/wear_leveling/tests/testlist.mk include $(PLATFORM_PATH)/test/testlist.mk define VALIDATE_TEST_LIST diff --git a/data/mappings/info_config.json b/data/mappings/info_config.json index fcceb98025..5f0d903bd7 100644 --- a/data/mappings/info_config.json +++ b/data/mappings/info_config.json @@ -12,7 +12,6 @@ "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"}, "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"}, "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"}, - "BACKLIGHT_ON_STATE": {"info_key": "backlight.on_state", "value_type": "int"}, "BACKLIGHT_PIN": {"info_key": "backlight.pin"}, "BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "bool"}, "CAPS_WORD_IDLE_TIMEOUT": {"info_key": "caps_word.idle_timeout", "value_type": "int"}, @@ -36,9 +35,6 @@ "LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"}, "LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"}, "LED_SCROLL_LOCK_PIN": {"info_key": "indicators.scroll_lock"}, - "LED_COMPOSE_PIN": {"info_key": "indicators.compose"}, - "LED_KANA_PIN": {"info_key": "indicators.kana"}, - "LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"}, "MANUFACTURER": {"info_key": "manufacturer"}, "MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"}, "MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"}, diff --git a/data/mappings/info_rules.json b/data/mappings/info_rules.json index 279b5ac213..d4eec37ba0 100644 --- a/data/mappings/info_rules.json +++ b/data/mappings/info_rules.json @@ -13,7 +13,6 @@ "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, "BLUETOOTH": {"info_key": "bluetooth.driver"}, "CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"}, - "ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"}, "FIRMWARE_FORMAT": {"info_key": "build.firmware_format"}, "KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"}, "MOUSE_SHARED_EP": {"info_key": "usb.shared_endpoint.mouse", "value_type": "bool"}, @@ -28,8 +27,6 @@ "SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"}, "SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false}, "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"}, - "STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"}, - "STENO_PROTOCOL": {"info_key": "stenography.protocol"}, # Items we want flagged in lint "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true}, diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema index 8b68a58482..1bdfbbeb03 100644 --- a/data/schemas/definitions.jsonschema +++ b/data/schemas/definitions.jsonschema @@ -1,5 +1,5 @@ { - "$schema": "https://json-schema.org/draft/2020-12/schema#", + "$schema": "http://json-schema.org/draft-07/schema#", "$id": "qmk.definitions.v1", "title": "Common definitions used across QMK's jsonschemas.", "type": "object", @@ -65,7 +65,8 @@ ] }, "key_unit": { - "type": "number" + "type": "number", + "min": 0.25 }, "keyboard": { "oneOf": [ @@ -102,11 +103,8 @@ "pattern": "^LINE_PIN\\d{1,2}$" }, { - "type": "string", - "pattern": "^GP\\d{1,2}$" - }, - { - "type": "integer" + "type": "number", + "multipleOf": 1 }, { "type": "null" @@ -117,12 +115,14 @@ "type": "number" }, "signed_int": { - "type": "integer" + "type": "number", + "multipleOf": 1 }, "signed_int_8": { - "type": "integer", - "minimum": -127, - "maximum": 127 + "type": "number", + "min": -127, + "max": 127, + "multipleOf": 1 }, "string_array": { "type": "array", @@ -138,20 +138,17 @@ }, "unsigned_decimal": { "type": "number", - "minimum": 0 + "min": 0 }, "unsigned_int": { - "type": "integer", - "minimum": 0 + "type": "number", + "min": 0, + "multipleOf": 1 }, "unsigned_int_8": { - "type": "integer", - "minimum": 0, - "maximum": 255 - }, - "bit": { - "type": "integer", - "minimum": 0, - "maximum": 1 + "type": "number", + "min": 0, + "max": 255, + "multipleOf": 1 } } diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 8aca807e38..fd60920578 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -1,27 +1,7 @@ { - "$schema": "https://json-schema.org/draft/2020-12/schema#", + "$schema": "http://json-schema.org/draft-07/schema#", "$id": "qmk.keyboard.v1", "title": "Keyboard Information", - "definitions": { - "encoder_config": { - "type": "object", - "properties": { - "rotary": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "required": ["pin_a", "pin_b"], - "properties": { - "pin_a": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "pin_b": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"} - } - } - } - } - } - }, "type": "object", "properties": { "keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"}, @@ -42,7 +22,7 @@ }, "processor": { "type": "string", - "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "RP2040", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "WB32FQ95", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"] + "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "WB32FQ95", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"] }, "audio": { "type": "object", @@ -60,12 +40,12 @@ "breathing": {"type": "boolean"}, "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "levels": { - "type": "integer", - "minimum": 1, - "maximum": 31 + "type": "number", + "min": 1, + "max": 31, + "multipleOf": 1 }, - "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "on_state": {"$ref": "qmk.definitions.v1#/bit"} + "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"} } }, "bluetooth": { @@ -86,7 +66,7 @@ }, "bootloader": { "type": "string", - "enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2", "rp2040"], + "enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2"], }, "bootloader_instructions": { "type": "string", @@ -133,22 +113,13 @@ "type": "array", "items": {"$ref": "qmk.definitions.v1#/filename"} }, - "encoder": { - "$ref": "#/definitions/encoder_config", - "properties": { - "enabled": {"type": "boolean"} - } - }, "features": {"$ref": "qmk.definitions.v1#/boolean_array"}, "indicators": { "type": "object", "properties": { "caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "compose": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "kana": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "on_state": {"$ref": "qmk.definitions.v1#/bit"} + "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"} } }, "layout_aliases": { @@ -183,11 +154,12 @@ "minItems": 2, "maxItems": 2, "items": { - "type": "integer", - "minimum": 0 + "type": "number", + "min": 0, + "multipleOf": 1 } }, - "r": {"$ref": "qmk.definitions.v1#/signed_decimal"}, + "r": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, "rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, "ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"}, "h": {"$ref": "qmk.definitions.v1#/key_unit"}, @@ -258,13 +230,14 @@ "minItems": 2, "maxItems": 2, "items": { - "type": "integer", - "minimum": 0 + "type": "number", + "min": 0, + "multipleOf": 1 } }, "x": {"$ref": "qmk.definitions.v1#/key_unit"}, "y": {"$ref": "qmk.definitions.v1#/key_unit"}, - "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} + "flags": {"$ref": "qmk.definitions.v1#/unsigned_decimal"} } } } @@ -285,13 +258,14 @@ "minItems": 2, "maxItems": 2, "items": { - "type": "integer", - "minimum": 0 + "type": "number", + "min": 0, + "multipleOf": 1 } }, "x": {"$ref": "qmk.definitions.v1#/key_unit"}, "y": {"$ref": "qmk.definitions.v1#/key_unit"}, - "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} + "flags": {"$ref": "qmk.definitions.v1#/unsigned_decimal"} } } } @@ -316,9 +290,10 @@ "blink": {"type": "boolean"}, "enabled": {"type": "boolean"}, "max": { - "type": "integer", - "minimum": 1, - "maximum": 32 + "type": "number", + "min": 1, + "max": 32, + "multipleOf": 1 }, "override_rgb": {"type": "boolean"} } @@ -332,8 +307,8 @@ "split": {"type": "boolean"}, "split_count": { "type": "array", - "minItems": 2, - "maxItems": 2, + "minLength": 2, + "maxLength": 2, "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} } } @@ -347,31 +322,21 @@ "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "unlock_sequence": { "type": "array", - "minItems": 1, - "maxItems": 5, + "minLength": 1, + "maxLength": 5, "items": { "type": "array", "minItems": 2, "maxItems": 2, "items": { - "type": "integer", - "minimum": 0 + "type": "number", + "min": 0, + "multipleOf": 1 } } } } }, - "stenography": { - "type": "object", - "additionalProperties": false, - "properties": { - "enabled": {"type": "boolean"}, - "protocol": { - "type": "string", - "enum": ["all", "geminipr", "txbolt"] - } - } - }, "split": { "type": "object", "additionalProperties": false, @@ -400,24 +365,16 @@ } } }, - "encoder": { - "type": "object", - "additionalProperties": false, - "properties": { - "right": { - "$ref": "#/definitions/encoder_config" - } - } - }, "main": { "type": "string", "enum": ["eeprom", "left", "matrix_grid", "pin", "right"] }, "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "soft_serial_speed": { - "type": "integer", - "minimum": 0, - "maximum": 5 + "type": "number", + "min": 0, + "max": 5, + "multipleOf": 1 }, "transport": { "type": "object", @@ -471,7 +428,7 @@ "force_nkro": {"type": "boolean"}, "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, - "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "no_startup_check": {"type": "boolean"}, "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "shared_endpoint": { @@ -482,7 +439,7 @@ "mouse": {"type": "boolean"} } }, - "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "wait_for": {"type": "boolean"}, } }, @@ -491,8 +448,8 @@ "additionalProperties": false, "properties": { "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, - "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, - "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, } }, "qmk_lufa_bootloader": { diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index 92a1ce533d..3803301a66 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -1,5 +1,5 @@ { - "$schema": "https://json-schema.org/draft/2020-12/schema#", + "$schema": "http://json-schema.org/draft-07/schema#", "$id": "qmk.keymap.v1", "title": "Keymap Information", "type": "object", @@ -50,7 +50,8 @@ }, "config": {"$ref": "qmk.keyboard.v1"}, "notes": { - "type": "string" + "type": "string", + "description": "asdf" } }, "required": [ diff --git a/docs/_summary.md b/docs/_summary.md index da007bccb6..102adad795 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -84,10 +84,12 @@ * [One Shot Keys](one_shot_keys.md) * [Pointing Device](feature_pointing_device.md) * [Raw HID](feature_rawhid.md) + * [Secure](feature_secure.md) * [Sequencer](feature_sequencer.md) * [Swap Hands](feature_swap_hands.md) * [Tap Dance](feature_tap_dance.md) * [Tap-Hold Configuration](tap_hold.md) + * [Terminal](feature_terminal.md) * [Unicode](feature_unicode.md) * [Userspace](feature_userspace.md) * [WPM Calculation](feature_wpm.md) @@ -146,7 +148,6 @@ * [SPI Driver](spi_driver.md) * [WS2812 Driver](ws2812_driver.md) * [EEPROM Driver](eeprom_driver.md) - * [Flash Driver](flash_driver.md) * ['serial' Driver](serial_driver.md) * [UART Driver](uart_driver.md) * [GPIO Controls](gpio_control.md) @@ -165,7 +166,7 @@ * Arm/ChibiOS * [Selecting an MCU](platformdev_selecting_arm_mcu.md) * [Early initialization](platformdev_chibios_earlyinit.md) - * [Raspberry Pi RP2040](platformdev_rp2040.md) + * [WeAct Blackpill F411](platformdev_blackpill_f411.md) * QMK Reference * [Contributing to QMK](contributing.md) diff --git a/docs/audio_driver.md b/docs/audio_driver.md index 81c3390074..ffd9c8d5ad 100644 --- a/docs/audio_driver.md +++ b/docs/audio_driver.md @@ -113,15 +113,17 @@ Additionally, in the board config, you'll want to make changes to enable the DAC ### DAC Config -| Define | Defaults | Description --------------------------------------------------------------------------------------------- | +| Define | Defaults | Description | +| -------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `AUDIO_DAC_SAMPLE_MAX` | `4095U` | Highest value allowed. Lower value means lower volume. And 4095U is the upper limit, since this is limited to a 12 bit value. Only effects non-pregenerated samples. | -| `AUDIO_DAC_OFF_VALUE` | `AUDIO_DAC_SAMPLE_MAX / 2` | The value of the DAC when notplaying anything. Some setups may require a high (`AUDIO_DAC_SAMPLE_MAX`) or low (`0`) value here. | +| `AUDIO_DAC_OFF_VALUE` | `AUDIO_DAC_SAMPLE_MAX / 2` | The value of the DAC when notplaying anything. Some setups may require a high (`AUDIO_DAC_SAMPLE_MAX`) or low (`0`) value here. | | `AUDIO_MAX_SIMULTANEOUS_TONES` | __see next table__ | The number of tones that can be played simultaneously. A value that is too high may freeze the controller or glitch out when too many tones are being played. | -| `AUDIO_DAC_SAMPLE_RATE` | __see next table__ | Effective bit rate of the DAC (in hertz), higher limits simultaneous tones, and lower sacrifices quality. | +| `AUDIO_DAC_SAMPLE_RATE` | __see next table__ | Effective bit rate of the DAC (in hertz), higher limits simultaneous tones, and lower sacrifices quality. | There are a number of predefined quality settings that you can use, with "sane minimum" being the default. You can use custom values by simply defining the sample rate and number of simultaneous tones, instead of using one of the listed presets. | Define | Sample Rate | Simultaneous tones | +| --------------------------------- | ----------- | ------------------- | | `AUDIO_DAC_QUALITY_VERY_LOW` | `11025U` | `8` | | `AUDIO_DAC_QUALITY_LOW` | `22040U` | `4` | | `AUDIO_DAC_QUALITY_HIGH` | `44100U` | `2` | diff --git a/docs/cli_tab_complete.md b/docs/cli_tab_complete.md index 200477624e..90950b82da 100644 --- a/docs/cli_tab_complete.md +++ b/docs/cli_tab_complete.md @@ -14,6 +14,10 @@ Add this to the end of your `.profile` or `.bashrc`: If you put `qmk_firmware` into another location you will need to adjust this path. +Zsh users will need to load `bashcompinit`. The following can be added to `~/.zshrc` file: + + autoload -Uz bashcompinit && bashcompinit + ### System Wide Symlink If you want the tab completion available to all users of the system you can add a symlink to the `qmk_tab_complete.sh` script: diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md index a594fe0620..cee8986829 100644 --- a/docs/compatible_microcontrollers.md +++ b/docs/compatible_microcontrollers.md @@ -65,12 +65,6 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s * [MK66FX1M0](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k6x-ethernet/kinetis-k66-180-mhz-dual-high-speed-full-speed-usbs-2mb-flash-microcontrollers-mcus-based-on-arm-cortex-m4-core:K66_180) * PJRC Teensy 3.6 -### Raspberry Pi - -* [RP2040](https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html) - -For a detailed overview about the RP2040 support by QMK see the [dedicated RP2040 page](platformdev_rp2040.md). - ## Atmel ATSAM There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop). However, it is not recommended to design a board with this microcontroller as the support is quite specialized to Massdrop hardware. diff --git a/docs/config_options.md b/docs/config_options.md index c35227a407..8227a0e074 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -141,7 +141,7 @@ If you define these options you will enable the associated feature, which may in ## Behaviors That Can Be Configured * `#define TAPPING_TERM 200` - * how long before a key press becomes a hold + * how long before a tap becomes a hold, if set above 500, a key tapped during the tapping term will turn it into a hold too * `#define TAPPING_TERM_PER_KEY` * enables handling for per key `TAPPING_TERM` settings * `#define RETRO_TAPPING` @@ -174,8 +174,6 @@ If you define these options you will enable the associated feature, which may in * sets the timer for leader key chords to run on each key press rather than overall * `#define LEADER_KEY_STRICT_KEY_PROCESSING` * Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify `MT(MOD_CTL, KC_A)` if you want to use `KC_A`. -* `#define MOUSE_EXTENDED_REPORT` - * Enables support for extended reports (-32767 to 32767, instead of -127 to 127), which may allow for smoother reporting, and prevent maxing out of the reports. Applies to both Pointing Device and Mousekeys. * `#define ONESHOT_TIMEOUT 300` * how long before oneshot times out * `#define ONESHOT_TAP_TOGGLE 2` diff --git a/docs/eeprom_driver.md b/docs/eeprom_driver.md index de2eaf2e5b..6dcf10c04d 100644 --- a/docs/eeprom_driver.md +++ b/docs/eeprom_driver.md @@ -2,15 +2,12 @@ The EEPROM driver can be swapped out depending on the needs of the keyboard, or whether extra hardware is present. -Selecting the EEPROM driver is done in your keyboard's `rules.mk`: - Driver | Description -----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- `EEPROM_DRIVER = vendor` (default) | Uses the on-chip driver provided by the chip manufacturer. For AVR, this is provided by avr-libc. This is supported on ARM for a subset of chips -- STM32F3xx, STM32F1xx, and STM32F072xB will be emulated by writing to flash. STM32L0xx and STM32L1xx will use the onboard dedicated true EEPROM. Other chips will generally act as "transient" below. `EEPROM_DRIVER = i2c` | Supports writing to I2C-based 24xx EEPROM chips. See the driver section below. `EEPROM_DRIVER = spi` | Supports writing to SPI-based 25xx EEPROM chips. See the driver section below. `EEPROM_DRIVER = transient` | Fake EEPROM driver -- supports reading/writing to RAM, and will be discarded when power is lost. -`EEPROM_DRIVER = wear_leveling` | Frontend driver for the wear_leveling system, allowing for EEPROM emulation on top of flash -- both in-MCU and external SPI NOR flash. ## Vendor Driver Configuration :id=vendor-eeprom-driver-configuration @@ -46,9 +43,8 @@ Module | Equivalent `#define` | Source -----------------|---------------------------------|------------------------------------------ CAT24C512 EEPROM | `#define EEPROM_I2C_CAT24C512` | RM24C512C EEPROM | `#define EEPROM_I2C_RM24C512C` | -24LC32A EEPROM | `#define EEPROM_I2C_24LC32A` | -24LC64 EEPROM | `#define EEPROM_I2C_24LC64` | -24LC128 EEPROM | `#define EEPROM_I2C_24LC128` | +24LC64 EEPROM | `#define EEPROM_I2C_24LC64` | +24LC128 EEPROM | `#define EEPROM_I2C_24LC128` | 24LC256 EEPROM | `#define EEPROM_I2C_24LC256` | MB85RC256V FRAM | `#define EEPROM_I2C_MB85RC256V` | @@ -58,13 +54,13 @@ MB85RC256V FRAM | `#define EEPROM_I2C_MB85RC256V` | There's no way to determine if there is an SPI EEPROM actually responding. Generally, this will result in reads of nothing but zero. @@ -77,69 +73,3 @@ The only configurable item for the transient EEPROM driver is its size: `#define TRANSIENT_EEPROM_SIZE` | Total size of the EEPROM storage in bytes | 64 Default values and extended descriptions can be found in `drivers/eeprom/eeprom_transient.h`. - -## Wear-leveling Driver Configuration :id=wear_leveling-eeprom-driver-configuration - -The wear-leveling driver uses an algorithm to minimise the number of erase cycles on the underlying MCU flash memory. - -There is no specific configuration for this driver, but the wear-leveling system used by this driver may need configuration. See the [wear-leveling configuration](#wear_leveling-configuration) section for more information. - -# Wear-leveling Configuration :id=wear_leveling-configuration - -The wear-leveling driver has a few possible _backing stores_ that may be used by adding to your keyboard's `rules.mk` file: - -Driver | Description -----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -`WEAR_LEVELING_DRIVER = embedded_flash` | This driver is used for emulating EEPROM by writing to embedded flash on the MCU. -`WEAR_LEVELING_DRIVER = spi_flash` | This driver is used to address external SPI NOR Flash peripherals. -`WEAR_LEVELING_DRIVER = legacy` | This driver is the "legacy" emulated EEPROM provided in historical revisions of QMK. Currently used for STM32F0xx and STM32F4x1, but slated for deprecation and removal once `embedded_flash` support for those MCU families is complete. - -!> All wear-leveling drivers require an amount of RAM equivalent to the selected logical EEPROM size. Increasing the size to 32kB of EEPROM requires 32kB of RAM, which a significant number of MCUs simply do not have. - -## Wear-leveling Embedded Flash Driver Configuration :id=wear_leveling-efl-driver-configuration - -This driver performs writes to the embedded flash storage embedded in the MCU. In most circumstances, the last few of sectors of flash are used in order to minimise the likelihood of collision with program code. - -Configurable options in your keyboard's `config.h`: - -`config.h` override | Default | Description ------------------------------------------|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration. -`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting. -`#define WEAR_LEVELING_LOGICAL_SIZE` | `1024` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. -`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size. -`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly. - -!> If your MCU does not boot after swapping to the EFL wear-leveling driver, it's likely that the flash size is incorrectly detected, usually as an MCU with larger flash and may require overriding. - -## Wear-leveling SPI Flash Driver Configuration :id=wear_leveling-flash_spi-driver-configuration - -This driver performs writes to an external SPI NOR Flash peripheral. It also requires a working configuration for the SPI NOR Flash peripheral -- see the [flash driver](flash_driver.md) documentation for more information. - -Configurable options in your keyboard's `config.h`: - -`config.h` override | Default | Description -----------------------------------------------------|--------------------------------|-------------------------------------------------------------------------------------------------------------------------------- -`#define WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_COUNT` | `1` | Number of blocks in the external flash used by the wear-leveling algorithm. -`#define WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_OFFSET` | `0` | The index first block in the external flash used by the wear-leveling algorithm. -`#define WEAR_LEVELING_LOGICAL_SIZE` | `((block_count*block_size)/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. Result must be <= 64kB. -`#define WEAR_LEVELING_BACKING_SIZE` | `(block_count*block_size)` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size. -`#define BACKING_STORE_WRITE_SIZE` | `8` | The write width used whenever a write is performed on the external flash peripheral. - -!> There is currently a limit of 64kB for the EEPROM subsystem within QMK, so using a larger flash is not going to be beneficial as the logical size cannot be increased beyond 65536. The backing size may be increased to a larger value, but erase timing may suffer as a result. - -## Wear-leveling Legacy EEPROM Emulation Driver Configuration :id=wear_leveling-legacy-driver-configuration - -This driver performs writes to the embedded flash storage embedded in the MCU much like the normal Embedded Flash Driver, and is only for use with STM32F0xx and STM32F4x1 devices. This flash implementation is still currently provided as the EFL driver is currently non-functional for the previously mentioned families. - -By default, `1024` bytes of emulated EEPROM is provided: - -MCU | EEPROM Provided | Flash Used -----------|-----------------|-------------- -STM32F042 | `1024` bytes | `2048` bytes -STM32F070 | `1024` bytes | `2048` bytes -STM32F072 | `1024` bytes | `2048` bytes -STM32F401 | `1024` bytes | `16384` bytes -STM32F411 | `1024` bytes | `16384` bytes - -Under normal circumstances configuration of this driver requires intimate knowledge of the MCU's flash structure -- reconfiguration is at your own risk and will require referring to the code. \ No newline at end of file diff --git a/docs/feature_mouse_keys.md b/docs/feature_mouse_keys.md index 8e474c4245..905da36e43 100644 --- a/docs/feature_mouse_keys.md +++ b/docs/feature_mouse_keys.md @@ -87,9 +87,9 @@ This is an extension of the accelerated mode. The kinetic mode uses a quadratic |`MK_KINETIC_SPEED` |undefined|Enable kinetic mode | |`MOUSEKEY_DELAY` |5 |Delay between pressing a movement key and cursor movement | |`MOUSEKEY_INTERVAL` |10 |Time between cursor movements in milliseconds | -|`MOUSEKEY_MOVE_DELTA` |16 |Step size for accelerating from initial to base speed | +|`MOUSEKEY_MOVE_DELTA` |5 |Step size for accelerating from initial to base speed | |`MOUSEKEY_INITIAL_SPEED` |100 |Initial speed of the cursor in pixel per second | -|`MOUSEKEY_BASE_SPEED` |5000 |Maximum cursor speed at which acceleration stops | +|`MOUSEKEY_BASE_SPEED` |1000 |Maximum cursor speed at which acceleration stops | |`MOUSEKEY_DECELERATED_SPEED` |400 |Decelerated cursor speed | |`MOUSEKEY_ACCELERATED_SPEED` |3000 |Accelerated cursor speed | |`MOUSEKEY_WHEEL_INITIAL_MOVEMENTS` |16 |Initial number of movements of the mouse wheel | @@ -100,7 +100,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_pointing_device.md b/docs/feature_pointing_device.md index 264362ea77..02c1e64a31 100644 --- a/docs/feature_pointing_device.md +++ b/docs/feature_pointing_device.md @@ -72,6 +72,7 @@ The Analog Joystick is an analog (ADC) driven sensor. There are a variety of jo |`ANALOG_JOYSTICK_SPEED_MAX` | (Optional) The maximum value used for motion. | `2` | |`ANALOG_JOYSTICK_CLICK_PIN` | (Optional) The pin wired up to the press switch of the analog stick. | _not defined_ | + ### Cirque Trackpad To use the Cirque Trackpad sensor, add this to your `rules.mk`: @@ -89,42 +90,30 @@ POINTING_DEVICE_DRIVER = cirque_pinnacle_spi This supports the Cirque Pinnacle 1CA027 Touch Controller, which is used in the TM040040, TM035035 and the TM023023 trackpads. These are I2C or SPI compatible, and both configurations are supported. -| Setting | Description | Default | -|-------------------------------- |-----------------------------------------------------------------------|--------------------- | -|`CIRQUE_PINNACLE_X_LOWER` | (Optional) The minimum reachable X value on the sensor. | `127` | -|`CIRQUE_PINNACLE_X_UPPER` | (Optional) The maximum reachable X value on the sensor. | `1919` | -|`CIRQUE_PINNACLE_Y_LOWER` | (Optional) The minimum reachable Y value on the sensor. | `63` | -|`CIRQUE_PINNACLE_Y_UPPER` | (Optional) The maximum reachable Y value on the sensor. | `1471` | -|`CIRQUE_PINNACLE_ATTENUATION` | (Optional) Sets the attenuation of the sensor data. | `ADC_ATTENUATE_4X` | -|`CIRQUE_PINNACLE_TAPPING_TERM` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` | -|`CIRQUE_PINNACLE_TOUCH_DEBOUNCE` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` | - -**`CIRQUE_PINNACLE_ATTENUATION`** is a measure of how much data is suppressed in regards to sensitivity. The higher the attenuation, the less sensitive the touchpad will be. - -Default attenuation is set to 4X, although if you are using a thicker overlay (such as the curved overlay) you will want a lower attenuation such as 2X. The possible values are: -* `ADC_ATTENUATE_4X`: Least sensitive -* `ADC_ATTENUATE_3X` -* `ADC_ATTENUATE_2X` -* `ADC_ATTENUATE_1X`: Most sensitive +| Setting | Description | Default | +|---------------------------------|---------------------------------------------------------------------------------|-----------------------| +|`CIRQUE_PINNACLE_X_LOWER` | (Optional) The minimum reachable X value on the sensor. | `127` | +|`CIRQUE_PINNACLE_X_UPPER` | (Optional) The maximum reachable X value on the sensor. | `1919` | +|`CIRQUE_PINNACLE_Y_LOWER` | (Optional) The minimum reachable Y value on the sensor. | `63` | +|`CIRQUE_PINNACLE_Y_UPPER` | (Optional) The maximum reachable Y value on the sensor. | `1471` | +|`CIRQUE_PINNACLE_TAPPING_TERM` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` | +|`CIRQUE_PINNACLE_TOUCH_DEBOUNCE` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` | | I2C Setting | Description | Default | |--------------------------|---------------------------------------------------------------------------------|---------| |`CIRQUE_PINNACLE_ADDR` | (Required) Sets the I2C Address for the Cirque Trackpad | `0x2A` | |`CIRQUE_PINNACLE_TIMEOUT` | (Optional) The timeout for i2c communication with the trackpad in milliseconds. | `20` | -| SPI Setting | Description | Default | -|-------------------------------|------------------------------------------------------------------------|----------------| -|`CIRQUE_PINNACLE_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `1000000` | -|`CIRQUE_PINNACLE_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` | -|`CIRQUE_PINNACLE_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `1` | -|`CIRQUE_PINNACLE_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ | -|`CIRQUE_PINNACLE_SPI_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ | +| SPI Setting | Description | Default | +|-------------------------------|------------------------------------------------------------------------|---------------| +|`CIRQUE_PINNACLE_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `1000000` | +|`CIRQUE_PINNACLE_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` | +|`CIRQUE_PINNACLE_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `1` | +|`CIRQUE_PINNACLE_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ | +|`CIRQUE_PINNACLE_SPI_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ | Default Scaling/CPI is 1024. -Also see the `POINTING_DEVICE_TASK_THROTTLE_MS`, which defaults to 10ms when using Cirque Pinnacle, which matches the internal update rate of the position registers (in standard configuration). Advanced configuration for pen/stylus usage might require lower values. - - ### Pimoroni Trackball To use the Pimoroni Trackball module, add this to your `rules.mk`: @@ -270,7 +259,6 @@ The following configuration options are only available when using `SPLIT_POINTIN |`POINTING_DEVICE_ROTATION_270_RIGHT` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ | |`POINTING_DEVICE_INVERT_X_RIGHT` | (Optional) Inverts the X axis report. | _not defined_ | |`POINTING_DEVICE_INVERT_Y_RIGHT` | (Optional) Inverts the Y axis report. | _not defined_ | -|`MOUSE_EXTENDED_REPORT` | (Optional) Enables support for extended mouse reports. (-32767 to 32767, instead of just -127 to 127) | !> If there is a `_RIGHT` configuration option or callback, the [common configuration](feature_pointing_device.md?id=common-configuration) option will work for the left. For correct left/right detection you should setup a [handedness option](feature_split_keyboard?id=setting-handedness), `EE_HANDS` is usually a good option for an existing board that doesn't do handedness by hardware. diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 247b77bcb1..b664ccd698 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -86,7 +86,6 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_` de | `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | | `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 | -| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | | `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | @@ -173,7 +172,6 @@ Configure the hardware via your `config.h`: | `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | | `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 | -| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | | `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | @@ -411,7 +409,6 @@ You can use up to 2 AW20216 IC's. Do not specify `DRIVER__xxx` defines for IC | `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | | | `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 | | `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 | -| `AW_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 | | `AW_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 | Here is an example using 2 drivers. @@ -668,22 +665,7 @@ In order to change the delay of temperature decrease define `RGB_MATRIX_TYPING_H #define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 ``` -As heatmap uses the physical position of the leds set in the g_led_config, you may need to tweak the following options to get the best effect for your keyboard. Note the size of this grid is `224x64`. - -Limit the distance the effect spreads to surrounding keys. - -```c -#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 40 -``` - -Limit how hot surrounding keys get from each press. - -```c -#define RGB_MATRIX_TYPING_HEATMAP_AREA_LIMIT 16 -``` - -Remove the spread effect entirely. - +Heatmap effect may not light up the correct adjacent LEDs for certain key matrix layout such as split keyboards. The following define will limit the effect to pressed keys only: ```c #define RGB_MATRIX_TYPING_HEATMAP_SLIM ``` @@ -795,6 +777,7 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master #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 +#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 ``` ## EEPROM storage :id=eeprom-storage diff --git a/docs/feature_secure.md b/docs/feature_secure.md new file mode 100644 index 0000000000..ee774b05a8 --- /dev/null +++ b/docs/feature_secure.md @@ -0,0 +1,54 @@ +# Secure + +The secure feature aims to prevent unwanted interaction without user intervention. + +?> Secure does **not** currently implement encryption/decryption/etc and should not be a replacement where a strong hardware/software based solution is required. + +### Unlock sequence + +To unlock, the user must perform a set of actions. This can optionally be configured to be multiple keys. + +* While unlocking all keyboard input is ignored +* Incorrect attempts will revert back to the previously locked state + +### Automatic Locking + +Once unlocked, the keyboard will revert back to a locked state after the configured timeout. +The timeout can be refreshed by using the `secure_activity_event` function, for example from one of the various [hooks](custom_quantum_functions.md). + +## Usage + +Add the following to your `rules.mk`: + +```make +SECURE_ENABLE = yes +``` + +## Keycodes + +| Key | Description | +|------------------|--------------------------------------------------------------------------------| +| `SECURE_LOCK` | Revert back to a locked state | +| `SECURE_UNLOCK` | Forces unlock without performing a unlock sequence | +| `SECURE_TOGGLE` | Toggle directly between locked and unlock without performing a unlock sequence | +| `SECURE_REQUEST` | Request that user perform the unlock sequence | + +## Configuration + +| Define | Default | Description | +|-------------------------|----------------|---------------------------------------------------------------------------------| +|`SECURE_UNLOCK_TIMEOUT` | `5000` | Timeout for the user to perform the configured unlock sequence - `0` to disable | +|`SECURE_IDLE_TIMEOUT` | `60000` | Timeout while unlocked before returning to locked - `0` to disable | +|`SECURE_UNLOCK_SEQUENCE` | `{ { 0, 0 } }` | Array of matrix locations describing a sequential sequence of keypresses | + +## Functions + +| Function | Description | +|---------------------------|----------------------------------------------------------------------------| +| `secure_is_locked()` | Check if the device is currently locked | +| `secure_is_unlocking()` | Check if an unlock sequence is currently in progress | +| `secure_is_unlocked()` | Check if the device is currently unlocked | +| `secure_lock()` | Lock down the device | +| `secure_unlock()` | Force unlock the device - bypasses user unlock sequence | +| `secure_request_unlock()` | Begin listening for an unlock sequence | +| `secure_activity_event()` | Flag that user activity has happened and the device should remain unlocked | diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index e53b3525cb..eefafdbf75 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -143,9 +143,6 @@ Next, you will have to flash the EEPROM files once for the correct hand to the c * ARM controllers with a DFU compatible bootloader (e.g. Proton-C): * `:dfu-util-split-left` * `:dfu-util-split-right` -* ARM controllers with a UF2 compatible bootloader: - * `:uf2-split-left` - * `:uf2-split-right` Example: @@ -370,7 +367,7 @@ There are some settings that you may need to configure, based on how the hardwar #define MATRIX_COL_PINS_RIGHT { } ``` -This allows you to specify a different set of pins for the matrix on the right side. This is useful if you have a board with differently-shaped halves that requires a different configuration (such as Keebio's Quefrency). The number of pins in the right and left matrices must be the same, if you have a board with a different number of rows or columns on one side, pad out the extra spaces with `NO_PIN` and make sure you add the unused rows or columns to your matrix. +This allows you to specify a different set of pins for the matrix on the right side. This is useful if you have a board with differently-shaped halves that requires a different configuration (such as Keebio's Quefrency). ```c #define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } } diff --git a/docs/feature_stenography.md b/docs/feature_stenography.md index e13fe845c5..2b52bb17a6 100644 --- a/docs/feature_stenography.md +++ b/docs/feature_stenography.md @@ -8,107 +8,46 @@ The [Open Steno Project](https://www.openstenoproject.org/) has built an open-so Plover can work with any standard QWERTY keyboard, although it is more efficient if the keyboard supports NKRO (n-key rollover) to allow Plover to see all the pressed keys at once. An example keymap for Plover can be found in `planck/keymaps/default`. Switching to the `PLOVER` layer adjusts the position of the keyboard to support the number bar. -To enable NKRO, add `NKRO_ENABLE = yes` in your `rules.mk` and make sure to press `NK_ON` to turn it on because `NKRO_ENABLE = yes` merely adds the possibility of switching to NKRO mode but it doesn't automatically switch to it. If you want to automatically switch, add `#define FORCE_NKRO` in your `config.h`. - -You may also need to adjust your layout, either in QMK or in Plover, if you have anything other than a standard layout. You may also want to purchase some steno-friendly keycaps to make it easier to hit multiple keys. +To use Plover with QMK just enable NKRO and optionally adjust your layout if you have anything other than a standard layout. You may also want to purchase some steno-friendly keycaps to make it easier to hit multiple keys. ## Plover with Steno Protocol :id=plover-with-steno-protocol -Plover also understands the language of several steno machines. QMK can speak a couple of these languages: TX Bolt and GeminiPR. An example layout can be found in `planck/keymaps/steno`. +Plover also understands the language of several steno machines. QMK can speak a couple of these languages, TX Bolt and GeminiPR. An example layout can be found in `planck/keymaps/steno`. -When QMK speaks to Plover over a steno protocol, Plover will not use the keyboard as input. This means that you can switch back and forth between a standard keyboard and your steno keyboard, or even switch layers from Plover to standard and back without needing to activate/deactivate Plover. +When QMK speaks to Plover over a steno protocol Plover will not use the keyboard as input. This means that you can switch back and forth between a standard keyboard and your steno keyboard, or even switch layers from Plover to standard and back without needing to activate/deactivate Plover. -In this mode, Plover expects to speak with a steno machine over a serial port so QMK will present itself to the operating system as a virtual serial port in addition to a keyboard. +In this mode Plover expects to speak with a steno machine over a serial port so QMK will present itself to the operating system as a virtual serial port in addition to a keyboard. By default QMK will speak the TX Bolt protocol but can be switched to GeminiPR; the last protocol used is stored in non-volatile memory so QMK will use the same protocol on restart. -> Note: Due to hardware limitations, you might not be able to run both a virtual serial port and mouse emulation at the same time. - -!> Serial stenography protocols are not supported on [V-USB keyboards](compatible_microcontrollers#atmel-avr). - -To enable stenography protocols, add the following lines to your `rules.mk`: -```mk -STENO_ENABLE = yes -``` +> Note: Due to hardware limitations you may not be able to run both a virtual serial port and mouse emulation at the same time. ### TX Bolt :id=tx-bolt -TX Bolt communicates the status of 24 keys over a simple protocol in variable-sized (1–4 bytes) packets. - -To select TX Bolt, add the following lines to your `rules.mk`: -```mk -STENO_ENABLE = yes -STENO_PROTOCOL = txbolt -``` - -Each byte of the packet represents a different group of steno keys. Determining the group of a certain byte of the packet is done by checking the first two bits, the remaining bits are set if the corresponding steno key was pressed for the stroke. The last set of keys (as indicated by leading `11`) needs to keep track of less keys than there are bits so one of the bits is constantly 0. - -The start of a new packet can be detected by comparing the group “ID” (the two MSBs) of the current byte to that of the previously received byte. If the group “ID” of the current byte is smaller or equal to that of the previous byte, it means that the current byte is the beginning of a new packet. - -The format of TX Bolt packets is shown below. -``` -00HWPKTS 01UE*OAR 10GLBPRF 110#ZDST -``` - -Examples of steno strokes and the associated packet: -- `EUBG` = `01110000 10101000` -- `WAZ` = `00010000 01000010 11001000` -- `PHAPBGS` = `00101000 01000010 10101100 11000010` +TX Bolt communicates the status of 24 keys over a very simple protocol in variable-sized (1-5 byte) packets. ### GeminiPR :id=geminipr -GeminiPR encodes 42 keys into a 6-byte packet. While TX Bolt contains everything that is necessary for standard stenography, GeminiPR opens up many more options, including differentiating between top and bottom `S-`, and supporting non-English theories. - -To select GeminiPR, add the following lines to your `rules.mk`: -```mk -STENO_ENABLE = yes -STENO_PROTOCOL = geminipr -``` - -All packets in the GeminiPR protocol consist of exactly six bytes, used as bit-arrays for different groups of keys. The beginning of a packet is indicated by setting the most significant bit (MSB) to 1 while setting the MSB of the remaining five bytes to 0. - -The format of GeminiPR packets is shown below. -``` -1 Fn #1 #2 #3 #4 #5 #6 -0 S1- S2- T- K- P- W- H- -0 R- A- O- *1 *2 res1 res2 -0 pwr *3 *4 -E -U -F -R -0 -P -B -L -G -T -S -D -0 #7 #8 #9 #A #B #C -Z -``` - -Examples of steno strokes and the associated packet: -- `EUBG` = `10000000 00000000 00000000 00001100 00101000 00000000` -- `WAZ` = `10000000 00000010 00100000 00000000 00000000 00000001` -- `PHAPBGS` = `10000000 00000101 00100000 00000000 01101010 00000000` - -### Switching protocols on the fly :id=switching-protocols-on-the-fly - -If you wish to switch the serial protocol used to transfer the steno chords without having to recompile your keyboard firmware every time, you can press the `QK_STENO_BOLT` and `QK_STENO_GEMINI` keycodes in order to switch protocols on the fly. - -To enable these special keycodes, add the following lines to your `rules.mk`: -```mk -STENO_ENABLE = yes -STENO_PROTOCOL = all -``` - -If you want to switch protocols programatically, as part of a custom macro for example, don't use `tap_code(QK_STENO_*)`, as `tap_code` only supports [basic keycodes](keycodes_basic). Instead, you should use `steno_set_mode(STENO_MODE_*)`, whose valid arguments are `STENO_MODE_BOLT` and `STENO_MODE_GEMINI`. - -The default protocol is Gemini PR but the last protocol used is stored in non-volatile memory so QMK will remember your choice between reboots of your keyboard — assuming that your keyboard features (emulated) EEPROM. - -Naturally, this option takes the most amount of firmware space as it needs to compile the code for all the available stenography protocols. In most cases, compiling a single stenography protocol is sufficient. - -The default value for `STENO_PROTOCOL` is `all`. +GeminiPR encodes 42 keys into a 6-byte packet. While TX Bolt contains everything that is necessary for standard stenography, GeminiPR opens up many more options, including supporting non-English theories. ## Configuring QMK for Steno :id=configuring-qmk-for-steno -After enabling stenography and optionally selecting a protocol, you may also need disable mouse keys, extra keys, or another USB endpoint to prevent conflicts. The builtin USB stack for some processors only supports a certain number of USB endpoints and the virtual serial port needed for steno fills 3 of them. +Firstly, enable steno in your keymap's Makefile. You may also need disable mousekeys, extra keys, or another USB endpoint to prevent conflicts. The builtin USB stack for some processors only supports a certain number of USB endpoints and the virtual serial port needed for steno fills 3 of them. -!> If you had *explicitly* set `VIRSTER_ENABLE = no`, none of the serial stenography protocols (GeminiPR, TX Bolt) will work properly. You are expected to either set it to `yes`, remove the line from your `rules.mk` or send the steno chords yourself in an alternative way using the [provided interceptable hooks](#interfacing-with-the-code). +```make +STENO_ENABLE = yes +MOUSEKEY_ENABLE = no +``` -In your keymap, create a new layer for Plover, that you can fill in with the [steno keycodes](#keycode-reference) (you will need to include `keymap_steno.h`, see `planck/keymaps/steno/keymap.c` for an example). Remember to create a key to switch to the layer as well as a key for exiting the layer. +In your keymap create a new layer for Plover. You will need to include `keymap_steno.h`. See `planck/keymaps/steno/keymap.c` for an example. Remember to create a key to switch to the layer as well as a key for exiting the layer. If you would like to switch modes on the fly you can use the keycodes `QK_STENO_BOLT` and `QK_STENO_GEMINI`. If you only want to use one of the protocols you may set it up in your initialization function: -Once you have your keyboard flashed, launch Plover. Click the 'Configure...' button. In the 'Machine' tab, select the Stenotype Machine that corresponds to your desired protocol. Click the 'Configure...' button on this tab and enter the serial port or click 'Scan'. Baud rate is fine at 9600 (although you should be able to set as high as 115200 with no issues). Use the default settings for everything else (Data Bits: 8, Stop Bits: 1, Parity: N, no flow control). +```c +void eeconfig_init_user() { + steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT +} +``` -To test your keymap, you can chord keys on your keyboard and either look at the output of the 'paper tape' (Tools > Paper Tape) or that of the 'layout display' (Tools > Layout Display). If your strokes correctly show up, you are now ready to steno! +Once you have your keyboard flashed launch Plover. Click the 'Configure...' button. In the 'Machine' tab select the Stenotype Machine that corresponds to your desired protocol. Click the 'Configure...' button on this tab and enter the serial port or click 'Scan'. Baud rate is fine at 9600 (although you should be able to set as high as 115200 with no issues). Use the default settings for everything else (Data Bits: 8, Stop Bits: 1, Parity: N, no flow control). + +On the display tab click 'Open stroke display'. With Plover disabled you should be able to hit keys on your keyboard and see them show up in the stroke display window. Use this to make sure you have set up your keymap correctly. You are now ready to steno! ## Learning Stenography :id=learning-stenography @@ -121,7 +60,7 @@ To test your keymap, you can chord keys on your keyboard and either look at the The steno code has three interceptable hooks. If you define these functions, they will be called at certain points in processing; if they return true, processing continues, otherwise it's assumed you handled things. ```c -bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[MAX_STROKE_SIZE]); +bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]); ``` This function is called when a chord is about to be sent. Mode will be one of `STENO_MODE_BOLT` or `STENO_MODE_GEMINI`. This represents the actual chord that would be sent via whichever protocol. You can modify the chord provided to alter what gets sent. Remember to return true if you want the regular sending process to happen. @@ -133,23 +72,15 @@ bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; } This function is called when a keypress has come in, before it is processed. The keycode should be one of `QK_STENO_BOLT`, `QK_STENO_GEMINI`, or one of the `STN_*` key values. ```c -bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[MAX_STROKE_SIZE], int8_t n_pressed_keys); +bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed); ``` -This function is called after a key has been processed, but before any decision about whether or not to send a chord. This is where to put hooks for things like, say, live displays of steno chords or keys. +This function is called after a key has been processed, but before any decision about whether or not to send a chord. If `IS_PRESSED(record->event)` is false, and `pressed` is 0 or 1, the chord will be sent shortly, but has not yet been sent. This is where to put hooks for things like, say, live displays of steno chords or keys. -If `IS_PRESSED(record->event)` is false, and `n_pressed_keys` is 0 or 1, the chord will be sent shortly, but has not yet been sent. This relieves you of the need of keeping track of where a packet ends and another begins. - -The `chord` argument contains the packet of the current chord as specified by the protocol in use. This is *NOT* simply a list of chorded steno keys of the form `[STN_E, STN_U, STN_BR, STN_GR]`. Refer to the appropriate protocol section of this document to learn more about the format of the packets in your steno protocol/mode of choice. - -The `n_pressed_keys` argument is the number of physical keys actually being held down. -This is not always equal to the number of bits set to 1 (aka the [Hamming weight](https://en.wikipedia.org/wiki/Hamming_weight)) in `chord` because it is possible to simultaneously press down four keys, then release three of those four keys and then press yet another key while the fourth finger is still holding down its key. -At the end of this scenario given as an example, `chord` would have five bits set to 1 but -`n_pressed_keys` would be set to 2 because there are only two keys currently being pressed down. ## Keycode Reference :id=keycode-reference -You must include `keymap_steno.h` to your `keymap.c` with `#include "keymap_steno.h"` before you can use these keycodes +As defined in `keymap_steno.h`. > Note: TX Bolt does not support the full set of keys. The TX Bolt implementation in QMK will map the GeminiPR keys to the nearest TX Bolt key so that one key map will work for both. @@ -193,10 +124,10 @@ You must include `keymap_steno.h` to your `keymap.c` with `#include "keymap_sten |`STN_SR`|`STN_SR`| `-S`| |`STN_DR`|`STN_DR`| `-D`| |`STN_ZR`|`STN_ZR`| `-Z`| -|`STN_FN`|| (Function)| -|`STN_RES1`||(Reset 1)| -|`STN_RES2`||(Reset 2)| -|`STN_PWR`||(Power)| +|`STN_FN`|| (GeminiPR only)| +|`STN_RES1`||(GeminiPR only)| +|`STN_RES2`||(GeminiPR only)| +|`STN_PWR`||(GeminiPR only)| If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file. diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index 05134ec229..c055a9989a 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -14,48 +14,55 @@ Optionally, you might want to set a custom `TAPPING_TERM` time by adding somethi ```c #define TAPPING_TERM 175 -#define TAPPING_TERM_PER_KEY ``` -The `TAPPING_TERM` time is the maximum time allowed between taps of your Tap Dance key, and is measured in milliseconds. For example, if you used the above `#define` statement and set up a Tap Dance key that sends `Space` on single-tap and `Enter` on double-tap, then this key will send `ENT` only if you tap this key twice in less than 175ms. If you tap the key, wait more than 175ms, and tap the key again you'll end up sending `SPC SPC` instead. The `TAPPING_TERM_PER_KEY` definition is only needed if you control the tapping term through a [custom `get_tapping_term` function](tap_hold.md#tapping_term), which may be needed because `TAPPING_TERM` affects not just tap-dance keys. +The `TAPPING_TERM` time is the maximum time allowed between taps of your Tap Dance key, and is measured in milliseconds. For example, if you used the above `#define` statement and set up a Tap Dance key that sends `Space` on single-tap and `Enter` on double-tap, then this key will send `ENT` only if you tap this key twice in less than 175ms. If you tap the key, wait more than 175ms, and tap the key again you'll end up sending `SPC SPC` instead. -Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro. That macro takes a number which will later be used as an index into the `tap_dance_actions` array and turns it into a tap-dance keycode. +Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that takes a number which will later be used as an index into the `tap_dance_actions` array. After this, you'll want to use the `tap_dance_actions` array to specify what actions shall be taken when a tap-dance key is in action. Currently, there are five possible options: * `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when tapped once, `kc2` otherwise. When the key is held, the appropriate keycode is registered: `kc1` when pressed and held, `kc2` when tapped once, then pressed and held. * `ACTION_TAP_DANCE_LAYER_MOVE(kc, layer)`: Sends the `kc` keycode when tapped once, or moves to `layer`. (this functions like the `TO` layer keycode). + * This is the same as `ACTION_TAP_DANCE_DUAL_ROLE`, but renamed to something that is clearer about its functionality. Both names will work. * `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_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`~~: This functions identically to the `ACTION_TAP_DANCE_FN_ADVANCED` function, but uses a custom tapping term for it, instead of the predefined `TAPPING_TERM`. + * This is deprecated in favor of the Per Key Tapping Term functionality, as outlined [here](tap_hold.md#tapping-term). You'd want to check for the specific `TD()` macro that you want to use (such as `TD(TD_ESC_CAPS)`) instead of using this specific Tap Dance function. 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. !> Keep in mind that only [basic keycodes](keycodes_basic.md) are supported here. Custom keycodes are not supported. -Similar to the first option, the second and third option are good for simple layer-switching cases. +Similar to the first option, the second option is good for simple layer-switching cases. -For more complicated cases, like blink the LEDs, fiddle with the backlighting, and so on, use the fourth or fifth option. Examples of each are listed below. +For more complicated cases, use the third or fourth options (examples of each are listed below). + +Finally, the fifth option is particularly useful if your non-Tap-Dance keys start behaving weirdly after adding the code for your Tap Dance keys. The likely problem is that you changed the `TAPPING_TERM` time to make your Tap Dance keys easier for you to use, and that this has changed the way your other keys handle interrupts. ## Implementation Details :id=implementation Well, that's the bulk of it! You should now be able to work through the examples below, and to develop your own Tap Dance functionality. But if you want a deeper understanding of what's going on behind the scenes, then read on for the explanation of how it all works! -Let's go over the three functions mentioned in `ACTION_TAP_DANCE_FN_ADVANCED` in a little more detail. They all receive the same too arguments: a pointer to a structure that holds all dance related state information, and a pointer to a use case specific state variable. The three functions differ in when they are called. The first, `on_each_tap_fn()`, is called every time the tap dance key is *pressed*. Before it is called, the counter is incremented and the timer is reset. The second function, `on_dance_finished_fn()`, is called when the tap dance is interrupted or ends because `TAPPING_TERM` milliseconds have passed since the last tap. When the `finished` field of the dance state structure is set to `true`, the `on_dance_finished_fn()` is skipped. After `on_dance_finished_fn()` was called or would have been called, but no sooner than when the tap dance key is *released*, `on_dance_reset_fn()` is called. It is possible to end a tap dance immediately, skipping `on_dance_finished_fn()`, but not `on_dance_reset_fn`, by calling `reset_tap_dance(state)`. - -To accomplish this logic, the tap dance mechanics use three entry points. The main entry point is `process_tap_dance()`, called from `process_record_quantum()` *after* `process_record_kb()` and `process_record_user()`. This function is responsible for calling `on_each_tap_fn()` and `on_dance_reset_fn()`. In order to handle interruptions of a tap dance, another entry point, `preprocess_tap_dance()` is run right at the beginning of `process_record_quantum()`. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. Finally, `tap_dance_task()` periodically checks whether `TAPPING_TERM` has passed since the last key press and finishes a tap dance if that is the case. +The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and reset the timer. This means that you have `TAPPING_TERM` time to tap the key again; you do not have to input all the taps within a single `TAPPING_TERM` timeframe. This allows for longer tap counts, with minimal impact on responsiveness. +Our next stop is `tap_dance_task()`. This handles the timeout of tap-dance keys. + +For the sake of flexibility, tap-dance actions can be either a pair of keycodes, or a user function. The latter allows one to handle higher tap counts, or do extra things, like blink the LEDs, fiddle with the backlighting, and so on. This is accomplished by using an union, and some clever macros. + ## Examples :id=examples -### Simple Example: Send `ESC` on Single Tap, `CAPS_LOCK` on Double Tap :id=simple-example +### Simple Example :id=simple-example Here's a simple example for a single definition: 1. In your `rules.mk`, add `TAP_DANCE_ENABLE = yes` -2. In your `keymap.c` file, define the variables and definitions, then add to your keymap: +2. In your `config.h` (which you can copy from `qmk_firmware/keyboards/planck/config.h` to your keymap directory), add `#define TAPPING_TERM 200` +3. In your `keymap.c` file, define the variables and definitions, then add to your keymap: ```c // Tap Dance declarations @@ -85,15 +92,40 @@ All the enums used in the examples are declared like this: ```c // Enums defined for all examples: enum { - TD_ESC_CAPS, + CT_SE, + CT_CLN, CT_EGG, CT_FLSH, - CT_CLN, - X_CTL, + X_TAP_DANCE }; ``` -#### Example 1: Send "Safety Dance!" After 100 Taps :id=example-1 +#### Example 1: Send `:` on Single Tap, `;` on Double Tap :id=example-1 + +```c +void dance_cln_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code16(KC_COLN); + } else { + register_code(KC_SCLN); + } +} + +void dance_cln_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code16(KC_COLN); + } else { + unregister_code(KC_SCLN); + } +} + +// All tap dance functions would go here. Only showing this one. +qk_tap_dance_action_t tap_dance_actions[] = { + [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset), +}; +``` + +#### Example 2: Send "Safety Dance!" After 100 Taps :id=example-2 ```c void dance_egg(qk_tap_dance_state_t *state, void *user_data) { @@ -108,7 +140,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { }; ``` -#### Example 2: Turn LED Lights On Then Off, One at a Time :id=example-2 +#### Example 3: Turn LED Lights On Then Off, One at a Time :id=example-3 ```c // On each tap, light up one LED, from right to left @@ -149,74 +181,15 @@ void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) { ergodox_right_led_3_off(); } -// All tap dances now put together. Example 2 is "CT_FLSH" +// All tap dances now put together. Example 3 is "CT_FLASH" qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), + [CT_SE] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT), + [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset), [CT_EGG] = ACTION_TAP_DANCE_FN(dance_egg), [CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED(dance_flsh_each, dance_flsh_finished, dance_flsh_reset) }; ``` -#### Example 3: Send `:` on Tap, `;` on Hold :id=example-3 - -With a little effort, powerful tap-hold configurations can be implemented as tap dances. To emit taps as early as possible, we need to act on releases of the tap dance key. There is no callback for this in the tap dance framework, so we use `process_record_user()`. - -```c -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) { - qk_tap_dance_action_t *action; - - switch (keycode) { - case TD(CT_CLN): // list all tap dance keycodes with tap-hold configurations - 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); - } - } - return true; -} - -void tap_dance_tap_hold_finished(qk_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(qk_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}), } - -qk_tap_dance_action_t tap_dance_actions[] = { - [CT_CLN] = ACTION_TAP_DANCE_TAP_HOLD(KC_COLN, KC_SCLN), -}; -``` - #### Example 4: 'Quad Function Tap-Dance' :id=example-4 By [DanielGGordon](https://github.com/danielggordon) @@ -356,7 +329,7 @@ And then simply use `TD(X_CTL)` anywhere in your keymap. If you want to implement this in your userspace, then you may want to check out how [DanielGGordon](https://github.com/qmk/qmk_firmware/tree/master/users/gordon) has implemented this in their userspace. -> In this configuration "hold" takes place **after** tap dance timeout. To achieve instant hold, remove `state->interrupted` checks in conditions. As a result you may use comfortable longer tapping periods to have more time for taps and not to wait too long for holds (try starting with doubled `TAPPING_TERM`). +> In this configuration "hold" takes place **after** tap dance timeout (see `ACTION_TAP_DANCE_FN_ADVANCED_TIME`). To achieve instant hold, remove `state->interrupted` checks in conditions. As a result you may use comfortable longer tapping periods to have more time for taps and not to wait too long for holds (try starting with doubled `TAPPING_TERM`). #### Example 5: Using tap dance for advanced mod-tap and layer-tap keys :id=example-5 @@ -538,18 +511,8 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data) { // Associate our tap dance key with its functionality qk_tap_dance_action_t tap_dance_actions[] = { - [QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ql_finished, ql_reset) + [QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275) }; - -// Set a long-ish tapping term for tap-dance keys -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: - return 275; - default: - return TAPPING_TERM; - } -} ``` The above code is similar to that used in previous examples. The one point to note is that we need to be able to check which layers are active at any time so we can toggle them if needed. To do this we use the `layer_state_is(layer)` function which returns `true` if the given `layer` is active. @@ -558,6 +521,6 @@ The use of `cur_dance()` and `ql_tap_state` mirrors the above examples. The `case: TD_SINGLE_TAP` in `ql_finished` is similar to the above examples. The `TD_SINGLE_HOLD` case works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `TD_DOUBLE_TAP` case works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`. -`tap_dance_actions[]` works similar to the above examples. Note that, additionally, I set a longer tapping term for the tap dance keys. This is because I like my `TAPPING_TERM` to be short (\~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here. In order for the per-key tapping terms to take effect, `TAPPING_TERM_PER_KEY` must be defined in your `config.h`. +`tap_dance_actions[]` works similar to the above examples. Note that I used `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` instead of `ACTION_TAP_DANCE_FN_ADVANCED()`. This is because I like my `TAPPING_TERM` to be short (\~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here. Finally, to get this tap dance key working, be sure to include `TD(QUOT_LAYR)` in your `keymaps[]`. diff --git a/docs/feature_terminal.md b/docs/feature_terminal.md new file mode 100644 index 0000000000..f850622165 --- /dev/null +++ b/docs/feature_terminal.md @@ -0,0 +1,107 @@ +# Terminal + +> This feature is currently *huge*, and should probably only be put on boards with a lot of memory, or for fun. + +The terminal feature is a command-line-like interface designed to communicate through a text editor with keystrokes. It's beneficial to turn off auto-indent features in your editor. + +To enable, stick this in your `rules.mk` or `Makefile`: + + TERMINAL_ENABLE = yes + +And use the `TERM_ON` and `TERM_OFF` keycodes to turn it on or off. + +When enabled, a `> ` prompt will appear, where you'll be able to type, backspace (a bell will ding if you reach the beginning and audio is enabled), and hit enter to send the command. Arrow keys are currently disabled so it doesn't get confused. Moving your cursor around with the mouse is discouraged. + +`#define TERMINAL_HELP` enables some other output helpers that aren't really needed with this page. + +Pressing "up" and "down" will allow you to cycle through the past 5 commands entered. + +## Future Ideas + +* Keyboard/user-extensible commands +* Smaller footprint +* Arrow key support +* Command history - Done +* SD card support +* LCD support for buffer display +* Keycode -> name string LUT +* Layer status +* *Analog/digital port read/write* +* RGB mode stuff +* Macro definitions +* EEPROM read/write +* Audio control + +## Current Commands + +### `about` + +Prints out the current version of QMK with a build date: + +``` +> about +QMK Firmware + v0.5.115-7-g80ed73-dirty + Built: 2017-08-29-20:24:44 +``` + + +### `print-buffer` + +Outputs the last 5 commands entered + +``` +> print-buffer +0. print-buffer +1. help +2. about +3. keymap 0 +4. help +5. flush-buffer +``` + +### `flush-buffer` + +Clears command buffer +``` +> flush-buffer +Buffer cleared! +``` + + +### `help` + + +Prints out the available commands: + +``` +> help +commands available: + about help keycode keymap exit print-buffer flush-buffer +``` + +### `keycode ` + +Prints out the keycode value of a certain layer, row, and column: + +``` +> keycode 0 1 0 +0x29 (41) +``` + +### `keymap ` + +Prints out the entire keymap for a certain layer + +``` +> keymap 0 +0x002b, 0x0014, 0x001a, 0x0008, 0x0015, 0x0017, 0x001c, 0x0018, 0x000c, 0x0012, 0x0013, 0x002a, +0x0029, 0x0004, 0x0016, 0x0007, 0x0009, 0x000a, 0x000b, 0x000d, 0x000e, 0x000f, 0x0033, 0x0034, +0x00e1, 0x001d, 0x001b, 0x0006, 0x0019, 0x0005, 0x0011, 0x0010, 0x0036, 0x0037, 0x0038, 0x0028, +0x5cd6, 0x00e0, 0x00e2, 0x00e3, 0x5cd4, 0x002c, 0x002c, 0x5cd5, 0x0050, 0x0051, 0x0052, 0x004f, +> +``` + +### `exit` + +Exits the terminal - same as `TERM_OFF`. diff --git a/docs/flashing.md b/docs/flashing.md index 5e5dcb34e4..271e15b13c 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -358,46 +358,3 @@ CLI Flashing sequence: 2. Wait for the OS to detect the device 3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/blackpill_f411_tinyuf2 --keymap default` 4. Wait for the keyboard to become available - -### `make` Targets - -* `:uf2-split-left` and `:uf2-split-right`: Flashes the firmware but also sets the handedness setting in EEPROM by generating a side specific firmware. - -## Raspberry Pi RP2040 UF2 - -The `rules.mk` setting for this bootloader is `rp2040`, and can be specified at the keymap or user level. - -To ensure compatibility with the rp2040 bootloader, make sure this block is present in your `rules.mk`: - -```make -# Bootloader selection -BOOTLOADER = rp2040 -``` - -Compatible flashers: - -* Any application able to copy a file from one place to another, such as _macOS Finder_ or _Windows Explorer_. - -Flashing sequence: - -1. Enter the bootloader using any of the following methods: - * Tap the `QK_BOOTLOADER` keycode - * Hold the `BOOTSEL` button on the PCB while plugin in the usb cable. - * Double-tap the `RESET` button on the PCB1. -2. Wait for the OS to detect the device -3. Copy the .uf2 file to the new USB disk -4. Wait for the keyboard to become available - -or - -CLI Flashing sequence: - -1. Enter the bootloader using any of the following methods: - * Tap the `QK_BOOTLOADER` keycode - * Hold the `BOOTSEL` button on the PCB while plugin in the usb cable. - * Double-tap the `RESET` button on the PCB1. -2. Wait for the OS to detect the device -3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/rpi_pico --keymap default` -4. Wait for the keyboard to become available - -1: This works only if QMK was compiled with `RP2040_BOOTLOADER_DOUBLE_TAP_RESET` defined. diff --git a/docs/ja/_summary.md b/docs/ja/_summary.md index 8516a5eaaa..81b5756c27 100644 --- a/docs/ja/_summary.md +++ b/docs/ja/_summary.md @@ -85,6 +85,7 @@ * [スワップハンド](ja/feature_swap_hands.md) * [タップダンス](ja/feature_tap_dance.md) * [タップホールド設定](ja/tap_hold.md) + * [ターミナル](ja/feature_terminal.md) * [ユニコード](ja/feature_unicode.md) * [ユーザスペース](ja/feature_userspace.md) * [WPM 計算](ja/feature_wpm.md) diff --git a/docs/ja/config_options.md b/docs/ja/config_options.md index 42dd9d502a..fb43d015f2 100644 --- a/docs/ja/config_options.md +++ b/docs/ja/config_options.md @@ -144,7 +144,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。 ## 設定可能な挙動 :id=behaviors-that-can-be-configured * `#define TAPPING_TERM 200` - * タップがホールドになるまでの時間。 + * タップがホールドになるまでの時間。500以上に設定された場合、タップ期間中にタップされたキーもホールドになります。(訳注: PERMISSIVE_HOLDも参照) * `#define TAPPING_TERM_PER_KEY` * キーごとの `TAPPING_TERM` 設定の処理を有効にします * `#define RETRO_TAPPING` diff --git a/docs/ja/feature_tap_dance.md b/docs/ja/feature_tap_dance.md index 762816f21b..a6d108f1e9 100644 --- a/docs/ja/feature_tap_dance.md +++ b/docs/ja/feature_tap_dance.md @@ -28,6 +28,7 @@ * `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: 1回タップすると `kc1` キーコードを送信し、2回タップすると `kc2` キーコードを送信します。キーを押し続けているときは、適切なキーコードが登録されます: キーを押し続けた場合は `kc1`、一度タップしてから続けてもう一度キーを押してそのまま押し続けたときは、 `kc2` が登録されます。 * `ACTION_TAP_DANCE_LAYER_MOVE(kc, layer)`: 1回タップすると `kc` キーコードが送信され、2回タップすると `layer` レイヤーに移動します(これは `TO` レイヤーキーコードのように機能します)。 + * この機能は `ACTION_TAP_DANCE_DUAL_ROLE` と同じですが、機能が明確になるように関数名を変更しました。どちらの関数名でも実行できます。 * `ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer)`: 1回タップすると `kc` キーコードが送信され、2回タップすると `layer` の状態をトグルします(これは `TG` レイヤーキーコードのように機能します)。 * `ACTION_TAP_DANCE_FN(fn)`: ユーザーキーマップに定義した指定の関数が呼び出されます。タップダンス実行の回数分タップすると、最後の時点で呼び出されます。 * `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: タップする度にユーザーキーマップに定義した最初の関数が呼び出されます。タップダンスの実行が終わった時点で2番目の関数が呼び出され、タップダンスの実行をリセットするときに最後の関数が呼び出されます。 diff --git a/docs/ja/feature_terminal.md b/docs/ja/feature_terminal.md new file mode 100644 index 0000000000..8e125ecee0 --- /dev/null +++ b/docs/ja/feature_terminal.md @@ -0,0 +1,112 @@ +# ターミナル + + + +> この機能は現在のところ*巨大*であり、おそらく大量のメモリを搭載したキーボード、または楽しみのためにのみ配置する必要があります。 + +ターミナル機能はテキストエディタを介してキーストロークで通信するように設計されたコマンドラインのようなインタフェースです。エディタで自動インデント機能をオフにすることは有益です。 + +有効にするには、以下を `rules.mk` または `Makefile` に貼り付けます: + + TERMINAL_ENABLE = yes + +そして、オンまたはオフにするために、`TERM_ON` および `TERM_OFF` キーコードを使います。 + +有効な場合、`> ` プロンプトが現れ、ここでコマンドやバックスペース(オーディオが有効な場合は、先頭に到達するとベルが鳴ります)を入力することができ、エンターを入力するとコマンドを送信します。矢印キーは現在のところ無効なため、混乱することはありません。マウスでカーソルを移動することはお勧めしません。 + +`#define TERMINAL_HELP` は、このページでは実際には必要のない他の出力ヘルパーを有効にします。 + +"上矢印" および "下矢印" により、過去に入力した5つのコマンドを順に切り替えることができます。 + +## 今後のアイデア + +* キーボード/ユーザ拡張可能なコマンド +* より小さなフットプリント +* 矢印キーのサポート +* コマンド履歴 - 完了 +* SD カードのサポート +* バッファディスプレイのための LCD サポート +* キーコード -> 名称の対応表 +* レイヤー状態 +* *アナログ/デジタル ポートの読み込み/書き込み* +* RGB モード関連機能 +* マクロ定義 +* EEPROM の読み込み/書き込み +* オーディオ制御 + +## 現在のコマンド + +### `about` + +現在の QMK のバージョンとビルドした日の出力: + +``` +> about +QMK Firmware + v0.5.115-7-g80ed73-dirty + Built: 2017-08-29-20:24:44 +``` + + +### `print-buffer` + +最後に入力した5つのコマンドの出力 + +``` +> print-buffer +0. print-buffer +1. help +2. about +3. keymap 0 +4. help +5. flush-buffer +``` + +### `flush-buffer` + +コマンドバッファをクリア +``` +> flush-buffer +Buffer cleared! +``` + + +### `help` + + +利用可能なコマンドの出力: + +``` +> help +commands available: + about help keycode keymap exit print-buffer flush-buffer +``` + +### `keycode ` + +特定のレイヤー、行および列のキーコード値の出力: + +``` +> keycode 0 1 0 +0x29 (41) +``` + +### `keymap ` + +特定のレイヤーの全てのキーマップの出力 + +``` +> keymap 0 +0x002b, 0x0014, 0x001a, 0x0008, 0x0015, 0x0017, 0x001c, 0x0018, 0x000c, 0x0012, 0x0013, 0x002a, +0x0029, 0x0004, 0x0016, 0x0007, 0x0009, 0x000a, 0x000b, 0x000d, 0x000e, 0x000f, 0x0033, 0x0034, +0x00e1, 0x001d, 0x001b, 0x0006, 0x0019, 0x0005, 0x0011, 0x0010, 0x0036, 0x0037, 0x0038, 0x0028, +0x5cd6, 0x00e0, 0x00e2, 0x00e3, 0x5cd4, 0x002c, 0x002c, 0x5cd5, 0x0050, 0x0051, 0x0052, 0x004f, +> +``` + +### `exit` + +ターミナルの終了 - `TERM_OFF` と同じ。 diff --git a/docs/ja/understanding_qmk.md b/docs/ja/understanding_qmk.md index 550ee3a7c0..1654f8e002 100644 --- a/docs/ja/understanding_qmk.md +++ b/docs/ja/understanding_qmk.md @@ -161,6 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_combo.c#L115) * [`bool process_printer(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_printer.c#L77) * [`bool process_auto_shift(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_auto_shift.c#L94) + * [`bool process_terminal(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_terminal.c#L264) * [Quantum 固有のキーコードを識別して処理する](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L291) この一連のイベントの中の任意のステップで (`process_record_kb()` のような)関数は `false` を返して、以降の処理を停止することができます。 diff --git a/docs/newbs_flashing.md b/docs/newbs_flashing.md index 6e90af9d10..549ffcb2be 100644 --- a/docs/newbs_flashing.md +++ b/docs/newbs_flashing.md @@ -108,6 +108,8 @@ However, this does rely on the bootloader being set by the keyboard. If this inf In this case, you'll have to fall back on specifying the bootloader. See the [Flashing Firmware](flashing.md) Guide for more details. +!> If your bootloader is not detected by `qmk flash`, try running `qmk doctor` for suggestions on how to fix common problems. + ## Test It Out! Congrats! Your custom firmware has been programmed to your keyboard and you're ready to test it out! diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index d5f92cf89d..99aee12139 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -27,30 +27,24 @@ QMK maintains a Bundle of MSYS2, the CLI and all necessary dependencies. It also You will need to install [QMK MSYS](https://msys.qmk.fm/). The latest release is available [here](https://github.com/qmk/qmk_distro_msys/releases/latest). -Alternatively, if you'd like to manually install MSYS2, the following section will walk you through the process. -
- Manual Install + Advanced Users -?> Ignore the following steps if you use `QMK MSYS`. +!> This process is not recommended for new users. + +If you'd like to manually install MSYS2, the following sections will walk you through the process. #### Prerequisites -You will need to install MSYS2, Git and Python. Follow the installation instructions on https://www.msys2.org. - -Once MSYS2 is installed, close any open MSYS terminals and open a new MinGW 64-bit terminal. +You will need to install [MSYS2](https://www.msys2.org). Once installed, close any open MSYS terminals (purple icon) and open a new MinGW 64-bit terminal (blue icon) from the Start Menu. !> **NOTE:** The MinGW 64-bit terminal is *not* the same as the MSYS terminal that opens when installation is completed. Your prompt should say "MINGW64" in purple text, rather than "MSYS". See [this page](https://www.msys2.org/wiki/MSYS2-introduction/#subsystems) for more information on the differences. -Then run the following command: - - pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python3-pip mingw-w64-x86_64-python-pillow - #### Installation Install the QMK CLI by running: - python3 -m pip install qmk + pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-python-qmk
diff --git a/docs/platformdev_blackpill_f411.md b/docs/platformdev_blackpill_f411.md new file mode 100644 index 0000000000..9026768a01 --- /dev/null +++ b/docs/platformdev_blackpill_f411.md @@ -0,0 +1,48 @@ +# WeAct Blackpill (STM32F411) + +The WeAct Blackpill is a popular choice for handwired boards, as it offers a powerful micro controller, USB Type C, a good number of pins to use, and a large amount of firmware space. All for a ~$6 USD price tag. + +* [WeAct GitHub for F411 Blackpill](https://github.com/WeActTC/MiniSTM32F4x1) + * Unfortunately, due to supply issues official WeAct F411 based blackpills may not be available. + +![Blackpill F411](https://i.imgur.com/nCgeolTh.png) + + +## Pin Usage Limitations + +While the Blackpill is a great choice to use in your keyboard, there are a number of caveats in regards to using them. The first is that a number of exposed pins cannot be used, or have special considerations/hardware tweaks that are required for proper opertion. + +### Unusable pins +* Pins `A11` and `A12` are not useable because they're used for USB connection, and cannot be shared. + * In theory, these pins can be used. However, doing so may disable USB connectivity, outright, if used for anything other than a USB port +* Pin `B2` is used by `BOOT1` and cannot be used, without causing problems. +* `VBAT` is not a usable pin. +* `NRST` is not a usable pin. + +### Pins to be avoided +* Pin `A9` is meant for VBUS Sense and should not be used, if it can be avoided. It has an internal pull-down resesitor, which may cause issues with usage. However, a pull-up resistor can work (~5.1k), but should be avoided. +* Pin `A10` can be used, but should be avoided. Any connection on this pin can prevent the bootloader from entering the proper mode for DFU flashing. A pull-up resistor (~22k) on this pin fixes the bootloader issue. + +### Shared Usage +* Pin `A0` is shared with the User Key (button) on the controller. It can be used. +* Pin `C13` is shared with the onboard LED indicator, and is connected to +3.3V. This can be used, but may cause the LED to blink intermittently, depending on activity on the pin. + * +* Pins `A4`, `A5`, `A6` and `A7` are used by the SOI8 footprint on the back of the controller, that can be used for either an SPI Flash chip, or an SPI EEPROM chip. `A4` is the Chip Select pin, and cannot be shared. However, `A5`, `A6`, and `A7` are the `SCK`, `MISO`, and `MOSI` pins, respectively, and can be shared with other SPI devices. + +### Limited Usage +* Pins `C13`, `C14`, and `C15` have limits on output current. They should be used only as input. Eg, they should not be used for row pins in COL2ROW matrix configurations, but can be used as column pins. + * This is because the column pins (in COL2ROW) are pulled up (the pullup strength is independant of the current sourcing limitation) and the ROW is driven low and sinks current, then we check the state of the COLs to look for keypresses. + +* Pins `A0` and `B5` are not 5V tolerant, and should only be used with 3.3V compatible functionality. + +## Additional Information + +### Bootloader issuse + +Due to the use of a 25MHz crystal, the controller may have issues entering the bootloader. Heating up the controller can help with this issue. + +Also, if pin `A10` is connected to anything at all, it needs to have a pullup resistor (see [Pins to be avoided](#pins-to-be-avoided), above) + +### Tiny UF2 Support + +There is [tinyuf2 support for the WeAct Blackpill](https://github.com/adafruit/tinyuf2/tree/master/ports/stm32f4/boards/stm32f411ce_blackpill). Instructions on how to compile the bootloadr can be found [here](https://github.com/adafruit/tinyuf2#build-and-flash). Setting `BOOTLOADER = tinyuf2` will enable support for this user bootloader, and the correct configuration to prevent it from being overwritten when flashing firmware. diff --git a/docs/platformdev_chibios_earlyinit.md b/docs/platformdev_chibios_earlyinit.md index e1256f2714..aaa91ba438 100644 --- a/docs/platformdev_chibios_earlyinit.md +++ b/docs/platformdev_chibios_earlyinit.md @@ -20,7 +20,7 @@ As such, if you wish to override this API consider limiting use to writing to lo | `#define STM32_BOOTLOADER_DUAL_BANK` | Relevant for dual-bank STM32 MCUs, signifies that a GPIO is to be toggled in order to enter bootloader mode. | `FALSE` | | `#define STM32_BOOTLOADER_DUAL_BANK_GPIO` | Relevant for dual-bank STM32 MCUs, the pin to toggle when attempting to enter bootloader mode, e.g. `B8` | `` | | `#define STM32_BOOTLOADER_DUAL_BANK_POLARITY` | Relevant for dual-bank STM32 MCUs, the value to set the pin to in order to trigger charging of the RC circuit. e.g. `0` or `1`. | `0` | -| `#define STM32_BOOTLOADER_DUAL_BANK_DELAY` | Relevant for dual-bank STM32 MCUs, an arbitrary measurement of time to delay before resetting the MCU. Increasing number increases the delay. | `100` | +| `#define STM32_BOOTLOADER_DUAL_BANK_DELAY` | Relevant for dual-bank STM32 MCUs, an arbitrary measurement of time to delay before resetting the MCU. Increasing number increases the delay. | `100000` | Kinetis MCUs have no configurable options. diff --git a/docs/platformdev_rp2040.md b/docs/platformdev_rp2040.md deleted file mode 100644 index 9426efa29a..0000000000 --- a/docs/platformdev_rp2040.md +++ /dev/null @@ -1,125 +0,0 @@ -# Raspberry Pi RP2040 - -The following table shows the current driver status for peripherals on RP2040 MCUs: - -| System | Support | -| ------------------------------------ | ---------------------------------------------- | -| [ADC driver](adc_driver.md) | Support planned (no ETA) | -| [Audio](audio_driver.md) | Support planned (no ETA) | -| [I2C driver](i2c_driver.md) | :heavy_check_mark: | -| [SPI driver](spi_driver.md) | :heavy_check_mark: | -| [WS2812 driver](ws2812_driver.md) | :heavy_check_mark: using `PIO` driver | -| [External EEPROMs](eeprom_driver.md) | :heavy_check_mark: using `I2C` or `SPI` driver | -| [EEPROM emulation](eeprom_driver.md) | Support planned (no ETA) | -| [serial driver](serial_driver.md) | :heavy_check_mark: using `SIO` or `PIO` driver | -| [UART driver](uart_driver.md) | Support planned (no ETA) | - -## GPIO - -Raspberry Pi Pico pinout -Sparkfun RP2040 Pro Micro pinout - -!> The GPIO pins of the RP2040 are not 5V tolerant! - -### Pin nomenclature - -To address individual pins on the RP2040, QMK uses the `GPx` abbreviation -- where the `x` stands for the GPIO number of the pin. This number can likely be found on the official pinout diagram of your board. Note that these GPIO numbers match the RP2040 MCU datasheet, and don't necessarily match the number you see printed on the board. For instance the Raspberry Pi Pico uses numbers from 1 to 40 for their pins, but these are not identical to the RP2040's GPIO numbers. So if you want to use the pin 11 of the Pico for your keyboard, you would refer to it as `GP8` in the config files. - -### Alternate functions - -The RP2040 features flexible GPIO function multiplexing, this means that every pin can be connected to nearly all the internal peripherals like I2C, SPI, UART or PWM. This allows for flexible PCB designs that are much less restricted in the selection of GPIO pins. To find out which pin can use which peripheral refer to the official [Raspberry PI RP2040 datasheet](https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf#page=14) section 1.4.3 GPIO functions. - -## Selecting hardware peripherals and drivers - -QMK RP2040 support builds upon ChibiOS and thus follows their convention for activating drivers and associated hardware peripherals. These tables only give a quick overview which values have to be used, please refer to the ChibiOS specific sections on the driver pages. - -### I2C Driver - -| RP2040 Peripheral | `mcuconf.h` values | `I2C_DRIVER` | -| ----------------- | ------------------ | ------------ | -| `I2C0` | `RP_I2C_USE_I2C0` | `I2CD1` | -| `I2C1` | `RP_I2C_USE_I2C1` | `I2CD2` | - -To configure the I2C driver please read the [ChibiOS/ARM](i2c_driver.md#arm-configuration) section. - -### SPI Driver - -| RP2040 Peripheral | `mcuconf.h` values | `SPI_DRIVER` | -| ----------------- | ------------------ | ------------ | -| `SPI0` | `RP_SPI_USE_SPI0` | `SPID0` | -| `SPI1` | `RP_SPI_USE_SPI1` | `SPID1` | - -To configure the SPI driver please read the [ChibiOS/ARM](spi_driver.md#chibiosarm-configuration) section. - -## Double-tap reset boot-loader entry :id=double-tap - -The double-tap reset mechanism is an alternate way in QMK to enter the embedded mass storage UF2 boot-loader of the RP2040. It enables bootloader entry by a fast double-tap of the reset pin on start up, which is similar to the behavior of AVR Pro Micros. This feature activated by default for the Pro Micro RP2040 board, but has to be configured for other boards. To activate it, add the following options to your keyboards `config.h` file: - -```c -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK 0U // Specify a optional status led which blinks when entering the bootloader -``` - -## Pre-defined RP2040 boards - -QMK defines two boards that you can choose from to base your RP2040 powered keyboard upon. These boards provide pre-configured default pins and drivers. - -### Generic Pro Micro RP2040 - -This is the default board that is chosen, unless any other RP2040 board is selected in your keyboards `rules.mk` file. It assumes a pin layout for the I2C, SPI and Serial drivers which is identical to the Sparkfun Pro Micro RP2040, however all values can be overwritten by defining them in your keyboards `config.h` file. The [double-tap](#double-tap) reset to enter boot-loader behavior is activated by default. - - -| Driver configuration define | Value | -| -------------------------------------------------------------------------- | ------------------------------------ | -| **I2C driver** | | -| `I2C_DRIVER` | `I2CD2` | -| `I2C1_SDA_PIN` | `GP2` | -| `I2C1_SCL_PIN` | `GP3` | -| **SPI driver** | | -| `SPI_DRIVER` | `SPID0` | -| `SPI_SCK_PIN` | `GP18` | -| `SPI_MISO_PIN` | `GP20` | -| `SPI_MOSI_PIN` | `GP19` | -| **Serial driver** | | -| `SERIAL_USART_DRIVER` ([SIO Driver](serial_driver.md#the-sio-driver) only) | `SIOD0` | -| `SOFT_SERIAL_PIN` | undefined, use `SERIAL_USART_TX_PIN` | -| `SERIAL_USART_TX_PIN` | `GP0` | -| `SERIAL_USART_RX_PIN` | `GP1` | - -?> The pin-outs of Adafruit's KB2040 and Boardsource's Blok both deviate from the Sparkfun Pro Micro RP2040. Lookup the pin-out of these boards and adjust your keyboards pin definition accordingly if you want to use these boards. - -### Generic RP2040 board - -This board can be chosen as a base for RP2040 keyboards which configure all necessary pins and drivers themselves and do not wish to leverage the configuration matching the Generic Pro Micro RP2040 board. Thus it doesn't provide any pre-configured pins or drivers. To select this board add the following line to your keyboards `rules.mk` file. - -```make -BOARD = GENERIC_RP_RP2040 -``` - -## Split keyboard support - -Split keyboards are fully supported using the [serial driver](serial_driver.md) in both full-duplex and half-duplex configurations. Two driver subsystems are supported by the RP2040, the hardware UART based `SIO` and the Programmable IO based `PIO` driver. - -| Feature | [SIO Driver](serial_driver.md#the-sio-driver) | [PIO Driver](serial_driver.md#the-pio-driver) | -| ----------------------------- | --------------------------------------------- | --------------------------------------------- | -| Half-Duplex operation | | :heavy_check_mark: | -| Full-Duplex operation | :heavy_check_mark: | :heavy_check_mark: | -| `TX` and `RX` pin swapping | | :heavy_check_mark: | -| Any GPIO as `TX` and `RX` pin | Only UART capable pins | :heavy_check_mark: | -| Simple configuration | | :heavy_check_mark: | - -The `PIO` driver is much more flexible then the `SIO` driver, the only "downside" is the usage of `PIO` resources which in turn are not available for advanced user programs. Under normal circumstances, this resource allocation will be a non-issue. - -## RP2040 second stage bootloader selection - -As the RP2040 does not have any internal flash memory it depends on an external SPI flash memory chip to store and execute instructions from. To successfully interact with a wide variety of these chips a second stage bootloader that is compatible with the chosen external flash memory has to be supplied with each firmware image. By default an `W25Q080` compatible bootloader is assumed, but others can be chosen by adding one of the defines listed in the table below to your keyboards `config.h` file. - -| Compatible with flash chip | Selection | -| :------------------------- | ---------------------------------- | -| W25Q080 | Selected by default | -| AT25SF128A | `#define RP2040_FLASH_AT25SF128A` | -| GD25Q64CS | `#define RP2040_FLASH_GD25Q64CS` | -| W25X10CL | `#define RP2040_FLASH_W25X10CL` | -| IS25LP080 | `#define RP2040_FLASH_IS25LP080` | -| Generic 03H flash | `#define RP2040_FLASH_GENERIC_03H` | diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index f55517dfa2..9ab8c80e9b 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -79,6 +79,9 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](custom_quantum_functions.md?id=keyboard_pre_init_-function-documentation) - prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](custom_matrix.md?id=lite) - prefer LED indicator [Configuration Options](feature_led_indicators.md?id=configuration-options) to custom `led_update_*()` implementations where possible + - Encoder support should not be hacked into the keymap here -- no `tap_code(dynamic_keymap_get_keycode())` or `action_exec()` hacks. The [Encoder Map](feature_encoders.md?id=encoder-map) feature already supports the dynamic keymap feature (what power's VIA's "live keymap updates" capability). + - If support is absolutely necessary, it should be implemented exclusively at the keymap level, with none of the implementation bleeding into the keyboard level (no empty rows/columns, no encoder specific layouts, etc.), as those configurations can be redefined at the keymap level. Keymaps can then choose to use the `action_exec` hack. + - [Request for official proper VIA support](https://github.com/the-via/app/issues/26) - `.h` - `#include "quantum.h"` appears at the top - `LAYOUT` macros should use standard definitions if applicable diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index d2e9346ee3..aa59711592 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -108,7 +108,58 @@ Example: } ``` -### RGB Lighting +## 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 + +* `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) +* `pin` + * The pin that controls the backlight LED(s) + +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 + +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. @@ -152,7 +203,7 @@ Example: } ``` -#### RGBLight Animations +### RGBLight Animations The following animations can be enabled: @@ -188,38 +239,24 @@ Example: 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 +### Secure -This section controls the basic [rotary encoder](feature_encoders.md) support. +The following options can be configured: -The following items can be set. Not every value is required. +|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 | -* `pin_a` - * __Required__. A pad definition -* `pin_b` - * __Required__. B pad definition -* `resolution` - * How many pulses the encoder registers between each detent - -Examples: +Example: ```json { - "encoder": { - "rotary": [ - { "pin_a": "B5", "pin_b": "A2" } - ] - } -} -``` - -```json -{ - "encoder": { - "rotary": [ - { "pin_a": "B5", "pin_b": "A2", "resolution": 4 } - { "pin_a": "B6", "pin_b": "A3", "resolution": 2 } - ] + "secure": { + "unlock_sequence": [ [0,0], [0,1] ], + "unlock_timeout": 5000, + "idle_timeout": 60000 } } ``` diff --git a/docs/serial_driver.md b/docs/serial_driver.md index fff63109a1..3e89deffad 100644 --- a/docs/serial_driver.md +++ b/docs/serial_driver.md @@ -1,301 +1,129 @@ # 'serial' Driver - -The serial driver powers the [Split Keyboard](feature_split_keyboard.md) feature. Several implementations are available, depending on the platform of your split keyboard. Note that none of the drivers support split keyboards with more then two halves. - -| Driver | AVR | ARM | Connection between halves | -| --------------------------------------- | ------------------ | ------------------ | --------------------------------------------------------------------------------------------- | -| [Bitbang](#bitbang) | :heavy_check_mark: | :heavy_check_mark: | Single wire communication. One wire is used for reception and transmission. | -| [USART Half-duplex](#usart-half-duplex) | | :heavy_check_mark: | Efficient single wire communication. One wire is used for reception and transmission. | -| [USART Full-duplex](#usart-full-duplex) | | :heavy_check_mark: | Efficient two wire communication. Two distinct wires are used for reception and transmission. | +This driver powers the [Split Keyboard](feature_split_keyboard.md) feature. ?> Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards. -
+Drivers in this category have the following characteristics: +* bit bang and USART Half-duplex provide data and signaling over a single conductor +* USART Full-duplex provide data and signaling over two conductors +* They are all limited to single master and single slave communication scheme -## Bitbang +## Supported Driver Types -This is the Default driver, the absence of configuration assumes this driver. It works by [bit banging](https://en.wikipedia.org/wiki/Bit_banging) a GPIO pin using the CPU. It is therefore not as efficient as a dedicated hardware peripheral, which the Half-duplex and Full-duplex drivers use. +| | AVR | ARM | +| ----------------- | ------------------ | ------------------ | +| bit bang | :heavy_check_mark: | :heavy_check_mark: | +| USART Half-duplex | | :heavy_check_mark: | +| USART Full-duplex | | :heavy_check_mark: | -!> On ARM platforms the bitbang driver causes connection issues when using it together with the bitbang WS2812 driver. Choosing alternate drivers for both serial and WS2812 (instead of bitbang) is strongly recommended. +## Driver configuration -### Pin configuration - -``` - LEFT RIGHT -+-------+ SERIAL +-------+ -| SSP |-----------------| SSP | -| | VDD | | -| |-----------------| | -| | GND | | -| |-----------------| | -+-------+ +-------+ -``` - -One GPIO pin is needed for the bitbang driver, as only one wire is used for receiving and transmitting data. This pin is referred to as the `SOFT_SERIAL_PIN` (SSP) in the configuration. A simple TRS or USB cable provides enough conductors for this driver to work. - -### Setup - -To use the bitbang driver follow these steps to activate it. - -1. Change the `SERIAL_DRIVER` to `bitbang` in your keyboards `rules.mk` file: +### Bitbang +Default driver, the absence of configuration assumes this driver. To configure it, add this to your rules.mk: ```make SERIAL_DRIVER = bitbang ``` -2. Configure the GPIO pin of your keyboard via the `config.h` file: - +Configure the driver via your config.h: ```c #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 +#define SELECT_SOFT_SERIAL_SPEED 1 // or 0, 2, 3, 4, 5 + // 0: about 189kbps (Experimental only) + // 1: about 137kbps (default) + // 2: about 75kbps + // 3: about 39kbps + // 4: about 26kbps + // 5: about 20kbps ``` -3. On ARM platforms you must turn on ChibiOS `PAL_USE_CALLBACKS` feature: +#### ARM -* In `halconf.h` add the line `#define PAL_USE_CALLBACKS TRUE`. +!> The bitbang driver causes connection issues with bitbang WS2812 driver -
+Along with the generic options above, you must also turn on the `PAL_USE_CALLBACKS` feature in your halconf.h. -## USART Half-duplex - -Targeting ARM boards based on ChibiOS, where communication is offloaded to a USART hardware device that supports Half-duplex operation. The advantages over bitbanging are fast, accurate timings and reduced CPU usage. Therefore it is advised to choose this driver or the Full-duplex driver whenever possible. - -### Pin configuration - -``` - LEFT RIGHT -+-------+ | | +-------+ -| | R R | | -| | | SERIAL | | | -| TX |-----------------| TX | -| | VDD | | -| |-----------------| | -| | GND | | -| |-----------------| | -+-------+ +-------+ -``` - -Only one GPIO pin is needed for the Half-duplex driver, as only one wire is used for receiving and transmitting data. This pin is referred to as the `SERIAL_USART_TX_PIN` in the configuration. Take care that the pin you chose can act as the TX pin of the USART peripheral. A simple TRS or USB cable provides enough conductors for this driver to work. As the split connection is configured to work in open-drain mode, an **external pull-up resistor is needed to keep the line high**. Resistor values of 1.5kΩ to 8.2kΩ are known to work. - -### Setup - -To use the Half-duplex driver follow these steps to activate it. If you target the Raspberry Pi RP2040 PIO implementation skip step 1. - -1. Change the `SERIAL_DRIVER` to `usart` in your keyboards `rules.mk` file: +### USART Half-duplex +Targeting STM32 boards where communication is offloaded to a USART hardware device. The advantage over bitbang is that this provides fast and accurate timings. `SERIAL_PIN_TX` for this driver is the configured USART TX pin. As this Pin is configured in open-drain mode an **external pull-up resistor is needed to keep the line high** (resistor values of 1.5k to 8.2k are known to work). To configure it, add this to your rules.mk: ```make SERIAL_DRIVER = usart ``` -2. (RP2040 PIO only!) Change the `SERIAL_DRIVER` to `vendor` in your keyboards `rules.mk` file: - -```make -SERIAL_DRIVER = vendor -``` - -3. Configure the hardware of your keyboard via the `config.h` file: - +Configure the hardware via your config.h: ```c -#define SERIAL_USART_TX_PIN B6 // The GPIO pin that is used split communication. -``` - -For STM32 MCUs several GPIO configuration options can be changed as well. See the section ["Alternate Functions for selected STM32 MCUs"](alternate-functions-for-selected-stm32-mcus). - -```c -#define USART1_REMAP // Remap USART TX and RX pins on STM32F103 MCUs, see table below. +#define SOFT_SERIAL_PIN B6 // USART TX pin +//#define USART1_REMAP // Remap USART TX and RX pins on STM32F103 MCUs, see table below. +#define SELECT_SOFT_SERIAL_SPEED 1 // or 0, 2, 3, 4, 5 + // 0: about 460800 baud + // 1: about 230400 baud (default) + // 2: about 115200 baud + // 3: about 57600 baud + // 4: about 38400 baud + // 5: about 19200 baud +#define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1 #define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 +#define SERIAL_USART_TIMEOUT 20 // USART driver timeout. default 20 ``` -1. Decide either for `SERIAL`, `SIO` or `PIO` subsystem, see the section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem). +You must also enable the ChibiOS `SERIAL` feature: +* In your board's halconf.h: `#define HAL_USE_SERIAL TRUE` +* In your board's mcuconf.h: `#define STM32_SERIAL_USE_USARTn TRUE` (where 'n' matches the peripheral number of your selected USART on the MCU) -
+Do note that the configuration required is for the `SERIAL` peripheral, not the `UART` peripheral. -## USART Full-duplex +### USART Full-duplex +Targeting STM32 boards where communication is offloaded to a USART hardware device. The advantage over bitbang is that this provides fast and accurate timings. USART Full-Duplex requires two conductors **without** pull-up resistors instead of one conductor with a pull-up resistor unlike the Half-duplex driver. Due to its internal design it is more efficent, which can result in even faster transmission speeds. -Targeting ARM boards based on ChibiOS where communication is offloaded to an USART hardware device. The advantages over bitbanging are fast, accurate timings and reduced CPU usage. Therefore it is advised to choose this driver or the Full-duplex driver whenever possible. Due to its internal design it is slightly more efficient then the Half-duplex driver, but it should be primarily chosen if Half-duplex operation is not supported by the USART peripheral. +#### Pin configuration -### Pin configuration +`SERIAL_USART_TX_PIN` is the USART `TX` pin, `SERIAL_USART_RX_PIN` is the USART `RX` pin. No external pull-up resistors are needed as the `TX` pin operates in push-pull mode. To use this driver the usart peripherals `TX` and `RX` pins must be configured with the correct Alternate-functions. If you are using a Proton-C everything is already setup, same is true for STM32F103 MCUs. For MCUs which are using a modern flexible GPIO configuration you have to specify these by setting `SERIAL_USART_TX_PAL_MODE` and `SERIAL_USART_RX_PAL_MODE`. Refeer to the corresponding datasheets of your MCU or find those settings in the table below. -``` - LEFT RIGHT -+-------+ +-------+ -| | SERIAL | | -| TX |-----------------| RX | -| | SERIAL | | -| RX |-----------------| TX | -| | VDD | | -| |-----------------| | -| | GND | | -| |-----------------| | -+-------+ +-------+ -``` +#### Connecting the halves and Pin Swap +Please note that `TX` of the master half has to be connected with the `RX` pin of the slave half and `RX` of the master half has to be connected with the `TX` pin of the slave half! Usually this pin swap has to be done outside of the MCU e.g. with cables or on the pcb. Some MCUs like the STM32F303 used on the Proton-C allow this pin swap directly inside the MCU, this feature can be enabled using `#define SERIAL_USART_PIN_SWAP` in your config.h. -Two GPIO pins are needed for the Full-duplex driver, as two distinct wires are used for receiving and transmitting data. The pin transmitting data is the `TX` pin and refereed to as the `SERIAL_USART_TX_PIN`, the pin receiving data is the `RX` pin and refereed to as the `SERIAL_USART_RX_PIN` in this configuration. Please note that `TX` pin of the master half has to be connected with the `RX` pin of the slave half and the `RX` pin of the master half has to be connected with the `TX` pin of the slave half! Usually this pin swap has to be done outside of the MCU e.g. with cables or on the PCB. Some MCUs like the STM32F303 used on the Proton-C allow this pin swap directly inside the MCU. A simple TRRS or USB cable provides enough conductors for this driver to work. - -To use this driver the usart peripherals `TX` and `RX` pins must be configured with the correct Alternate-functions. If you are using a Proton-C everything is already setup, same is true for STM32F103 MCUs. For MCUs which are using a modern flexible GPIO configuration you have to specify these by setting `SERIAL_USART_TX_PAL_MODE` and `SERIAL_USART_RX_PAL_MODE`. Refer to the corresponding datasheets of your MCU or find those settings in the section ["Alternate Functions for selected STM32 MCUs"](#alternate-functions-for-selected-stm32-mcus). - -### Setup - -To use the Full-duplex driver follow these steps to activate it. If you target the Raspberry Pi RP2040 PIO implementation skip step 1. - -1. Change the `SERIAL_DRIVER` to `usart` in your keyboards `rules.mk` file: +#### Setup +To use the driver, add this to your rules.mk: ```make SERIAL_DRIVER = usart ``` -2. (RP2040 PIO only!) Change the `SERIAL_DRIVER` to `vendor` in your keyboards `rules.mk` file: - -```make -SERIAL_DRIVER = vendor -``` - -3. Configure the hardware of your keyboard via the `config.h` file: +Next configure the hardware via your config.h: ```c #define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. #define SERIAL_USART_TX_PIN B6 // USART TX pin #define SERIAL_USART_RX_PIN B7 // USART RX pin -``` - -For STM32 MCUs several GPIO configuration options, including the ability for `TX` to `RX` pin swapping, can be changed as well. See the section ["Alternate Functions for selected STM32 MCUs"](alternate-functions-for-selected-stm32-mcus). - -```c -#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. (Only available on some MCUs) -#define USART1_REMAP // Remap USART TX and RX pins on STM32F103 MCUs, see table below. +//#define USART1_REMAP // Remap USART TX and RX pins on STM32F103 MCUs, see table below. +//#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. + // Check if this feature is necessary with your keyboard design and available on the mcu. +#define SELECT_SOFT_SERIAL_SPEED 1 // or 0, 2, 3, 4, 5 + // 0: 460800 baud + // 1: 230400 baud (default) + // 2: 115200 baud + // 3: 57600 baud + // 4: 38400 baud + // 5: 19200 baud +#define SERIAL_USART_DRIVER SD1 // USART driver of TX and RX pin. default: SD1 #define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 -``` - -1. Decide either for `SERIAL`, `SIO` or `PIO` subsystem, see the section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem). - -
- -## Choosing a driver subsystem - -### The `SERIAL` driver - -The `SERIAL` Subsystem is supported for the majority of ChibiOS MCUs and should be used whenever supported. Follow these steps in order to activate it: - -1. In your keyboards `halconf.h` add: - -```c -#define HAL_USE_SERIAL TRUE -``` - -2. In your keyboards `mcuconf.h`: activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. - -Just below `#include_next ` add: - -```c -#include_next - -#undef STM32_SERIAL_USE_USARTn -#define STM32_SERIAL_USE_USARTn TRUE -``` - -Where 'n' matches the peripheral number of your selected USART on the MCU. - -3. In you keyboards `config.h`: override the default USART `SERIAL` driver if you use a USART peripheral that does not belong to the default selected `SD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SD3`. - -```c - #define SERIAL_USART_DRIVER SD3 - ``` - -### The `SIO` driver - -The `SIO` Subsystem was added to ChibiOS with the 21.11 release and is only supported on selected MCUs. It should only be chosen when the `SERIAL` subsystem is not supported by your MCU. - -Follow these steps in order to activate it: - -1. In your keyboards `halconf.h` add: - -```c -#define HAL_USE_SIO TRUE -``` - -2. In your keyboards `mcuconf.h:` activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. - -Just below `#include_next ` add: - -```c -#include_next - -#undef STM32_SIO_USE_USARTn -#define STM32_SIO_USE_USARTn TRUE -``` - -Where 'n' matches the peripheral number of your selected USART on the MCU. - -3. In you keyboards `config.h`: override the default USART `SIO` driver if you use a USART peripheral that does not belong to the default selected `SIOD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SIOD3`. - -```c - #define SERIAL_USART_DRIVER SIOD3 - ``` - -### The `PIO` driver - -The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using the integrated PIO peripheral and is therefore only available on this MCU. Because of the flexible nature of the PIO peripherals, **any** GPIO pin can be used as a `TX` or `RX` pin. Half-duplex and Full-duplex operation is fully supported. The Half-duplex operation mode uses the built-in pull-ups and GPIO manipulation on the RP2040 to drive the line high by default. An external pull-up is therefore not necessary. - -Configure the hardware via your config.h: -```c -#define SERIAL_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the Serial implementation uses the PIO0 peripheral -``` - -The Serial PIO program uses 2 state machines, 13 instructions and the complete interrupt handler of the PIO peripheral it is running on. - -
- -## Advanced Configuration - -There are several advanced configuration options that can be defined in your keyboards `config.h` file: - -### Baudrate - -If you're having issues or need a higher baudrate with serial communication, you can change the baudrate which in turn controls the communication speed for serial. You want to lower the baudrate if you experience failed transactions. - -```c -#define SELECT_SOFT_SERIAL_SPEED {#} -``` - -| Speed | Bitbang | Half-duplex and Full-duplex | -| ----- | -------------------------- | --------------------------- | -| `0` | 189000 baud (experimental) | 460800 baud | -| `1` | 137000 baud (default) | 230400 baud (default) | -| `2` | 75000 baud | 115200 baud | -| `3` | 39000 baud | 57600 baud | -| `4` | 26000 baud | 38400 baud | -| `5` | 20000 baud | 19200 baud | - -Alternatively you can specify the baudrate directly by defining `SERIAL_USART_SPEED`. - -### Timeout - -This is the default time window in milliseconds in which a successful communication has to complete. Usually you don't want to change this value. But you can do so anyways by defining an alternate one in your keyboards `config.h` file: - -```c +#define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 #define SERIAL_USART_TIMEOUT 20 // USART driver timeout. default 20 ``` -
+You must also enable the ChibiOS `SERIAL` feature: +* In your board's halconf.h: `#define HAL_USE_SERIAL TRUE` +* In your board's mcuconf.h: `#define STM32_SERIAL_USE_USARTn TRUE` (where 'n' matches the peripheral number of your selected USART on the MCU) -## Troubleshooting +Do note that the configuration required is for the `SERIAL` peripheral, not the `UART` peripheral. -If you're having issues withe serial communication, you can enable debug messages that will give you insights which part of the communication failed. The enable these messages add to your keyboards `config.h` file: +#### Pins for USART Peripherals with Alternate Functions for selected STM32 MCUs -```c -#define SERIAL_DEBUG -``` - -?> The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug.md). - -## Alternate Functions for selected STM32 MCUs - -Pins for USART Peripherals with - -### STM32F303 / Proton-C [Datasheet](https://www.st.com/resource/en/datasheet/stm32f303cc.pdf) +##### STM32F303 / Proton-C [Datasheet](https://www.st.com/resource/en/datasheet/stm32f303cc.pdf) Pin Swap available: :heavy_check_mark: -| Pin | Function | Mode | +| Pin | Function | Mode | | ---------- | -------- | ---- | | **USART1** | | | | PA9 | TX | AF7 | @@ -323,11 +151,11 @@ Pin Swap available: :heavy_check_mark: | PD8 | TX | AF7 | | PD9 | RX | AF7 | -### STM32F072 [Datasheet](https://www.st.com/resource/en/datasheet/stm32f072c8.pdf) +##### STM32F072 [Datasheet](https://www.st.com/resource/en/datasheet/stm32f072c8.pdf) Pin Swap available: :heavy_check_mark: -| Pin | Function | Mode | +| Pin | Function | Mode | | ------ | -------- | ---- | | USART1 | | | | PA9 | TX | AF1 | @@ -352,7 +180,7 @@ Pin Swap available: :heavy_check_mark: | PA0 | TX | AF4 | | PA1 | RX | AF4 | -### STM32F103 Medium Density (C8-CB) [Datasheet](https://www.st.com/resource/en/datasheet/stm32f103c8.pdf) +##### STM32F103 Medium Density (C8-CB) [Datasheet](https://www.st.com/resource/en/datasheet/stm32f103c8.pdf) Pin Swap available: N/A @@ -362,7 +190,7 @@ Pin remapping: The pins of USART Peripherals use default Pins that can be remapped to use other pins using the AFIO registers. Default pins are marked **bold**. Add the appropriate defines to your config.h file. -| Pin | Function | Mode | USART_REMAP | +| Pin | Function | Mode | USART_REMAP | | ---------- | -------- | ---- | ------------------- | | **USART1** | | | | | **PA9** | TX | AFPP | | diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md index c1bcfe3ce9..9b80fb179e 100644 --- a/docs/understanding_qmk.md +++ b/docs/understanding_qmk.md @@ -155,6 +155,7 @@ The `process_record()` function itself is deceptively simple, but hidden within * [`bool process_printer(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_printer.c#L77) * [`bool process_auto_shift(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_auto_shift.c#L94) * `bool process_dynamic_tapping_term(uint16_t keycode, keyrecord_t *record)` + * [`bool process_terminal(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/process_keycode/process_terminal.c#L264) * [Identify and process Quantum-specific keycodes](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/quantum.c#L291) At any step during this chain of events a function (such as `process_record_kb()`) can `return false` to halt all further processing. diff --git a/docs/ws2812_driver.md b/docs/ws2812_driver.md index 54e6e77d81..8acac0b3aa 100644 --- a/docs/ws2812_driver.md +++ b/docs/ws2812_driver.md @@ -11,12 +11,11 @@ These LEDs are called "addressable" because instead of using a wire per color, e ## Supported Driver Types | | AVR | ARM | -| -------- | ------------------ | ------------------ | +|----------|--------------------|--------------------| | bit bang | :heavy_check_mark: | :heavy_check_mark: | | I2C | :heavy_check_mark: | | | SPI | | :heavy_check_mark: | | PWM | | :heavy_check_mark: | -| PIO | | :heavy_check_mark: | ## Driver configuration @@ -34,11 +33,11 @@ The default setting is 280 µs, which should work for most cases, but this can b Some variants of the WS2812 may have their color components in a different physical or logical order. For example, the WS2812B-2020 has physically swapped red and green LEDs, which causes the wrong color to be displayed, because the default order of the bytes sent over the wire is defined as GRB. In this case, you can change the byte order by defining `WS2812_BYTE_ORDER` as one of the following values: -| Byte order | Known devices | -| --------------------------------- | ----------------------------- | -| `WS2812_BYTE_ORDER_GRB` (default) | Most WS2812's, SK6812, SK6805 | -| `WS2812_BYTE_ORDER_RGB` | WS2812B-2020 | -| `WS2812_BYTE_ORDER_BGR` | TM1812 | +|Byte order |Known devices | +|---------------------------------|-----------------------------| +|`WS2812_BYTE_ORDER_GRB` (default)|Most WS2812's, SK6812, SK6805| +|`WS2812_BYTE_ORDER_RGB` |WS2812B-2020 | +|`WS2812_BYTE_ORDER_BGR` |TM1812 | ### Bitbang @@ -55,13 +54,13 @@ WS2812_DRIVER = bitbang The WS2812 LED communication topology depends on a serialized timed window. Different versions of the addressable LEDs have differing requirements for the timing parameters, for instance, of the SK6812. You can tune these parameters through the definition of the following macros: -| Macro | Default | AVR | ARM | -| --------------- | ---------------------------- | ------------------ | ------------------ | -| `WS2812_TIMING` | `1250` | :heavy_check_mark: | :heavy_check_mark: | -| `WS2812_T0H` | `350` | :heavy_check_mark: | :heavy_check_mark: | -| `WS2812_T0L` | `WS2812_TIMING - WS2812_T0H` | | :heavy_check_mark: | -| `WS2812_T1H` | `900` | :heavy_check_mark: | :heavy_check_mark: | -| `WS2812_T1L` | `WS2812_TIMING - WS2812_T1H` | | :heavy_check_mark: | +| Macro |Default | AVR | ARM | +|---------------------|--------------------------------------------|--------------------|--------------------| +|`WS2812_TIMING` |`1250` | :heavy_check_mark: | :heavy_check_mark: | +|`WS2812_T0H` |`350` | :heavy_check_mark: | :heavy_check_mark: | +|`WS2812_T0L` |`WS2812_TIMING - WS2812_T0H` | | :heavy_check_mark: | +|`WS2812_T1H` |`900` | :heavy_check_mark: | :heavy_check_mark: | +|`WS2812_T1L` |`WS2812_TIMING - WS2812_T1H` | | :heavy_check_mark: | ### I2C Targeting boards where WS2812 support is offloaded to a 2nd MCU. Currently the driver is limited to AVR given the known consumers are ps2avrGB/BMC. To configure it, add this to your rules.mk: @@ -108,16 +107,16 @@ To adjust the baudrate at which the SPI peripheral is configured, users will nee Only divisors of 2, 4, 8, 16, 32, 64, 128 and 256 are supported by hardware. -| Define | Default | Description | -| -------------------- | ------- | ----------------------------------- | -| `WS2812_SPI_DIVISOR` | `16` | SPI source clock peripheral divisor | +|Define |Default|Description | +|--------------------|-------|-------------------------------------| +|`WS2812_SPI_DIVISOR`|`16` |SPI source clock peripheral divisor | #### Testing Notes While not an exhaustive list, the following table provides the scenarios that have been partially validated: | | SPI1 | SPI2 | SPI3 | -| ---- | ------------------------------------------- | --------------------------------------- | --------------------- | +|------|---------------------------------------------|-----------------------------------------|-----------------------| | f072 | ? | B15 :heavy_check_mark: (needs SCK: B13) | N/A | | f103 | A7 :heavy_check_mark: | B15 :heavy_check_mark: | N/A | | f303 | A7 :heavy_check_mark: B5 :heavy_check_mark: | B15 :heavy_check_mark: | B5 :heavy_check_mark: | @@ -151,32 +150,15 @@ You must also turn on the PWM feature in your halconf.h and mcuconf.h While not an exhaustive list, the following table provides the scenarios that have been partially validated: -| | Status | -| --------- | ------------------ | -| f072 | ? | -| f103 | :heavy_check_mark: | -| f303 | :heavy_check_mark: | +| | Status | +|-|-| +| f072 | ? | +| f103 | :heavy_check_mark: | +| f303 | :heavy_check_mark: | | f401/f411 | :heavy_check_mark: | *Other supported ChibiOS boards and/or pins may function, it will be highly chip and configuration dependent.* -### PIO - -Targeting Raspberry Pi RP2040 boards only where WS2812 support is offloaded to an dedicated PIO implementation. This offloads processing of the WS2812 protocol from the MCU to a dedicated PIO program using DMA transfers. - -To configure it, add this to your rules.mk: - -```make -WS2812_DRIVER = vendor -``` - -Configure the hardware via your config.h: -```c -#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral -``` - -The WS2812 PIO programm uses 1 state machine, 4 instructions and does not use any interrupt handlers. - ### Push Pull and Open Drain Configuration The default configuration is a push pull on the defined pin. This can be configured for bitbang, PWM and SPI. diff --git a/docs/zh-cn/_summary.md b/docs/zh-cn/_summary.md index 3baee6dc2e..dbad1021fa 100644 --- a/docs/zh-cn/_summary.md +++ b/docs/zh-cn/_summary.md @@ -91,6 +91,7 @@ * [换手](zh-cn/feature_swap_hands.md) * [一键多用](zh-cn/feature_tap_dance.md) * [点按配置](zh-cn/tap_hold.md) + * [终端](zh-cn/feature_terminal.md) * [Unicode](zh-cn/feature_unicode.md) * [用户空间](zh-cn/feature_userspace.md) * [WPM计算](zh-cn/feature_wpm.md) diff --git a/docs/zh-cn/custom_quantum_functions.md b/docs/zh-cn/custom_quantum_functions.md index dba9e7e7c0..29c5089052 100644 --- a/docs/zh-cn/custom_quantum_functions.md +++ b/docs/zh-cn/custom_quantum_functions.md @@ -240,7 +240,7 @@ void suspend_wakeup_init_user(void) { ```c layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _RAISE: rgblight_setrgb (0x00, 0x00, 0xFF); break; @@ -267,7 +267,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { ### `layer_state_set_*` 函数文档 -* 键盘/各子版本:`layer_state_t layer_state_set_kb(layer_state_t state)` +* 键盘/各子版本:`uint32_t layer_state_set_kb(uint32_t state)` * 布局: `layer_state_t layer_state_set_user(layer_state_t state)` @@ -325,7 +325,7 @@ void keyboard_post_init_user(void) { ```c layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _RAISE: if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); } break; @@ -474,3 +474,4 @@ cancel_deferred_exec(my_token); ```c #define MAX_DEFERRED_EXECUTORS 16 ``` + diff --git a/drivers/eeprom/eeprom_i2c.h b/drivers/eeprom/eeprom_i2c.h index 85317c9ea5..77eea66d63 100644 --- a/drivers/eeprom/eeprom_i2c.h +++ b/drivers/eeprom/eeprom_i2c.h @@ -54,11 +54,6 @@ # define EXTERNAL_EEPROM_PAGE_SIZE 32 # define EXTERNAL_EEPROM_ADDRESS_SIZE 2 # define EXTERNAL_EEPROM_WRITE_TIME 5 -#elif defined(EEPROM_I2C_24LC32A) -# define EXTERNAL_EEPROM_BYTE_COUNT 4096 -# define EXTERNAL_EEPROM_PAGE_SIZE 32 -# define EXTERNAL_EEPROM_ADDRESS_SIZE 2 -# define EXTERNAL_EEPROM_WRITE_TIME 5 #elif defined(EEPROM_I2C_MB85RC256V) # define EXTERNAL_EEPROM_BYTE_COUNT 32768 # define EXTERNAL_EEPROM_PAGE_SIZE 128 diff --git a/drivers/eeprom/eeprom_wear_leveling.c b/drivers/eeprom/eeprom_wear_leveling.c deleted file mode 100644 index bd77eef35c..0000000000 --- a/drivers/eeprom/eeprom_wear_leveling.c +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include - -#include "eeprom_driver.h" -#include "wear_leveling.h" - -void eeprom_driver_init(void) { - wear_leveling_init(); -} - -void eeprom_driver_erase(void) { - wear_leveling_erase(); -} - -void eeprom_read_block(void *buf, const void *addr, size_t len) { - wear_leveling_read((uint32_t)addr, buf, len); -} - -void eeprom_write_block(const void *buf, void *addr, size_t len) { - wear_leveling_write((uint32_t)addr, buf, len); -} diff --git a/drivers/led/aw20216.c b/drivers/led/aw20216.c index 55083936ef..448accdcd3 100644 --- a/drivers/led/aw20216.c +++ b/drivers/led/aw20216.c @@ -53,10 +53,6 @@ # define AW_GLOBAL_CURRENT_MAX 150 #endif -#ifndef AW_SPI_MODE -# define AW_SPI_MODE 0 -#endif - #ifndef AW_SPI_DIVISOR # define AW_SPI_DIVISOR 4 #endif @@ -67,7 +63,7 @@ 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) { static uint8_t s_spi_transfer_buffer[2] = {0}; - if (!spi_start(cs_pin, false, AW_SPI_MODE, AW_SPI_DIVISOR)) { + if (!spi_start(cs_pin, false, 3, AW_SPI_DIVISOR)) { spi_stop(); return false; } diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index 2f41a7b1a9..af006f756d 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -70,10 +70,6 @@ # define ISSI_CSPULLUP PUR_0R #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF -#endif - // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20]; @@ -186,7 +182,7 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) { // Set de-ghost pull-down resistors (CSx) 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, 0xFF); // Disable software shutdown. IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index add998f256..a2fdaa90fa 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -69,10 +69,6 @@ # define ISSI_CSPULLUP PUR_0R #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF -#endif - // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20]; @@ -176,7 +172,7 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) { // Set de-ghost pull-down resistors (CSx) 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, 0xFF); // Disable software shutdown. IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index e9943614d2..7752a3f6cb 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -63,10 +63,6 @@ # define ISSI_CSPULLUP PUR_0R #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF -#endif - // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20]; @@ -158,7 +154,7 @@ void IS31FL3736_init(uint8_t addr) { // Set de-ghost pull-down resistors (CSx) 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, 0xFF); // Disable software shutdown. IS31FL3736_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index 932530ac0a..bce0c34b2c 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -69,10 +69,6 @@ # define ISSI_CSPULLUP PUR_0R #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF -#endif - // Transfer buffer for TWITransmitData() uint8_t g_twi_transfer_buffer[20]; @@ -165,7 +161,7 @@ void IS31FL3737_init(uint8_t addr) { // Set de-ghost pull-down resistors (CSx) 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, 0xFF); // Disable software shutdown. IS31FL3737_write_register(addr, ISSI_REG_CONFIGURATION, ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01); diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index ba6b6761a3..393b0179b5 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -69,10 +69,6 @@ # define ISSI_CSPULLUP PUR_32KR #endif -#ifndef ISSI_GLOBALCURRENT -# define ISSI_GLOBALCURRENT 0xFF -#endif - #define ISSI_MAX_LEDS 351 // Transfer buffer for TWITransmitData() @@ -167,7 +163,7 @@ void IS31FL3741_init(uint8_t addr) { 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, 0xFF); // Set Pull up & Down for SWx CSy IS31FL3741_write_register(addr, ISSI_REG_PULLDOWNUP, ((ISSI_CSPULLUP << 4) | ISSI_SWPULLUP)); diff --git a/drivers/ps2/ps2.h b/drivers/ps2/ps2.h index 2465e16235..f123192852 100644 --- a/drivers/ps2/ps2.h +++ b/drivers/ps2/ps2.h @@ -89,7 +89,6 @@ uint8_t ps2_host_send(uint8_t data); uint8_t ps2_host_recv_response(void); uint8_t ps2_host_recv(void); void ps2_host_set_led(uint8_t usb_led); -bool pbuf_has_data(void); /*-------------------------------------------------------------------- * static functions diff --git a/drivers/ps2/ps2_interrupt.c b/drivers/ps2/ps2_interrupt.c index c9a9f1e1ec..c49b4f8b75 100644 --- a/drivers/ps2/ps2_interrupt.c +++ b/drivers/ps2/ps2_interrupt.c @@ -66,8 +66,8 @@ uint8_t ps2_error = PS2_ERR_NONE; static inline uint8_t pbuf_dequeue(void); static inline void pbuf_enqueue(uint8_t data); +static inline bool pbuf_has_data(void); static inline void pbuf_clear(void); -bool pbuf_has_data(void); #if defined(PROTOCOL_CHIBIOS) void ps2_interrupt_service_routine(void); @@ -309,7 +309,7 @@ static inline uint8_t pbuf_dequeue(void) { return val; } -bool pbuf_has_data(void) { +static inline bool pbuf_has_data(void) { #if defined(__AVR__) uint8_t sreg = SREG; cli(); diff --git a/drivers/ps2/ps2_mouse.c b/drivers/ps2/ps2_mouse.c index 66b48bb3c3..ccb0a929ae 100644 --- a/drivers/ps2/ps2_mouse.c +++ b/drivers/ps2/ps2_mouse.c @@ -53,7 +53,6 @@ void ps2_mouse_init(void) { ps2_mouse_set_remote_mode(); #else ps2_mouse_enable_data_reporting(); - ps2_mouse_set_stream_mode(); #endif #ifdef PS2_MOUSE_ENABLE_SCROLLING @@ -76,33 +75,19 @@ void ps2_mouse_task(void) { extern int tp_buttons; /* receives packet from mouse */ -#ifdef PS2_MOUSE_USE_REMOTE_MODE uint8_t rcv; rcv = ps2_host_send(PS2_MOUSE_READ_DATA); if (rcv == PS2_ACK) { mouse_report.buttons = ps2_host_recv_response() | tp_buttons; mouse_report.x = ps2_host_recv_response() * PS2_MOUSE_X_MULTIPLIER; mouse_report.y = ps2_host_recv_response() * PS2_MOUSE_Y_MULTIPLIER; -# ifdef PS2_MOUSE_ENABLE_SCROLLING +#ifdef PS2_MOUSE_ENABLE_SCROLLING mouse_report.v = -(ps2_host_recv_response() & PS2_MOUSE_SCROLL_MASK) * PS2_MOUSE_V_MULTIPLIER; -# endif - } else { - if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); - return; - } -#else - if (pbuf_has_data()) { - mouse_report.buttons = ps2_host_recv_response() | tp_buttons; - mouse_report.x = ps2_host_recv_response() * PS2_MOUSE_X_MULTIPLIER; - mouse_report.y = ps2_host_recv_response() * PS2_MOUSE_Y_MULTIPLIER; -# ifdef PS2_MOUSE_ENABLE_SCROLLING - mouse_report.v = -(ps2_host_recv_response() & PS2_MOUSE_SCROLL_MASK) * PS2_MOUSE_V_MULTIPLIER; -# endif - } else { - if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); - return; - } #endif + } else { + if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); + return; + } /* if mouse moves or buttons state changes */ if (mouse_report.x || mouse_report.y || mouse_report.v || ((mouse_report.buttons ^ buttons_prev) & PS2_MOUSE_BTN_MASK)) { diff --git a/drivers/sensors/cirque_pinnacle.c b/drivers/sensors/cirque_pinnacle.c index 1d1e4ccfc6..2db7f916fe 100644 --- a/drivers/sensors/cirque_pinnacle.c +++ b/drivers/sensors/cirque_pinnacle.c @@ -1,13 +1,8 @@ // Copyright (c) 2018 Cirque Corp. Restrictions apply. See: www.cirque.com/sw-license -// based on https://github.com/cirque-corp/Cirque_Pinnacle_1CA027/tree/master/Circular_Trackpad -// with modifications and changes for QMK -// refer to documentation: Gen2 and Gen3 (Pinnacle ASIC) at https://www.cirque.com/documentation - #include "cirque_pinnacle.h" #include "print.h" #include "debug.h" #include "wait.h" -#include "timer.h" // Registers for RAP // clang-format off @@ -43,9 +38,11 @@ #define ADC_ATTENUATE_3X 0x80 #define ADC_ATTENUATE_4X 0xC0 -#ifndef CIRQUE_PINNACLE_ATTENUATION -# define CIRQUE_PINNACLE_ATTENUATION ADC_ATTENUATE_4X -#endif +// Register config values for this demo +#define SYSCONFIG_1_VALUE 0x00 +#define FEEDCONFIG_1_VALUE 0x03 // 0x03 for absolute mode 0x01 for relative mode +#define FEEDCONFIG_2_VALUE 0x1C // 0x1F for normal functionality 0x1E for intellimouse disabled +#define Z_IDLE_COUNT_VALUE 0x05 // clang-format on bool touchpad_init; @@ -113,14 +110,16 @@ void cirque_pinnacle_clear_flags() { // Enables/Disables the feed void cirque_pinnacle_enable_feed(bool feedEnable) { uint8_t temp; + RAP_ReadBytes(FEEDCONFIG_1, &temp, 1); // Store contents of FeedConfig1 register if (feedEnable) { temp |= 0x01; // Set Feed Enable bit + RAP_Write(0x04, temp); } else { temp &= ~0x01; // Clear Feed Enable bit + RAP_Write(0x04, temp); } - RAP_Write(FEEDCONFIG_1, temp); } /* ERA (Extended Register Access) Functions */ @@ -192,7 +191,7 @@ void cirque_pinnacle_tune_edge_sensitivity(void) { ERA_ReadBytes(0x0168, &temp, 1); } -/* Pinnacle-based TM040040/TM035035/TM023023 Functions */ +/* Pinnacle-based TM040040 Functions */ void cirque_pinnacle_init(void) { #if defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) spi_init(); @@ -201,87 +200,39 @@ void cirque_pinnacle_init(void) { #endif touchpad_init = true; - // Host clears SW_CC flag cirque_pinnacle_clear_flags(); - // SysConfig1 (Low Power Mode) - // Bit 0: Reset, 1=Reset - // Bit 1: Shutdown, 1=Shutdown, 0=Active - // Bit 2: Sleep Enable, 1=low power mode, 0=normal mode - // send a RESET command now, in case QMK had a soft-reset without a power cycle - RAP_Write(SYSCONFIG_1, 0x01); - wait_ms(30); // Pinnacle needs 10-15ms to boot, so wait long enough before configuring - RAP_Write(SYSCONFIG_1, 0x00); - wait_us(50); + // Host configures bits of registers 0x03 and 0x05 + RAP_Write(SYSCONFIG_1, SYSCONFIG_1_VALUE); + RAP_Write(FEEDCONFIG_2, FEEDCONFIG_2_VALUE); - // FeedConfig2 (Feature flags for Relative Mode Only) - // Bit 0: IntelliMouse Enable, 1=enable, 0=disable - // Bit 1: All Taps Disable, 1=disable, 0=enable - // Bit 2: Secondary Tap Disable, 1=disable, 0=enable - // Bit 3: Scroll Disable, 1=disable, 0=enable - // Bit 4: GlideExtend® Disable, 1=disable, 0=enable - // Bit 5: reserved - // Bit 6: reserved - // Bit 7: Swap X & Y, 1=90° rotation, 0=0° rotation - RAP_Write(FEEDCONFIG_2, 0x00); + // Host enables preferred output mode (absolute) + RAP_Write(FEEDCONFIG_1, FEEDCONFIG_1_VALUE); - // FeedConfig1 (Data Output Flags) - // Bit 0: Feed enable, 1=feed, 0=no feed - // Bit 1: Data mode, 1=absolute, 0=relative - // Bit 2: Filter disable, 1=no filter, 0=filter - // Bit 3: X disable, 1=no X data, 0=X data - // Bit 4: Y disable, 1=no Y data, 0=Y data - // Bit 5: reserved - // Bit 6: X data Invert, 1=X max to 0, 0=0 to Y max - // Bit 7: Y data Invert, 1=Y max to 0, 0=0 to Y max - RAP_Write(FEEDCONFIG_1, CIRQUE_PINNACLE_POSITION_MODE << 1); - - // Host sets z-idle packet count to 5 (default is 0x1F/30) - RAP_Write(Z_IDLE_COUNT, 5); - - cirque_pinnacle_set_adc_attenuation(CIRQUE_PINNACLE_ATTENUATION); + // Host sets z-idle packet count to 5 (default is 30) + RAP_Write(Z_IDLE_COUNT, Z_IDLE_COUNT_VALUE); + cirque_pinnacle_set_adc_attenuation(0xFF); cirque_pinnacle_tune_edge_sensitivity(); cirque_pinnacle_enable_feed(true); } +// Reads XYZ data from Pinnacle registers 0x14 through 0x17 +// Stores result in pinnacle_data_t struct with xValue, yValue, and zValue members pinnacle_data_t cirque_pinnacle_read_data(void) { - uint8_t data_ready = 0; - uint8_t data[6] = {0}; - pinnacle_data_t result = {0}; - - // Check if there is valid data available - RAP_ReadBytes(STATUS_1, &data_ready, 1); // bit2 is Software Data Ready, bit3 is Command Complete, bit0 and bit1 are reserved/unused - if ((data_ready & 0x04) == 0) { - // no data available yet - result.valid = false; // be explicit - return result; - } - - // Read all data bytes + uint8_t data[6] = {0}; + pinnacle_data_t result = {0}; RAP_ReadBytes(PACKET_BYTE_0, data, 6); - // Get ready for the next data sample cirque_pinnacle_clear_flags(); -#if CIRQUE_PINNACLE_POSITION_MODE - // Decode data for absolute mode - // Register 0x13 is unused in this mode (palm detection area) - result.buttonFlags = data[0] & 0x3F; // bit0 to bit5 are switch 0-5, only hardware button presses (from input pin on the Pinnacle chip) - result.xValue = data[2] | ((data[4] & 0x0F) << 8); // merge high and low bits for X - result.yValue = data[3] | ((data[4] & 0xF0) << 4); // merge high and low bits for Y - result.zValue = data[5] & 0x3F; // Z is only lower 6 bits, upper 2 bits are reserved/unused - result.touchDown = (result.xValue != 0 || result.yValue != 0); // (0,0) is a "magic coordinate" to indicate "finger touched down" -#else - // Decode data for relative mode - // Registers 0x16 and 0x17 are unused in this mode - result.buttons = data[0] & 0x07; // bit0 = primary button, bit1 = secondary button, bit2 = auxilary button, if Taps enabled then also software-recognized taps are reported - result.xDelta = data[1]; - result.yDelta = data[2]; - result.wheelCount = data[3]; -#endif + result.buttonFlags = data[0] & 0x3F; + result.xValue = data[2] | ((data[4] & 0x0F) << 8); + result.yValue = data[3] | ((data[4] & 0xF0) << 4); + result.zValue = data[5] & 0x3F; + + result.touchDown = (result.xValue != 0 || result.yValue != 0); - result.valid = true; return result; } diff --git a/drivers/sensors/cirque_pinnacle.h b/drivers/sensors/cirque_pinnacle.h index d65bdb41b6..c8cb360e03 100644 --- a/drivers/sensors/cirque_pinnacle.h +++ b/drivers/sensors/cirque_pinnacle.h @@ -5,14 +5,23 @@ #include #include -#ifndef CIRQUE_PINNACLE_TIMEOUT -# define CIRQUE_PINNACLE_TIMEOUT 20 // I2C timeout in milliseconds -#endif +// Convenient way to store and access measurements +typedef struct { + uint16_t xValue; + uint16_t yValue; + uint16_t zValue; + uint8_t buttonFlags; + bool touchDown; +} pinnacle_data_t; -#define CIRQUE_PINNACLE_ABSOLUTE_MODE 1 -#define CIRQUE_PINNACLE_RELATIVE_MODE 0 -#ifndef CIRQUE_PINNACLE_POSITION_MODE -# define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE +void cirque_pinnacle_init(void); +pinnacle_data_t cirque_pinnacle_read_data(void); +void cirque_pinnacle_scale_data(pinnacle_data_t* coordinates, uint16_t xResolution, uint16_t yResolution); +uint16_t cirque_pinnacle_get_scale(void); +void cirque_pinnacle_set_scale(uint16_t scale); + +#ifndef CIRQUE_PINNACLE_TIMEOUT +# define CIRQUE_PINNACLE_TIMEOUT 20 #endif // Coordinate scaling values @@ -34,9 +43,7 @@ #ifndef CIRQUE_PINNACLE_Y_RANGE # define CIRQUE_PINNACLE_Y_RANGE (CIRQUE_PINNACLE_Y_UPPER - CIRQUE_PINNACLE_Y_LOWER) #endif -#if !defined(POINTING_DEVICE_TASK_THROTTLE_MS) -# define POINTING_DEVICE_TASK_THROTTLE_MS 10 // Cirque Pinnacle in normal operation produces data every 10ms. Advanced configuration for pen/stylus usage might require lower values. -#endif + #if defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) # include "i2c_master.h" // Cirque's 7-bit I2C Slave Address @@ -65,26 +72,3 @@ # endif # endif #endif - -// Convenient way to store and access measurements -typedef struct { - bool valid; // true if valid data was read, false if no data was ready -#if CIRQUE_PINNACLE_POSITION_MODE - uint16_t xValue; - uint16_t yValue; - uint16_t zValue; - uint8_t buttonFlags; - bool touchDown; -#else - uint8_t xDelta; - uint8_t yDelta; - uint8_t wheelCount; - uint8_t buttons; -#endif -} pinnacle_data_t; - -void cirque_pinnacle_init(void); -pinnacle_data_t cirque_pinnacle_read_data(void); -void cirque_pinnacle_scale_data(pinnacle_data_t* coordinates, uint16_t xResolution, uint16_t yResolution); -uint16_t cirque_pinnacle_get_scale(void); -void cirque_pinnacle_set_scale(uint16_t scale); diff --git a/drivers/sensors/cirque_pinnacle_i2c.c b/drivers/sensors/cirque_pinnacle_i2c.c index b328dd9a7a..8a38f1dcea 100644 --- a/drivers/sensors/cirque_pinnacle_i2c.c +++ b/drivers/sensors/cirque_pinnacle_i2c.c @@ -19,7 +19,7 @@ void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) { i2c_writeReg(CIRQUE_PINNACLE_ADDR << 1, cmdByte, NULL, 0, CIRQUE_PINNACLE_TIMEOUT); if (i2c_readReg(CIRQUE_PINNACLE_ADDR << 1, cmdByte, data, count, CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) { #ifdef CONSOLE_ENABLE - dprintf("error cirque_pinnacle i2c_readReg\n"); + dprintf("error right touchpad\n"); #endif touchpad_init = false; } @@ -34,7 +34,7 @@ void RAP_Write(uint8_t address, uint8_t data) { if (touchpad_init) { if (i2c_writeReg(CIRQUE_PINNACLE_ADDR << 1, cmdByte, &data, sizeof(data), CIRQUE_PINNACLE_TIMEOUT) != I2C_STATUS_SUCCESS) { #ifdef CONSOLE_ENABLE - dprintf("error cirque_pinnacle i2c_writeReg\n"); + dprintf("error right touchpad\n"); #endif touchpad_init = false; } diff --git a/drivers/sensors/cirque_pinnacle_spi.c b/drivers/sensors/cirque_pinnacle_spi.c index bd980fc863..34c77df07b 100644 --- a/drivers/sensors/cirque_pinnacle_spi.c +++ b/drivers/sensors/cirque_pinnacle_spi.c @@ -25,7 +25,7 @@ void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) { } } else { #ifdef CONSOLE_ENABLE - dprintf("error cirque_pinnacle spi_start read\n"); + dprintf("error right touchpad\n"); #endif touchpad_init = false; } @@ -43,7 +43,7 @@ void RAP_Write(uint8_t address, uint8_t data) { spi_write(data); } else { #ifdef CONSOLE_ENABLE - dprintf("error cirque_pinnacle spi_start write\n"); + dprintf("error right touchpad\n"); #endif touchpad_init = false; } diff --git a/drivers/sensors/pimoroni_trackball.c b/drivers/sensors/pimoroni_trackball.c index 88a351316b..333e017a06 100644 --- a/drivers/sensors/pimoroni_trackball.c +++ b/drivers/sensors/pimoroni_trackball.c @@ -95,3 +95,16 @@ int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_di uint16_t magnitude = (scale * offset * offset * precision) >> 7; return isnegative ? -(int16_t)(magnitude) : (int16_t)(magnitude); } + +void pimoroni_trackball_adapt_values(int8_t* mouse, int16_t* offset) { + if (*offset > 127) { + *mouse = 127; + *offset -= 127; + } else if (*offset < -127) { + *mouse = -127; + *offset += 127; + } else { + *mouse = *offset; + *offset = 0; + } +} diff --git a/drivers/sensors/pimoroni_trackball.h b/drivers/sensors/pimoroni_trackball.h index 749f381bbd..e20ee748a7 100644 --- a/drivers/sensors/pimoroni_trackball.h +++ b/drivers/sensors/pimoroni_trackball.h @@ -52,6 +52,7 @@ typedef struct { void pimoroni_trackball_device_init(void); void pimoroni_trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale); +void pimoroni_trackball_adapt_values(int8_t* mouse, int16_t* offset); uint16_t pimoroni_trackball_get_cpi(void); void pimoroni_trackball_set_cpi(uint16_t cpi); i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data); diff --git a/drivers/serial.h b/drivers/serial.h index fb91b136e7..0cfdbd9959 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -27,13 +27,3 @@ void soft_serial_initiator_init(void); void soft_serial_target_init(void); bool soft_serial_transaction(int sstd_index); - -#ifdef SERIAL_DEBUG -# include -# include -# define serial_dprintf(...) dprintf(__VA_ARGS__) -#else -# define serial_dprintf(...) \ - do { \ - } while (0) -#endif diff --git a/drivers/wear_leveling/wear_leveling_flash_spi.c b/drivers/wear_leveling/wear_leveling_flash_spi.c deleted file mode 100644 index 6191f8bf09..0000000000 --- a/drivers/wear_leveling/wear_leveling_flash_spi.c +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include -#include "util.h" -#include "timer.h" -#include "wear_leveling.h" -#include "wear_leveling_internal.h" - -#ifndef WEAR_LEVELING_EXTERNAL_FLASH_BULK_COUNT -# define WEAR_LEVELING_EXTERNAL_FLASH_BULK_COUNT 32 -#endif // WEAR_LEVELING_EXTERNAL_FLASH_BULK_COUNT - -bool backing_store_init(void) { - bs_dprintf("Init\n"); - flash_init(); - return true; -} - -bool backing_store_unlock(void) { - bs_dprintf("Unlock\n"); - // No-op -- handled by the flash driver as it is. - return true; -} - -bool backing_store_erase(void) { -#ifdef WEAR_LEVELING_DEBUG_OUTPUT - uint32_t start = timer_read32(); -#endif - - bool ret = true; - for (int i = 0; i < (WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_COUNT); ++i) { - flash_status_t status = flash_erase_block(((WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_OFFSET) + i) * (EXTERNAL_FLASH_BLOCK_SIZE)); - if (status != FLASH_STATUS_SUCCESS) { - ret = false; - break; - } - } - - bs_dprintf("Backing store erase took %ldms to complete\n", ((long)(timer_read32() - start))); - return ret; -} - -bool backing_store_write(uint32_t address, backing_store_int_t value) { - return backing_store_write_bulk(address, &value, 1); -} - -bool backing_store_lock(void) { - bs_dprintf("Lock \n"); - // No-op -- handled by the flash driver as it is. - return true; -} - -bool backing_store_read(uint32_t address, backing_store_int_t *value) { - return backing_store_read_bulk(address, value, 1); -} - -bool backing_store_read_bulk(uint32_t address, backing_store_int_t *values, size_t item_count) { - bs_dprintf("Read "); - uint32_t offset = (WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_OFFSET) * (EXTERNAL_FLASH_BLOCK_SIZE) + address; - flash_status_t status = flash_read_block(offset, values, sizeof(backing_store_int_t) * item_count); - if (status == FLASH_STATUS_SUCCESS) { - for (size_t i = 0; i < item_count; ++i) { - values[i] = ~values[i]; - } - wl_dump(offset, values, sizeof(backing_store_int_t) * item_count); - } - return status == FLASH_STATUS_SUCCESS; -} - -bool backing_store_write_bulk(uint32_t address, backing_store_int_t *values, size_t item_count) { - uint32_t offset = (WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_OFFSET) * (EXTERNAL_FLASH_BLOCK_SIZE) + address; - size_t index = 0; - backing_store_int_t temp[WEAR_LEVELING_EXTERNAL_FLASH_BULK_COUNT]; - do { - // Copy out the block of data we want to transmit first - size_t this_loop = MIN(item_count, WEAR_LEVELING_EXTERNAL_FLASH_BULK_COUNT); - for (size_t i = 0; i < this_loop; ++i) { - temp[i] = values[index + i]; - } - - bs_dprintf("Write "); - wl_dump(offset, temp, sizeof(backing_store_int_t) * this_loop); - - // Take the complement instead - for (size_t i = 0; i < this_loop; ++i) { - temp[i] = ~temp[i]; - } - - // Write out the block - if (flash_write_block(offset, temp, sizeof(backing_store_int_t) * this_loop) != FLASH_STATUS_SUCCESS) { - return false; - } - - offset += this_loop * sizeof(backing_store_int_t); - index += this_loop; - item_count -= this_loop; - } while (item_count > 0); - - return true; -} diff --git a/drivers/wear_leveling/wear_leveling_flash_spi_config.h b/drivers/wear_leveling/wear_leveling_flash_spi_config.h deleted file mode 100644 index 394370daa3..0000000000 --- a/drivers/wear_leveling/wear_leveling_flash_spi_config.h +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#ifndef __ASSEMBLER__ -# include -# include -# include "flash_spi.h" -#endif - -// Use 1 block -- check the config for the SPI flash to determine how big it is -#ifndef WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_COUNT -# define WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_COUNT 1 -#endif // WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_COUNT - -// Start at the first block of the external flash -#ifndef WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_OFFSET -# define WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_OFFSET 0 -#endif // WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_OFFSET - -// 8-byte writes by default -#ifndef BACKING_STORE_WRITE_SIZE -# define BACKING_STORE_WRITE_SIZE 8 -#endif - -// The space allocated by the block -#ifndef WEAR_LEVELING_BACKING_SIZE -# define WEAR_LEVELING_BACKING_SIZE ((EXTERNAL_FLASH_BLOCK_SIZE) * (WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_COUNT)) -#endif // WEAR_LEVELING_BACKING_SIZE - -// Use half of the backing size for logical EEPROM -#ifndef WEAR_LEVELING_LOGICAL_SIZE -# define WEAR_LEVELING_LOGICAL_SIZE ((WEAR_LEVELING_BACKING_SIZE) / 2) -#endif // WEAR_LEVELING_LOGICAL_SIZE diff --git a/keyboards/0xcb/tutelpad/config.h b/keyboards/0xcb/tutelpad/config.h new file mode 100644 index 0000000000..a19fa7e83f --- /dev/null +++ b/keyboards/0xcb/tutelpad/config.h @@ -0,0 +1,89 @@ +/* Copyright 2022 ItsFiremanSam + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +/* Keyboard Matrix Assignments */ +#define DIRECT_PINS { \ + { E6, D7, B1, B3 }, \ + { B5, B4, B2, B6 } \ +} + +#define RGB_DI_PIN D3 // LED data pin on controller +#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_LIMIT_VAL 255 // Max brightness level +#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 + + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 1 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/0xcb/tutelpad/info.json b/keyboards/0xcb/tutelpad/info.json new file mode 100644 index 0000000000..00261daad3 --- /dev/null +++ b/keyboards/0xcb/tutelpad/info.json @@ -0,0 +1,26 @@ +{ + "keyboard_name": "TutelPad", + "manufacturer": "ItsFiremanSam", + "url": "", + "maintainer": "ItsFiremanSam", + "usb": { + "vid": "0xCB00", + "pid": "0xF09F", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "k03", "x": 0, "y": 0}, + {"label": "k02", "x": 1, "y": 0}, + {"label": "k01", "x": 2, "y": 0}, + {"label": "k00", "x": 3, "y": 0}, + + {"label": "k13", "x": 0, "y": 1}, + {"label": "k12", "x": 1, "y": 1}, + {"label": "k11", "x": 2, "y": 1}, + {"label": "k10", "x": 3, "y": 1} + ] + } + } +} diff --git a/keyboards/0xcb/tutelpad/keymaps/default/keymap.c b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c new file mode 100644 index 0000000000..513e7d9f33 --- /dev/null +++ b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +/* Copyright 2022 ItsFiremanSam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ) +}; \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/keymaps/via/keymap.c b/keyboards/0xcb/tutelpad/keymaps/via/keymap.c new file mode 100644 index 0000000000..c617fce75e --- /dev/null +++ b/keyboards/0xcb/tutelpad/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2022 ItsFiremanSam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_1, KC_2, KC_3, KC_4, + KC_5, LT(1, KC_6), LT(1, KC_7), LT(1, KC_8) + ), + + [1] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______ + ), +}; \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/keymaps/via/rules.mk b/keyboards/0xcb/tutelpad/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/0xcb/tutelpad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/readme.md b/keyboards/0xcb/tutelpad/readme.md new file mode 100644 index 0000000000..8fb8c970e7 --- /dev/null +++ b/keyboards/0xcb/tutelpad/readme.md @@ -0,0 +1,19 @@ +# TutelPad macropad + +* Keyboard Maintainer: [ItsFiremanSam](https://github.com/ItsFiremanSam) +* Hardware Supported: [TutelPad GitHub](https://github.com/0xCB-dev/0xCB-TutelPad) +* Hardware Availability: [KeebSupply](https://keeb.supply/) + +## Bootloader + +You can enter the bootloader by pressing the reset switch on the side while the keyboard is plugged in. You can also short the GND and RST pads on the controller. + +Make example for this keyboard (after setting up your build environment): + + make 0xcb/tutelpad:default + +Flashing example for this keyboard: + + make 0xcb/tutelpad: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/0xcb/tutelpad/rules.mk b/keyboards/0xcb/tutelpad/rules.mk new file mode 100644 index 0000000000..e022c905cd --- /dev/null +++ b/keyboards/0xcb/tutelpad/rules.mk @@ -0,0 +1,21 @@ +## MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/tutelpad.c b/keyboards/0xcb/tutelpad/tutelpad.c new file mode 100644 index 0000000000..25c2d22219 --- /dev/null +++ b/keyboards/0xcb/tutelpad/tutelpad.c @@ -0,0 +1,106 @@ +/* Copyright 2022 ItsFiremanSam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "tutelpad.h" + +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +static void render_logo(void) { + static const char PROGMEM tutel[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 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, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 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, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 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, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 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, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 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, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0x0f, 0x0f, 0x0f, 0x0f, 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, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 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, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 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, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 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, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 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 + }; + +oled_write_raw_P(tutel, sizeof(tutel)); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + render_logo(); + + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/0xcb/tutelpad/tutelpad.h b/keyboards/0xcb/tutelpad/tutelpad.h new file mode 100644 index 0000000000..0115c50fa4 --- /dev/null +++ b/keyboards/0xcb/tutelpad/tutelpad.h @@ -0,0 +1,35 @@ +/* Copyright 2022 ItsFiremanSam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13 \ +) { \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 } \ +} diff --git a/keyboards/1k/config.h b/keyboards/1k/config.h index be680b4194..06675824a6 100644 --- a/keyboards/1k/config.h +++ b/keyboards/1k/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0009 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MakotoKurauchi -#define PRODUCT 1K - /* matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 diff --git a/keyboards/1k/info.json b/keyboards/1k/info.json index a806ac6295..0c2de31808 100644 --- a/keyboards/1k/info.json +++ b/keyboards/1k/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "1k", + "keyboard_name": "1K", + "manufacturer": "MakotoKurauchi", "url": "", "maintainer": "MakotoKurauchi", + "usb": { + "vid": "0x0009", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_1x1": { "layout": [ diff --git a/keyboards/1k/keymaps/tap_dance/config.h b/keyboards/1k/keymaps/tap_dance/config.h index bd0163e447..5df7869537 100644 --- a/keyboards/1k/keymaps/tap_dance/config.h +++ b/keyboards/1k/keymaps/tap_dance/config.h @@ -4,4 +4,3 @@ #pragma once #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD diff --git a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h index 161b46c814..c835440076 100644 --- a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h +++ b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h @@ -3,7 +3,6 @@ /* tap dance stuff*/ #undef TAPPING_TERM #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD #define TAPPING_TOGGLE 2 @@ -13,4 +12,4 @@ #define EXAMPLESTRING4 "tapdance_4" #undef RGBLED_NUM -#define RGBLED_NUM 16 +#define RGBLED_NUM 16 \ No newline at end of file diff --git a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c index eeca552657..6b7b36cbb2 100644 --- a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c +++ b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c @@ -196,7 +196,7 @@ void matrix_scan_user(void) { } } layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _TAPLAND: rgblight_setrgb(0, 16, 0); //green break; diff --git a/keyboards/40percentclub/gherkin/keymaps/bbaserdem/README.md b/keyboards/40percentclub/gherkin/keymaps/bbaserdem/README.md deleted file mode 100644 index 3c9a5e98b3..0000000000 --- a/keyboards/40percentclub/gherkin/keymaps/bbaserdem/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Gherkin Layout -This is my gherkin layout. -It is used as a game pad, and key layout is inspired by spare keys I had lying around. -The firmware is very simple, and only includes one layer keymap, and RGB effects. - -# Flashing -The following command should be used from the main qmk directory. -``` -make gherkin:bbaserdem -sudo avrdude -p atmgea34u4 -P `ls /dev/ttyACM*` -c avr109 -U flash:.build/gherkin_bbaserdem.hex -``` diff --git a/keyboards/40percentclub/gherkin/keymaps/bbaserdem/config.h b/keyboards/40percentclub/gherkin/keymaps/bbaserdem/config.h deleted file mode 100644 index 5c9ca52d75..0000000000 --- a/keyboards/40percentclub/gherkin/keymaps/bbaserdem/config.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -#define RGB_DI_PIN F6 -#define RGBLED_NUM 10 -#define RGBLIGHT_ANIMATIONS -#ifdef BACKLIGHT_LEVELS -#undef BACKLIGHT_LEVELS -#endif -#define BACKLIGHT_LEVELS 3 diff --git a/keyboards/40percentclub/gherkin/keymaps/bbaserdem/keymap.c b/keyboards/40percentclub/gherkin/keymaps/bbaserdem/keymap.c deleted file mode 100644 index 0d3c8557c5..0000000000 --- a/keyboards/40percentclub/gherkin/keymaps/bbaserdem/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -// This is a game-pad gherkin layout with RGB and LED lights - -#include QMK_KEYBOARD_H - -backlight_config_t backlight_config; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Game pad - * ,-----------------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | Ctl | Alt | ~ | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | Tab | Q | W | E | R | T | |^| | ; | ' | / | - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * | Shf | A | S | D | F | <-- | |v| | --> | , | . | - * `-----------------------------------------------------------' - */ - LAYOUT_ortho_3x10( - KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_LCTRL, KC_LALT, KC_GRAVE, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_SCLN, KC_QUOTE, KC_SLASH, - KC_LSHIFT, KC_A, KC_S, KC_D, KC_F, KC_LEFT, KC_DOWN, KC_RIGHT, KC_COMMA, KC_DOT - ) -}; - -void matrix_init_user(void) { - // Set LED's to max - _delay_us(300); - backlight_config.level = 2; - backlight_config.enable = 1; - eeconfig_update_backlight(backlight_config.raw); - backlight_set(backlight_config.level); - // Set RGB to rainbow mood light - rgblight_enable(); - rgblight_mode(1); - rgblight_sethsv(120,255,255); - rgblight_mode(6); -} diff --git a/keyboards/40percentclub/gherkin/keymaps/bbaserdem/rules.mk b/keyboards/40percentclub/gherkin/keymaps/bbaserdem/rules.mk deleted file mode 100644 index 07a20a4217..0000000000 --- a/keyboards/40percentclub/gherkin/keymaps/bbaserdem/rules.mk +++ /dev/null @@ -1,13 +0,0 @@ -USER_NAME := bbaserdem-nouserspace - -STENO_ENABLE = no # Additional protocols for Stenography(+1700), requires VIRTSER -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = no # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -AUDIO_ENABLE = no # Enable audio output from keyboard - -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE = yes # Enable RBG light strips -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality diff --git a/keyboards/40percentclub/gherkin/keymaps/itsaferbie/keymap.c b/keyboards/40percentclub/gherkin/keymaps/itsaferbie/keymap.c index 32c074c88f..950b6e86b9 100644 --- a/keyboards/40percentclub/gherkin/keymaps/itsaferbie/keymap.c +++ b/keyboards/40percentclub/gherkin/keymaps/itsaferbie/keymap.c @@ -105,7 +105,7 @@ void matrix_scan_user(void) { #ifdef RGBLIGHT_ENABLE static uint8_t old_layer = 255; - uint8_t new_layer = get_highest_layer(layer_state); + uint8_t new_layer = biton32(layer_state); // Color of the Icons. if (old_layer != new_layer) { diff --git a/keyboards/40percentclub/half_n_half/keymaps/Boy_314/keymap.c b/keyboards/40percentclub/half_n_half/keymaps/Boy_314/keymap.c index bd467482fe..2eef3dc48b 100644 --- a/keyboards/40percentclub/half_n_half/keymaps/Boy_314/keymap.c +++ b/keyboards/40percentclub/half_n_half/keymaps/Boy_314/keymap.c @@ -128,10 +128,10 @@ void tap_dance_choose_layer_reset (qk_tap_dance_state_t *state, void *user_data) layer_off(_RAISE); break; case 3: - if (get_highest_layer(default_layer_state) == _DVORAK) { + if (biton32(default_layer_state) == _DVORAK) { set_single_persistent_default_layer(_QWERTY); } - else if (get_highest_layer(default_layer_state) == _QWERTY) { + else if (biton32(default_layer_state) == _QWERTY) { set_single_persistent_default_layer(_DVORAK); } break; diff --git a/keyboards/40percentclub/mf68/keymaps/delivrance/rules.mk b/keyboards/40percentclub/mf68/keymaps/delivrance/rules.mk index 3d056cb71b..5ac2ce5ccb 100644 --- a/keyboards/40percentclub/mf68/keymaps/delivrance/rules.mk +++ b/keyboards/40percentclub/mf68/keymaps/delivrance/rules.mk @@ -1,5 +1,6 @@ BACKLIGHT_DRIVER = custom NKRO_ENABLE = yes +TERMINAL_ENABLE = yes DYNAMIC_MACRO_ENABLE = yes # Use RAM (fake EEPROM, transient) instead of real EEPROM diff --git a/keyboards/4pplet/perk60_iso/info.json b/keyboards/4pplet/perk60_iso/info.json new file mode 100644 index 0000000000..41716cce80 --- /dev/null +++ b/keyboards/4pplet/perk60_iso/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "Perk60 ISO Rev A", + "url": "", + "maintainer": "4pplet", + "layouts": { + "LAYOUT_60_iso": { + "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } + } +} diff --git a/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c b/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c new file mode 100644 index 0000000000..67a291fdab --- /dev/null +++ b/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + // basic function layer +[1] = LAYOUT_60_iso( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, 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/perk60_iso/keymaps/via/keymap.c b/keyboards/4pplet/perk60_iso/keymaps/via/keymap.c new file mode 100644 index 0000000000..89a7d23a5c --- /dev/null +++ b/keyboards/4pplet/perk60_iso/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer// main layer +[0] = 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + // basic function layer +[1] = LAYOUT_60_iso( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, 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_iso( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_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), + +[3] = LAYOUT_60_iso( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_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) +}; diff --git a/keyboards/peej/rosaline/keymaps/via-ortho/rules.mk b/keyboards/4pplet/perk60_iso/keymaps/via/rules.mk similarity index 100% rename from keyboards/peej/rosaline/keymaps/via-ortho/rules.mk rename to keyboards/4pplet/perk60_iso/keymaps/via/rules.mk diff --git a/keyboards/4pplet/perk60_iso/readme.md b/keyboards/4pplet/perk60_iso/readme.md new file mode 100644 index 0000000000..d3390c0c00 --- /dev/null +++ b/keyboards/4pplet/perk60_iso/readme.md @@ -0,0 +1,17 @@ +# Perk60 ISO Rev A + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: Perk60 ISO Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/perk60_iso/rev_a:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +How to enter bootloader (DFU): +* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware. +* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default. diff --git a/keyboards/4pplet/perk60_iso/rev_a/config.h b/keyboards/4pplet/perk60_iso/rev_a/config.h new file mode 100644 index 0000000000..d6697ada9e --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/config.h @@ -0,0 +1,79 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4444 +#define PRODUCT_ID 0x0009 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 4pplet +#define PRODUCT Perk60 ISO Rev A + +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +#define MATRIX_COL_PINS { A1, B12, B14, A2, A0, A3, A4} +#define MATRIX_ROW_PINS { C14, C13, B5, B4, B8, A15, B3, B9, A5, A7} +#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 */ +#define LOCKING_RESYNC_ENABLE + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_COUNT 1 +#define DRIVER_LED_TOTAL 62 +#define ISSI_PWM_FREQUENCY 0b010 + +#define STM32_HSECLK 8000000 + +#define RGB_MATRIX_STARTUP_VAL 80 +#define RGB_MATRIX_KEYPRESSES + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#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_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 +// 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_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH + diff --git a/keyboards/4pplet/perk60_iso/rev_a/halconf.h b/keyboards/4pplet/perk60_iso/rev_a/halconf.h new file mode 100644 index 0000000000..a1aac3152d --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/halconf.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 + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM FALSE + +#define HAL_USE_SPI FALSE + +#include_next diff --git a/keyboards/4pplet/yakiimo/rev_a/mcuconf.h b/keyboards/4pplet/perk60_iso/rev_a/mcuconf.h similarity index 95% rename from keyboards/4pplet/yakiimo/rev_a/mcuconf.h rename to keyboards/4pplet/perk60_iso/rev_a/mcuconf.h index 566a38124d..97f2ee51ee 100644 --- a/keyboards/4pplet/yakiimo/rev_a/mcuconf.h +++ b/keyboards/4pplet/perk60_iso/rev_a/mcuconf.h @@ -35,3 +35,6 @@ #define STM32_PLLQ_VALUE 7 #define STM32_PPRE1 STM32_PPRE1_DIV2 #define STM32_PPRE2 STM32_PPRE2_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/4pplet/perk60_iso/rev_a/readme.md b/keyboards/4pplet/perk60_iso/rev_a/readme.md new file mode 100644 index 0000000000..d3390c0c00 --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/readme.md @@ -0,0 +1,17 @@ +# Perk60 ISO Rev A + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: Perk60 ISO Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/perk60_iso/rev_a:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +How to enter bootloader (DFU): +* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware. +* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default. diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c new file mode 100644 index 0000000000..8f6ef05cec --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c @@ -0,0 +1,126 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "rev_a.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { + { 0, K_2, J_2, L_2 }, //D402 + { 0, K_3, J_3, L_3 }, //D403 + { 0, K_4, J_4, L_4 }, //D404 + { 0, K_5, J_5, L_5 }, //D405 + { 0, K_6, J_6, L_6 }, //D406 + { 0, K_7, J_7, L_7 }, //D407 + { 0, K_8, J_8, L_8 }, //D408 + { 0, K_9, J_9, L_9 }, //D409 + { 0, K_10, J_10, L_10 }, //D410 + { 0, K_11, J_11, L_11 }, //D411 + { 0, K_12, J_12, L_12 }, //D412 + { 0, K_13, J_13, L_13 }, //D413 + { 0, K_14, J_14, L_14 }, //D414 + { 0, K_15, J_15, L_15 }, //D415 + { 0, K_1, J_1, L_1 }, //D401 + { 0, H_4, G_4, I_4 }, //D420 + { 0, H_5, G_5, I_5 }, //D421 + { 0, H_6, G_6, I_6 }, //D422 + { 0, H_7, G_7, I_7 }, //D423 + { 0, H_8, G_8, I_8 }, //D424 + { 0, H_9, G_9, I_9 }, //D425 + { 0, H_10, G_10, I_10 }, //D426 + { 0, H_11, G_11, I_11 }, //D427 + { 0, H_12, G_12, I_12 }, //D428 + { 0, H_13, G_13, I_13 }, //D429 + { 0, H_14, G_14, I_14 }, //D430 + { 0, H_15, G_15, I_15 }, //D431 + { 0, K_16, J_16, L_16 }, //D416 + { 0, H_2, G_2, I_2 }, //D418 + { 0, H_3, G_3, I_3 }, //D419 + { 0, E_5, D_5, F_5 }, //D437 + { 0, E_6, D_6, F_6 }, //D438 + { 0, E_7, D_7, F_7 }, //D439 + { 0, E_8, D_8, F_8 }, //D440 + { 0, E_9, D_9, F_9 }, //D441 + { 0, E_10, D_10, F_10 }, //D442 + { 0, E_11, D_11, F_11 }, //D443 + { 0, E_12, D_12, F_12 }, //D444 + { 0, E_13, D_13, F_13 }, //D445 + { 0, E_14, D_14, F_14 }, //D446 + { 0, H_16, G_16, I_16 }, //D432 + { 0, H_1, G_1, I_1 }, //D417 + { 0, E_3, D_3, F_3 }, //D435 + { 0, E_4, D_4, F_4 }, //D436 + { 0, B_2, A_2, C_2 }, //D450 + { 0, B_3, A_3, C_3 }, //D451 + { 0, B_4, A_4, C_4 }, //D452 + { 0, B_6, A_6, C_6 }, //D454 + { 0, B_8, A_8, C_8 }, //D456 + { 0, B_9, A_9, C_9 }, //D457 + { 0, B_10, A_10, C_10 }, //D458 + { 0, B_12, A_12, C_12 }, //D460 + { 0, B_13, A_13, C_13 }, //D461 + { 0, E_15, D_15, F_15 }, //D447 + { 0, E_1, D_1, F_1 }, //D433 + { 0, E_2, D_2, F_2 }, //D434 + { 0, B_1, A_1, C_1 }, //D449 + { 0, B_7, A_7, C_7 }, //D455 + { 0, B_11, A_11, C_11 }, //D459 + { 0, B_14, A_14, C_14 }, //D462 + { 0, B_15, A_15, C_15 }, //D463 + { 0, B_16, A_16, C_16 } //D464 +}; + +led_config_t g_led_config = { + { + #define XXX NO_LED + + { 0, 2, 4, 6, 8, 10, 12 }, + { 1, 3, 5, 7, 9, 11, XXX }, + { 14, 16, 18, 20, 22, 24, 26 }, + { 15, 17, 19, 21, 23, 25, 13 }, + { 28, 30, 32, 34, 36, 38, 40 }, + { 29, 31, 33, 35, 37, 39, XXX }, + { 41, 43, 45, 47, 49, 51, XXX }, + { 42, 44, 46, 48, 50, 52, 27 }, + { 54, 55, XXX, 57, XXX, 60, 53 }, + { 56, XXX, XXX, 58, 59, 61, XXX }, + + }, { + { 0,0 }, { 16,0 }, { 32,0 }, { 48,0 }, { 65,0 }, { 81,0 }, { 97,0 }, {113,0 }, {129,0 }, {145,0 }, + {161,0 }, {178,0 }, {194,0 }, {218,0 }, { 4,16 }, { 24,16 }, { 40,16 }, { 57,16 }, { 73,16 }, { 89,16 }, + {105,16 }, {121,16 }, {137,16 }, {153,16 }, {170,16 }, {186,16 }, {202,16 }, {224,24 }, { 6,32 }, { 28,32 }, + { 44,32 }, { 61,32 }, { 77,32 }, { 93,32 }, {109,32 }, {125,32 }, {141,32 }, {157,32 }, {174,32 }, {190,32 }, + {206,32 }, { 2,48 }, { 20,48 }, { 36,48 }, { 52,48 }, { 69,48 }, { 85,48 }, {101,48 }, {117,48 }, {133,48 }, + {149,48 }, {165,48 }, {182,48 }, {212,48 }, { 2,64 }, { 22,64 }, { 42,64 }, {103,64 }, {163,64 }, {184,64 }, + {204,64 }, {224,64 }, + }, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 4, 1, 1, 1, 1 + } +}; + +__attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (host_keyboard_led_state().caps_lock && CAPS_LOCK_ENABLE) { + for (uint8_t i = led_min; i <= led_max; i++) { + if (g_led_config.flags[i] & CAPS_LED_GROUP) { + rgb_matrix_set_color(i, CAPS_LOCK_COLOR); + } + } + } +} +#endif diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.h b/keyboards/4pplet/perk60_iso/rev_a/rev_a.h new file mode 100644 index 0000000000..d1cd6a35d4 --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.h @@ -0,0 +1,43 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +#define CAPS_LOCK_ENABLE true +#define CAPS_LOCK_COLOR RGB_RED +#define CAPS_LED_GROUP LED_FLAG_INDICATOR // change what leds to target, for example LED_FLAG_KEYLIGHT for alpas or LED_FLAG_MODIFIER for modifiers + +#include "quantum.h" + +#define LAYOUT_60_iso( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k36, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k76, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k86,\ + k80, k90, k81, k83, k93, k94, k85, k95 \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06}, \ + {k10, k11, k12, k13, k14, k15, KC_NO}, \ + {k20, k21, k22, k23, k24, k25, k26}, \ + {k30, k31, k32, k33, k34, k35, k36}, \ + {k40, k41, k42, k43, k44, k45, k46}, \ + {k50, k51, k52, k53, k54, k55, KC_NO}, \ + {k60, k61, k62, k63, k64, k65, KC_NO}, \ + {k70, k71, k72, k73, k74, k75, k76}, \ + {k80, k81, KC_NO, k83, KC_NO, k85, k86}, \ + {k90, KC_NO, KC_NO, k93, k94, k95, KC_NO} \ +} diff --git a/keyboards/4pplet/perk60_iso/rev_a/rules.mk b/keyboards/4pplet/perk60_iso/rev_a/rules.mk new file mode 100644 index 0000000000..697898ae8e --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3733 + +LAYOUTS = 60_iso + +# 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/rev_a.h b/keyboards/4pplet/waffling80/rev_a/rev_a.h index d79fa17ebe..298a1b5a9f 100644 --- a/keyboards/4pplet/waffling80/rev_a/rev_a.h +++ b/keyboards/4pplet/waffling80/rev_a/rev_a.h @@ -31,7 +31,7 @@ along with this program. If not, see . k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k77, kb7, \ k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, \ k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k96, k87, \ - ka0, ka1, kb1, kb2, ka3, kb3, ka4, kb4, ka5, kb5, ka6, kb6, ka7, \ + ka0, kb1, ka1, kb2, ka3, kb3, ka4, kb4, ka5, kb5, ka6, kb6, ka7, \ kb0, ka2 \ ) \ { \ diff --git a/keyboards/4pplet/yakiimo/rev_a/config.h b/keyboards/4pplet/yakiimo/rev_a/config.h index 762ff55c41..bf16696014 100644 --- a/keyboards/4pplet/yakiimo/rev_a/config.h +++ b/keyboards/4pplet/yakiimo/rev_a/config.h @@ -40,5 +40,3 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 - -#define STM32_HSECLK 8000000 diff --git a/keyboards/4pplet/yakiimo/rev_a/rules.mk b/keyboards/4pplet/yakiimo/rev_a/rules.mk index 69e3ba1629..2f1c4fc78b 100644 --- a/keyboards/4pplet/yakiimo/rev_a/rules.mk +++ b/keyboards/4pplet/yakiimo/rev_a/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = GENERIC_STM32_F411XE # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/a_dux/config.h b/keyboards/a_dux/config.h index b007945774..4e9258667c 100644 --- a/keyboards/a_dux/config.h +++ b/keyboards/a_dux/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC2AB -#define PRODUCT_ID 0x3939 -#define DEVICE_VER 0x0001 -#define MANUFACTURER tapioki -#define PRODUCT Architeuthis dux - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 5 diff --git a/keyboards/a_dux/info.json b/keyboards/a_dux/info.json index e276128a62..7b9a43822a 100644 --- a/keyboards/a_dux/info.json +++ b/keyboards/a_dux/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Architeuthis dux", + "manufacturer": "tapioki", "url": "https://github.com/tapioki/cephalopoda", "maintainer": "@tapioki", + "usb": { + "vid": "0xC2AB", + "pid": "0x3939", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_2": { "layout": [ diff --git a/keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h b/keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..dbbff11bb6 --- /dev/null +++ b/keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,19 @@ +// Copyright 2021 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define LAYOUT_miryoku( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K33, K34, K35, K36 \ +) diff --git a/keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk new file mode 100644 index 0000000000..ef40279cbc --- /dev/null +++ b/keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk @@ -0,0 +1,4 @@ +# Copyright 2021 Manna Harbour +# https://github.com/manna-harbour/miryoku + +MIRYOKU_KLUDGE_THUMBCOMBOS=yes diff --git a/keyboards/abacus/config.h b/keyboards/abacus/config.h index 5a627e630a..a539eeabc2 100644 --- a/keyboards/abacus/config.h +++ b/keyboards/abacus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER nickolaij -#define PRODUCT abacus - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/abacus/info.json b/keyboards/abacus/info.json index 21d035c97c..858c6949b5 100644 --- a/keyboards/abacus/info.json +++ b/keyboards/abacus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Abacus", + "manufacturer": "nickolaij", "url": "https://www.github.com/nickolaij", "maintainer": "nickolaij", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/abatskeyboardclub/nayeon/config.h b/keyboards/abatskeyboardclub/nayeon/config.h index dad3ee307f..4af821539d 100644 --- a/keyboards/abatskeyboardclub/nayeon/config.h +++ b/keyboards/abatskeyboardclub/nayeon/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B47 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Abats Keyboard Club -#define PRODUCT Nayeon - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/abatskeyboardclub/nayeon/info.json b/keyboards/abatskeyboardclub/nayeon/info.json index 3df680f62b..acba956b06 100644 --- a/keyboards/abatskeyboardclub/nayeon/info.json +++ b/keyboards/abatskeyboardclub/nayeon/info.json @@ -1,9 +1,19 @@ { "keyboard_name": "Nayeon", + "manufacturer": "Abats Keyboard Club", "url": "", - "maintainer": "Ramon Imbao", + "maintainer": "ramonimbao", + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi_tsangan", + "LAYOUT_iso": "LAYOUT_tkl_f13_iso_tsangan" + }, + "usb": { + "vid": "0x4B47", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { - "LAYOUT_ansi": { + "LAYOUT_tkl_f13_ansi_tsangan": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, @@ -99,7 +109,105 @@ {"x":17.25, "y":5.25} ] }, - "LAYOUT_iso": { + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, @@ -196,6 +304,105 @@ {"x":17.25, "y":5.25} ] }, + "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, "LAYOUT_all": { "layout": [ {"x":0, "y":0}, diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c b/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c index f8d8d35058..3ea63b5b24 100644 --- a/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c +++ b/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( + [0] = LAYOUT_tkl_f13_ansi_tsangan( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c b/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c index eeef21b19e..ae81182acc 100644 --- a/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c +++ b/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( + [0] = LAYOUT_tkl_f13_iso_tsangan( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, diff --git a/keyboards/abatskeyboardclub/nayeon/nayeon.h b/keyboards/abatskeyboardclub/nayeon/nayeon.h index ba0b1498f7..fb1806f32d 100644 --- a/keyboards/abatskeyboardclub/nayeon/nayeon.h +++ b/keyboards/abatskeyboardclub/nayeon/nayeon.h @@ -24,7 +24,7 @@ // Full backspace // Full right shift // Full left shift -#define LAYOUT_ansi( \ +#define LAYOUT_tkl_f13_ansi_tsangan( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ @@ -40,11 +40,31 @@ { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, ___, k5b, k5c, k5d, k5e, k5f, k5g }, \ } +// ANSI layout +// Split backspace +// Split right shift +// Full left shift +#define LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k3d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, ___, ___, ___ }, \ + { k40, ___, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, ___, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + // ISO layout // Full backspace // Full right shift // Split left shift -#define LAYOUT_iso( \ +#define LAYOUT_tkl_f13_iso_tsangan( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ @@ -60,6 +80,26 @@ { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, ___, k5b, k5c, k5d, k5e, k5f, k5g }, \ } +// ISO layout +// Split backspace +// Split right shift +// Split left shift +#define LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k3d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k2d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, ___, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + // Layout for VIA // Split backspace // Split left shift diff --git a/keyboards/abatskeyboardclub/nayeon/rules.mk b/keyboards/abatskeyboardclub/nayeon/rules.mk index 1f52c37154..e94c1ace18 100644 --- a/keyboards/abatskeyboardclub/nayeon/rules.mk +++ b/keyboards/abatskeyboardclub/nayeon/rules.mk @@ -16,3 +16,5 @@ 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 + +LAYOUTS = tkl_f13_ansi_tsangan tkl_f13_ansi_tsangan_split_bs_rshift tkl_f13_iso_tsangan tkl_f13_iso_tsangan_split_bs_rshift diff --git a/keyboards/acekeyboard/titan60/config.h b/keyboards/acekeyboard/titan60/config.h index 6cfaa7980e..f348a12cf4 100644 --- a/keyboards/acekeyboard/titan60/config.h +++ b/keyboards/acekeyboard/titan60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xACE1 // Ace -#define PRODUCT_ID 0x5449 // TI -#define DEVICE_VER 0x0001 -#define MANUFACTURER Acekeyboard -#define PRODUCT titan60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/acekeyboard/titan60/info.json b/keyboards/acekeyboard/titan60/info.json index 8e7b41c9cd..0867639515 100644 --- a/keyboards/acekeyboard/titan60/info.json +++ b/keyboards/acekeyboard/titan60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Titan60", + "manufacturer": "Acekeyboard", "url": "https://acekeyboard.co/", "maintainer": "keebnewb", + "usb": { + "vid": "0xACE1", + "pid": "0x5449", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":2.75}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/acheron/apollo/87h/87h.c b/keyboards/acheron/apollo/87h/87h.c new file mode 100644 index 0000000000..3d3f364ba8 --- /dev/null +++ b/keyboards/acheron/apollo/87h/87h.c @@ -0,0 +1,16 @@ +/* Copyright 2022 Alvaro "Gondolindrim" Volpato + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "87h.h" diff --git a/keyboards/acheron/apollo/87h/87h.h b/keyboards/acheron/apollo/87h/87h.h new file mode 100644 index 0000000000..535575f451 --- /dev/null +++ b/keyboards/acheron/apollo/87h/87h.h @@ -0,0 +1,24 @@ +/* Copyright 2022 Alvaro "Gondolindrim" Volpato + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#if defined(KEYBOARD_acheron_apollo_87h_gamma) + #include "gamma.h" +#elif defined(KEYBOARD_acheron_apollo_87h_delta) + #include "delta.h" +#endif diff --git a/keyboards/acheron/apollo/87h/delta/config.h b/keyboards/acheron/apollo/87h/delta/config.h new file mode 100644 index 0000000000..04a440835f --- /dev/null +++ b/keyboards/acheron/apollo/87h/delta/config.h @@ -0,0 +1,116 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4150 // AP for AcheronProject +#define PRODUCT_ID 0x8775 // For 87H + 3 (revision Delta) +#define DEVICE_VER 0x0004 // Revision Delta +#define MANUFACTURER AcheronProject +#define PRODUCT Apollo87H + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +// C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 , C10, C11, C12, C13, C14, C15, C16 } +#define MATRIX_COL_PINS { C8 , C9 , A8 , A10, C7 , C6 , B14, B12, B10, B1 , C5 , C4 , A7 , B0 , C11, A3 , B4 } +// R0 , R1 , R2 , R3 , R4 , R5 +#define MATRIX_ROW_PINS { B3 , D2 , C12, A6 , A5 , A4 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define EEPROM_I2C_24LC256 +//#define I2C1_CLOCK_SPEED 400000 +//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 + +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +#define STM32_HSECLK 8000000 + +#define RGB_DI_PIN B15 +#define DRIVER_LED_TOTAL 87 + +#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 RGB_MATRIX_STARTUP_VAL 60 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT + +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_PIXEL_FLOW + +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/acheron/apollo/87h/delta/delta.c b/keyboards/acheron/apollo/87h/delta/delta.c new file mode 100644 index 0000000000..d55880d482 --- /dev/null +++ b/keyboards/acheron/apollo/87h/delta/delta.c @@ -0,0 +1,61 @@ +/* + Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "delta.h" + +void board_init(void) { + setPinInput(B9); + setPinInput(B10); +} + +led_config_t g_led_config = { { +// { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , 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 , NO_LED , NO_LED , NO_LED , NO_LED }, +// { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , NO_LED , NO_LED , 75 , NO_LED }, +// { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 } +// + { 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , NO_LED , 2 , 1 , 0 }, + { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 }, + { 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 }, + { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED }, + { 75 , NO_LED , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , 64 , NO_LED , NO_LED , 63 , NO_LED }, + { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 } +},{ +// "Fine-tuned" complex configuration + { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0}, + { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, + { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, + { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, + { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180}, + { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 126, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90} +// "Stock" simple configuration +// { 224, 0}, { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0}, +// { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, +// { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, +// { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, +// { 224, 180}, { 196, 180}, { 182, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 14, 180}, +// { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 126, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90} +}, { + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , + 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 +} }; diff --git a/keyboards/acheron/apollo/87h/delta/delta.h b/keyboards/acheron/apollo/87h/delta/delta.h new file mode 100644 index 0000000000..c3f5f6c22e --- /dev/null +++ b/keyboards/acheron/apollo/87h/delta/delta.h @@ -0,0 +1,38 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_tkl_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K59, K5A, K5B, K5C, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, ___, ___, ___ }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, ___, K5E, K5F, K5G } \ +} diff --git a/keyboards/acheron/apollo/87h/delta/halconf.h b/keyboards/acheron/apollo/87h/delta/halconf.h new file mode 100644 index 0000000000..9379352e8e --- /dev/null +++ b/keyboards/acheron/apollo/87h/delta/halconf.h @@ -0,0 +1,24 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c b/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c new file mode 100755 index 0000000000..2302aca4db --- /dev/null +++ b/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include 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_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/acheron/apollo/87h/delta/keymaps/via/keymap.c b/keyboards/acheron/apollo/87h/delta/keymaps/via/keymap.c new file mode 100755 index 0000000000..2302aca4db --- /dev/null +++ b/keyboards/acheron/apollo/87h/delta/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include 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_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/peej/rosaline/keymaps/via/rules.mk b/keyboards/acheron/apollo/87h/delta/keymaps/via/rules.mk similarity index 100% rename from keyboards/peej/rosaline/keymaps/via/rules.mk rename to keyboards/acheron/apollo/87h/delta/keymaps/via/rules.mk diff --git a/keyboards/acheron/apollo/87h/delta/mcuconf.h b/keyboards/acheron/apollo/87h/delta/mcuconf.h new file mode 100644 index 0000000000..fb972b86ad --- /dev/null +++ b/keyboards/acheron/apollo/87h/delta/mcuconf.h @@ -0,0 +1,41 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next +#undef STM32_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +#define STM32_PLLM_VALUE 4 +#define STM32_PLLN_VALUE 168 +#define STM32_PLLP_VALUE 4 +#define STM32_PLLQ_VALUE 7 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/apollo/87h/delta/rules.mk b/keyboards/acheron/apollo/87h/delta/rules.mk new file mode 100644 index 0000000000..1711dd486d --- /dev/null +++ b/keyboards/acheron/apollo/87h/delta/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = STM32F401 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +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/acheron/apollo/87h/gamma/config.h b/keyboards/acheron/apollo/87h/gamma/config.h new file mode 100644 index 0000000000..a28e498dcc --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/config.h @@ -0,0 +1,113 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4150 // AP for AcheronProject +#define PRODUCT_ID 0x8774 // For 87H + 2 (revision Gamma) +#define DEVICE_VER 0x0003 // Revision Gamma +#define MANUFACTURER AcheronProject +#define PRODUCT Apollo87H rev. Gamma + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +// C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 , C10, C11, C12, C13, C14, C15 } +#define MATRIX_COL_PINS { B3 , A15, A10, A8 , B14, B12, B10, B1 , B0 , A7 , A4 , A5 , A6 , C15, A0 , A1 } +// R0 , R1 , R2 , R3 , R4 , R5 +#define MATRIX_ROW_PINS { C14, C13, B9 , B4 , A3 , A2 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define EEPROM_I2C_24LC256 +//#define I2C1_CLOCK_SPEED 400000 +//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 + +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +#define STM32_HSECLK 8000000 + +// RGB Matrix defines +#define DRIVER_ADDR_1 0b0110000 + +#define DRIVER_COUNT 1 +#define DRIVER_1_LED_TOTAL 87 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL + +#define RGB_MATRIX_STARTUP_VAL 80 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_HUE_WAVE + +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN + +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.c b/keyboards/acheron/apollo/87h/gamma/gamma.c new file mode 100644 index 0000000000..72182d4f2a --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/gamma.c @@ -0,0 +1,152 @@ +/* + Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "gamma.h" + +void board_init(void) { + setPinInput(B9); + setPinInput(B10); +} + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ +// First row + {0, CS7_SW9 , CS9_SW9 , CS8_SW9 }, //ESC 0 + {0, CS7_SW8 , CS9_SW8 , CS8_SW8 }, //F1 1 + {0, CS7_SW7 , CS9_SW7 , CS8_SW7 }, //F2 2 + {0, CS7_SW6 , CS9_SW6 , CS8_SW6 }, //F3 3 + {0, CS7_SW5 , CS9_SW5 , CS8_SW5 }, //F4 4 + {0, CS7_SW4 , CS9_SW4 , CS8_SW4 }, //F5 5 + {0, CS7_SW3 , CS9_SW3 , CS8_SW3 }, //F6 6 + {0, CS7_SW2 , CS9_SW2 , CS8_SW2 }, //F7 7 + {0, CS7_SW1 , CS9_SW1 , CS8_SW1 }, //F8 8 + {0, CS18_SW2, CS16_SW2, CS17_SW2 }, //F9 9 + {0, CS18_SW3, CS16_SW3, CS17_SW3 }, //F10 10 + {0, CS18_SW4, CS16_SW4, CS17_SW4 }, //F11 11 + {0, CS18_SW6, CS16_SW6, CS17_SW6 }, //F12 12 + {0, CS18_SW7, CS16_SW7, CS17_SW7 }, //PRI 13 + {0, CS18_SW8, CS16_SW8, CS17_SW8 }, //SCR 14 + {0, CS18_SW9, CS16_SW9, CS17_SW9 }, //PAUS 15 +//Second row + {0, CS12_SW9, CS11_SW9, CS10_SW9 }, //GRAVE 16 + {0, CS12_SW8, CS11_SW8, CS10_SW8 }, //1 17 + {0, CS12_SW7, CS11_SW7, CS10_SW7 }, //2 18 + {0, CS12_SW6, CS11_SW6, CS10_SW6 }, //3 19 + {0, CS12_SW5, CS11_SW5, CS10_SW5 }, //4 20 + {0, CS12_SW4, CS11_SW4, CS10_SW4 }, //5 21 + {0, CS12_SW3, CS11_SW3, CS10_SW3 }, //6 22 + {0, CS12_SW2, CS11_SW2, CS10_SW2 }, //7 23 + {0, CS12_SW1, CS11_SW1, CS10_SW1 }, //8 24 + {0, CS15_SW1, CS13_SW1, CS14_SW1 }, //9 25 + {0, CS15_SW2, CS13_SW2, CS14_SW2 }, //0 26 + {0, CS15_SW3, CS13_SW3, CS14_SW3 }, //MINUS 27 + {0, CS15_SW4, CS13_SW4, CS14_SW4 }, //PLUS 28 + {0, CS15_SW5, CS13_SW5, CS14_SW5 }, //BKSP 29 + {0, CS15_SW7, CS13_SW7, CS14_SW7 }, //INS 30 + {0, CS15_SW8, CS13_SW8, CS14_SW8 }, //HOME 31 + {0, CS15_SW9, CS13_SW9, CS14_SW9 }, //PGUP 32 +//Third row + {0, CS4_SW9 , CS6_SW9 , CS5_SW9 }, //TAB 33 + {0, CS4_SW8 , CS6_SW8 , CS5_SW8 }, //Q 34 + {0, CS4_SW7 , CS6_SW7 , CS5_SW7 }, //W 35 + {0, CS4_SW6 , CS6_SW6 , CS5_SW6 }, //E 36 + {0, CS4_SW5 , CS6_SW5 , CS5_SW5 }, //R 37 + {0, CS4_SW4 , CS6_SW4 , CS5_SW4 }, //T 38 + {0, CS4_SW3 , CS6_SW3 , CS5_SW3 }, //Y 39 + {0, CS4_SW2 , CS6_SW2 , CS5_SW2 }, //U 40 + {0, CS4_SW1 , CS6_SW1 , CS5_SW1 }, //I 41 + {0, CS3_SW2 , CS1_SW2 , CS2_SW2 }, //O 42 + {0, CS3_SW3 , CS1_SW3 , CS2_SW3 }, //P 43 + {0, CS3_SW4 , CS1_SW4 , CS2_SW4 }, //LBRKT 44 + {0, CS3_SW5 , CS1_SW5 , CS2_SW5 }, //RBRKT 45 + {0, CS3_SW6 , CS1_SW6 , CS2_SW6 }, //BSLS 46 + {0, CS3_SW7 , CS1_SW7 , CS2_SW7 }, //DEL 47 + {0, CS3_SW8 , CS1_SW8 , CS2_SW8 }, //END 48 + {0, CS3_SW9 , CS1_SW9 , CS2_SW9 }, //PGDN 49 +//Fourth row + {0, CS33_SW9, CS32_SW9, CS31_SW9 }, //CAPS 50 + {0, CS33_SW8, CS32_SW8, CS31_SW8 }, //A 51 + {0, CS33_SW7, CS32_SW7, CS31_SW7 }, //S 52 + {0, CS33_SW6, CS32_SW6, CS31_SW6 }, //D 53 + {0, CS33_SW5, CS32_SW5, CS31_SW5 }, //F 54 + {0, CS33_SW4, CS32_SW4, CS31_SW4 }, //G 55 + {0, CS33_SW3, CS32_SW3, CS31_SW3 }, //H 56 + {0, CS33_SW2, CS32_SW2, CS31_SW2 }, //J 57 + {0, CS33_SW1, CS32_SW1, CS31_SW1 }, //K 58 + {0, CS39_SW2, CS38_SW2, CS37_SW2 }, //L 59 + {0, CS39_SW3, CS38_SW3, CS37_SW3 }, //COLON 60 + {0, CS39_SW4, CS38_SW4, CS37_SW4 }, //QUOTE 61 + {0, CS39_SW6, CS38_SW6, CS37_SW6 }, //ENTER 62 +//Fifth row + {0, CS30_SW9, CS28_SW9, CS29_SW9 }, //LSFT 63 + {0, CS30_SW7, CS28_SW7, CS29_SW7 }, //Z 64 + {0, CS30_SW6, CS28_SW6, CS29_SW6 }, //X 65 + {0, CS30_SW5, CS28_SW5, CS29_SW5 }, //C 66 + {0, CS30_SW4, CS28_SW4, CS29_SW4 }, //V 67 + {0, CS30_SW3, CS28_SW3, CS29_SW3 }, //B 68 + {0, CS30_SW2, CS28_SW2, CS29_SW2 }, //N 69 + {0, CS30_SW1, CS28_SW1, CS29_SW1 }, //M 70 + {0, CS36_SW1, CS35_SW1, CS34_SW1 }, //COMMA 71 + {0, CS36_SW3, CS35_SW3, CS34_SW3 }, //DOT 72 + {0, CS36_SW4, CS35_SW4, CS34_SW4 }, //SLASH 73 + {0, CS36_SW6, CS35_SW6, CS34_SW6 }, //RSFT 74 + {0, CS36_SW7, CS35_SW7, CS34_SW7 }, //UP 75 +//Sixth row + {0, CS27_SW9, CS25_SW9, CS26_SW9 }, //LCTRL 76 + {0, CS27_SW7, CS25_SW7, CS26_SW7 }, //LWIN 77 + {0, CS27_SW6, CS25_SW6, CS26_SW6 }, //LALT 78 + {0, CS27_SW5, CS25_SW5, CS26_SW5 }, //SPACE 79 + {0, CS27_SW3, CS25_SW3, CS26_SW3 }, //RALT 80 + {0, CS24_SW4, CS23_SW4, CS22_SW4 }, //RGUI 81 + {0, CS24_SW5, CS23_SW5, CS22_SW5 }, //MENU 82 + {0, CS24_SW6, CS23_SW6, CS22_SW6 }, //RCTRL 83 + {0, CS24_SW1, CS23_SW1, CS22_SW1 }, //LEFT 84 + {0, CS24_SW2, CS23_SW2, CS22_SW2 }, //DOWN 85 + {0, CS24_SW3, CS23_SW3, CS22_SW3 }, //RIGHT 86 + +}; + + +led_config_t g_led_config = { { + { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 }, + { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 }, + { 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 41 , 43 , 44 , 45 , 46 , 47 , 48 }, + { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED }, + { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 49 , 32 }, + { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , 84 , 85 , 86 } +},{ + { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, { 105, 0}, { 120, 0}, { 135, 0}, { 150, 0}, { 165, 0}, { 180, 0}, { 210, 0}, { 210, 0}, { 225, 0}, + { 0, 45}, { 15, 45}, { 30, 45}, { 45, 45}, { 60, 45}, { 75, 45}, { 90, 45}, { 105, 45}, { 120, 45}, { 135, 45}, { 150, 45}, { 165, 45}, { 180, 45}, { 210, 45}, { 210, 45}, { 215, 45}, + { 0, 90}, { 15, 90}, { 30, 90}, { 45, 90}, { 60, 90}, { 75, 90}, { 90, 90}, { 105, 90}, { 120, 90}, { 135, 90}, { 150, 90}, { 165, 90}, { 180, 90}, { 195, 90}, { 210, 90}, { 215, 90}, + { 0, 135}, { 15, 135}, { 30, 135}, { 45, 135}, { 60, 135}, { 75, 135}, { 90, 135}, { 105, 135}, { 120, 135}, { 135, 135}, { 150, 135}, { 165, 135}, { 180, 135}, + { 0, 180}, { 30, 180}, { 45, 180}, { 60, 180}, { 75, 180}, { 90, 180}, { 105, 180}, { 120, 180}, { 135, 180}, { 150, 180}, { 165, 180}, { 180, 180}, { 210, 180}, { 225, 45}, { 225, 0}, + { 0, 225}, { 15, 225}, { 30, 225}, { 90, 225}, { 135, 225}, { 150, 225}, { 165, 225}, { 180, 225}, { 195, 225}, { 210, 225}, { 225, 225} +}, { + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , 1 , 1 , + 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 +} }; +#endif diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.h b/keyboards/acheron/apollo/87h/gamma/gamma.h new file mode 100644 index 0000000000..97342016f2 --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/gamma.h @@ -0,0 +1,38 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_tkl_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K4F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K4E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5A, K5B, K5C, K5D, K5E, K5F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, ___, ___ }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D, K5E, K5F } \ +} diff --git a/keyboards/acheron/apollo/87h/gamma/halconf.h b/keyboards/acheron/apollo/87h/gamma/halconf.h new file mode 100644 index 0000000000..957fe10f42 --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/halconf.h @@ -0,0 +1,24 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +// #define HAL_USE_PWM TRUE +// #define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c new file mode 100755 index 0000000000..2302aca4db --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include 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_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/acheron/apollo/87h/gamma/keymaps/via/keymap.c b/keyboards/acheron/apollo/87h/gamma/keymaps/via/keymap.c new file mode 100755 index 0000000000..bb6b33219c --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include 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_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/acheron/apollo/87h/gamma/keymaps/via/rules.mk b/keyboards/acheron/apollo/87h/gamma/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/apollo/87h/gamma/mcuconf.h b/keyboards/acheron/apollo/87h/gamma/mcuconf.h new file mode 100644 index 0000000000..5983bdde90 --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/mcuconf.h @@ -0,0 +1,41 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next +#undef STM32_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +#define STM32_PLLM_VALUE 4 +#define STM32_PLLN_VALUE 96 +#define STM32_PLLP_VALUE 2 +#define STM32_PLLQ_VALUE 4 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +// #undef STM32_PWM_USE_ADVANCED +// #define STM32_PWM_USE_ADVANCED TRUE + +// #undef STM32_PWM_USE_TIM1 +// #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/apollo/87h/gamma/rules.mk b/keyboards/acheron/apollo/87h/gamma/rules.mk new file mode 100644 index 0000000000..fde739dac7 --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3741 +KEYBOARD_SHARED_EP = yes +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/acheron/apollo/87h/info.json b/keyboards/acheron/apollo/87h/info.json new file mode 100644 index 0000000000..e5d2c0d40d --- /dev/null +++ b/keyboards/acheron/apollo/87h/info.json @@ -0,0 +1,103 @@ +{ + "keyboard_name": "AcheronProject Apollo87H", + "url": "", + "maintainer": "Gondolindrim", + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"Page Up", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"Page Down", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Fn", "x":11.25, "y":5.25, "w":1.25}, + {"label":"GUI", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/acheron/apollo/87h/readme.md b/keyboards/acheron/apollo/87h/readme.md new file mode 100644 index 0000000000..f00dae4450 --- /dev/null +++ b/keyboards/acheron/apollo/87h/readme.md @@ -0,0 +1,25 @@ +# Acheron Apollo87H QMK firmware + +![apollo](https://acheronproject.com/images/apollo/delta-pictures/delta1_small.jpeg) + +The Apollo87H is Acheron Project's open-source, freely available tenkeyless (TKL) keyboard Printed Circuit Boards (PCB) which features: + +- Per-key RGB lighting +- Hotswap sockets +- ANSI default layout with F12 and 6.25 units spacebar. + +* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) +* Hardware Supported: open-source PCB using the [Joker template](https://acheronproject.com/joker_mcus/joker/). First units were manufactured using STM32F401 microcontroller; +* Hardware Availability: these PCBs are open-source so you can manufacture them yourself or order them from a factory. See the [project's documentation](https://acheronproject.com/pcbs/apollo/apollo/) for more information. + +In order to flash this PCB, first build the default layout (after setting up your build environment): + + make acheron/apollo/87h/:default + +Where `revision` is the revision of your PCB. Two revisions were prototyped and sold: _Gamma_ and _Delta_. Look into the label on the PCB's back to see what revision is yours. Ready-to-use binaries for the default and the VIA layouts are available in the release pages of the [project's repository](https://github.com/AcheronProject/Apollo87H). + +After building or downloading the firmware, put the PCB into DFU mode by holding the reset button for at least five seconds and upload the firmware onto the microcontroller through a utility like `dfu-util` or QMK Toolbox. Alternatively, you can build and flash using: + + make acheron/apollo/87h/: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/acheron/apollo/87htsc/87htsc.c b/keyboards/acheron/apollo/87htsc/87htsc.c new file mode 100644 index 0000000000..a476b7086e --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/87htsc.c @@ -0,0 +1,47 @@ +/* + Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "87htsc.h" + +void board_init(void) { + setPinInput(B9); + setPinInput(B10); +} + +led_config_t g_led_config = { { + { 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , NO_LED , 2 , 1 , 0 }, + { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 }, + { 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 }, + { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED }, + { 75 , NO_LED , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , 64 , NO_LED , NO_LED , 63 , NO_LED }, + { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , NO_LED , 80 , 81 , 82 , NO_LED , 83 , 84 , 85 } +},{ +// "Fine-tuned" complex configuration + { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0}, + { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, + { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, + { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, + { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180}, + { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 225}, { 210, 225}, { 224, 225} +}, { + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , + 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 +} }; diff --git a/keyboards/acheron/apollo/87htsc/87htsc.h b/keyboards/acheron/apollo/87htsc/87htsc.h new file mode 100644 index 0000000000..edfb2f4dab --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/87htsc.h @@ -0,0 +1,39 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +// 87t for 87-key plus tsangan +#define LAYOUT_tkl_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, ___, ___, ___ }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, ___, K5E, K5F, K5G } \ +} diff --git a/keyboards/acheron/apollo/87htsc/config.h b/keyboards/acheron/apollo/87htsc/config.h new file mode 100644 index 0000000000..9bf3840d76 --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/config.h @@ -0,0 +1,112 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4150 // AP for AcheronProject +#define PRODUCT_ID 0x8776 // For 87H + 4 +#define DEVICE_VER 0x0001 // Revision Alpha +#define MANUFACTURER AcheronProject +#define PRODUCT Apollo87H-T-SC + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +// C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 , C10, C11, C12, C13, C14, C15, C16 } +#define MATRIX_COL_PINS { C8 , C9 , A8 , A10, C7 , C6 , B14, B12, B10, B1 , C5 , C4 , A7 , B0 , C11, A3 , B4 } +// R0 , R1 , R2 , R3 , R4 , R5 +#define MATRIX_ROW_PINS { B3 , D2 , C12, A6 , A5 , A4 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +#define STM32_HSECLK 8000000 + +#define RGB_DI_PIN B15 +#define DRIVER_LED_TOTAL 86 + +#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 RGB_MATRIX_STARTUP_VAL 60 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT + +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_PIXEL_FLOW + +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/acheron/apollo/87htsc/halconf.h b/keyboards/acheron/apollo/87htsc/halconf.h new file mode 100644 index 0000000000..9379352e8e --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/halconf.h @@ -0,0 +1,24 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/acheron/apollo/87htsc/info.json b/keyboards/acheron/apollo/87htsc/info.json new file mode 100644 index 0000000000..bfa2229431 --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/info.json @@ -0,0 +1,102 @@ +{ + "keyboard_name": "AcheronProject Apollo87H-T-SC", + "url": "", + "maintainer": "Gondolindrim", + "layouts": { + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"Page Up", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"Page Down", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"GUI", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"GUI", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c b/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c new file mode 100755 index 0000000000..138771de25 --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include 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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/acheron/apollo/87htsc/keymaps/via/keymap.c b/keyboards/acheron/apollo/87htsc/keymaps/via/keymap.c new file mode 100755 index 0000000000..138771de25 --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include 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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/acheron/apollo/87htsc/keymaps/via/rules.mk b/keyboards/acheron/apollo/87htsc/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/apollo/87htsc/mcuconf.h b/keyboards/acheron/apollo/87htsc/mcuconf.h new file mode 100644 index 0000000000..fb972b86ad --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/mcuconf.h @@ -0,0 +1,41 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next +#undef STM32_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +#define STM32_PLLM_VALUE 4 +#define STM32_PLLN_VALUE 168 +#define STM32_PLLP_VALUE 4 +#define STM32_PLLQ_VALUE 7 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/apollo/87htsc/rules.mk b/keyboards/acheron/apollo/87htsc/rules.mk new file mode 100644 index 0000000000..2d2908dc6c --- /dev/null +++ b/keyboards/acheron/apollo/87htsc/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = STM32F401 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/acheron/apollo/88htsc/88htsc.c b/keyboards/acheron/apollo/88htsc/88htsc.c new file mode 100644 index 0000000000..88e0815b3f --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/88htsc.c @@ -0,0 +1,47 @@ +/* + Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "88htsc.h" + +void board_init(void) { + setPinInput(B9); + setPinInput(B10); +} + +led_config_t g_led_config = { { + { 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 }, + { 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 }, + { 50 , 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 }, + { 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , 63 , NO_LED , NO_LED , NO_LED , NO_LED }, + { 76 , NO_LED , 75 , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , NO_LED , NO_LED , 64 , NO_LED }, + { 77 , 78 , 79 , NO_LED , NO_LED , NO_LED , 80 , NO_LED , NO_LED , NO_LED , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 } +},{ +// "Fine-tuned" complex configuration + { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 45, 0}, { 28, 0}, { 14, 0}, { 0, 0}, + { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, + { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, + { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, + { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180}, + { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90} +}, { + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , + 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 +} }; diff --git a/keyboards/acheron/apollo/88htsc/88htsc.h b/keyboards/acheron/apollo/88htsc/88htsc.h new file mode 100644 index 0000000000..0963663c3f --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/88htsc.h @@ -0,0 +1,39 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +// 88T for 88-key plus tsangan +#define LAYOUT_tkl_f13_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, ___, ___, ___ }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, ___, K5E, K5F, K5G } \ +} diff --git a/keyboards/acheron/apollo/88htsc/config.h b/keyboards/acheron/apollo/88htsc/config.h new file mode 100644 index 0000000000..24574a9658 --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/config.h @@ -0,0 +1,112 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4150 // AP for AcheronProject +#define PRODUCT_ID 0x8873 // For 87H +#define DEVICE_VER 0x0001 // Revision Alpha +#define MANUFACTURER AcheronProject +#define PRODUCT Apollo88H-T-SC + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +// C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 , C10, C11, C12, C13, C14, C15, C16 } +#define MATRIX_COL_PINS { C8 , C9 , A8 , A10, C7 , C6 , B14, B12, B10, B1 , C5 , C4 , A7 , B0 , C11, A3 , B4 } +// R0 , R1 , R2 , R3 , R4 , R5 +#define MATRIX_ROW_PINS { B3 , D2 , C12, A6 , A5 , A4 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +#define STM32_HSECLK 8000000 + +#define RGB_DI_PIN B15 +#define DRIVER_LED_TOTAL 87 + +#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 RGB_MATRIX_STARTUP_VAL 60 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT + +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_PIXEL_FLOW + +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/acheron/apollo/88htsc/halconf.h b/keyboards/acheron/apollo/88htsc/halconf.h new file mode 100644 index 0000000000..9379352e8e --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/halconf.h @@ -0,0 +1,24 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/acheron/apollo/88htsc/info.json b/keyboards/acheron/apollo/88htsc/info.json new file mode 100644 index 0000000000..c848132b5c --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/info.json @@ -0,0 +1,103 @@ +{ + "keyboard_name": "AcheronProject Apollo88H-T-SC", + "url": "", + "maintainer": "Gondolindrim", + "layouts": { + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"F13", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"Page Up", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"Page Down", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"GUI", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"GUI", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c b/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c new file mode 100755 index 0000000000..ab688affe8 --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include 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 + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_f13_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_f13_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/acheron/apollo/88htsc/keymaps/via/keymap.c b/keyboards/acheron/apollo/88htsc/keymaps/via/keymap.c new file mode 100755 index 0000000000..ab688affe8 --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include 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 + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_f13_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_tkl_f13_ansi_tsangan( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/acheron/apollo/88htsc/keymaps/via/rules.mk b/keyboards/acheron/apollo/88htsc/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/apollo/88htsc/mcuconf.h b/keyboards/acheron/apollo/88htsc/mcuconf.h new file mode 100644 index 0000000000..fb972b86ad --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/mcuconf.h @@ -0,0 +1,41 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next +#undef STM32_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +#define STM32_PLLM_VALUE 4 +#define STM32_PLLN_VALUE 168 +#define STM32_PLLP_VALUE 4 +#define STM32_PLLQ_VALUE 7 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/apollo/88htsc/rules.mk b/keyboards/acheron/apollo/88htsc/rules.mk new file mode 100644 index 0000000000..1711dd486d --- /dev/null +++ b/keyboards/acheron/apollo/88htsc/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = STM32F401 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +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/acheron/apollo/readme.md b/keyboards/acheron/apollo/readme.md new file mode 100644 index 0000000000..67854611dc --- /dev/null +++ b/keyboards/acheron/apollo/readme.md @@ -0,0 +1,54 @@ +# Acheron Apollo QMK firmware + +![apollo](https://acheronproject.com/images/apollo/delta-pictures/delta1_small.jpeg) + +The Apollo is Acheron Project's family of open-source, freely available tenkeyless (TKL) keyboard Printed Circuit Boards (PCB) which main feature is the per-key RGB lighting. + +* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) +* Hardware Supported: open-source PCB using the [Joker template](https://acheronproject.com/joker_mcus/joker/). First units were manufactured using STM32F401 microcontroller; +* Hardware Availability: these PCBs are open-source so you can manufacture them yourself or order them from a factory. See the [project's documentation](https://acheronproject.com/pcbs/apollo/apollo/) for more information. + +As of april 7, 2022, Apollo comes in three different layouts: + +- 87H (default ANSI) +- 87H-T-SC (ANSI with tsangan bottom row and stepped caps); +- 88H-T-SC (ANSI with F13, tsangan bottom row and stepped caps); + +See each variant's README for more information on flashing. + +## Flashing instructions + +### Step 1: enter bootloader + +The DFU state in the bootloader can be accessed 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 physical button on the back of the PCB for at least five seconds +* **Keycode in layout**: Press the key mapped to `RESET` if it is available (ESC key at layer 1 in the default layout) + +### Step 2: compile firmware + +After accessing the DFU state in your PCB, build the default layout using: + + make acheron/apollo/87h/gamma:default # For 87H revision Gamma + make acheron/apollo/87h/delta:default # For 87H revision Delta + make acheron/apollo/87htsc:default # For 87H-T-SC (only a single revision as of may 2022) + make acheron/apollo/88htsc:default # For 88H-T-SC (only a single revision as of may 2022) + +### Step 3: flashing + +You can use a flashing tool like `dfu-util` or QMK Toolbox to download the resulting `*.bin` file into your PCB. + +### (Alternative) Compile and flash + +After accessing the DFU state in your PCB, you can compile-and-flash automatically using `dfu-util` through + + make acheron/apollo/:default:flash + +### VIA firmware + +When compiling, just substitute `default` for `via`. + +## Additional info + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/acheron/arctic/config.h b/keyboards/acheron/arctic/config.h index 1275eb5a65..63fa908081 100644 --- a/keyboards/acheron/arctic/config.h +++ b/keyboards/acheron/arctic/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4150 // AP for AcheronProject -#define PRODUCT_ID 0x4152 // AR for Arctic -#define DEVICE_VER 0x0001 // Revision pre-Alpha -#define MANUFACTURER AcheronProject -#define PRODUCT ArcticPCB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/acheron/arctic/info.json b/keyboards/acheron/arctic/info.json index 4f9974a1f6..4c249a31d3 100644 --- a/keyboards/acheron/arctic/info.json +++ b/keyboards/acheron/arctic/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ArcticPCB", + "manufacturer": "AcheronProject", "url": "http://gondolindrim.github.io/AcheronDocs/arctic/intro.html", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x4150", + "pid": "0x4152", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_tsangan": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Fn", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/acheron/athena/alpha/alpha.c b/keyboards/acheron/athena/alpha/alpha.c new file mode 100644 index 0000000000..645e0ea635 --- /dev/null +++ b/keyboards/acheron/athena/alpha/alpha.c @@ -0,0 +1,45 @@ +/* Copyright 2020 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 "alpha.h" + + +void board_init(void) { + setPinInput(B6); + setPinInput(B7); +} + +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); +} + +#define LED_PIN_ON_STATE 1 +void led_init_ports(void) { + palSetLineMode(LED_CAPS_LOCK_PIN, PAL_MODE_OUTPUT_OPENDRAIN | PAL_STM32_PUPDR_FLOATING); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + #ifdef CAPSLOCK_INDICATOR + if(res) { + writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); + } + #else + writePin(LED_CAPS_LOCK_PIN, 0); + #endif + return res; +} diff --git a/keyboards/acheron/athena/alpha/alpha.h b/keyboards/acheron/athena/alpha/alpha.h new file mode 100644 index 0000000000..99b9ba6e32 --- /dev/null +++ b/keyboards/acheron/athena/alpha/alpha.h @@ -0,0 +1,46 @@ +/* Copyright 2020 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 ___ KC_NO + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the Keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K59, K5A, K5B, K5D, K5E, K5F, K5G \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, ___, K5D, K5E, K5F, K5G }\ +} diff --git a/keyboards/acheron/athena/alpha/config.h b/keyboards/acheron/athena/alpha/config.h new file mode 100644 index 0000000000..3e0316377d --- /dev/null +++ b/keyboards/acheron/athena/alpha/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2020 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xAC11 +#define PRODUCT_ID 0x6584 // AT fot Athena +#define DEVICE_VER 0x0001 +#define MANUFACTURER AcheronProject +#define PRODUCT Athena + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { A8 , B14, B12, B10, B1 , B0 , A5 , A4 , A3 , A2 , A1 , A0 , C15, A7 , B4 , B3 , A15 } +#define MATRIX_ROW_PINS { B9 , C13, B8 , B5 , A14 , C14 } + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 2 +#define BACKLIGHT_LEVELS 20 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 5 +#define BACKLIGHT_ON_STATE 0 + +#define STM32_HSECLK 8000000 + +#define RGB_DI_PIN B15 +#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 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 + +#define LED_CAPS_LOCK_PIN A10 + +// If this is defined, the caps lock LED will turn on and off according to the state of caps lock. If not, the LED will shine like all other LEDs despite the caps lock state. +#define CAPSLOCK_INDICATOR diff --git a/keyboards/acheron/athena/alpha/halconf.h b/keyboards/acheron/athena/alpha/halconf.h new file mode 100644 index 0000000000..ebdb4954a1 --- /dev/null +++ b/keyboards/acheron/athena/alpha/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 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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 + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/acheron/athena/alpha/keymaps/default/keymap.c b/keyboards/acheron/athena/alpha/keymaps/default/keymap.c new file mode 100644 index 0000000000..e1a0c16808 --- /dev/null +++ b/keyboards/acheron/athena/alpha/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 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_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_F13 , KC_PSCR, KC_SCRL, KC_PAUS, + KC_TILD , KC_1, KC_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_PGUP, + KC_TAB, KC_Q, KC_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_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_NUHS, KC_ENT , KC_DEL, + 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_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT_all( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/acheron/athena/alpha/keymaps/via/keymap.c b/keyboards/acheron/athena/alpha/keymaps/via/keymap.c new file mode 100644 index 0000000000..e1a0c16808 --- /dev/null +++ b/keyboards/acheron/athena/alpha/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 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_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_F13 , KC_PSCR, KC_SCRL, KC_PAUS, + KC_TILD , KC_1, KC_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_PGUP, + KC_TAB, KC_Q, KC_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_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_NUHS, KC_ENT , KC_DEL, + 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_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT_all( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/acheron/athena/alpha/keymaps/via/rules.mk b/keyboards/acheron/athena/alpha/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/athena/alpha/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/athena/alpha/mcuconf.h b/keyboards/acheron/athena/alpha/mcuconf.h new file mode 100644 index 0000000000..35d7e95f57 --- /dev/null +++ b/keyboards/acheron/athena/alpha/mcuconf.h @@ -0,0 +1,44 @@ +/* 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_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +#define STM32_PLLM_VALUE 4 +#define STM32_PLLN_VALUE 96 +#define STM32_PLLP_VALUE 2 +#define STM32_PLLQ_VALUE 4 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/athena/alpha/rules.mk b/keyboards/acheron/athena/alpha/rules.mk new file mode 100644 index 0000000000..246db1d2e5 --- /dev/null +++ b/keyboards/acheron/athena/alpha/rules.mk @@ -0,0 +1,23 @@ +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +BACKLIGHT_DRIVER = pwm +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +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/athena.c b/keyboards/acheron/athena/athena.c new file mode 100644 index 0000000000..aa5fae94f6 --- /dev/null +++ b/keyboards/acheron/athena/athena.c @@ -0,0 +1,16 @@ +/* Copyright 2022 Alvaro "Gondolindrim" Volpato + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "athena.h" diff --git a/tests/tap_dance/examples.h b/keyboards/acheron/athena/athena.h similarity index 77% rename from tests/tap_dance/examples.h rename to keyboards/acheron/athena/athena.h index 2622af6b2f..0dd55ba8f1 100644 --- a/tests/tap_dance/examples.h +++ b/keyboards/acheron/athena/athena.h @@ -1,4 +1,4 @@ -/* Copyright 2022 Jouke Witteveen +/* Copyright 2022 Alvaro "Gondolindrim" Volpato * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -13,21 +13,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - #pragma once -#ifdef __cplusplus -extern "C" { -#endif +#include "quantum.h" -enum { - TD_ESC_CAPS, - CT_EGG, - CT_FLSH, - CT_CLN, - X_CTL, -}; - -#ifdef __cplusplus -} +#if defined(KEYBOARD_acheron_athena_alpha) + #include "alpha.h" +#elif defined(KEYBOARD_acheron_athena_beta) + #include "beta.h" #endif diff --git a/keyboards/acheron/athena/beta/beta.c b/keyboards/acheron/athena/beta/beta.c new file mode 100644 index 0000000000..06d40d1493 --- /dev/null +++ b/keyboards/acheron/athena/beta/beta.c @@ -0,0 +1,35 @@ +/* Copyright 2020 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 "beta.h" + + +void board_init(void) { + setPinInput(B6); + setPinInput(B7); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + #ifdef CAPSLOCK_INDICATOR + if(res) { + writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock); + } + #else + writePin(LED_CAPS_LOCK_PIN, 0); + #endif + return res; +} diff --git a/keyboards/acheron/athena/beta/beta.h b/keyboards/acheron/athena/beta/beta.h new file mode 100644 index 0000000000..99b9ba6e32 --- /dev/null +++ b/keyboards/acheron/athena/beta/beta.h @@ -0,0 +1,46 @@ +/* Copyright 2020 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 ___ KC_NO + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the Keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K59, K5A, K5B, K5D, K5E, K5F, K5G \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, ___, K5D, K5E, K5F, K5G }\ +} diff --git a/keyboards/acheron/athena/beta/config.h b/keyboards/acheron/athena/beta/config.h new file mode 100644 index 0000000000..559f501f95 --- /dev/null +++ b/keyboards/acheron/athena/beta/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2020 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xAC11 +#define PRODUCT_ID 0x6585 // AT+1 for Athena rev. Beta +#define DEVICE_VER 0x0002 // Rev. Beta +#define MANUFACTURER AcheronProject +#define PRODUCT Athena rev Beta + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { C7 , C6 , B14, B12, B10, B1 , C4 , A7 , A6 , A5 , A4 , A3 , A2 , C5 , A10, A8 , C9 } +#define MATRIX_ROW_PINS { C11, C12, C10, A15, C0 , A1 } + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +#define BACKLIGHT_PIN B0 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 3 +#define BACKLIGHT_PAL_MODE 2 +#define BACKLIGHT_LEVELS 20 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 5 + +#define STM32_HSECLK 8000000 + +#define RGB_DI_PIN B15 +#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 +#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 LED_CAPS_LOCK_PIN C8 + +// If this is defined, the caps lock LED will turn on and off according to the state of caps lock. If not, the LED will shine like all other LEDs despite the caps lock state. +#define CAPSLOCK_INDICATOR diff --git a/keyboards/acheron/athena/beta/halconf.h b/keyboards/acheron/athena/beta/halconf.h new file mode 100644 index 0000000000..ebdb4954a1 --- /dev/null +++ b/keyboards/acheron/athena/beta/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 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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 + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/acheron/athena/beta/keymaps/default/keymap.c b/keyboards/acheron/athena/beta/keymaps/default/keymap.c new file mode 100644 index 0000000000..e1a0c16808 --- /dev/null +++ b/keyboards/acheron/athena/beta/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 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_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_F13 , KC_PSCR, KC_SCRL, KC_PAUS, + KC_TILD , KC_1, KC_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_PGUP, + KC_TAB, KC_Q, KC_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_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_NUHS, KC_ENT , KC_DEL, + 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_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT_all( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/acheron/athena/beta/keymaps/via/keymap.c b/keyboards/acheron/athena/beta/keymaps/via/keymap.c new file mode 100644 index 0000000000..e1a0c16808 --- /dev/null +++ b/keyboards/acheron/athena/beta/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 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_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_F13 , KC_PSCR, KC_SCRL, KC_PAUS, + KC_TILD , KC_1, KC_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_PGUP, + KC_TAB, KC_Q, KC_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_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_NUHS, KC_ENT , KC_DEL, + 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_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT_all( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/acheron/athena/beta/keymaps/via/rules.mk b/keyboards/acheron/athena/beta/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/athena/beta/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/athena/beta/mcuconf.h b/keyboards/acheron/athena/beta/mcuconf.h new file mode 100644 index 0000000000..2f3b3e812a --- /dev/null +++ b/keyboards/acheron/athena/beta/mcuconf.h @@ -0,0 +1,44 @@ +/* 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_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +#define STM32_PLLM_VALUE 4 +#define STM32_PLLN_VALUE 168 +#define STM32_PLLP_VALUE 4 +#define STM32_PLLQ_VALUE 7 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/athena/beta/rules.mk b/keyboards/acheron/athena/beta/rules.mk new file mode 100644 index 0000000000..388b1e6a96 --- /dev/null +++ b/keyboards/acheron/athena/beta/rules.mk @@ -0,0 +1,23 @@ +MCU = STM32F401 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +BACKLIGHT_DRIVER = pwm +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +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/readme.md b/keyboards/acheron/athena/readme.md new file mode 100644 index 0000000000..1c091ada01 --- /dev/null +++ b/keyboards/acheron/athena/readme.md @@ -0,0 +1,25 @@ +# Acheron Athena QMK firmware + +![athena](https://acheronproject.com/images/athena/IMG_9653.jpg) + +The Athena is Acheron Project's open-source, freely available tenkeyless (TKL) keyboard Printed Circuit Boards (PCB) which features: + +- Per-key LED lighting +- Solderable MX switches support +- Wide variety of layouts including Tsangan bottom row, split right and left shifts, ISO enter, split backspace, F13 top row + +* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) +* Hardware Supported: open-source PCB using the [Joker template](https://acheronproject.com/joker_mcus/joker/). First units were manufactured using STM32F4x1 microcontroller; +* Hardware Availability: these PCBs are open-source so you can manufacture them yourself or order them from a factory. See the [project's documentation](https://acheronproject.com/pcbs/athena/athena/) for more information. + +In order to flash this PCB, first build the default layout (after setting up your build environment): + + make acheron/athena/:default + +Where `revision` is the revision of your PCB. Two revisions were prototyped and sold: _Alpha_ and _Beta_. Look into the label on the PCB's back to see what revision is yours. Ready-to-use binaries for the default and the VIA layouts are available in the release pages of the [project's repository](https://github.com/AcheronProject/Athena). + +After building or downloading the firmware, put the PCB into DFU mode by holding the reset button for at least five seconds and upload the firmware onto the microcontroller through a utility like `dfu-util` or QMK Toolbox. Alternatively, you can build and flash using: + + make acheron/athena/: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/acheron/austin/config.h b/keyboards/acheron/austin/config.h index ddbd6975d4..3b51bb3f86 100644 --- a/keyboards/acheron/austin/config.h +++ b/keyboards/acheron/austin/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xAC11 -#define PRODUCT_ID 0x4175 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DriftMechanics -#define PRODUCT Austin - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 19 diff --git a/keyboards/acheron/austin/info.json b/keyboards/acheron/austin/info.json index bee81486e3..6fda03534e 100755 --- a/keyboards/acheron/austin/info.json +++ b/keyboards/acheron/austin/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Austin", + "manufacturer": "DriftMechanics", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xAC11", + "pid": "0x4175", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/acheron/keebspcb/config.h b/keyboards/acheron/keebspcb/config.h index 05e08f74f7..4991c68a50 100644 --- a/keyboards/acheron/keebspcb/config.h +++ b/keyboards/acheron/keebspcb/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4150 // AP for AcheronProject -#define PRODUCT_ID 0x4B45 // KE for Keebs -#define DEVICE_VER 0x0001 // Revision pre-Alpha -#define MANUFACTURER AcheronProject -#define PRODUCT KeebsPCB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/acheron/keebspcb/info.json b/keyboards/acheron/keebspcb/info.json index b316cc6849..31dc899c42 100644 --- a/keyboards/acheron/keebspcb/info.json +++ b/keyboards/acheron/keebspcb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "KeebsPCB", + "manufacturer": "AcheronProject", "url": "http://gondolindrim.github.io/AcheronDocs/keebs/intro.html", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x4150", + "pid": "0x4B45", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_tsangan": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Menu", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/acheron/lasgweloth/config.h b/keyboards/acheron/lasgweloth/config.h index f9a2427fae..aebe821e3b 100644 --- a/keyboards/acheron/lasgweloth/config.h +++ b/keyboards/acheron/lasgweloth/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4150 // AP for AcheronProject -#define PRODUCT_ID 0x7641 // LA for Lasgweloth -#define DEVICE_VER 0x0001 -#define MANUFACTURER AcheronProect -#define PRODUCT Lasgweloth - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/acheron/lasgweloth/info.json b/keyboards/acheron/lasgweloth/info.json index b936b45d6e..7cade663da 100644 --- a/keyboards/acheron/lasgweloth/info.json +++ b/keyboards/acheron/lasgweloth/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Lasgweloth", + "manufacturer": "AcheronProject", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x4150", + "pid": "0x7641", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/acheron/shark/beta/config.h b/keyboards/acheron/shark/beta/config.h index 54fa270336..b50762b8af 100644 --- a/keyboards/acheron/shark/beta/config.h +++ b/keyboards/acheron/shark/beta/config.h @@ -47,8 +47,6 @@ along with this program. If not, see . #define BREATHING_PERIOD 5 #define BACKLIGHT_ON_STATE 1 -#define STM32_HSECLK 8000000 - #define RGB_DI_PIN B15 #define RGBLED_NUM 24 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/acheron/shark/beta/mcuconf.h b/keyboards/acheron/shark/beta/mcuconf.h index 35d7e95f57..63f1e30e64 100644 --- a/keyboards/acheron/shark/beta/mcuconf.h +++ b/keyboards/acheron/shark/beta/mcuconf.h @@ -17,19 +17,6 @@ #pragma once #include_next -#undef STM32_PLLM_VALUE -#undef STM32_PLLN_VALUE -#undef STM32_PLLP_VALUE -#undef STM32_PLLQ_VALUE -#undef STM32_PPRE1 -#undef STM32_PPRE2 - -#define STM32_PLLM_VALUE 4 -#define STM32_PLLN_VALUE 96 -#define STM32_PLLP_VALUE 2 -#define STM32_PLLQ_VALUE 4 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV1 #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/acheron/shark/beta/rules.mk b/keyboards/acheron/shark/beta/rules.mk index 928ad2d49a..0347228300 100644 --- a/keyboards/acheron/shark/beta/rules.mk +++ b/keyboards/acheron/shark/beta/rules.mk @@ -1,4 +1,5 @@ MCU = STM32F411 +BOARD = GENERIC_STM32_F411XE # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/ada/ada1800mini/config.h b/keyboards/ada/ada1800mini/config.h index 38be5ad5c7..36dc47c124 100644 --- a/keyboards/ada/ada1800mini/config.h +++ b/keyboards/ada/ada1800mini/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xADA0 -#define PRODUCT_ID 0x1800 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ada -#define PRODUCT ada1800mini - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/ada/ada1800mini/info.json b/keyboards/ada/ada1800mini/info.json index 8e746467fc..a7cf7986bd 100644 --- a/keyboards/ada/ada1800mini/info.json +++ b/keyboards/ada/ada1800mini/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ada1800mini", + "manufacturer": "Ada", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xADA0", + "pid": "0x1800", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ada/infinity81/config.h b/keyboards/ada/infinity81/config.h index af28efeae2..173f2685d7 100644 --- a/keyboards/ada/infinity81/config.h +++ b/keyboards/ada/infinity81/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xADA0 -#define PRODUCT_ID 0x0081 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ada -#define PRODUCT infinity81 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/ada/infinity81/info.json b/keyboards/ada/infinity81/info.json index 71fb774721..b2d465fdf9 100644 --- a/keyboards/ada/infinity81/info.json +++ b/keyboards/ada/infinity81/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "infinity81", + "manufacturer": "Ada", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xADA0", + "pid": "0x0081", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/adelheid/config.h b/keyboards/adelheid/config.h index aca9bdc701..cb6393393c 100644 --- a/keyboards/adelheid/config.h +++ b/keyboards/adelheid/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF100 -#define PRODUCT_ID 0xAD78 -#define DEVICE_VER 0x0002 -#define MANUFACTURER floookay -#define PRODUCT adelheid - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 15 diff --git a/keyboards/adelheid/info.json b/keyboards/adelheid/info.json index 8b92e306e0..c00755d403 100644 --- a/keyboards/adelheid/info.json +++ b/keyboards/adelheid/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Adelheid", + "manufacturer": "floookay", "url": "https://github.com/floookay/adelheid", "maintainer": "floookay", + "usb": { + "vid": "0xF100", + "pid": "0xAD78", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/adm42/info.json b/keyboards/adm42/info.json new file mode 100644 index 0000000000..cd8a28898b --- /dev/null +++ b/keyboards/adm42/info.json @@ -0,0 +1,56 @@ +{ + "keyboard_name": "ADM42 rev4", + "url": "https://adm42.dev/", + "maintainer": "lleonini", + "layouts": { + "LAYOUT_adm42_3x12_6": { + "layout": [ + {"label":"GUI/`~", "x":0, "y":0.8}, + {"label":"Q", "x":1, "y":0.8}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0.5}, + {"label":"T", "x":5, "y":0.5}, + {"label":"Y", "x":7.5, "y":0.5}, + {"label":"U", "x":8.5, "y":0.5}, + {"label":"I", "x":9.5, "y":0}, + {"label":"O", "x":10.5, "y":0}, + {"label":"P", "x":11.5, "y":0.8}, + {"label":"GUI/=+", "x":12.5, "y":0.8}, + + {"label":"Ctrl/Tab", "x":0, "y":1.8}, + {"label":"A", "x":1, "y":1.8}, + {"label":"S", "x":2, "y":1}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1.5}, + {"label":"G", "x":5, "y":1.5}, + {"label":"H", "x":7.5, "y":1.5}, + {"label":"J", "x":8.5, "y":1.5}, + {"label":"K", "x":9.5, "y":1}, + {"label":"L", "x":10.5, "y":1}, + {"label":";:", "x":11.5, "y":1.8}, + {"label":"Ctrl/'\"", "x":12.5, "y":1.8}, + + {"label":"Alt", "x":0, "y":2.8}, + {"label":"Z", "x":1, "y":2.8}, + {"label":"X", "x":2, "y":2}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2.5}, + {"label":"B", "x":5, "y":2.5}, + {"label":"N", "x":7.5, "y":2.5}, + {"label":"M", "x":8.5, "y":2.5}, + {"label":",<", "x":9.5, "y":2}, + {"label":".>", "x":10.5, "y":2}, + {"label":"/?", "x":11.5, "y":2.8}, + {"label":"Alt", "x":12.5, "y":2.8}, + + {"label":"Special/Esc", "x":4.25, "y":3.55}, + {"label":"Shift/Backspace", "x":5.25, "y":3.65}, + {"label":"Adm/Delete", "x":6.25, "y":1.875, "h":1.25}, + {"label":"Extra/Enter", "x":6.25, "y":4.05}, + {"label":"Shift/Space", "x":7.25, "y":3.65}, + {"label":"Special/Alt", "x":8.25, "y":3.55} + ] + } + } +} diff --git a/keyboards/adpenrose/kintsugi/config.h b/keyboards/adpenrose/kintsugi/config.h index b3aca40a06..cbde0090fa 100644 --- a/keyboards/adpenrose/kintsugi/config.h +++ b/keyboards/adpenrose/kintsugi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4450 // "ADP" -#define PRODUCT_ID 0x0001 // 'Cause it's my first keeb -#define DEVICE_VER 0x0001 -#define MANUFACTURER adpenrose -#define PRODUCT Kintsugi - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/adpenrose/kintsugi/info.json b/keyboards/adpenrose/kintsugi/info.json index 0e76187335..db9952af29 100644 --- a/keyboards/adpenrose/kintsugi/info.json +++ b/keyboards/adpenrose/kintsugi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kintsugi", + "manufacturer": "adpenrose", "url": "https://github.com/ADPenrose/kintsugi_keeb", "maintainer": "adpenrose", + "usb": { + "vid": "0x4450", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/aeboards/aegis/config.h b/keyboards/aeboards/aegis/config.h index 7f59c52005..631a007bf3 100644 --- a/keyboards/aeboards/aegis/config.h +++ b/keyboards/aeboards/aegis/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4145 // "AE" -#define PRODUCT_ID 0x0807 // 1800 -> 0x0708 -> 0x0807 ;-) -#define DEVICE_VER 0x0001 -#define MANUFACTURER AEboards -#define PRODUCT AEboards Aegis - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/aeboards/aegis/info.json b/keyboards/aeboards/aegis/info.json index ff0c9bf822..00e03f7685 100644 --- a/keyboards/aeboards/aegis/info.json +++ b/keyboards/aeboards/aegis/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Aegis", + "manufacturer": "AEboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4145", + "pid": "0x0807", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_aegis": { "layout": [ diff --git a/keyboards/ai03/andromeda/config.h b/keyboards/ai03/andromeda/config.h index f88eb02123..cfacca7c04 100644 --- a/keyboards/ai03/andromeda/config.h +++ b/keyboards/ai03/andromeda/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x000A -#define DEVICE_VER 0x0001 -#define MANUFACTURER ai03 Design Studio -#define PRODUCT Andromeda - #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/ai03/andromeda/info.json b/keyboards/ai03/andromeda/info.json index 0f4c0adb14..8e77bc59fd 100644 --- a/keyboards/ai03/andromeda/info.json +++ b/keyboards/ai03/andromeda/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Andromeda", + "manufacturer": "ai03 Design Studio", "url": "", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x000A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi_wkl": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] diff --git a/keyboards/ai03/jp60/config.h b/keyboards/ai03/jp60/config.h index 2e48321546..c951655ad9 100644 --- a/keyboards/ai03/jp60/config.h +++ b/keyboards/ai03/jp60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0024 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ai03 Design Studio -#define PRODUCT JP60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/ai03/jp60/info.json b/keyboards/ai03/jp60/info.json index d5453de734..a5428270f9 100644 --- a/keyboards/ai03/jp60/info.json +++ b/keyboards/ai03/jp60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "JP60", + "manufacturer": "ai03 Design Studio", "url": "https://github.com/ai03-2725/JP60", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0024", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ai03/lunar/config.h b/keyboards/ai03/lunar/config.h index 65f428776f..ed584c4461 100644 --- a/keyboards/ai03/lunar/config.h +++ b/keyboards/ai03/lunar/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Switchplate Peripherals -#define PRODUCT Lunar - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/ai03/lunar/info.json b/keyboards/ai03/lunar/info.json index ca2b35e3de..f65d21ab80 100644 --- a/keyboards/ai03/lunar/info.json +++ b/keyboards/ai03/lunar/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Lunar", + "manufacturer": "Switchplate Peripherals", "url": "https://geekhack.org/index.php?topic=96112.0", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ai03/orbit/config.h b/keyboards/ai03/orbit/config.h index 1b745b4e1f..775df8913f 100644 --- a/keyboards/ai03/orbit/config.h +++ b/keyboards/ai03/orbit/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0003 -#define MANUFACTURER ai03 Keyboard Designs -#define PRODUCT Orbit - /* key matrix size */ #define MATRIX_ROWS 10 // Double rows for split keyboards. Orbit has 5, so define 10 #define MATRIX_COLS 7 diff --git a/keyboards/ai03/orbit/info.json b/keyboards/ai03/orbit/info.json index a9f0804820..9deccb9a30 100644 --- a/keyboards/ai03/orbit/info.json +++ b/keyboards/ai03/orbit/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "orbit", + "keyboard_name": "Orbit", + "manufacturer": "ai03 Keyboard Designs", "url": "https://github.com/ai03-2725/Orbit", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0003", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ai03/orbit_x/config.h b/keyboards/ai03/orbit_x/config.h index 74acd64746..f5bc5f0b34 100644 --- a/keyboards/ai03/orbit_x/config.h +++ b/keyboards/ai03/orbit_x/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0014 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ai03 Design Studio -#define PRODUCT OrbitX - /* key matrix size */ #define MATRIX_ROWS 8 // Double the rows for split #define MATRIX_COLS 6 diff --git a/keyboards/ai03/orbit_x/info.json b/keyboards/ai03/orbit_x/info.json index 9d22282925..19ae38fcdf 100644 --- a/keyboards/ai03/orbit_x/info.json +++ b/keyboards/ai03/orbit_x/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Orbit-X", + "keyboard_name": "OrbitX", + "manufacturer": "ai03 Design Studio", "url": "", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0014", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ai03/polaris/config.h b/keyboards/ai03/polaris/config.h index 2d869dd0bd..8d8951cd71 100644 --- a/keyboards/ai03/polaris/config.h +++ b/keyboards/ai03/polaris/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ai03 Design Studio -#define PRODUCT Polaris - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/ai03/polaris/info.json b/keyboards/ai03/polaris/info.json index 99f8ca7a3d..c4bef0c4a0 100644 --- a/keyboards/ai03/polaris/info.json +++ b/keyboards/ai03/polaris/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Polaris", + "manufacturer": "ai03 Design Studio", "url": "https://kb.ai03.me/projects/polaris.html", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ai03/quasar/config.h b/keyboards/ai03/quasar/config.h index 97fa2df2da..99e0413566 100644 --- a/keyboards/ai03/quasar/config.h +++ b/keyboards/ai03/quasar/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0010 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ryota Goto -#define PRODUCT Quasar - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 16 diff --git a/keyboards/ai03/quasar/info.json b/keyboards/ai03/quasar/info.json index 439d4feea8..d404e644a0 100644 --- a/keyboards/ai03/quasar/info.json +++ b/keyboards/ai03/quasar/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "quasar", + "keyboard_name": "Quasar", + "manufacturer": "Ryota Goto", "url": "https://github.com/ai03-2725/Quasar/", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0010", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ai03/soyuz/config.h b/keyboards/ai03/soyuz/config.h index 8022145ceb..872fb58c13 100644 --- a/keyboards/ai03/soyuz/config.h +++ b/keyboards/ai03/soyuz/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0018 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ai03 Design Studio -#define PRODUCT Soyuz - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/ai03/soyuz/info.json b/keyboards/ai03/soyuz/info.json index 8195a6f099..98af3b3373 100644 --- a/keyboards/ai03/soyuz/info.json +++ b/keyboards/ai03/soyuz/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Soyuz", + "manufacturer": "ai03 Design Studio", "url": "https://github.com/ai03-2725/soyuz", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0018", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x4": { "layout": [ diff --git a/keyboards/ai03/vega/config.h b/keyboards/ai03/vega/config.h index 5f94ea9a7d..d6fbd8418d 100644 --- a/keyboards/ai03/vega/config.h +++ b/keyboards/ai03/vega/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0015 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ai03 Design Studio -#define PRODUCT Vega - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/ai03/vega/info.json b/keyboards/ai03/vega/info.json index 027f03ef35..ee66f539c9 100644 --- a/keyboards/ai03/vega/info.json +++ b/keyboards/ai03/vega/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Vega", + "manufacturer": "ai03 Design Studio", "url": "ai03.com", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0015", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ai03/voyager60_alps/config.h b/keyboards/ai03/voyager60_alps/config.h index cd06071989..5ae9a4c9f5 100644 --- a/keyboards/ai03/voyager60_alps/config.h +++ b/keyboards/ai03/voyager60_alps/config.h @@ -16,12 +16,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x060A -#define DEVICE_VER 0x0001 -#define MANUFACTURER ai03 -#define PRODUCT Voyager60-Alps - #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/ai03/voyager60_alps/info.json b/keyboards/ai03/voyager60_alps/info.json index 64cbaa668e..25c142f795 100644 --- a/keyboards/ai03/voyager60_alps/info.json +++ b/keyboards/ai03/voyager60_alps/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Voyager60-Alps", + "manufacturer": "ai03", "url": "https://github.com/ai03-2725/Voyager60/tree/alps", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x060A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "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.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":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":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/akb/eb46/config.h b/keyboards/akb/eb46/config.h index 644cd97305..68fa6aaf1c 100644 --- a/keyboards/akb/eb46/config.h +++ b/keyboards/akb/eb46/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4646 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Elliot Powell -#define PRODUCT eb46 /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/akb/eb46/info.json b/keyboards/akb/eb46/info.json index dbcc9abb83..d2cae832b5 100644 --- a/keyboards/akb/eb46/info.json +++ b/keyboards/akb/eb46/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "eb46", + "manufacturer": "Elliot Powell", "maintainer": "e11i0t23", + "usb": { + "vid": "0x4646", + "pid": "0xFEED", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/akb/raine/config.h b/keyboards/akb/raine/config.h index e0377514e2..c341ceb7dc 100644 --- a/keyboards/akb/raine/config.h +++ b/keyboards/akb/raine/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AKB -#define PRODUCT Raine - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/akb/raine/info.json b/keyboards/akb/raine/info.json index d3205ecb66..2efbba3fe1 100644 --- a/keyboards/akb/raine/info.json +++ b/keyboards/akb/raine/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "raine", + "keyboard_name": "Raine", + "manufacturer": "AKB", "maintainer": "e11i0t23", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/akegata_denki/device_one/config.h b/keyboards/akegata_denki/device_one/config.h index cae2c60c04..33a017f3fb 100644 --- a/keyboards/akegata_denki/device_one/config.h +++ b/keyboards/akegata_denki/device_one/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xADD0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER akegata denki -#define PRODUCT device one mechanical keyboard - #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/akegata_denki/device_one/info.json b/keyboards/akegata_denki/device_one/info.json index 34de2927b9..bc75208eb7 100644 --- a/keyboards/akegata_denki/device_one/info.json +++ b/keyboards/akegata_denki/device_one/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "device one", + "manufacturer": "akegata denki", "url": "https://akegata.co", + "usb": { + "vid": "0xFEED", + "pid": "0xADD0", + "device_version": "0.0.1" + }, "maintainer": "qmk", "layouts": { "LAYOUT_60_ansi": { diff --git a/keyboards/al1/config.h b/keyboards/al1/config.h index 07cc94a279..b0f485dfaa 100644 --- a/keyboards/al1/config.h +++ b/keyboards/al1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x544C -#define PRODUCT_ID 0x6050 -#define DEVICE_VER 0x0104 -#define MANUFACTURER Alsoran -#define PRODUCT AL1 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/al1/info.json b/keyboards/al1/info.json index 4014687fe9..bbb928a3ea 100644 --- a/keyboards/al1/info.json +++ b/keyboards/al1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "AL1", + "manufacturer": "Alsoran", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x544C", + "pid": "0x6050", + "device_version": "1.0.4" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/aleblazer/zodiark/config.h b/keyboards/aleblazer/zodiark/config.h index a3ea6382e4..90ecb7ce96 100644 --- a/keyboards/aleblazer/zodiark/config.h +++ b/keyboards/aleblazer/zodiark/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF901 -#define PRODUCT_ID 0xF902 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Aleblazer -#define PRODUCT Zodiark - #define SOFT_SERIAL_PIN D3 #define SERIAL_USE_MULTI_TRANSACTION #define SELECT_SOFT_SERIAL_SPEED 1 diff --git a/keyboards/aleblazer/zodiark/info.json b/keyboards/aleblazer/zodiark/info.json index 89e3deb414..a42819b3a1 100644 --- a/keyboards/aleblazer/zodiark/info.json +++ b/keyboards/aleblazer/zodiark/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "zodiark", + "keyboard_name": "Zodiark", + "manufacturer": "Aleblazer", "url": "https://github.com/Aleblazer/qmk_firmware/tree/master/keyboards/zodiark", "maintainer": "Aleblazer", + "usb": { + "vid": "0xF901", + "pid": "0xF902", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/alf/dc60/config.h b/keyboards/alf/dc60/config.h index bdbea9578c..8e5d855d0d 100644 --- a/keyboards/alf/dc60/config.h +++ b/keyboards/alf/dc60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Alf -#define PRODUCT dc60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/alf/dc60/info.json b/keyboards/alf/dc60/info.json index f10d594fc8..81b8613e5b 100644 --- a/keyboards/alf/dc60/info.json +++ b/keyboards/alf/dc60/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "dc60", + "manufacturer": "Alf", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] diff --git a/keyboards/alf/x11/config.h b/keyboards/alf/x11/config.h index a489174b2d..cbe4733397 100644 --- a/keyboards/alf/x11/config.h +++ b/keyboards/alf/x11/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Alf -#define PRODUCT x11 - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 13 diff --git a/keyboards/alf/x11/info.json b/keyboards/alf/x11/info.json index 14d4a5efb7..b65a843b28 100644 --- a/keyboards/alf/x11/info.json +++ b/keyboards/alf/x11/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "x11", + "manufacturer": "Alf", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/alf/x2/config.h b/keyboards/alf/x2/config.h index a6f4958b05..50e256778a 100644 --- a/keyboards/alf/x2/config.h +++ b/keyboards/alf/x2/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ALF -#define PRODUCT X2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/alf/x2/info.json b/keyboards/alf/x2/info.json index 4a3cc839c9..7bb69d15e6 100644 --- a/keyboards/alf/x2/info.json +++ b/keyboards/alf/x2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ALF X2", + "keyboard_name": "X2", + "manufacturer": "ALF", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/alfredslab/swift65/hotswap/config.h b/keyboards/alfredslab/swift65/hotswap/config.h new file mode 100644 index 0000000000..3845c885e1 --- /dev/null +++ b/keyboards/alfredslab/swift65/hotswap/config.h @@ -0,0 +1,59 @@ +/* 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 + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B1, B2, B3, D6, D4 } +#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, C7, C6, B6, B5, B4, D7, D5, D3, D1 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN D2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 22 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== 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/alfredslab/swift65/hotswap/hotswap.c b/keyboards/alfredslab/swift65/hotswap/hotswap.c new file mode 100644 index 0000000000..83546fff4e --- /dev/null +++ b/keyboards/alfredslab/swift65/hotswap/hotswap.c @@ -0,0 +1,19 @@ +/* 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 . + */ + + +#include "hotswap.h" + diff --git a/keyboards/alfredslab/swift65/hotswap/hotswap.h b/keyboards/alfredslab/swift65/hotswap/hotswap.h new file mode 100644 index 0000000000..ab9c3d8250 --- /dev/null +++ b/keyboards/alfredslab/swift65/hotswap/hotswap.h @@ -0,0 +1,35 @@ +/* Copyright 2022 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 + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_7u_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K46, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ + { XXX, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, K4E }, \ +} diff --git a/keyboards/alfredslab/swift65/hotswap/info.json b/keyboards/alfredslab/swift65/hotswap/info.json new file mode 100644 index 0000000000..21895a1b2d --- /dev/null +++ b/keyboards/alfredslab/swift65/hotswap/info.json @@ -0,0 +1,87 @@ +{ + "keyboard_name": "Swift65 Hotswap", + "manufacturer": "AlfredsLab", + "url": "https://swiftcables.net/", + "maintainer": "Spooknik", + "usb": { + "vid": "0xBBEB", + "pid": "0xD4C4", + "device_version": "0.0.1" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_7u_space", + "LAYOUT_all": "LAYOUT_7u_space" + }, + "layouts": { + "LAYOUT_7u_space": { + "layout": [ + { "label": "K00 (B1,F7)", "x": 0, "y": 0 }, + { "label": "K01 (B1,F6)", "x": 1, "y": 0 }, + { "label": "K02 (B1,F5)", "x": 2, "y": 0 }, + { "label": "K03 (B1,F4)", "x": 3, "y": 0 }, + { "label": "K04 (B1,F1)", "x": 4, "y": 0 }, + { "label": "K05 (B1,F0)", "x": 5, "y": 0 }, + { "label": "K06 (B1,C7)", "x": 6, "y": 0 }, + { "label": "K07 (B1,C6)", "x": 7, "y": 0 }, + { "label": "K08 (B1,B6)", "x": 8, "y": 0 }, + { "label": "K09 (B1,B5)", "x": 9, "y": 0 }, + { "label": "K0A (B1,B4)", "x": 10, "y": 0 }, + { "label": "K0B (B1,D7)", "x": 11, "y": 0 }, + { "label": "K0C (B1,D5)", "x": 12, "y": 0 }, + { "label": "K0D (B1,D3)", "x": 13, "y": 0, "w": 2 }, + { "label": "K0E (B1,D1)", "x": 15.25, "y": 0 }, + { "label": "K10 (B2,F7)", "x": 0, "y": 1, "w": 1.5 }, + { "label": "K11 (B2,F6)", "x": 1.5, "y": 1 }, + { "label": "K12 (B2,F5)", "x": 2.5, "y": 1 }, + { "label": "K13 (B2,F4)", "x": 3.5, "y": 1 }, + { "label": "K14 (B2,F1)", "x": 4.5, "y": 1 }, + { "label": "K15 (B2,F0)", "x": 5.5, "y": 1 }, + { "label": "K16 (B2,C7)", "x": 6.5, "y": 1 }, + { "label": "K17 (B2,C6)", "x": 7.5, "y": 1 }, + { "label": "K18 (B2,B6)", "x": 8.5, "y": 1 }, + { "label": "K19 (B2,B5)", "x": 9.5, "y": 1 }, + { "label": "K1A (B2,B4)", "x": 10.5, "y": 1 }, + { "label": "K1B (B2,D7)", "x": 11.5, "y": 1 }, + { "label": "K1C (B2,D5)", "x": 12.5, "y": 1 }, + { "label": "K1D (B2,D3)", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "K1E (B2,D1)", "x": 15.25, "y": 1 }, + { "label": "K20 (B3,F7)", "x": 0, "y": 2, "w": 1.75 }, + { "label": "K21 (B3,F6)", "x": 1.75, "y": 2 }, + { "label": "K22 (B3,F5)", "x": 2.75, "y": 2 }, + { "label": "K23 (B3,F4)", "x": 3.75, "y": 2 }, + { "label": "K24 (B3,F1)", "x": 4.75, "y": 2 }, + { "label": "K25 (B3,F0)", "x": 5.75, "y": 2 }, + { "label": "K26 (B3,C7)", "x": 6.75, "y": 2 }, + { "label": "K27 (B3,C6)", "x": 7.75, "y": 2 }, + { "label": "K28 (B3,B6)", "x": 8.75, "y": 2 }, + { "label": "K29 (B3,B5)", "x": 9.75, "y": 2 }, + { "label": "K2A (B3,B4)", "x": 10.75, "y": 2 }, + { "label": "K2B (B3,D7)", "x": 11.75, "y": 2 }, + { "label": "K2D (B3,D3)", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "K2E (B3,D1)", "x": 15.25, "y": 2 }, + { "label": "K31 (D6,F6)", "x": 0, "y": 3, "w": 2.25 }, + { "label": "K32 (D6,F5)", "x": 2.25, "y": 3 }, + { "label": "K33 (D6,F4)", "x": 3.25, "y": 3 }, + { "label": "K34 (D6,F1)", "x": 4.25, "y": 3 }, + { "label": "K35 (D6,F0)", "x": 5.25, "y": 3 }, + { "label": "K36 (D6,C7)", "x": 6.25, "y": 3 }, + { "label": "K37 (D6,C6)", "x": 7.25, "y": 3 }, + { "label": "K38 (D6,B6)", "x": 8.25, "y": 3 }, + { "label": "K39 (D6,B5)", "x": 9.25, "y": 3 }, + { "label": "K3A (D6,B4)", "x": 10.25, "y": 3 }, + { "label": "K3B (D6,D7)", "x": 11.25, "y": 3 }, + { "label": "K3C (D6,D5)", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "K3D (D6,D3)", "x": 14, "y": 3 }, + { "label": "K40 (D4,F7)", "x": 0, "y": 4, "w": 1.5 }, + { "label": "K41 (D4,F6)", "x": 1.5, "y": 4}, + { "label": "K42 (D4,F5)", "x": 2.5, "y": 4, "w": 1.5 }, + { "label": "K46 (D4,C7)", "x": 4, "y": 4, "w": 7}, + { "label": "K4B (D4,D7)", "x": 11, "y": 4, "w": 1.5 }, + { "label": "K4C (D4,D5)", "x": 13, "y": 4 }, + { "label": "K4D (D4,D3)", "x": 14, "y": 4 }, + { "label": "K4E (D4,D1)", "x": 15, "y": 4 } + ] + } + } +} + diff --git a/keyboards/alfredslab/swift65/hotswap/keymaps/default/keymap.c b/keyboards/alfredslab/swift65/hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..f2a8ce8385 --- /dev/null +++ b/keyboards/alfredslab/swift65/hotswap/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2022 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 . + */ + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_7u_space( + KC_ESC, KC_1, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_7u_space( + 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_PGDN, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + +}; \ No newline at end of file diff --git a/keyboards/alfredslab/swift65/hotswap/keymaps/via/keymap.c b/keyboards/alfredslab/swift65/hotswap/keymaps/via/keymap.c new file mode 100644 index 0000000000..06159dc721 --- /dev/null +++ b/keyboards/alfredslab/swift65/hotswap/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_7u_space( + KC_ESC, KC_1, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_7u_space( + 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_PGDN, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + + + [2] = LAYOUT_7u_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_7u_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/alfredslab/swift65/hotswap/keymaps/via/rules.mk b/keyboards/alfredslab/swift65/hotswap/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/alfredslab/swift65/hotswap/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/alfredslab/swift65/hotswap/readme.md b/keyboards/alfredslab/swift65/hotswap/readme.md new file mode 100644 index 0000000000..b5acc2a9c9 --- /dev/null +++ b/keyboards/alfredslab/swift65/hotswap/readme.md @@ -0,0 +1,19 @@ +# Swift65 + +A 65% Keyboard from Swiftcables + +* Keyboard Maintainer: [Steven Phillips (spooknik)](https://github.com/keyboardcollective) +* Hardware Supported: Swift65 Hotswap +* Hardware Availability: Soom from Swiftcables + +To enter bootloader for flashing firmware, press layer change key (MO(1)) and Right Shift simultaneously. + +Make example for this keyboard (after setting up your build environment): + + make alfredslab/swift65/hotswap:default + +Flashing example for this keyboard: + + make alfredslab/swift65/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/alfredslab/swift65/hotswap/rules.mk b/keyboards/alfredslab/swift65/hotswap/rules.mk new file mode 100644 index 0000000000..a6a5692999 --- /dev/null +++ b/keyboards/alfredslab/swift65/hotswap/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/alfredslab/swift65/solder/config.h b/keyboards/alfredslab/swift65/solder/config.h index 509aae6a89..f0161bf616 100644 --- a/keyboards/alfredslab/swift65/solder/config.h +++ b/keyboards/alfredslab/swift65/solder/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBBEB -#define PRODUCT_ID 0xD4C3 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlfredsLab -#define PRODUCT Swift65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/alfredslab/swift65/solder/info.json b/keyboards/alfredslab/swift65/solder/info.json index 69729e4330..154747b588 100644 --- a/keyboards/alfredslab/swift65/solder/info.json +++ b/keyboards/alfredslab/swift65/solder/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Swift65", + "keyboard_name": "Swift65 Solder", + "manufacturer": "AlfredsLab", "url": "https://swiftcables.net/", "maintainer": "Spooknik", + "usb": { + "vid": "0xBBEB", + "pid": "0xD4C3", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_625u_space_split_bs", "LAYOUT_all": "LAYOUT_625u_space_split_bs" diff --git a/keyboards/alpha/config.h b/keyboards/alpha/config.h index ae1c69656b..379b879abc 100755 --- a/keyboards/alpha/config.h +++ b/keyboards/alpha/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PyroL -#define PRODUCT alpha - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 10 diff --git a/keyboards/alpha/info.json b/keyboards/alpha/info.json index 3564b8d536..eb6144bdbf 100644 --- a/keyboards/alpha/info.json +++ b/keyboards/alpha/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Alpha", + "manufacturer": "PyroL", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":0.5, "y":2}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2, "w":2}, {"x":6.5, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}] diff --git a/keyboards/alpine65/config.h b/keyboards/alpine65/config.h index ce674396ab..a5180dc227 100644 --- a/keyboards/alpine65/config.h +++ b/keyboards/alpine65/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6680 // BP for Bitmap -#define PRODUCT_ID 0x0065 // AR for Arctic -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bitmap Designs -#define PRODUCT Alpine65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/alpine65/info.json b/keyboards/alpine65/info.json index 94cd3589a3..51006056c9 100644 --- a/keyboards/alpine65/info.json +++ b/keyboards/alpine65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Alpine65", + "manufacturer": "Bitmap Designs", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x6680", + "pid": "0x0065", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/alps64/config.h b/keyboards/alps64/config.h index 640bab8bca..9656678fe9 100644 --- a/keyboards/alps64/config.h +++ b/keyboards/alps64/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6873 //hs "Hasu" -#define PRODUCT_ID 0x6464 //Alps"64" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hasu -#define PRODUCT Alps64 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/alps64/info.json b/keyboards/alps64/info.json index c7917c8c6e..d2b2400997 100644 --- a/keyboards/alps64/info.json +++ b/keyboards/alps64/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "alps64", + "keyboard_name": "Alps64", + "manufacturer": "Hasu", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6873", + "pid": "0x6464", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/amag23/config.h b/keyboards/amag23/config.h index 798fcf9d0f..cbbac33136 100644 --- a/keyboards/amag23/config.h +++ b/keyboards/amag23/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B54 // "KT" -#define PRODUCT_ID 0x2323 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Koolertron -#define PRODUCT AMAG23 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 6 diff --git a/keyboards/amag23/info.json b/keyboards/amag23/info.json index dc44b51224..7eb9aed982 100644 --- a/keyboards/amag23/info.json +++ b/keyboards/amag23/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "AMAG23", + "manufacturer": "Koolertron", "url": "http://www.koolertron.com/koolertron-one-handed-macro-mechanical-keyboard-rgb-led-backlit-portable-mini-onehanded-mechanical-gaming-keypad-23-fully-programmable-keys-blue-switches-p-874.html", "maintainer": "ianmclinden", + "usb": { + "vid": "0x4B54", + "pid": "0x2323", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/amjkeyboard/amj40/config.h b/keyboards/amjkeyboard/amj40/config.h index 2f472eac01..168d16eaee 100755 --- a/keyboards/amjkeyboard/amj40/config.h +++ b/keyboards/amjkeyboard/amj40/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00D8 //A+M+J -#define PRODUCT_ID 0x6072 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Han Chen -#define PRODUCT AMJ40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/amjkeyboard/amj40/info.json b/keyboards/amjkeyboard/amj40/info.json index 575fd1b034..cb7c274f10 100644 --- a/keyboards/amjkeyboard/amj40/info.json +++ b/keyboards/amjkeyboard/amj40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "AMJ40", + "manufacturer": "Han Chen", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x00D8", + "pid": "0x6072", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/amjkeyboard/amj60/config.h b/keyboards/amjkeyboard/amj60/config.h index 4e894a45fc..a3764d00d2 100644 --- a/keyboards/amjkeyboard/amj60/config.h +++ b/keyboards/amjkeyboard/amj60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00D8 //A+M+J -#define PRODUCT_ID 0x6066 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Han Chen -#define PRODUCT AMJ60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/amjkeyboard/amj60/info.json b/keyboards/amjkeyboard/amj60/info.json index 2c1781738e..3b106beb18 100644 --- a/keyboards/amjkeyboard/amj60/info.json +++ b/keyboards/amjkeyboard/amj60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "AMJ60", + "manufacturer": "Han Chen", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x00D8", + "pid": "0x6066", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/amjkeyboard/amj66/config.h b/keyboards/amjkeyboard/amj66/config.h index cc84524b0b..240cb312c9 100644 --- a/keyboards/amjkeyboard/amj66/config.h +++ b/keyboards/amjkeyboard/amj66/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00D8 //A+M+J -#define PRODUCT_ID 0xBD66 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AMJKeyboard -#define PRODUCT AMJ66 - /* Key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/amjkeyboard/amj66/info.json b/keyboards/amjkeyboard/amj66/info.json index 27a6ecdb94..2b55e1e3c3 100644 --- a/keyboards/amjkeyboard/amj66/info.json +++ b/keyboards/amjkeyboard/amj66/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "AMJ66", + "manufacturer": "AMJKeyboard", "url": "", "maintainer": "FSund, qmk", + "usb": { + "vid": "0x00D8", + "pid": "0xBD66", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/amjkeyboard/amj84/config.h b/keyboards/amjkeyboard/amj84/config.h index 569c06dac2..99f59983ea 100644 --- a/keyboards/amjkeyboard/amj84/config.h +++ b/keyboards/amjkeyboard/amj84/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00D8 //A+M+J -#define PRODUCT_ID 0x6068 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Han Chen -#define PRODUCT AMJ84 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/amjkeyboard/amj84/info.json b/keyboards/amjkeyboard/amj84/info.json index 484823fcca..3d56530686 100644 --- a/keyboards/amjkeyboard/amj84/info.json +++ b/keyboards/amjkeyboard/amj84/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "AMJ84", - "maintainer": "peepeetee", + "manufacturer": "Han Chen", "url": "", + "maintainer": "peepeetee", + "usb": { + "vid": "0x00D8", + "pid": "0x6068", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/amjkeyboard/amj96/config.h b/keyboards/amjkeyboard/amj96/config.h index 67b3699047..4b94236ec9 100644 --- a/keyboards/amjkeyboard/amj96/config.h +++ b/keyboards/amjkeyboard/amj96/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00D8 //A+M+J -#define PRODUCT_ID 0x6074 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Han Chen -#define PRODUCT AMJ96 - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 16 diff --git a/keyboards/amjkeyboard/amj96/info.json b/keyboards/amjkeyboard/amj96/info.json index b2aac215c0..329232293e 100644 --- a/keyboards/amjkeyboard/amj96/info.json +++ b/keyboards/amjkeyboard/amj96/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "AMJ96", + "manufacturer": "Han Chen", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x00D8", + "pid": "0x6074", + "device_version": "0.0.2" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/amjkeyboard/amjpad/config.h b/keyboards/amjkeyboard/amjpad/config.h index fe621b7bf3..0a885b7a36 100644 --- a/keyboards/amjkeyboard/amjpad/config.h +++ b/keyboards/amjkeyboard/amjpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00D8 //A+M+J -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0003 -#define MANUFACTURER AMJ -#define PRODUCT PAD - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/amjkeyboard/amjpad/info.json b/keyboards/amjkeyboard/amjpad/info.json index 76147716d2..456b90e049 100644 --- a/keyboards/amjkeyboard/amjpad/info.json +++ b/keyboards/amjkeyboard/amjpad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "AMJ Pad", + "keyboard_name": "PAD", + "manufacturer": "AMJ", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x00D8", + "pid": "0x6060", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_numpad_6x4": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k23", "x":3, "y":2, "h":2}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k50", "x":0, "y":5, "w":2}, {"label":"k52", "x":2, "y":5}, {"label":"k43", "x":3, "y":4, "h":2}] diff --git a/keyboards/anavi/macropad8/config.h b/keyboards/anavi/macropad8/config.h index 4ec8c73123..ef51822f5a 100644 --- a/keyboards/anavi/macropad8/config.h +++ b/keyboards/anavi/macropad8/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCEEB -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ANAVI -#define PRODUCT Macro Pad 8 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/anavi/macropad8/info.json b/keyboards/anavi/macropad8/info.json index 8f6deed82b..fd6d3bd0a1 100644 --- a/keyboards/anavi/macropad8/info.json +++ b/keyboards/anavi/macropad8/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ANAVI Macro Pad 8", + "keyboard_name": "Macro Pad 8", + "manufacturer": "ANAVI", "url": "", "maintainer": "leon-anavi", + "usb": { + "vid": "0xCEEB", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x4": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}] diff --git a/keyboards/annepro2/ap2_led.c b/keyboards/annepro2/ap2_led.c index f12269f93d..8b42e470c2 100644 --- a/keyboards/annepro2/ap2_led.c +++ b/keyboards/annepro2/ap2_led.c @@ -138,6 +138,24 @@ void ap2_led_reset_foreground_color() { ap2_led_mask_set_mono(color); } +void ap2_led_sticky_set_key(uint8_t row, uint8_t col, ap2_led_t color) { + uint8_t payload[] = {row, col, color.p.blue, color.p.green, color.p.red, color.p.alpha}; + proto_tx(CMD_LED_STICKY_SET_KEY, payload, sizeof(payload), 1); +} + +void ap2_led_unset_sticky_key(uint8_t row, uint8_t col) { + uint8_t payload[] = {row, col}; + proto_tx(CMD_LED_STICKY_UNSET_KEY, payload, sizeof(payload), 1); +} + +void ap2_led_unset_sticky_row(uint8_t row) { + uint8_t payload[] = {row}; + proto_tx(CMD_LED_STICKY_UNSET_ROW, payload, sizeof(payload), 1); +} +void ap2_led_unset_sticky_all(void) { + proto_tx(CMD_LED_STICKY_UNSET_ALL, NULL, 0, 1); +} + /* * Currently keypresses are unified with other messages, still with single 1 * byte payload. Transfer is normally fast enough for that to not be a problem - diff --git a/keyboards/annepro2/ap2_led.h b/keyboards/annepro2/ap2_led.h index 43f78c03e3..9d9a3aca7e 100644 --- a/keyboards/annepro2/ap2_led.h +++ b/keyboards/annepro2/ap2_led.h @@ -86,6 +86,11 @@ void ap2_led_blink(uint8_t row, uint8_t col, ap2_led_t color, uint8_t count, uin void ap2_led_set_foreground_color(uint8_t red, uint8_t green, uint8_t blue); void ap2_led_reset_foreground_color(void); +void ap2_led_sticky_set_key(uint8_t row, uint8_t col, ap2_led_t color); +void ap2_led_unset_sticky_key(uint8_t row, uint8_t col); +void ap2_led_unset_sticky_row(uint8_t row); +void ap2_led_unset_sticky_all(void); + typedef struct { uint8_t amount_of_profiles; uint8_t current_profile; diff --git a/keyboards/annepro2/c15/config.h b/keyboards/annepro2/c15/config.h index 2ebb962efb..ff92aeea8e 100644 --- a/keyboards/annepro2/c15/config.h +++ b/keyboards/annepro2/c15/config.h @@ -49,21 +49,3 @@ // Obins stock firmware has something similar to this already enabled, but disabled by default in QMK #define PERMISSIVE_HOLD - -// SPI configuration -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN A0 -#define SPI_MOSI_PIN A1 -#define SPI_MISO_PIN A2 - -// Flash configuration -#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B6 -#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 16 -#define EXTERNAL_FLASH_PAGE_SIZE 256 -#define EXTERNAL_FLASH_SECTOR_SIZE 4096 -#define EXTERNAL_FLASH_BLOCK_SIZE 4096 -#define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size - -// Wear-leveling driver configuration -#define WEAR_LEVELING_LOGICAL_SIZE 1024 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) diff --git a/keyboards/annepro2/c15/rules.mk b/keyboards/annepro2/c15/rules.mk index 302aeecbe6..2c518b6339 100644 --- a/keyboards/annepro2/c15/rules.mk +++ b/keyboards/annepro2/c15/rules.mk @@ -26,10 +26,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Wear-levelling driver -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash - # Custom RGB matrix handling RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = custom diff --git a/keyboards/annepro2/c18/config.h b/keyboards/annepro2/c18/config.h index 5e4978048b..82a406a157 100644 --- a/keyboards/annepro2/c18/config.h +++ b/keyboards/annepro2/c18/config.h @@ -47,21 +47,3 @@ // Obins stock firmware has something similar to this already enabled, but disabled by default in QMK #define PERMISSIVE_HOLD - -// SPI configuration -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN A0 -#define SPI_MOSI_PIN A1 -#define SPI_MISO_PIN A2 - -// Flash configuration -#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN A3 -#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 16 -#define EXTERNAL_FLASH_PAGE_SIZE 256 -#define EXTERNAL_FLASH_SECTOR_SIZE 4096 -#define EXTERNAL_FLASH_BLOCK_SIZE 4096 -#define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size - -// Wear-leveling driver configuration -#define WEAR_LEVELING_LOGICAL_SIZE 1024 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) diff --git a/keyboards/annepro2/c18/rules.mk b/keyboards/annepro2/c18/rules.mk index b1c7208f8b..60c2e08648 100644 --- a/keyboards/annepro2/c18/rules.mk +++ b/keyboards/annepro2/c18/rules.mk @@ -26,10 +26,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -# Wear-levelling driver -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash - # Custom RGB matrix handling RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = custom diff --git a/keyboards/annepro2/halconf.h b/keyboards/annepro2/halconf.h index dcb04eab1b..686b91a7fb 100644 --- a/keyboards/annepro2/halconf.h +++ b/keyboards/annepro2/halconf.h @@ -25,8 +25,4 @@ #define SERIAL_USB_BUFFERS_SIZE 256 -#define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD - #include_next diff --git a/keyboards/annepro2/keymaps/default-full-caps/keymap.c b/keyboards/annepro2/keymaps/default-full-caps/keymap.c index c87447d311..cb6147d40a 100644 --- a/keyboards/annepro2/keymaps/default-full-caps/keymap.c +++ b/keyboards/annepro2/keymaps/default-full-caps/keymap.c @@ -96,7 +96,7 @@ enum anne_pro_layers { * */ [FN2] = LAYOUT_60_ansi( /* FN2 */ - _______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, KC_AP_LED_OFF, KC_AP_LED_ON, _______, _______, _______, _______, + _______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, KC_AP_RGB_MOD, KC_AP_RGB_TOG, KC_AP_RGB_VAD, KC_AP_RGB_VAI, _______, MO(FN2), _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_DEL, _______, @@ -109,9 +109,11 @@ enum anne_pro_layers { bool led_update_user(led_t leds) { if (leds.caps_lock) { // Set the leds to red - ap2_led_set_foreground_color(0xFF, 0x00, 0x00); + const ap2_led_t color = {.p.red = 0xff, .p.green = 0x00, .p.blue = 0x00, .p.alpha = 0xff}; + ap2_led_mask_set_mono(color); } else { - ap2_led_reset_foreground_color(); + const ap2_led_t color = {.p.red = 0x00, .p.green = 0x00, .p.blue = 0x00, .p.alpha = 0x00}; + ap2_led_mask_set_mono(color); } return true; diff --git a/keyboards/annepro2/keymaps/default-layer-indicators/keymap.c b/keyboards/annepro2/keymaps/default-layer-indicators/keymap.c index 1fd97c584e..ca042dcd32 100644 --- a/keyboards/annepro2/keymaps/default-layer-indicators/keymap.c +++ b/keyboards/annepro2/keymaps/default-layer-indicators/keymap.c @@ -96,7 +96,7 @@ enum anne_pro_layers { * */ [FN2] = LAYOUT_60_ansi( /* FN2 */ - _______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, KC_AP_LED_TOG, KC_AP_LED_NEXT_INTENSITY, KC_AP_LED_PREV_PROFILE, KC_AP_LED_NEXT_PROFILE, _______, + _______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, KC_AP_RGB_MOD, KC_AP_RGB_TOG, KC_AP_RGB_VAD, KC_AP_RGB_VAI, _______, MO(FN2), _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_DEL, _______, @@ -134,16 +134,12 @@ bool led_update_user(led_t leds) { if (leds.caps_lock) { // Set the caps-lock to red const ap2_led_t color = {.p.red = 0xff, .p.green = 0x00, .p.blue = 0x00, .p.alpha = 0xff}; - - ap2_led_mask_set_key(2, 0, color); + ap2_led_sticky_set_key(2, 0, color); /* NOTE: Instead of colouring the capslock only, you can change the whole - keyboard with ap2_led_set_foreground_color */ + keyboard with ap2_led_mask_set_mono */ } else { // Reset the capslock if there is no layer active - if (!layer_state_is(FN1) && !layer_state_is(FN2)) { - const ap2_led_t color = {.p.red = 0xff, .p.green = 0x00, .p.blue = 0x00, .p.alpha = 0x00}; - ap2_led_mask_set_key(2, 0, color); - } + ap2_led_unset_sticky_key(2, 0); } return true; diff --git a/keyboards/annepro2/mcuconf.h b/keyboards/annepro2/mcuconf.h index 9e39bd9681..8265fe6eb9 100644 --- a/keyboards/annepro2/mcuconf.h +++ b/keyboards/annepro2/mcuconf.h @@ -60,11 +60,3 @@ #define HT32_USB_USE_USB0 TRUE #define HT32_USB_USB0_IRQ_PRIORITY 5 - -/* - * SPI driver setting - */ - -#define HT32_SPI_USE_SPI1 TRUE -#define HT32_SPI1_IRQ_PRIORITY 9 - diff --git a/keyboards/annepro2/protocol.h b/keyboards/annepro2/protocol.h index 41610054e0..d38fd0a66e 100644 --- a/keyboards/annepro2/protocol.h +++ b/keyboards/annepro2/protocol.h @@ -55,6 +55,14 @@ enum { /* Number of profiles, current profile, on/off state, reactive flag, brightness, errors */ CMD_LED_STATUS = 0x41, + + /* Set sticky key, meaning the key will light up even when LEDs are turned off */ + CMD_LED_STICKY_SET_KEY = 0x50, + CMD_LED_STICKY_SET_ROW = 0x51, + CMD_LED_STICKY_SET_MONO = 0x52, + CMD_LED_STICKY_UNSET_KEY = 0x53, + CMD_LED_STICKY_UNSET_ROW = 0x54, + CMD_LED_STICKY_UNSET_ALL = 0x55, }; /* 1 ROW * 14 COLS * 4B (RGBX) = 56 + header prefix. */ diff --git a/keyboards/ano/config.h b/keyboards/ano/config.h index 3c3ee05fbe..5489e656b7 100644 --- a/keyboards/ano/config.h +++ b/keyboards/ano/config.h @@ -16,12 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8372 -#define PRODUCT_ID 0x0651 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Sebastien Sauve-Hoover -#define PRODUCT Ano Keyboard /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/ano/info.json b/keyboards/ano/info.json index 3eda03c74f..63c994c173 100644 --- a/keyboards/ano/info.json +++ b/keyboards/ano/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ano", + "manufacturer": "Sebastien Sauve-Hoover", "url": "https://github.com/sauvehoo", "maintainer": "sauvehoo", + "usb": { + "vid": "0x8372", + "pid": "0x0651", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0.25, "y":0.25}, {"label":"F1", "x":1.5, "y":0.25}, {"label":"F2", "x":2.5, "y":0.25}, {"label":"F3", "x":3.5, "y":0.25}, {"label":"F4", "x":4.5, "y":0.25}, {"label":"F5", "x":5.75, "y":0.25}, {"label":"F6", "x":6.75, "y":0.25}, {"label":"F7", "x":7.75, "y":0.25}, {"label":"F8", "x":8.75, "y":0.25}, {"label":"F9", "x":10, "y":0.25}, {"label":"F10", "x":11, "y":0.25}, {"label":"F11", "x":12, "y":0.25}, {"label":"F12", "x":13, "y":0.25}, {"label":"Delete", "x":14.25, "y":0.25}, {"label":"Encoder", "x":18.25, "y":0.25}, {"label":"~", "x":0.25, "y":1.5}, {"label":"!", "x":1.25, "y":1.5}, {"label":"@", "x":2.25, "y":1.5}, {"label":"#", "x":3.25, "y":1.5}, {"label":"$", "x":4.25, "y":1.5}, {"label":"%", "x":5.25, "y":1.5}, {"label":"^", "x":6.25, "y":1.5}, {"label":"&", "x":7.25, "y":1.5}, {"label":"*", "x":8.25, "y":1.5}, {"label":"(", "x":9.25, "y":1.5}, {"label":")", "x":10.25, "y":1.5}, {"label":"_", "x":11.25, "y":1.5}, {"label":"+", "x":12.25, "y":1.5}, {"label":"Backspace", "x":13.25, "y":1.5, "w":2}, {"label":"Num Lock", "x":15.25, "y":1.5}, {"label":"/", "x":16.25, "y":1.5}, {"label":"*", "x":17.25, "y":1.5}, {"label":"*", "x":18.25, "y":1.5}, {"label":"Tab", "x":0.25, "y":2.5, "w":1.5}, {"label":"Q", "x":1.75, "y":2.5}, {"label":"W", "x":2.75, "y":2.5}, {"label":"E", "x":3.75, "y":2.5}, {"label":"R", "x":4.75, "y":2.5}, {"label":"T", "x":5.75, "y":2.5}, {"label":"Y", "x":6.75, "y":2.5}, {"label":"U", "x":7.75, "y":2.5}, {"label":"I", "x":8.75, "y":2.5}, {"label":"O", "x":9.75, "y":2.5}, {"label":"P", "x":10.75, "y":2.5}, {"label":"{", "x":11.75, "y":2.5}, {"label":"}", "x":12.75, "y":2.5}, {"label":"|", "x":13.75, "y":2.5, "w":1.5}, {"label":"7", "x":15.25, "y":2.5}, {"label":"8", "x":16.25, "y":2.5}, {"label":"9", "x":17.25, "y":2.5}, {"label":"-", "x":18.25, "y":2.5}, {"label":"Caps Lock", "x":0.25, "y":3.5, "w":1.75}, {"label":"A", "x":2, "y":3.5}, {"label":"S", "x":3, "y":3.5}, {"label":"D", "x":4, "y":3.5}, {"label":"F", "x":5, "y":3.5}, {"label":"G", "x":6, "y":3.5}, {"label":"H", "x":7, "y":3.5}, {"label":"J", "x":8, "y":3.5}, {"label":"K", "x":9, "y":3.5}, {"label":"L", "x":10, "y":3.5}, {"label":":", "x":11, "y":3.5}, {"label":"\"", "x":12, "y":3.5}, {"label":"Enter", "x":13, "y":3.5, "w":2.25}, {"label":"4", "x":15.25, "y":3.5}, {"label":"5", "x":16.25, "y":3.5}, {"label":"6", "x":17.25, "y":3.5}, {"label":"+", "x":18.25, "y":3.5}, {"label":"Shift", "x":0.25, "y":4.5, "w":2.25}, {"label":"Z", "x":2.5, "y":4.5}, {"label":"X", "x":3.5, "y":4.5}, {"label":"C", "x":4.5, "y":4.5}, {"label":"V", "x":5.5, "y":4.5}, {"label":"B", "x":6.5, "y":4.5}, {"label":"N", "x":7.5, "y":4.5}, {"label":"M", "x":8.5, "y":4.5}, {"label":"<", "x":9.5, "y":4.5}, {"label":">", "x":10.5, "y":4.5}, {"label":"?", "x":11.5, "y":4.5}, {"label":"Shift", "x":12.5, "y":4.5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.5}, {"label":"1", "x":15.25, "y":4.5}, {"label":"2", "x":16.25, "y":4.5}, {"label":"3", "x":17.25, "y":4.5}, {"label":"Enter", "x":18.25, "y":4.5, "h":2}, {"label":"Ctrl", "x":0.25, "y":5.5, "w":1.25}, {"label":"Win", "x":1.5, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.75, "y":5.5, "w":1.25}, {"x":4, "y":5.5, "w":6.25}, {"label":"Alt", "x":10.25, "y":5.5, "w":1.5}, {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.5}, {"label":"\u2193", "x":14.25, "y":5.5}, {"label":"\u2192", "x":15.25, "y":5.5}, {"label":"0", "x":16.25, "y":5.5}, {"label":".", "x":17.25, "y":5.5}] diff --git a/keyboards/anomalykb/a65i/config.h b/keyboards/anomalykb/a65i/config.h index b6ca4a8b84..e090e46456 100644 --- a/keyboards/anomalykb/a65i/config.h +++ b/keyboards/anomalykb/a65i/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C47 -#define PRODUCT_ID 0x0004 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AnomalyKB -#define PRODUCT AnomalyKB A65I - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/anomalykb/a65i/info.json b/keyboards/anomalykb/a65i/info.json index 2cd7e5a4e8..ae249db7ef 100644 --- a/keyboards/anomalykb/a65i/info.json +++ b/keyboards/anomalykb/a65i/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "A65I", + "manufacturer": "AnomalyKB", "maintainer": "Lfgberg", + "usb": { + "vid": "0x4C47", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_ansi": "LAYOUT_65_ansi_blocker", "LAYOUT_ansi_splitbs": "LAYOUT_65_ansi_blocker_split_bs", diff --git a/keyboards/aos/tkl/config.h b/keyboards/aos/tkl/config.h index de40845507..ddea414eb1 100644 --- a/keyboards/aos/tkl/config.h +++ b/keyboards/aos/tkl/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x504B -#define PRODUCT_ID 0x1000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ace of Spades -#define PRODUCT Ace of Spades TKL - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/aos/tkl/info.json b/keyboards/aos/tkl/info.json index dff8b16439..32aaba37a1 100644 --- a/keyboards/aos/tkl/info.json +++ b/keyboards/aos/tkl/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Ace of Spades TKL", + "manufacturer": "Ace of Spades", "maintainer": "rys", + "usb": { + "vid": "0x504B", + "pid": "0x1000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_iso_wkl": { "layout": [ diff --git a/keyboards/aozora/config.h b/keyboards/aozora/config.h index 67972a84b2..ac0f11b409 100644 --- a/keyboards/aozora/config.h +++ b/keyboards/aozora/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE86A -#define DEVICE_VER 0x0001 -#define MANUFACTURER Salmon Cat Studio -#define PRODUCT Aozora - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/aozora/info.json b/keyboards/aozora/info.json index 0f442cc12e..414565ce1c 100644 --- a/keyboards/aozora/info.json +++ b/keyboards/aozora/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Aozora", + "manufacturer": "Salmon Cat Studio", "url": "https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21", "maintainer": "Phooood", + "usb": { + "vid": "0x04D8", + "pid": "0xE86A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ares/config.h b/keyboards/ares/config.h index 53a3bfe13a..4049109827 100644 --- a/keyboards/ares/config.h +++ b/keyboards/ares/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0200 -#define MANUFACTURER LSJ -#define PRODUCT Ares - #define RGBLED_NUM 16 #define MATRIX_ROWS 5 diff --git a/keyboards/ares/info.json b/keyboards/ares/info.json index eeff16b7a9..67c6fe3bc7 100644 --- a/keyboards/ares/info.json +++ b/keyboards/ares/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "LSJ Ares", + "keyboard_name": "Ares", + "manufacturer": "LSJ", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x20A0", + "pid": "0x422D", + "device_version": "2.0.0" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/arisu/config.h b/keyboards/arisu/config.h index 8e2da440c2..c323bbbfed 100644 --- a/keyboards/arisu/config.h +++ b/keyboards/arisu/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFA7E -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Fate -#define PRODUCT arisu - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/arisu/info.json b/keyboards/arisu/info.json index c74817aefd..bb7ce228c4 100644 --- a/keyboards/arisu/info.json +++ b/keyboards/arisu/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Arisu", + "manufacturer": "Fate", "url": "https://github.com/FateNozomi/arisu-pcb", "maintainer": "FateNozomi", + "usb": { + "vid": "0xFA7E", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/arrayperipherals/1x4p1/config.h b/keyboards/arrayperipherals/1x4p1/config.h index 44559be3ed..aec5a143ee 100644 --- a/keyboards/arrayperipherals/1x4p1/config.h +++ b/keyboards/arrayperipherals/1x4p1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4152 // "AR" -#define PRODUCT_ID 0x4F46 // "OF" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Array Peripherals -#define PRODUCT [1x4] + 1 Macropad - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 5 diff --git a/keyboards/arrayperipherals/1x4p1/info.json b/keyboards/arrayperipherals/1x4p1/info.json index d962cb586b..6a2e1efd1f 100644 --- a/keyboards/arrayperipherals/1x4p1/info.json +++ b/keyboards/arrayperipherals/1x4p1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "[1 x 4] + 1 Macropad", + "keyboard_name": "[1x4] + 1 Macropad", + "manufacturer": "Array Peripherals", "url": "https://github.com/daviddoan", "maintainer": "David Doan", + "usb": { + "vid": "0x4152", + "pid": "0x4F46", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_1x5": { "layout": [ diff --git a/keyboards/ash1800/config.h b/keyboards/ash1800/config.h index 7b55f31bd3..3748d87f4d 100644 --- a/keyboards/ash1800/config.h +++ b/keyboards/ash1800/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1800 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hasyim Ashari -#define PRODUCT ASH-1800 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 10 diff --git a/keyboards/ash1800/info.json b/keyboards/ash1800/info.json index 632544c772..3c7272d884 100644 --- a/keyboards/ash1800/info.json +++ b/keyboards/ash1800/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "ASH-1800", + "manufacturer": "Hasyim Ashari", "maintainer": "angelbirth", + "usb": { + "vid": "0xFEED", + "pid": "0x1800", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ash_xiix/config.h b/keyboards/ash_xiix/config.h index bcfdaeef7c..10819eb8e4 100644 --- a/keyboards/ash_xiix/config.h +++ b/keyboards/ash_xiix/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x14BC -#define DEVICE_VER 0x0001 -#define MANUFACTURER ASH -#define PRODUCT XIIX - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 10 diff --git a/keyboards/ash_xiix/info.json b/keyboards/ash_xiix/info.json index b91d2e14b1..05b926cda0 100644 --- a/keyboards/ash_xiix/info.json +++ b/keyboards/ash_xiix/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ASH-XIIX", + "keyboard_name": "XIIX", + "manufacturer": "ASH", "url": "config.qmk.fm", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x14BC", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ashpil/modelm_usbc/config.h b/keyboards/ashpil/modelm_usbc/config.h index 8572171527..ccc6f2bbf8 100644 --- a/keyboards/ashpil/modelm_usbc/config.h +++ b/keyboards/ashpil/modelm_usbc/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ashpil -#define PRODUCT IBM Model M 101/102 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 16 diff --git a/keyboards/ashpil/modelm_usbc/info.json b/keyboards/ashpil/modelm_usbc/info.json index 985141afbb..9838025ce5 100644 --- a/keyboards/ashpil/modelm_usbc/info.json +++ b/keyboards/ashpil/modelm_usbc/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "IBM Model M 101 ANSI/102 ISO", + "keyboard_name": "IBM Model M 101/102", + "manufacturer": "ashpil", "url": "https://github.com/ashpil/qmk_firmware/tree/master/keyboards/ashpil/modelm_usbc", "maintainer": "ashpil", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_fullsize_iso_wkl": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.5}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}] diff --git a/keyboards/at_at/660m/config.h b/keyboards/at_at/660m/config.h index 5a53e8c38a..b3676e9704 100644 --- a/keyboards/at_at/660m/config.h +++ b/keyboards/at_at/660m/config.h @@ -23,13 +23,6 @@ along with this program. If not, see . /* LSE clock */ #define STM32_LSECLK 32768 -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA22A -#define PRODUCT_ID 0x6600 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AT-AT -#define PRODUCT 660M - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/at_at/660m/info.json b/keyboards/at_at/660m/info.json index e5282485fb..1558e2d058 100644 --- a/keyboards/at_at/660m/info.json +++ b/keyboards/at_at/660m/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "AT-AT 660M", + "keyboard_name": "660M", + "manufacturer": "AT-AT", "url": "", "maintainer": "adrientetar", + "usb": { + "vid": "0xA22A", + "pid": "0x6600", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/atlantis/ak81_ve/config.h b/keyboards/atlantis/ak81_ve/config.h index 1b6050f9ac..ac9a407ccb 100644 --- a/keyboards/atlantis/ak81_ve/config.h +++ b/keyboards/atlantis/ak81_ve/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x416B -#define PRODUCT_ID 0x0081 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Atlantis -#define PRODUCT AK81_VE - /* Key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/atlantis/ak81_ve/info.json b/keyboards/atlantis/ak81_ve/info.json index 8d4a8ebf59..95011de492 100644 --- a/keyboards/atlantis/ak81_ve/info.json +++ b/keyboards/atlantis/ak81_ve/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "AK81_VE", + "manufacturer": "Atlantis", "maintainer": "fOmey", + "usb": { + "vid": "0x416B", + "pid": "0x0081", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/atlas_65/config.h b/keyboards/atlas_65/config.h index 86613cb193..337ba015c2 100644 --- a/keyboards/atlas_65/config.h +++ b/keyboards/atlas_65/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6565 -#define PRODUCT_ID 0x1000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Joshua Nguyen -#define PRODUCT atlas_65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/atlas_65/info.json b/keyboards/atlas_65/info.json index d6c0eedb00..266e71118a 100644 --- a/keyboards/atlas_65/info.json +++ b/keyboards/atlas_65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "atlas-65", + "keyboard_name": "atlas_65", + "manufacturer": "Joshua Nguyen", "url": "https://github.com/ryanstevensmith/atlas-65", "maintainer": "ryanstevensmith, Joshua Nguyen", + "usb": { + "vid": "0x6565", + "pid": "0x1000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/atomic/config.h b/keyboards/atomic/config.h index 095cac906c..a0f38d845f 100644 --- a/keyboards/atomic/config.h +++ b/keyboards/atomic/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER OLKB -#define PRODUCT Atomic - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/atomic/info.json b/keyboards/atomic/info.json index d55ba4b75a..bd0a2c2f99 100644 --- a/keyboards/atomic/info.json +++ b/keyboards/atomic/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Atomic", + "manufacturer": "OLKB", "maintainer": "jackhumbert", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_grid": "LAYOUT_ortho_5x15" }, diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h b/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h index 6bb1a9a7f3..30a066fa5b 100644 --- a/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/atreus62/config.h b/keyboards/atreus62/config.h index 2bb3da484c..bbf5028d7b 100644 --- a/keyboards/atreus62/config.h +++ b/keyboards/atreus62/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6062 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Profet -#define PRODUCT Atreus62 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 5 diff --git a/keyboards/atreus62/info.json b/keyboards/atreus62/info.json index d5f1e7cce9..4bcde69be5 100644 --- a/keyboards/atreus62/info.json +++ b/keyboards/atreus62/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Atreus62", + "manufacturer": "Profet", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6062", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0.6}, {"x":1, "y":0.6}, {"x":2, "y":0.35}, {"x":3, "y":0}, {"x":4, "y":0.35}, {"x":5, "y":0.7}, {"x":9, "y":0.7}, {"x":10, "y":0.35}, {"x":11, "y":0}, {"x":12, "y":0.35}, {"x":13, "y":0.6}, {"x":14, "y":0.6}, {"x":0, "y":1.6}, {"x":1, "y":1.6}, {"x":2, "y":1.35}, {"x":3, "y":1}, {"x":4, "y":1.35}, {"x":5, "y":1.7}, {"x":9, "y":1.7}, {"x":10, "y":1.35}, {"x":11, "y":1}, {"x":12, "y":1.35}, {"x":13, "y":1.6}, {"x":14, "y":1.6}, {"x":0, "y":2.6}, {"x":1, "y":2.6}, {"x":2, "y":2.35}, {"x":3, "y":2}, {"x":4, "y":2.35}, {"x":5, "y":2.7}, {"x":9, "y":2.7}, {"x":10, "y":2.35}, {"x":11, "y":2}, {"x":12, "y":2.35}, {"x":13, "y":2.6}, {"x":14, "y":2.6}, {"x":0, "y":3.6}, {"x":1, "y":3.6}, {"x":2, "y":3.35}, {"x":3, "y":3}, {"x":4, "y":3.35}, {"x":5, "y":3.7}, {"x":9, "y":3.7}, {"x":10, "y":3.35}, {"x":11, "y":3}, {"x":12, "y":3.35}, {"x":13, "y":3.6}, {"x":14, "y":3.6}, {"x":0, "y":4.6}, {"x":1, "y":4.6}, {"x":2, "y":4.35}, {"x":3, "y":4}, {"x":4, "y":4.35}, {"x":5, "y":4.7}, {"x":6, "y":3.95, "h":1.5}, {"x":8, "y":3.95, "h":1.5}, {"x":9, "y":4.7}, {"x":10, "y":4.35}, {"x":11, "y":4}, {"x":12, "y":4.35}, {"x":13, "y":4.6}, {"x":14, "y":4.6}] diff --git a/keyboards/atset/at1/at1.c b/keyboards/atset/at1/at1.c new file mode 100644 index 0000000000..4ed5d7cb29 --- /dev/null +++ b/keyboards/atset/at1/at1.c @@ -0,0 +1,15 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "at1.h" diff --git a/keyboards/atset/at1/at1.h b/keyboards/atset/at1/at1.h new file mode 100644 index 0000000000..64a90d00ca --- /dev/null +++ b/keyboards/atset/at1/at1.h @@ -0,0 +1,22 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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" + +#define LAYOUT( \ + k00 \ +) \ +{ \ + { k00 } \ +} + diff --git a/keyboards/boardsource/5x12/config.h b/keyboards/atset/at1/config.h similarity index 61% rename from keyboards/boardsource/5x12/config.h rename to keyboards/atset/at1/config.h index f70dec9efb..b5f433b879 100644 --- a/keyboards/boardsource/5x12/config.h +++ b/keyboards/atset/at1/config.h @@ -1,26 +1,41 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 // "Bs" - Boardsource -#define PRODUCT_ID 0x0512 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Boardsource -#define PRODUCT 5x12 +/* Key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 12 -#define MATRIX_ROW_PINS { D2, D3, D1, D0, D4 } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7 } +#define MATRIX_ROW_PINS { D2 } +#define MATRIX_COL_PINS { B6 } +#define UNUSED_PINS /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -48,22 +63,7 @@ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by * bootmagic, NKRO mode will always be enabled until it is toggled again during a * power-up. - * + */ //#define FORCE_NKRO -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/atset/at1/info.json b/keyboards/atset/at1/info.json new file mode 100644 index 0000000000..b73f4de3ae --- /dev/null +++ b/keyboards/atset/at1/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "AT1", + "manufacturer": "Atset", + "maintainer": "atset", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [{"label":"k00", "x":0, "y":0}] + } + } +} \ No newline at end of file diff --git a/keyboards/atset/at1/keymaps/default/keymap.c b/keyboards/atset/at1/keymaps/default/keymap.c new file mode 100644 index 0000000000..56e8e3afff --- /dev/null +++ b/keyboards/atset/at1/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* + * it under the terms of the GNU General Public License as published by + * This program is free software: you can redistribute it and/or modify + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_4 +), + + +[1] = LAYOUT( + KC_NO +), + + +[2] = LAYOUT( + KC_NO +) + + +}; diff --git a/keyboards/atset/at1/keymaps/via/keymap.c b/keyboards/atset/at1/keymaps/via/keymap.c new file mode 100644 index 0000000000..f4806baee5 --- /dev/null +++ b/keyboards/atset/at1/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = + LAYOUT( + KC_4 + ), + [1] = + LAYOUT( + KC_NO + ), + [2] = + LAYOUT( + KC_NO + ), + [3] = + LAYOUT( + KC_NO + ) +}; diff --git a/keyboards/atset/at1/readme.md b/keyboards/atset/at1/readme.md new file mode 100644 index 0000000000..90a56dba30 --- /dev/null +++ b/keyboards/atset/at1/readme.md @@ -0,0 +1,25 @@ +# ATSET AT1 + +A special 1 key keyboard powered by QMK. + +* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7) +* Hardware Supported: ATmega32U4 +* Hardware Availability: Interest Check + +Make example for this keyboard (after setting up your build environment): + + make atset/at6:default + +Flashing example for this keyboard: + + make atset/at6:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available \ No newline at end of file diff --git a/keyboards/atset/at1/rules.mk b/keyboards/atset/at1/rules.mk new file mode 100644 index 0000000000..73ac281e0b --- /dev/null +++ b/keyboards/atset/at1/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # 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 diff --git a/keyboards/atset/at12/at12.c b/keyboards/atset/at12/at12.c new file mode 100644 index 0000000000..94474365a8 --- /dev/null +++ b/keyboards/atset/at12/at12.c @@ -0,0 +1,15 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "at12.h" diff --git a/keyboards/atset/at12/at12.h b/keyboards/atset/at12/at12.h new file mode 100644 index 0000000000..74bc86c5f2 --- /dev/null +++ b/keyboards/atset/at12/at12.h @@ -0,0 +1,29 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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" + +#define LAYOUT( \ + k00, k01, k02, \ + k10, k11, k12, \ + k20, k21, k22, \ + k30, k31, k32 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, k11, k12 }, \ + { k20, k21, k22 }, \ + { k30, k31, k32 } \ +} + diff --git a/keyboards/boardsource/4x12/config.h b/keyboards/atset/at12/config.h similarity index 60% rename from keyboards/boardsource/4x12/config.h rename to keyboards/atset/at12/config.h index 4df24944f8..26e26fc32e 100644 --- a/keyboards/boardsource/4x12/config.h +++ b/keyboards/atset/at12/config.h @@ -1,25 +1,41 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 // "Bs" - Boardsource -#define PRODUCT_ID 0x0412 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Boardsource -#define PRODUCT 4x12 - -/* key matrix size */ +/* Key matrix size */ #define MATRIX_ROWS 4 -#define MATRIX_COLS 12 -#define MATRIX_ROW_PINS { D2, D3, D1, D0} -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7 } +#define MATRIX_COLS 3 +#define MATRIX_ROW_PINS { D3, D2, D1, D0 } +#define MATRIX_COL_PINS { B6, B5, B4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -47,22 +63,7 @@ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by * bootmagic, NKRO mode will always be enabled until it is toggled again during a * power-up. - * + */ //#define FORCE_NKRO -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/atset/at12/info.json b/keyboards/atset/at12/info.json new file mode 100644 index 0000000000..28a535db48 --- /dev/null +++ b/keyboards/atset/at12/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "AT12", + "manufacturer": "Atset", + "maintainer": "atset", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}] + } + } +} \ No newline at end of file diff --git a/keyboards/atset/at12/keymaps/default/keymap.c b/keyboards/atset/at12/keymaps/default/keymap.c new file mode 100644 index 0000000000..d713632d9d --- /dev/null +++ b/keyboards/atset/at12/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_F10, KC_F11, KC_F12, + KC_7, KC_8, KC_9, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3 +), + + +[1] = 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 +), + + +[2] = 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 +) + +}; diff --git a/keyboards/atset/at12/keymaps/via/keymap.c b/keyboards/atset/at12/keymaps/via/keymap.c new file mode 100644 index 0000000000..f42586dfbc --- /dev/null +++ b/keyboards/atset/at12/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_F10, KC_F11, KC_F12, + KC_7, KC_8, KC_9, + KC_4 , KC_5 , KC_6, + KC_1 , KC_2 , KC_3 + ), + [1] = + 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 + ), + [2] = + 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 + ), + [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 + ), +}; diff --git a/keyboards/atset/at12/readme.md b/keyboards/atset/at12/readme.md new file mode 100644 index 0000000000..2ddd93046d --- /dev/null +++ b/keyboards/atset/at12/readme.md @@ -0,0 +1,25 @@ +# ATSET AT12 + +A special 12 key keyboard powered by QMK. + +* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7) +* Hardware Supported: ATmega32U4 +* Hardware Availability: Interest Check + +Make example for this keyboard (after setting up your build environment): + + make atset/at3:default + +Flashing example for this keyboard: + + make atset/at3:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available \ No newline at end of file diff --git a/keyboards/atset/at12/rules.mk b/keyboards/atset/at12/rules.mk new file mode 100644 index 0000000000..73ac281e0b --- /dev/null +++ b/keyboards/atset/at12/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # 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 diff --git a/keyboards/atset/at16/at16.c b/keyboards/atset/at16/at16.c new file mode 100644 index 0000000000..4b24974504 --- /dev/null +++ b/keyboards/atset/at16/at16.c @@ -0,0 +1,15 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "at16.h" diff --git a/keyboards/atset/at16/at16.h b/keyboards/atset/at16/at16.h new file mode 100644 index 0000000000..128ed7f161 --- /dev/null +++ b/keyboards/atset/at16/at16.h @@ -0,0 +1,29 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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" + +#define LAYOUT_ortho_4x4( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, k33 \ +) \ +{ \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, k23 }, \ + { k30, k31, k32, k33 } \ +} + diff --git a/keyboards/boardsource/3x4/config.h b/keyboards/atset/at16/config.h similarity index 56% rename from keyboards/boardsource/3x4/config.h rename to keyboards/atset/at16/config.h index b7a067bb6f..da194644ba 100644 --- a/keyboards/boardsource/3x4/config.h +++ b/keyboards/atset/at16/config.h @@ -1,27 +1,41 @@ - +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 // "Bs" - Boardsource -#define PRODUCT_ID 0x0304 // 3x4 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Boardsource -#define PRODUCT 3x4 - -/* key matrix size */ -#define MATRIX_ROWS 3 +/* Key matrix size */ +#define MATRIX_ROWS 4 #define MATRIX_COLS 4 -#define MATRIX_ROW_PINS {F7, F6, F5} -#define MATRIX_COL_PINS {B6, B2, B3, B1} +#define MATRIX_ROW_PINS { D3, D2, D1, D0 } +#define MATRIX_COL_PINS { B6, B5, B4, B2 } +#define UNUSED_PINS +/* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -49,22 +63,7 @@ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by * bootmagic, NKRO mode will always be enabled until it is toggled again during a * power-up. - * + */ //#define FORCE_NKRO -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/atset/at16/info.json b/keyboards/atset/at16/info.json new file mode 100644 index 0000000000..65a51448b4 --- /dev/null +++ b/keyboards/atset/at16/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "AT16", + "manufacturer": "Atset", + "maintainer": "atset", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k23", "x":3, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k33", "x":3, "y":3}] + } + } +} diff --git a/keyboards/atset/at16/keymaps/default/keymap.c b/keyboards/atset/at16/keymaps/default/keymap.c new file mode 100644 index 0000000000..d01577d8b6 --- /dev/null +++ b/keyboards/atset/at16/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_F10, KC_F11, KC_F12, KC_F5, + KC_7, KC_8, KC_9, KC_F1, + KC_4, KC_5, KC_6, KC_F2, + KC_1, KC_2, KC_3, KC_F3 +), + + +[1] = LAYOUT_ortho_4x4( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO +), + + +[2] = LAYOUT_ortho_4x4( + KC_NO, KC_NO, KC_NO, KC_NO, + 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/atset/at16/keymaps/via/keymap.c b/keyboards/atset/at16/keymaps/via/keymap.c new file mode 100644 index 0000000000..8ce781aac4 --- /dev/null +++ b/keyboards/atset/at16/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_F10, KC_F11, KC_F12, KC_F5, + KC_7, KC_8, KC_9, KC_F1, + KC_4, KC_5, KC_6, KC_F2, + KC_1, KC_2, KC_3, KC_F3 + ), + [1] = + LAYOUT_ortho_4x4( + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO + ), + [2] = + LAYOUT_ortho_4x4( + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO + ), + [3] = + LAYOUT_ortho_4x4( + KC_NO , KC_NO, KC_NO, KC_NO, + 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/atset/at16/readme.md b/keyboards/atset/at16/readme.md new file mode 100644 index 0000000000..6667a1a187 --- /dev/null +++ b/keyboards/atset/at16/readme.md @@ -0,0 +1,25 @@ +# ATSET AT16 + +A special 16 key keyboard powered by QMK. + +* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7) +* Hardware Supported: ATmega32U4 +* Hardware Availability: Interest Check + +Make example for this keyboard (after setting up your build environment): + + make atset/at3:default + +Flashing example for this keyboard: + + make atset/at3:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/atset/at16/rules.mk b/keyboards/atset/at16/rules.mk new file mode 100644 index 0000000000..6025e7ecc5 --- /dev/null +++ b/keyboards/atset/at16/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +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 + +LAYOUTS = ortho_4x4 diff --git a/keyboards/atset/at3/at3.c b/keyboards/atset/at3/at3.c new file mode 100644 index 0000000000..18a5182f0f --- /dev/null +++ b/keyboards/atset/at3/at3.c @@ -0,0 +1,15 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "at3.h" diff --git a/keyboards/atset/at3/at3.h b/keyboards/atset/at3/at3.h new file mode 100644 index 0000000000..817b154483 --- /dev/null +++ b/keyboards/atset/at3/at3.h @@ -0,0 +1,22 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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" + +#define LAYOUT( \ + k00, k01, k02 \ +) \ +{ \ + { k00, k01, k02 } \ +} + diff --git a/keyboards/atset/at3/config.h b/keyboards/atset/at3/config.h new file mode 100644 index 0000000000..094ad56a1e --- /dev/null +++ b/keyboards/atset/at3/config.h @@ -0,0 +1,69 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* Key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 3 + +#define MATRIX_ROW_PINS { D2 } +#define MATRIX_COL_PINS { B6, B5, B4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + + */ +//#define FORCE_NKRO + diff --git a/keyboards/atset/at3/info.json b/keyboards/atset/at3/info.json new file mode 100644 index 0000000000..6f8eab5e62 --- /dev/null +++ b/keyboards/atset/at3/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "AT3", + "manufacturer": "Atset", + "maintainer": "atset", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}] + } + } +} \ No newline at end of file diff --git a/keyboards/atset/at3/keymaps/default/keymap.c b/keyboards/atset/at3/keymaps/default/keymap.c new file mode 100644 index 0000000000..57d0ab6db0 --- /dev/null +++ b/keyboards/atset/at3/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the 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_7, KC_8, KC_9 +), + + +[1] = LAYOUT( + KC_NO, KC_NO, KC_NO +), + + +[2] = LAYOUT( + KC_NO, KC_NO, KC_NO +) + + +}; diff --git a/keyboards/atset/at3/keymaps/via/keymap.c b/keyboards/atset/at3/keymaps/via/keymap.c new file mode 100644 index 0000000000..8d16b57bd7 --- /dev/null +++ b/keyboards/atset/at3/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = + LAYOUT( + KC_7 , KC_8 , KC_9 + ), + [1] = + LAYOUT( + KC_NO , KC_NO, KC_NO + ), + [2] = + LAYOUT( + KC_NO , KC_NO, KC_NO + ), + [3] = + LAYOUT( + KC_NO , KC_NO, KC_NO + ) +}; diff --git a/keyboards/atset/at3/readme.md b/keyboards/atset/at3/readme.md new file mode 100644 index 0000000000..f33bda8df3 --- /dev/null +++ b/keyboards/atset/at3/readme.md @@ -0,0 +1,25 @@ +# ATSET AT3 + +A special 3 key keyboard powered by QMK. + +* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7) +* Hardware Supported: ATmega32U4 +* Hardware Availability: Interest Check + +Make example for this keyboard (after setting up your build environment): + + make atset/at3:default + +Flashing example for this keyboard: + + make atset/at3:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available \ No newline at end of file diff --git a/keyboards/atset/at3/rules.mk b/keyboards/atset/at3/rules.mk new file mode 100644 index 0000000000..73ac281e0b --- /dev/null +++ b/keyboards/atset/at3/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # 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 diff --git a/keyboards/atset/at6/config.h b/keyboards/atset/at6/config.h index b5192c5982..fd40ac609b 100644 --- a/keyboards/atset/at6/config.h +++ b/keyboards/atset/at6/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED // Atset -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Atset -#define PRODUCT AT6 - /* Key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/atset/at6/info.json b/keyboards/atset/at6/info.json index cdaeee825d..abdaf10b9f 100644 --- a/keyboards/atset/at6/info.json +++ b/keyboards/atset/at6/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "AT6", + "manufacturer": "Atset", "maintainer": "atset", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}] diff --git a/keyboards/atset/at9/config.h b/keyboards/atset/at9/config.h index 157c4a2e42..187442c265 100644 --- a/keyboards/atset/at9/config.h +++ b/keyboards/atset/at9/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED // Atset -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Atset -#define PRODUCT AT9 - /* Key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/atset/at9/info.json b/keyboards/atset/at9/info.json index 5c69b1c8d3..b550240ce7 100644 --- a/keyboards/atset/at9/info.json +++ b/keyboards/atset/at9/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "AT9", + "manufacturer": "Atset", "maintainer": "atset", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}] diff --git a/keyboards/atxkb/1894/config.h b/keyboards/atxkb/1894/config.h index fd621e169a..72d11a180f 100644 --- a/keyboards/atxkb/1894/config.h +++ b/keyboards/atxkb/1894/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5458 // TX -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER atxkb -#define PRODUCT 1894 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/atxkb/1894/info.json b/keyboards/atxkb/1894/info.json index a9195061f8..d91764625e 100644 --- a/keyboards/atxkb/1894/info.json +++ b/keyboards/atxkb/1894/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "1894", + "manufacturer": "atxkb", "url": "https://atxkb.com", "maintainer": "austexcn", + "usb": { + "vid": "0x5458", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/avalanche/avalanche.h b/keyboards/avalanche/avalanche.h index c3f431f315..916019f0d0 100644 --- a/keyboards/avalanche/avalanche.h +++ b/keyboards/avalanche/avalanche.h @@ -9,6 +9,8 @@ #include "v2.h" #elif KEYBOARD_avalanche_v3 #include "v3.h" +#elif KEYBOARD_avalanche_v4 + #include "v4.h" #endif #include "quantum.h" diff --git a/keyboards/avalanche/v4/config.h b/keyboards/avalanche/v4/config.h new file mode 100644 index 0000000000..d2082635d8 --- /dev/null +++ b/keyboards/avalanche/v4/config.h @@ -0,0 +1,76 @@ +// Copyright 2022 Will Winder (@winder) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define VENDOR_ID 0xCEE2 +#define PRODUCT_ID 0x0003 +#define DEVICE_VER 0x0004 +#define MANUFACTURER vitvlkv +#define PRODUCT Avalanche + +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 } + +#define DIODE_DIRECTION COL2ROW + +#define SOFT_SERIAL_PIN D2 + + +#define ENCODERS_PAD_A { B5 } +#define ENCODERS_PAD_B { F4 } +#define ENCODER_RESOLUTION 2 + +#ifdef RGBLIGHT_ENABLE +# define RGB_DI_PIN D3 +# define RGBLED_NUM 64 +# define RGBLED_SPLIT { 32, 32 } +# define RGBLIGHT_SPLIT +# define RGBLIGHT_LIMIT_VAL 100 // LED Brightness, high power draw may exceed the USB limitations of 0.6A and cause a crash. +# 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 +#endif diff --git a/keyboards/avalanche/v4/info.json b/keyboards/avalanche/v4/info.json new file mode 100644 index 0000000000..53e227bcf1 --- /dev/null +++ b/keyboards/avalanche/v4/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "Avalanche v4", + "url": "https://github.com/vlkv/avalanche", + "maintainer": "vlkv", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"L00", "x":1, "y":0.75}, + {"label":"L01", "x":2, "y":0.75}, + {"label":"L02", "x":3, "y":0.25}, + {"label":"L03", "x":4, "y":0}, + {"label":"L04", "x":5, "y":0.25}, + {"label":"L05", "x":6, "y":0.35}, + {"label":"R05", "x":12, "y":0.35}, + {"label":"R04", "x":13, "y":0.25}, + {"label":"R03", "x":14, "y":0}, + {"label":"R02", "x":15, "y":0.25}, + {"label":"R01", "x":16, "y":0.75}, + {"label":"R00", "x":17, "y":0.75}, + + {"label":"L10", "x":1, "y":1.75}, + {"label":"L11", "x":2, "y":1.75}, + {"label":"L12", "x":3, "y":1.25}, + {"label":"L13", "x":4, "y":1}, + {"label":"L14", "x":5, "y":1.25}, + {"label":"L15", "x":6, "y":1.35}, + {"label":"R15", "x":12, "y":1.35}, + {"label":"R14", "x":13, "y":1.25}, + {"label":"R13", "x":14, "y":1}, + {"label":"R12", "x":15, "y":1.25}, + {"label":"R11", "x":16, "y":1.75}, + {"label":"R10", "x":17, "y":1.75}, + + {"label":"L40", "x":0, "y":2.85}, + {"label":"L20", "x":1, "y":2.75}, + {"label":"L21", "x":2, "y":2.75}, + {"label":"L22", "x":3, "y":2.25}, + {"label":"L23", "x":4, "y":2}, + {"label":"L24", "x":5, "y":2.25}, + {"label":"L25", "x":6, "y":2.35}, + {"label":"R25", "x":12, "y":2.35}, + {"label":"R24", "x":13, "y":2.25}, + {"label":"R23", "x":14, "y":2}, + {"label":"R22", "x":15, "y":2.25}, + {"label":"R21", "x":16, "y":2.75}, + {"label":"R20", "x":17, "y":2.75}, + {"label":"R40", "x":18, "y":2.85}, + + {"label":"L30", "x":1, "y":3.75}, + {"label":"L31", "x":2, "y":3.75}, + {"label":"L32", "x":3, "y":3.25}, + {"label":"L33", "x":4, "y":3}, + {"label":"L34", "x":5, "y":3.25}, + {"label":"L35", "x":6, "y":3.35}, + {"label":"L36", "x":7, "y":3.7}, + {"label":"L26", "x":8, "y":4.05}, + {"label":"R26", "x":10, "y":4.05}, + {"label":"R36", "x":11, "y":3.7}, + {"label":"R35", "x":12, "y":3.35}, + {"label":"R34", "x":13, "y":3.25}, + {"label":"R33", "x":14, "y":3}, + {"label":"R32", "x":15, "y":3.25}, + {"label":"R31", "x":16, "y":3.75}, + {"label":"R30", "x":17, "y":3.75}, + + {"label":"L42", "x":3.4, "y":4.55}, + {"label":"L43", "x":4.6, "y":4.45}, + {"label":"L44", "x":5.8, "y":4.4}, + {"label":"L45", "x":7, "y":4.7}, + {"label":"L46", "x":8, "y":5.05}, + {"label":"R46", "x":10, "y":5.05}, + {"label":"R45", "x":11, "y":4.7}, + {"label":"R44", "x":12.2, "y":4.4}, + {"label":"R43", "x":13.4, "y":4.45}, + {"label":"R42", "x":14.6, "y":4.55} + ] + } + } +} diff --git a/keyboards/avalanche/v4/keymaps/default/keymap.c b/keyboards/avalanche/v4/keymaps/default/keymap.c new file mode 100644 index 0000000000..7239091ca2 --- /dev/null +++ b/keyboards/avalanche/v4/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2022 Viatly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* +qmk compile -kb avalanche/v4 -km default +qmk flash -kb avalanche/v4 -km default +*/ + +#include QMK_KEYBOARD_H + +enum layer { + LAYER_0, + LAYER_1, + LAYER_2, +}; + +#define FN_1 MO(LAYER_1) +#define LFN_2 LT(LAYER_2, KC_GRV) +#define RFN_2 MO(LAYER_2) +#define LFN_3 LSFT_T(KC_EQL) +#define RFN_3 RSFT_T(KC_MINS) +#define EN_LALT LALT_T(KC_ENT) +#define EN_RALT RALT_T(KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_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_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_CAPS, 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_RBRC, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DEL, KC_LGUI, KC_INS, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, + KC__MUTE,LFN_2, LFN_3, KC_SPC, EN_LALT, EN_RALT, FN_1, RFN_3, RFN_2, KC_PSCR + ), + [LAYER_1] = LAYOUT( + _______, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC, KC_DEL, KC_HOME, KC_UP, KC_END, KC_PGUP, XXXXXXX, + _______, _______, KC_APP, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, KC_F12, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, XXXXXXX, KC_PGUP, KC_PGDN, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [LAYER_2] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_0, KC_1, KC_2, KC_3, KC_BSPC, KC_DEL, KC_EXLM, KC_AT, KC_HASH, XXXXXXX, KC_LPRN, + _______, _______, KC_0, KC_4, KC_5, KC_6, KC_DEL, KC_BSPC, KC_DLR, KC_PERC, KC_CIRC, XXXXXXX, XXXXXXX, KC_RPRN, + _______, KC_0, KC_7, KC_8, KC_9, KC_DOT, _______, _______, _______, _______, XXXXXXX, KC_AMPR, KC_ASTR, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + + diff --git a/keyboards/avalanche/v4/keymaps/winder/config.h b/keyboards/avalanche/v4/keymaps/winder/config.h new file mode 100644 index 0000000000..ca4b822f1b --- /dev/null +++ b/keyboards/avalanche/v4/keymaps/winder/config.h @@ -0,0 +1,12 @@ +// Copyright 2022 Will Winder (@winder) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#undef RGBLIGHT_EFFECT_BREATHING +#undef RGBLIGHT_EFFECT_KNIGHT +#undef RGBLIGHT_EFFECT_SNAKE +#undef RGBLIGHT_EFFECT_CHRISTMAS +#undef RGBLIGHT_EFFECT_RGB_TEST +#undef RGBLIGHT_EFFECT_STATIC_GRADIENT +#undef RGBLIGHT_EFFECT_ALTERNATING diff --git a/keyboards/avalanche/v4/keymaps/winder/images.h b/keyboards/avalanche/v4/keymaps/winder/images.h new file mode 100644 index 0000000000..2202e31574 --- /dev/null +++ b/keyboards/avalanche/v4/keymaps/winder/images.h @@ -0,0 +1,69 @@ +// Copyright 2022 Will Winder (@winder) +// SPDX-License-Identifier: GPL-2.0-or-later + +static const char display [] PROGMEM = { +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0x7f, 0x3f, 0x9f, 0xcf, 0x8f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0xcf, 0xef, +0xe7, 0xcf, 0x8f, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf1, 0xe3, 0xf7, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0xbf, 0x9f, 0x1f, 0x3f, +0x7b, 0xf0, 0xfe, 0xff, 0xff, 0xfe, 0x7c, 0x78, 0x71, 0x03, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x3f, 0xff, 0xf3, 0xe3, 0xd7, 0xef, 0xdf, 0x9c, 0x39, 0x73, +0xe7, 0xef, 0xcf, 0xcf, 0xce, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xdf, 0x9f, 0xbf, 0x3f, 0x1f, 0xc8, 0xe1, 0xc7, 0x9f, 0x3f, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0x7f, 0x7f, 0x7f, 0xe7, 0xc7, 0x9f, 0x3f, 0x7d, 0xf0, 0xe3, 0xc7, 0x8f, 0x9f, 0x3e, +0x3c, 0xb8, 0x81, 0xc3, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xbf, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xcf, 0xe7, +0xf3, 0xf9, 0x71, 0x03, 0x87, 0x8f, 0x1e, 0x3c, 0x79, 0xf3, 0xee, 0x9d, 0xfb, 0xf3, 0xf7, 0xfe, +0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xe7, 0xf3, +0xf9, 0xfc, 0xf9, 0xf3, 0xe7, 0xcf, 0x9f, 0x3f, 0x7e, 0xfe, 0xfc, 0xfd, 0xf9, 0xf8, 0xf8, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x9f, 0x3f, 0x7f, +0xff, 0xfe, 0xfe, 0xfc, 0xf0, 0xe6, 0xcd, 0x9d, 0x3b, 0x7a, 0xf0, 0xf1, 0xe1, 0xf3, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x47, 0x1f, +0x3d, 0xf9, 0xf9, 0xf3, 0x83, 0x30, 0x78, 0x78, 0x71, 0x23, 0x87, 0xcf, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xe7, 0xef, 0xcf, 0x0e, 0x0c, 0xe1, 0xe3, 0xe7, 0xcf, +0x1f, 0x3e, 0x7e, 0xff, 0xef, 0xe7, 0xf3, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf9, 0xf3, 0xe7, 0xcf, 0x9f, 0x3f, 0x7f, +0x7f, 0x3f, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xbf, 0x9f, 0xbf, 0x3f, 0x3b, 0x33, 0x87, 0x8f, 0x9f, 0x3f, 0x7f, 0xff, 0xfe, +0xfc, 0xb9, 0x83, 0xc7, 0xe7, 0xf3, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xbf, 0x9f, 0xcf, 0xc7, 0x33, 0x7f, 0xfe, 0xfc, 0xfc, 0xf9, 0xf8, 0xf6, 0xe7, +0xee, 0xc8, 0x83, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf9, 0xf9, 0xf9, 0xf9, +0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf8, 0xfc, +0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x07, 0x73, +0xfb, 0xfb, 0xf3, 0xe7, 0xcf, 0x9f, 0x3f, 0xf8, 0xf0, 0xe7, 0xe7, 0xe7, 0xe7, 0xf0, 0xf8, 0xfd, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x87, 0x33, +0x3b, 0x39, 0x3b, 0x9f, 0x9f, 0x9f, 0x3f, 0x7f, 0xfe, 0xfc, 0xd9, 0xc3, 0xe3, 0xf3, 0xf9, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xdf, 0xdf, 0xdf, 0xbf, 0x7f, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xe7, 0xf3, 0xf9, 0xf8, 0xf1, 0xe3, 0xc7, 0x8f, 0x1f, 0x3e, +0x7c, 0xf9, 0xf3, 0xf3, 0xf3, 0xf3, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf3, 0xf9, 0xfc, 0xbe, 0x9c, 0xc1, 0xe3, 0xe7, 0xcf, +0x1f, 0x3f, 0xff, 0xf3, 0xf3, 0xfb, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, +0xff, 0xff, 0xe7, 0xdb, 0xbb, 0x7b, 0xf7, 0xee, 0xdc, 0xbd, 0xff, 0xf7, 0xf7, 0xf6, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, +0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf9, 0xfc, +0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfc, +0xf9, 0xf3, 0xa7, 0xcf, 0xef, 0xff, 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; diff --git a/keyboards/avalanche/v4/keymaps/winder/keymap.c b/keyboards/avalanche/v4/keymaps/winder/keymap.c new file mode 100644 index 0000000000..75de2f11a8 --- /dev/null +++ b/keyboards/avalanche/v4/keymaps/winder/keymap.c @@ -0,0 +1,135 @@ +// Copyright 2022 Viatly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* +qmk compile -kb avalanche/v4 -km default +qmk flash -kb avalanche/v4 -km default +*/ + +#include QMK_KEYBOARD_H + +enum layer { + _QWERTY, + _LOWER, + _RAISE, +}; + +#define FN_1 MO(_LOWER) +#define FN_2 MO(_RAISE) + +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_DEL , + 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_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_UNDS, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_DEL , KC_LGUI, /**/ KC_INS , KC_BSPC, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + KC_LGUI, KC_LALT, KC_LGUI, FN_1 , KC_ENT , /**/ FN_2 , KC_SPC , KC_BSPC, KC_RALT, KC_RGUI + ), + [_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_DEL , + _______ , KC_TILD, 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] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_0, KC_1, KC_2, KC_3, KC_BSPC, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, KC_0, KC_4, KC_5, KC_6, KC_DEL, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_0, KC_7, KC_8, KC_9, KC_DOT, _______, _______, /**/ _______, _______, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, /**/ _______, _______, _______, _______, _______ + ), +}; + +#ifdef OLED_ENABLE + +#include "images.h" + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_0; +} + +void shiftright(char* buf, int size, int num) { + for (int i = size-1; i > 0; i--) { + buf[i] >>= 1; + if (buf[i-1] & 0x01) { + buf[i] |= 0x80; + } + } + buf[0] >>= 1; +} + +// right to left, 8 bit vertical strips. +void mask(char* enable) { + char rowenable[3]; + const char* data = display; + int i = 0; + char blockmask[2] = { 0x00, 0x00 }; + + while (i < sizeof(display)) { + if (i % 128 == 0) { + // shift enable-mask right 1 at each row, reinitialize row copy + if (i != 0) { + shiftright(enable, 3, 2); + } + rowenable[0] = enable[0]; + rowenable[1] = enable[1]; + rowenable[2] = enable[2]; + } + + if (i % 8 == 0) { + if (rowenable[2] & 0x01) { + blockmask[1] = 0xff; + } else { + blockmask[1] = 0x00; + } + + if (rowenable[2] & 0x02) { + blockmask[0] = 0xff; + } else { + blockmask[0] = 0x00; + } + shiftright(rowenable, 3, 2); + } + + uint8_t c = pgm_read_byte(data++); + oled_write_raw_byte(c & blockmask[1], i++); + shiftright(blockmask, 2, 1); + } +} + +void setmask(char* mask) { + mask[0] = 0x00; + mask[1] = 0x00; + mask[2] = 0x00; + + uint8_t mod = get_mods() | get_oneshot_mods(); + if (mod & MOD_MASK_CTRL) { + mask[1] |= 0xf0; + } + if (mod & MOD_MASK_ALT) { + mask[1] |= 0x0f; + } + if (mod & MOD_MASK_GUI) { + mask[0] |= 0xf0; + } + + switch (get_highest_layer(layer_state)) { + case _LOWER: + mask[2] |= 0xf0; + break; + case _RAISE: + mask[0] |= 0x0f; + break; + } +} + +bool oled_task_user(void) { + char m[3]; + setmask(m); + mask(m); + return false; +} + +#endif + diff --git a/keyboards/avalanche/v4/keymaps/winder/rules.mk b/keyboards/avalanche/v4/keymaps/winder/rules.mk new file mode 100644 index 0000000000..1e3cebb145 --- /dev/null +++ b/keyboards/avalanche/v4/keymaps/winder/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/avalanche/v4/rules.mk b/keyboards/avalanche/v4/rules.mk new file mode 100644 index 0000000000..370dc1a6a8 --- /dev/null +++ b/keyboards/avalanche/v4/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = 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 +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 + +SPLIT_KEYBOARD = yes diff --git a/keyboards/avalanche/v4/v4.c b/keyboards/avalanche/v4/v4.c new file mode 100644 index 0000000000..69c64fc53c --- /dev/null +++ b/keyboards/avalanche/v4/v4.c @@ -0,0 +1,18 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "avalanche.h" + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + oled_write_P(PSTR("Avalanche\nVersion 4"), false); + return true; +} +#endif diff --git a/keyboards/avalanche/v4/v4.h b/keyboards/avalanche/v4/v4.h new file mode 100644 index 0000000000..fde80607b2 --- /dev/null +++ b/keyboards/avalanche/v4/v4.h @@ -0,0 +1,31 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "avalanche.h" + +#include "quantum.h" + +#define L__ KC_NO +#define R__ KC_NO + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, R00, \ + L10, L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, R10, \ + L40, L20, L21, L22, L23, L24, L25, R25, R24, R23, R22, R21, R20, R40, \ + L30, L31, L32, L33, L34, L35, L36, L26, R26, R36, R35, R34, R33, R32, R31, R30, \ + L42, L43, L44, L45, L46, R46, R45, R44, R43, R42 \ +) \ +{ \ + { L00, L01, L02, L03, L04, L05, L__}, \ + { L10, L11, L12, L13, L14, L15, L__}, \ + { L20, L21, L22, L23, L24, L25, L26}, \ + { L30, L31, L32, L33, L34, L35, L36}, \ + { L40, L__, L42, L43, L44, L45, L46}, \ + { R00, R01, R02, R03, R04, R05, R__}, \ + { R10, R11, R12, R13, R14, R15, R__}, \ + { R20, R21, R22, R23, R24, R25, R26}, \ + { R30, R31, R32, R33, R34, R35, R36}, \ + { R40, R__, R42, R43, R44, R45, R46} \ +} diff --git a/keyboards/aves60/config.h b/keyboards/aves60/config.h index d44951a4ce..7783cc9120 100644 --- a/keyboards/aves60/config.h +++ b/keyboards/aves60/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x9991 -#define PRODUCT_ID 0xD408 -#define DEVICE_VER 0x0001 -#define MANUFACTURER I/O Keyboards -#define PRODUCT Aves 60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/aves60/info.json b/keyboards/aves60/info.json index f921de058a..6d1c7f4e37 100644 --- a/keyboards/aves60/info.json +++ b/keyboards/aves60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Aves60", + "keyboard_name": "Aves 60", + "manufacturer": "I/O Keyboards", "url": "https://iokeyboards.eu/", "maintainer": "evyd13", + "usb": { + "vid": "0x9991", + "pid": "0xD408", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/aves65/config.h b/keyboards/aves65/config.h index 5ae386512c..1536787ac0 100644 --- a/keyboards/aves65/config.h +++ b/keyboards/aves65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x9991 -#define PRODUCT_ID 0x9038 -#define DEVICE_VER 0x0001 -#define MANUFACTURER I/O Keyboards -#define PRODUCT Aves65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/aves65/info.json b/keyboards/aves65/info.json index 4531d93b81..789725a9d2 100644 --- a/keyboards/aves65/info.json +++ b/keyboards/aves65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Aves65", + "manufacturer": "I/O Keyboards", "url": "", "maintainer": "Hund", + "usb": { + "vid": "0x9991", + "pid": "0x9038", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/axolstudio/foundation_gamma/config.h b/keyboards/axolstudio/foundation_gamma/config.h index 6883e51d57..59b4339428 100644 --- a/keyboards/axolstudio/foundation_gamma/config.h +++ b/keyboards/axolstudio/foundation_gamma/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x525C -#define PRODUCT_ID 0xE3EB -#define DEVICE_VER 0x0001 -#define MANUFACTURER Axolstudio -#define PRODUCT Foundation Gamma - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/axolstudio/foundation_gamma/info.json b/keyboards/axolstudio/foundation_gamma/info.json index 8845e6ce77..e26e61f1e4 100644 --- a/keyboards/axolstudio/foundation_gamma/info.json +++ b/keyboards/axolstudio/foundation_gamma/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Foundation Gamma", + "manufacturer": "Axolstudio", "url": "https://axolstudio.ca/foundation-gamma", "maintainer": "kb-elmo", + "usb": { + "vid": "0x525C", + "pid": "0xE3EB", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_ansi_tsangan": "LAYOUT_tkl_f13_ansi_tsangan", "LAYOUT_all": "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift" diff --git a/keyboards/axolstudio/helpo/config.h b/keyboards/axolstudio/helpo/config.h index 927c7cc56c..5251f7aefb 100644 --- a/keyboards/axolstudio/helpo/config.h +++ b/keyboards/axolstudio/helpo/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x525C -#define PRODUCT_ID 0xC89F -#define DEVICE_VER 0x0001 -#define MANUFACTURER Axolstudio -#define PRODUCT Helpo - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 5 diff --git a/keyboards/axolstudio/helpo/info.json b/keyboards/axolstudio/helpo/info.json index 5ec0cc7d13..5c25c7df05 100644 --- a/keyboards/axolstudio/helpo/info.json +++ b/keyboards/axolstudio/helpo/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "helpo", + "keyboard_name": "Helpo", + "manufacturer": "Axolstudio", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0x525C", + "pid": "0xC89F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/axolstudio/yeti/hotswap/config.h b/keyboards/axolstudio/yeti/hotswap/config.h index 559b62a81d..1f0540c9e1 100644 --- a/keyboards/axolstudio/yeti/hotswap/config.h +++ b/keyboards/axolstudio/yeti/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x525C -#define PRODUCT_ID 0x9F9E -#define DEVICE_VER 0x0001 -#define MANUFACTURER DZtech -#define PRODUCT Yeti RGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/axolstudio/yeti/hotswap/info.json b/keyboards/axolstudio/yeti/hotswap/info.json index 72042a98a3..eef82fa2dd 100644 --- a/keyboards/axolstudio/yeti/hotswap/info.json +++ b/keyboards/axolstudio/yeti/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "yeti hotswap", + "keyboard_name": "Yeti Hotswap", + "manufacturer": "Axolstudio", "url": "https://axolstudio.ca/yeti", "maintainer": "kb-elmo", + "usb": { + "vid": "0x525C", + "pid": "0x9F9E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/axolstudio/yeti/soldered/config.h b/keyboards/axolstudio/yeti/soldered/config.h index 34b47bbcac..74468f29e2 100644 --- a/keyboards/axolstudio/yeti/soldered/config.h +++ b/keyboards/axolstudio/yeti/soldered/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x525C -#define PRODUCT_ID 0x9F9F -#define DEVICE_VER 0x0001 -#define MANUFACTURER Axolstudio -#define PRODUCT Yeti - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/axolstudio/yeti/soldered/info.json b/keyboards/axolstudio/yeti/soldered/info.json index 9c6c122ce3..e7e0143786 100644 --- a/keyboards/axolstudio/yeti/soldered/info.json +++ b/keyboards/axolstudio/yeti/soldered/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "yeti soldered", + "keyboard_name": "Yeti Soldered", + "manufacturer": "Axolstudio", "url": "https://axolstudio.ca/yeti", "maintainer": "kb-elmo", + "usb": { + "vid": "0x525C", + "pid": "0x9F9F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice": { "layout": [ diff --git a/keyboards/aya/config.h b/keyboards/aya/config.h index 0381f224ca..aa100864f2 100644 --- a/keyboards/aya/config.h +++ b/keyboards/aya/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define VENDOR_ID 0x1209 -#define PRODUCT_ID 0x2925 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DanNixon -#define PRODUCT Aya - #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/aya/info.json b/keyboards/aya/info.json index 8db200eb6a..d8093bad72 100644 --- a/keyboards/aya/info.json +++ b/keyboards/aya/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Aya", + "manufacturer": "DanNixon", "url": "https://github.com/DanNixon/aya", "maintainer": "dannixon", + "usb": { + "vid": "0x1209", + "pid": "0x2925", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "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":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":16, "y":0}, {"x":17, "y":0}, {"x":18, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1}, {"x":17, "y":1}, {"x":18, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":17, "y":2}, {"x":18, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":16, "y":3}, {"x":17, "y":3}, {"x":18, "y":3}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}] diff --git a/keyboards/b_sides/rev41lp/config.h b/keyboards/b_sides/rev41lp/config.h new file mode 100644 index 0000000000..b2c9c01959 --- /dev/null +++ b/keyboards/b_sides/rev41lp/config.h @@ -0,0 +1,38 @@ +/* +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 6 + +#define MATRIX_ROW_PINS { F4, B2, F5, B3, F6, B1, F7 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 } +#define UNUSED_PINS + +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_ON_STATE 1 +#define BACKLIGHT_LEVELS 7 +#define BACKLIGHT_LIMIT_VAL 150 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/b_sides/rev41lp/info.json b/keyboards/b_sides/rev41lp/info.json new file mode 100644 index 0000000000..fb5b0c17c1 --- /dev/null +++ b/keyboards/b_sides/rev41lp/info.json @@ -0,0 +1,64 @@ +{ + "keyboard_name": "rev41lp", + "manufacturer": "cyril279", + "url": "https://github.com/cyril279/keyboards/tree/main/revlp/41_1350", + "maintainer": "cyril279", + "usb": { + "vid": "0xFEED", + "pid": "0x5F10", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_rev41lp": { + "layout": [ + {"label":"K00", "x":0, "y":0.54}, + {"label":"K01", "x":1, "y":0.36}, + {"label":"K02", "x":2, "y":0.18}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0.18}, + {"label":"K05", "x":5, "y":0.36}, + + {"label":"K10", "x":7, "y":0.36}, + {"label":"K11", "x":8, "y":0.18}, + {"label":"K12", "x":9, "y":0}, + {"label":"K13", "x":10, "y":0.18}, + {"label":"K14", "x":11, "y":0.36}, + {"label":"K15", "x":12, "y":0.54}, + + {"label":"K20", "x":0, "y":1.54}, + {"label":"K21", "x":1, "y":1.36}, + {"label":"K22", "x":2, "y":1.18}, + {"label":"K23", "x":3, "y":1}, + {"label":"K24", "x":4, "y":1.18}, + {"label":"K25", "x":5, "y":1.36}, + + {"label":"K30", "x":7, "y":1.36}, + {"label":"K31", "x":8, "y":1.18}, + {"label":"K32", "x":9, "y":1}, + {"label":"K33", "x":10, "y":1.18}, + {"label":"K34", "x":11, "y":1.36}, + {"label":"K35", "x":12, "y":1.54}, + + {"label":"K40", "x":0, "y":2.54}, + {"label":"K41", "x":1, "y":2.36}, + {"label":"K42", "x":2, "y":2.18}, + {"label":"K43", "x":3, "y":2}, + {"label":"K44", "x":4, "y":2.18}, + {"label":"K45", "x":5, "y":2.36}, + + {"label":"K50", "x":7, "y":2.36}, + {"label":"K51", "x":8, "y":2.18}, + {"label":"K52", "x":9, "y":2}, + {"label":"K53", "x":10, "y":2.18}, + {"label":"K54", "x":11, "y":2.36}, + {"label":"K55", "x":12, "y":2.54}, + + {"label":"K60", "x":2.875, "y":3.54, "w":1.25}, + {"label":"K61", "x":4.125, "y":3.54, "w":1.25}, + {"label":"K62", "x":5.375, "y":3.54, "w":2.25}, + {"label":"K63", "x":7.625, "y":3.54, "w":1.25}, + {"label":"K64", "x":8.875, "y":3.54, "w":1.25} + ] + } + } +} diff --git a/keyboards/b_sides/rev41lp/keymaps/cyril/config.h b/keyboards/b_sides/rev41lp/keymaps/cyril/config.h new file mode 100644 index 0000000000..4677c5f1d4 --- /dev/null +++ b/keyboards/b_sides/rev41lp/keymaps/cyril/config.h @@ -0,0 +1,21 @@ +/* +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 . +*/ +#pragma once + +#define TAPPING_TERM 150 +#define TAPPING_TERM_PER_KEY +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/b_sides/rev41lp/keymaps/cyril/keymap.c b/keyboards/b_sides/rev41lp/keymaps/cyril/keymap.c new file mode 100644 index 0000000000..6db1e47a2f --- /dev/null +++ b/keyboards/b_sides/rev41lp/keymaps/cyril/keymap.c @@ -0,0 +1,105 @@ +/* +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 + +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST, + _NAVIG, + _FUNCTION +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) +#define SPC_NAV LT(_NAVIG,KC_SPC) +#define FUNCT MO(_FUNCTION) +#define NAVIG MO(_NAVIG) + +#define LGUI_A LGUI_T(KC_A) +#define LALT_S LALT_T(KC_S) +#define LSFT_D LSFT_T(KC_D) +#define LCTL_F LCTL_T(KC_F) +#define RCTL_J RCTL_T(KC_J) +#define RSFT_K RSFT_T(KC_K) +#define RALT_L LALT_T(KC_L) +#define RGUI_SCLN RGUI_T(KC_SCLN) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_rev41lp( + 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, LALT_S, LSFT_D, LCTL_F, KC_G, KC_H, RCTL_J, RSFT_K, RALT_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_ENT, + KC_LGUI, LOWER, SPC_NAV, RAISE, FUNCT + ), + + [_LOWER] = LAYOUT_rev41lp( + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_TILD, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, KC_LGUI, KC_LALT, KC_CAPS, _______, KC_PSCR, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), + + [_RAISE] = LAYOUT_rev41lp( + KC_TILD, 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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, KC_LGUI, KC_LALT, KC_CAPS, _______, KC_PSCR, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), + + [_NAVIG] = LAYOUT_rev41lp( + KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, + _______, _______, KC_LGUI, KC_LALT, KC_CAPS, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, + _______, _______, _______, _______, _______ + ), + + [_FUNCTION] = LAYOUT_rev41lp( + KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, _______, KC_LGUI, KC_LALT, KC_CAPS, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT_rev41lp( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_BRTG, BL_INC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______ + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LGUI_A: + case RGUI_SCLN: + case LALT_S: + case RALT_L: + case LCTL_F: + case RCTL_J: + case SPC_NAV: + return 225; + default: + return TAPPING_TERM; + } +} diff --git a/keyboards/b_sides/rev41lp/keymaps/default/keymap.c b/keyboards/b_sides/rev41lp/keymaps/default/keymap.c new file mode 100644 index 0000000000..b80f4de480 --- /dev/null +++ b/keyboards/b_sides/rev41lp/keymaps/default/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_rev41lp( + 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_rev41lp( + _______, 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_rev41lp( + _______, 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_rev41lp( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_BRTG, BL_INC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______ + ) +}; + diff --git a/keyboards/b_sides/rev41lp/keymaps/namnlos/config.h b/keyboards/b_sides/rev41lp/keymaps/namnlos/config.h new file mode 100644 index 0000000000..69d44bdd03 --- /dev/null +++ b/keyboards/b_sides/rev41lp/keymaps/namnlos/config.h @@ -0,0 +1,43 @@ +/* Copyright 2022 Jan Lindblom (@janlindblom) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#undef BACKLIGHT_LEVELS +#define BACKLIGHT_LEVELS 11 +#undef BACKLIGHT_LIMIT_VAL +#define BACKLIGHT_LIMIT_VAL 255 +#define BACKLIGHT_DEFAULT_LEVEL 3 + +#define COMBO_COUNT 3 +#define IGNORE_MOD_TAP_INTERRUPT + +#define UNICODE_SELECTED_MODES UC_WINC, UC_WIN, UC_MAC, UC_LNX + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 200 +#define TAPPING_TERM_PER_KEY + +#define LAYER_STATE_8BIT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +#define NO_ACTION_ONESHOT + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* key combination for command */ +#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) diff --git a/keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c b/keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c new file mode 100644 index 0000000000..408c911250 --- /dev/null +++ b/keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c @@ -0,0 +1,176 @@ +/* Copyright 2022 Jan Lindblom (@janlindblom) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_swedish.h" +#include "sendstring_swedish.h" + +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + SK_NOT_EQL = SAFE_RANGE, + SK_LEQ, + SK_GEQ, +}; + +// Custom send_string keys +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SK_NOT_EQL: + if (record->event.pressed) { + SEND_STRING("!="); + } + break; + case SK_LEQ: + if (record->event.pressed) { + SEND_STRING("<="); + } + break; + case SK_GEQ: + if (record->event.pressed) { + SEND_STRING(">="); + } + break; + } + return true; +} + +// Combos, if enabled +#ifdef COMBO_ENABLE +enum combo_events { + ZC_COPY, + XV_PASTE, + ZX_CUT, +}; + +const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END}; +const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END}; +const uint16_t PROGMEM cut_combo[] = {KC_Z, KC_X, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [ZC_COPY] = COMBO_ACTION(copy_combo), + [XV_PASTE] = COMBO_ACTION(paste_combo), + [ZX_CUT] = COMBO_ACTION(cut_combo), +}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + switch (combo_index) { + case ZC_COPY: + if (pressed) { + tap_code16(LCTL(KC_C)); + } + break; + case XV_PASTE: + if (pressed) { + tap_code16(LCTL(KC_V)); + } + break; + case ZX_CUT: + if (pressed) { + tap_code16(LCTL(KC_X)); + } + break; + } +} +#endif + +// Tap Dance definitions +#ifdef TAP_DANCE_ENABLE +enum dances { + TD_SHFT_CAPS, + TD_DOT_COL, + TD_COM_SCL, + TD_DASH_USCR, +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Shift, twice for Caps Lock + [TD_SHFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), + [TD_COM_SCL] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, SE_SCLN), + [TD_DOT_COL] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, SE_COLN), + [TD_DASH_USCR] = ACTION_TAP_DANCE_DOUBLE(SE_MINS, S(SE_MINS)), +}; +# define CK_LSFT TD(TD_SHFT_CAPS) +# define CK_COMM TD(TD_COM_SCL) +# define CK_DOT TD(TD_DOT_COL) +# define CK_DASH TD(TD_DASH_USCR) +#else +# define CK_LSFT KC_LSFT +# define CK_COMM KC_COMM +# define CK_DOT KC_DOT +# define CK_DASH SE_MINS +#endif + +// Some defines for the keys below +#define CK_ESC LT(_RAISE, KC_ESC) +#define CK_BSPC LCTL_T(KC_BSPC) +#define CK_DEL LALT_T(KC_DEL) +#define CK_ENT1 LT(_LOWER, KC_ENT) +#define CK_ENT2 LT(_RAISE, KC_ENT) +#define CK_TAB RALT_T(KC_TAB) +#define CK_ADIA RCTL_T(SE_ADIA) +#define CK_QUOT RSFT_T(SE_QUOT) +#define CK_SPC RSFT_T(KC_SPC) + +// Alt + [-] => – (en-dash) +const key_override_t mins_ndash_override = ko_make_basic(MOD_MASK_ALT, SE_MINS, UC(0x2013)); + // Shift + Alt + [-] => — (em-dash) +const key_override_t mins_mdash_override = ko_make_basic(MOD_MASK_SA, SE_MINS, UC(0x2014)); + +const key_override_t **key_overrides = (const key_override_t *[]){ + &mins_ndash_override, + &mins_mdash_override, + NULL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_rev41lp( + CK_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_ARNG, + CK_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_ODIA, CK_ADIA, + CK_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, SE_COMM, SE_DOT, SE_MINS, CK_QUOT, + CK_DEL, CK_ENT1, KC_SPC, CK_ENT2, CK_TAB + ), + + [_LOWER] = LAYOUT_rev41lp( + SK_NOT_EQL, SE_EXLM, SE_AT, SE_HASH, SE_DLR, SE_PERC, SE_CIRC, SE_AMPR, SE_ASTR, SE_LPRN, SE_RPRN, SE_DIAE, + SK_LEQ, SE_UNDS, SE_PLUS, SE_LCBR, SE_RCBR, SE_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, SE_GRV, SE_TILD, + SK_GEQ, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, SE_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, CK_SPC, + _______, _______, KC_ENT, _______, _______ + ), + + [_RAISE] = LAYOUT_rev41lp( + _______, SE_1, SE_2, SE_3, SE_4, SE_5, SE_6, SE_7, SE_8, SE_9, SE_0, SE_GRV, + _______, SE_MINS, SE_EQL, SE_LBRC, SE_RBRC, SE_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, SE_ACUT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + SE_LABK, SE_RABK, KC_BSPC, _______, _______ + ), + + [_ADJUST] = LAYOUT_rev41lp( + XXXXXXX, XXXXXXX, XXXXXXX, BL_OFF, BL_DEC, BL_TOGG, BL_BRTG, BL_INC, BL_ON, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_STEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, UC_M_WC, UC_M_MA, UC_M_LN, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______ + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/b_sides/rev41lp/keymaps/namnlos/readme.md b/keyboards/b_sides/rev41lp/keymaps/namnlos/readme.md new file mode 100644 index 0000000000..cc307b3a97 --- /dev/null +++ b/keyboards/b_sides/rev41lp/keymaps/namnlos/readme.md @@ -0,0 +1,3 @@ +# Namnlos custom keymap for Rev41lp + +This is a nordic keymap for the Rev41lp by [cyril](https://github.com/cyril279), it's based on the default keymap but has customisations for nordic languages. diff --git a/keyboards/b_sides/rev41lp/keymaps/namnlos/rules.mk b/keyboards/b_sides/rev41lp/keymaps/namnlos/rules.mk new file mode 100644 index 0000000000..59c3380a3b --- /dev/null +++ b/keyboards/b_sides/rev41lp/keymaps/namnlos/rules.mk @@ -0,0 +1,7 @@ +SLEEP_LED_ENABLE = yes +NKRO_ENABLE = yes +UNICODE_ENABLE = yes +TAP_DANCE_ENABLE = yes +KEY_OVERRIDE_ENABLE = yes +DEBOUNCE_TYPE = sym_defer_pk +LTO_ENABLE = yes diff --git a/keyboards/b_sides/rev41lp/readme.md b/keyboards/b_sides/rev41lp/readme.md new file mode 100644 index 0000000000..1a72bbf785 --- /dev/null +++ b/keyboards/b_sides/rev41lp/readme.md @@ -0,0 +1,15 @@ +# The rev41lp keyboard + +![The rev41lp keyboard by cyril279](https://imgur.com/nZNHSaWh.jpg) + +Inspired by the REVIUNG series by Gtips, the rev41lp is 41-key column staggered keyboard designed for use with low-profile Kailh Choc (pg1350) switches. + +* Keyboard Maintainer: [cyril279](https://github.com/cyril279) +* Hardware Supported: The REVlp PCBs, Pro Micro supported, bluetooth controller friendly. +* Hardware Availability: [PCB Data](https://github.com/cyril279/keyboards/tree/main/revlp) + +Make example for this keyboard (after setting up your build environment): + + make b_sides/rev41lp:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/b_sides/rev41lp/rev41lp.c b/keyboards/b_sides/rev41lp/rev41lp.c new file mode 100644 index 0000000000..d9ab1ed21e --- /dev/null +++ b/keyboards/b_sides/rev41lp/rev41lp.c @@ -0,0 +1,17 @@ +/* +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 "rev41lp.h" diff --git a/keyboards/b_sides/rev41lp/rev41lp.h b/keyboards/b_sides/rev41lp/rev41lp.h new file mode 100644 index 0000000000..47afd295a0 --- /dev/null +++ b/keyboards/b_sides/rev41lp/rev41lp.h @@ -0,0 +1,35 @@ +/* +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 . +*/ +#pragma once + +#include "quantum.h" + +#define LAYOUT_rev41lp( \ + K00, K01, K02, K03, K04, K05, K10, K11, K12, K13, K14, K15, \ + K20, K21, K22, K23, K24, K25, K30, K31, K32, K33, K34, K35, \ + K40, K41, K42, K43, K44, K45, K50, K51, K52, K53, K54, K55, \ + K60, K61, K62, K63, K64 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05 }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K40, K41, K42, K43, K44, K45 }, \ + { K50, K51, K52, K53, K54, K55 }, \ + { K60, K61, K62, K63, K64, KC_NO } \ +} diff --git a/keyboards/b_sides/rev41lp/rules.mk b/keyboards/b_sides/rev41lp/rules.mk new file mode 100644 index 0000000000..27d9decbbf --- /dev/null +++ b/keyboards/b_sides/rev41lp/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/bacca70/config.h b/keyboards/bacca70/config.h index 703baaaf3a..9fd41650fb 100644 --- a/keyboards/bacca70/config.h +++ b/keyboards/bacca70/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBACA -#define PRODUCT_ID 0x6970 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Viktus Design LLC -#define PRODUCT Bacca70 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 8 diff --git a/keyboards/bacca70/info.json b/keyboards/bacca70/info.json index ddc2f894ac..57840b4e12 100644 --- a/keyboards/bacca70/info.json +++ b/keyboards/bacca70/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bacca70", + "manufacturer": "Viktus Design LLC", "url": "https://3dkeebs.com/", "maintainer": "keebnewb", + "usb": { + "vid": "0xBACA", + "pid": "0x6970", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/baguette/config.h b/keyboards/baguette/config.h index b4937579a3..2db6f08c52 100644 --- a/keyboards/baguette/config.h +++ b/keyboards/baguette/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x5050 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar -#define PRODUCT Baguette - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/baguette/info.json b/keyboards/baguette/info.json index cad167381f..2c6b09fc09 100644 --- a/keyboards/baguette/info.json +++ b/keyboards/baguette/info.json @@ -1,8 +1,14 @@ { "keyboard_name": "Baguette", + "manufacturer": "Yiancar", "url": "", "maintainer": "qmk", "bootloader": "atmel-dfu", + "usb": { + "vid": "0xFEED", + "pid": "0x5050", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/balloondogcaps/tr90/info.json b/keyboards/balloondogcaps/tr90/info.json new file mode 100644 index 0000000000..c17cafaebf --- /dev/null +++ b/keyboards/balloondogcaps/tr90/info.json @@ -0,0 +1,41 @@ +{ + "manufacturer": "Balloondog", + "keyboard_name": "TR90", + "maintainer": "balloondogcaps", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F5", "F6", "D5"], + "rows": ["F0", "F1", "F4"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4243" + }, + "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": [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 } + ] + } + } +} diff --git a/keyboards/balloondogcaps/tr90/keymaps/default/keymap.c b/keyboards/balloondogcaps/tr90/keymaps/default/keymap.c new file mode 100644 index 0000000000..793212e002 --- /dev/null +++ b/keyboards/balloondogcaps/tr90/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2021 Balloondog + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_VOLD, KC_VOLU, MO(1) + ), + [1] = LAYOUT( + KC_7, KC_8, KC_9, + KC_0, KC_MINUS, KC_PLUS, + RESET, KC_AT , KC_TRNS + ), +}; + + diff --git a/keyboards/balloondogcaps/tr90/keymaps/via/keymap.c b/keyboards/balloondogcaps/tr90/keymaps/via/keymap.c new file mode 100644 index 0000000000..efe6eefa77 --- /dev/null +++ b/keyboards/balloondogcaps/tr90/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2021 Balloondog + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_VOLD, KC_VOLU, MO(1) + ), + [1] = LAYOUT( + KC_7, KC_8, KC_9, + KC_0, KC_MINUS, KC_PLUS, + RESET, KC_AT , KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + + diff --git a/keyboards/balloondogcaps/tr90/keymaps/via/rules.mk b/keyboards/balloondogcaps/tr90/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/balloondogcaps/tr90/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/balloondogcaps/tr90/readme.md b/keyboards/balloondogcaps/tr90/readme.md new file mode 100644 index 0000000000..06b8a232ef --- /dev/null +++ b/keyboards/balloondogcaps/tr90/readme.md @@ -0,0 +1,25 @@ +# balloondogcaps/tr90 + +![balloondogcaps/tr90](https://i.imgur.com/GCAZotn.jpeg) + +A 3x3 Pro Macropad with programmer pins + +* Keyboard Maintainer: [Balloondog](https://instagram.com/balloondogcaps) +* Hardware Supported: Balloondog Play Rough series case(s) +* Hardware Availability: [Balloondog](http://store.balloondog.nl) + +Make example for this keyboard (after setting up your build environment): + + make balloondogcaps/tr90:default + +Flashing example for this keyboard: + + make balloondogcaps/tr90: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 back of the PCB +* **Keycode in layout**: Hold the bottom right key and then press the bottom left key to enter the bootloader diff --git a/keyboards/just60/.noci b/keyboards/balloondogcaps/tr90/rules.mk similarity index 100% rename from keyboards/just60/.noci rename to keyboards/balloondogcaps/tr90/rules.mk diff --git a/keyboards/balloondogcaps/tr90pm/info.json b/keyboards/balloondogcaps/tr90pm/info.json new file mode 100644 index 0000000000..d028b4a3cd --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/info.json @@ -0,0 +1,41 @@ +{ + "manufacturer": "Balloondog", + "keyboard_name": "TR90PM", + "maintainer": "balloondogcaps", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D1", "D0", "D4"], + "rows": ["C6", "D7", "E6"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x4243" + }, + "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": [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 } + ] + } + } +} diff --git a/keyboards/balloondogcaps/tr90pm/keymaps/default/keymap.c b/keyboards/balloondogcaps/tr90pm/keymaps/default/keymap.c new file mode 100644 index 0000000000..793212e002 --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2021 Balloondog + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_VOLD, KC_VOLU, MO(1) + ), + [1] = LAYOUT( + KC_7, KC_8, KC_9, + KC_0, KC_MINUS, KC_PLUS, + RESET, KC_AT , KC_TRNS + ), +}; + + diff --git a/keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c b/keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c new file mode 100644 index 0000000000..efe6eefa77 --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2021 Balloondog + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_VOLD, KC_VOLU, MO(1) + ), + [1] = LAYOUT( + KC_7, KC_8, KC_9, + KC_0, KC_MINUS, KC_PLUS, + RESET, KC_AT , KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + + diff --git a/keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk b/keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/balloondogcaps/tr90pm/readme.md b/keyboards/balloondogcaps/tr90pm/readme.md new file mode 100644 index 0000000000..7a7c35660c --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/readme.md @@ -0,0 +1,25 @@ +# balloondogcaps/tr90pm + +![balloondogcaps/tr90pm](https://i.imgur.com/AO5anzZh.png) + +A 3x3 Pro Micro enabled Macropad + +* Keyboard Maintainer: [Balloondog](https://instagram.com/balloondogcaps) +* Hardware Supported: Balloondog Play Rough series case(s) +* Hardware Availability: [Balloondog](http://store.balloondog.nl) + +Make example for this keyboard (after setting up your build environment): + + make balloondogcaps/tr90pm:default + +Flashing example for this keyboard: + + make balloondogcaps/tr90pm: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 back of the PCB. Some Pro Micro's require a double press. +* **Keycode in layout**: Hold the bottom right key and then press the bottom left key to enter the bootloader diff --git a/keyboards/balloondogcaps/tr90pm/rules.mk b/keyboards/balloondogcaps/tr90pm/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/balloondogcaps/tr90pm/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/bandominedoni/config.h b/keyboards/bandominedoni/config.h index d95b600536..0e37d96d41 100644 --- a/keyboards/bandominedoni/config.h +++ b/keyboards/bandominedoni/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xF4B5 -#define DEVICE_VER 0x0001 -#define MANUFACTURER 3araht -#define PRODUCT bandominedoni - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 7 diff --git a/keyboards/bandominedoni/info.json b/keyboards/bandominedoni/info.json index 82fcc559c9..040526b39c 100644 --- a/keyboards/bandominedoni/info.json +++ b/keyboards/bandominedoni/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "bandominedoni", + "manufacturer": "3araht", "url": "https://github.com/3araht", "maintainer": "3araht", + "usb": { + "vid": "0xFEED", + "pid": "0xF4B5", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bandominedoni/keymaps/led/keymap.c b/keyboards/bandominedoni/keymaps/led/keymap.c index 4a88d33872..305756b5b1 100644 --- a/keyboards/bandominedoni/keymaps/led/keymap.c +++ b/keyboards/bandominedoni/keymaps/led/keymap.c @@ -180,7 +180,7 @@ void keyboard_post_init_user(void) { #ifdef RGB_MATRIX_ENABLE void rgb_matrix_indicators_user(void) { if (rgb_matrix_is_enabled()) { // turn the lights on when it is enabled. - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _CLOSE: // rgb_matrix_set_color(pgm_read_byte(&convert_led_location2number[11]), RGB_RED); // RGB_TOG <- too heavy. diff --git a/keyboards/bandominedoni/keymaps/via/keymap.c b/keyboards/bandominedoni/keymaps/via/keymap.c index 342ed1d40c..ad6833d692 100644 --- a/keyboards/bandominedoni/keymaps/via/keymap.c +++ b/keyboards/bandominedoni/keymaps/via/keymap.c @@ -118,7 +118,7 @@ void keyboard_post_init_user(void) { #ifdef RGB_MATRIX_ENABLE void rgb_matrix_indicators_user(void) { if (rgb_matrix_is_enabled()) { // turn the lights on when it is enabled. - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _CLOSE: // rgb_matrix_set_color(pgm_read_byte(&convert_led_location2number[11]), RGB_RED); // RGB_TOG <- too heavy. diff --git a/keyboards/bantam44/config.h b/keyboards/bantam44/config.h index 2745f5c045..9933ec2fb3 100644 --- a/keyboards/bantam44/config.h +++ b/keyboards/bantam44/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bantam Keyboards -#define PRODUCT Bantam44 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/bantam44/info.json b/keyboards/bantam44/info.json index 6092898327..4531a7e28e 100644 --- a/keyboards/bantam44/info.json +++ b/keyboards/bantam44/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Bantam-44", + "keyboard_name": "Bantam44", + "manufacturer": "Bantam Keyboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"K00", "x":0, "y":0}, {"label":"K01", "x":1, "y":0}, {"label":"K02", "x":2, "y":0}, {"label":"K03", "x":3, "y":0}, {"label":"K04", "x":4, "y":0}, {"label":"K05", "x":5, "y":0}, {"label":"K06", "x":6, "y":0}, {"label":"K07", "x":7, "y":0}, {"label":"K08", "x":8, "y":0}, {"label":"K09", "x":9, "y":0}, {"label":"K0A", "x":10, "y":0}, {"label":"K0B", "x":11, "y":0}, {"label":"K10", "x":0, "y":1, "w":1.5}, {"label":"K11", "x":1.5, "y":1}, {"label":"K12", "x":2.5, "y":1}, {"label":"K13", "x":3.5, "y":1}, {"label":"K14", "x":4.5, "y":1}, {"label":"K15", "x":5.5, "y":1}, {"label":"K16", "x":6.5, "y":1}, {"label":"K17", "x":7.5, "y":1}, {"label":"K18", "x":8.5, "y":1}, {"label":"K19", "x":9.5, "y":1}, {"label":"K1A", "x":10.5, "y":1, "w":1.5}, {"label":"K20", "x":0, "y":2}, {"label":"K21", "x":1, "y":2}, {"label":"K22", "x":2, "y":2}, {"label":"K23", "x":3, "y":2}, {"label":"K24", "x":4, "y":2}, {"label":"K25", "x":5, "y":2}, {"label":"K26", "x":6, "y":2}, {"label":"K27", "x":7, "y":2}, {"label":"K28", "x":8, "y":2}, {"label":"K29", "x":9, "y":2}, {"label":"K2A", "x":10, "y":2}, {"label":"K2B", "x":11, "y":2}, {"label":"K30", "x":0, "y":3, "w":1.25}, {"label":"K31", "x":1.25, "y":3, "w":1.25}, {"label":"K32", "x":2.5, "y":3, "w":1.25}, {"label":"K33", "x":3.75, "y":3, "w":1.25}, {"label":"K34", "x":5, "y":3, "w":2.75}, {"label":"K35", "x":7.75, "y":3, "w":1.25}, {"label":"K36", "x":9, "y":3}, {"label":"K37", "x":10, "y":3}, {"label":"K38", "x":11, "y":3}] diff --git a/keyboards/barleycorn_smd/config.h b/keyboards/barleycorn_smd/config.h index e56992f1fc..ba9e2b9185 100644 --- a/keyboards/barleycorn_smd/config.h +++ b/keyboards/barleycorn_smd/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x7033 -#define PRODUCT_ID 0x4749 -#define DEVICE_VER 0x0001 -#define MANUFACTURER P3D Store -#define PRODUCT Barleycorn SMD - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/barleycorn_smd/info.json b/keyboards/barleycorn_smd/info.json index c0094d20ac..caa0af6213 100644 --- a/keyboards/barleycorn_smd/info.json +++ b/keyboards/barleycorn_smd/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Barleycorn SMD", + "manufacturer": "P3D Store", "maintainer": "matthewdias", + "usb": { + "vid": "0x7033", + "pid": "0x4749", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/barracuda/config.h b/keyboards/barracuda/config.h index 9b83522b1a..ea974876c7 100644 --- a/keyboards/barracuda/config.h +++ b/keyboards/barracuda/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6B6E -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER knaruo -#define PRODUCT barracuda - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 6 diff --git a/keyboards/barracuda/info.json b/keyboards/barracuda/info.json index 4bb18fb911..aad3ac3bb2 100644 --- a/keyboards/barracuda/info.json +++ b/keyboards/barracuda/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "barracuda", + "manufacturer": "knaruo", "url": "https://github.com/knaruo/barracuda", "maintainer": "knaruo", + "usb": { + "vid": "0x6B6E", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_3x11": { "layout": [ diff --git a/keyboards/basekeys/slice/rev1/keymaps/2moons/keymap.c b/keyboards/basekeys/slice/rev1/keymaps/2moons/keymap.c index 1292f2d2ed..26ca151089 100644 --- a/keyboards/basekeys/slice/rev1/keymaps/2moons/keymap.c +++ b/keyboards/basekeys/slice/rev1/keymaps/2moons/keymap.c @@ -46,8 +46,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESFL] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _FLOCK), - [TD_ESQW] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK), + [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c index 7e82c7b7d2..05de0e42d0 100644 --- a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c +++ b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c @@ -39,8 +39,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESFL] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _FLOCK), - [TD_ESQW] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK), + [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/basekeys/trifecta/config.h b/keyboards/basekeys/trifecta/config.h index ffdf6d2d28..753e3d5a41 100644 --- a/keyboards/basekeys/trifecta/config.h +++ b/keyboards/basekeys/trifecta/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEAF3 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Trifecta - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/basekeys/trifecta/info.json b/keyboards/basekeys/trifecta/info.json index 86c45a7df2..f8819e51e4 100644 --- a/keyboards/basekeys/trifecta/info.json +++ b/keyboards/basekeys/trifecta/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Trifecta", + "manufacturer": "Swiftrax", "url": "https://www.basekeys.com", "maintainer": "Swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEAF3", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":8.75, "y":0}, {"label":"*", "x":9.75, "y":0}, {"label":"(", "x":10.75, "y":0}, {"label":")", "x":11.75, "y":0}, {"label":"_", "x":12.75, "y":0}, {"label":"+", "x":13.75, "y":0}, {"label":"BS", "x":14.75, "y":0}, {"x":15.75, "y":0}, {"x":17, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":8.25, "y":1}, {"label":"U", "x":9.25, "y":1}, {"label":"I", "x":10.25, "y":1}, {"label":"O", "x":11.25, "y":1}, {"label":"P", "x":12.25, "y":1}, {"label":"{", "x":13.25, "y":1}, {"label":"}", "x":14.25, "y":1}, {"label":"|", "x":15.25, "y":1, "w":1.5}, {"x":17, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":8.5, "y":2}, {"label":"J", "x":9.5, "y":2}, {"label":"K", "x":10.5, "y":2}, {"label":"L", "x":11.5, "y":2}, {"label":":", "x":12.5, "y":2}, {"label":"\"", "x":13.5, "y":2}, {"label":"Enter", "x":14.5, "y":2, "w":2.25}, {"x":17, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"x":8, "y":3}, {"label":"N", "x":9, "y":3}, {"label":"M", "x":10, "y":3}, {"label":"<", "x":11, "y":3}, {"label":">", "x":12, "y":3}, {"label":"?", "x":13, "y":3}, {"label":"Shift", "x":14, "y":3, "w":1.75}, {"x":16, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3, "y":4, "w":1.5}, {"x":4.5, "y":4, "w":2.25}, {"x":6.75, "y":4}, {"x":8.5, "y":4, "w":2.75}, {"label":"Alt", "x":11.25, "y":4, "w":1.5}, {"label":"Win", "x":13.5, "y":4, "w":1.25}, {"x":15, "y":4.25}, {"x":16, "y":4.25}, {"x":17, "y":4.25}] diff --git a/keyboards/basketweave/config.h b/keyboards/basketweave/config.h index 6f6e325e28..ee8604b8ba 100644 --- a/keyboards/basketweave/config.h +++ b/keyboards/basketweave/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define VENDOR_ID 0x6B62 -#define PRODUCT_ID 0x8989 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Clackery -#define PRODUCT Basketweave - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/basketweave/info.json b/keyboards/basketweave/info.json index 8be02555e8..c26fecaf1b 100644 --- a/keyboards/basketweave/info.json +++ b/keyboards/basketweave/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Basketweave", + "manufacturer": "Clackery", "url": "https://github.com/null-ll/basketweave", "maintainer": "null-ll", + "usb": { + "vid": "0x6B62", + "pid": "0x8989", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..935444af1b --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,19 @@ +// Copyright 2022 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define LAYOUT_miryoku( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_charybdis_3x5( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K32, K33, K34, K35, K36 \ +) diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk new file mode 100644 index 0000000000..ef40279cbc --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk @@ -0,0 +1,4 @@ +# Copyright 2021 Manna Harbour +# https://github.com/manna-harbour/miryoku + +MIRYOKU_KLUDGE_THUMBCOMBOS=yes diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h index 6098c80f11..2b6e11ec61 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h @@ -18,10 +18,10 @@ #undef MATRIX_COL_PINS #define MATRIX_COL_PINS \ - { B0, B1, B10, B3, B4, B5 } + { B0, B1, B12, B3, B4, B5 } #undef MATRIX_COL_PINS_RIGHT #define MATRIX_COL_PINS_RIGHT \ - { B0, B1, B10, B3, B4, B5 } + { B0, B1, B12, B3, B4, B5 } #undef MATRIX_ROW_PINS #define MATRIX_ROW_PINS \ @@ -30,8 +30,12 @@ #define MATRIX_ROW_PINS_RIGHT \ { B15, A2, B8, A8, B9 } +#define UNUSED_PINS { B6, C14, C15 } + #define DIODE_DIRECTION ROW2COL #define SPLIT_HAND_PIN A3 +#undef MASTER_RIGHT +// #define USB_VBUS_PIN B10 #undef RGB_DI_PIN #define RGB_DI_PIN A1 @@ -46,6 +50,13 @@ #define DEBUG_LED_PIN C13 +#define AUDIO_PIN B7 +#define AUDIO_PWM_DRIVER PWMD4 +#define AUDIO_PWM_CHANNEL 2 +#define AUDIO_PWM_PAL_MODE 2 +#define AUDIO_STATE_TIMER GPTD3 +#define AUDIO_INIT_DELAY + #undef SOFT_SERIAL_PIN // #define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. #define SERIAL_USART_TX_PIN A9 @@ -77,9 +88,12 @@ #define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64 #undef PMW3360_CS_PIN -#define PMW3360_CS_PIN B14 +#define PMW3360_CS_PIN A15 // b14 #define PMW3360_CS_MODE 3 #define PMW3360_CS_DIVISOR 64 +#define PMW3360_LIFTOFF_DISTANCE 0b1111 +#undef ROTATIONAL_TRANSFORM_ANGLE +#define ROTATIONAL_TRANSFORM_ANGLE -65 #define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200 #define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400 @@ -90,3 +104,5 @@ #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 + +#define CHARYBDIS_CONFIG_SYNC diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/halconf.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/halconf.h index 97a288d7bd..3d9f187317 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/halconf.h +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/halconf.h @@ -16,11 +16,12 @@ #pragma once #define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE +#define HAL_USE_GPT TRUE #define HAL_USE_SERIAL TRUE // #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE #define SPI_USE_WAIT TRUE #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -// #define HAL_USE_GPT TRUE #include_next diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c index a671300b78..1268d1a8ba 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c @@ -26,8 +26,8 @@ KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, UC_CLUE, \ SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \ LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \ - OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ - KC_GRV, OS_LALT, OS_LGUI, TT(_MOUSE), KC_ENT, \ + OS_LSFT,CTL_T(K21),ALT_T(K22),GUI_T(K23),K24,K25, K26,K27,RGUI_T(K28),RALT_T(K29),RCTL_T(K2A), OS_RSFT, \ + SFT_T(KC_GRV), UC_IRNY, OS_LGUI, TT(_MOUSE), KC_ENT, \ KC_SPC, BK_LWER, DL_RAIS \ ) @@ -58,38 +58,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ ), - - - [_MOUSE] = LAYOUT_charybdis_4x6( - _______, _______, _______, _______, _______, _______, DRGSCRL, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, SNP_TOG, - _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, - _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______ - ), [_GAMEPAD] = LAYOUT_charybdis_4x6( KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______, KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______, KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______ + KC_V, _______, _______, _______, TG_GAME, + KC_SPC, KC_H, _______ ), [_DIABLO] = LAYOUT_charybdis_4x6( KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, _______, _______, _______, _______, _______, _______, KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, _______, _______, _______, _______, _______, _______, KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, _______ + KC_G, _______, _______, TO(_DIABLOII), TG_DBLO, + KC_LSFT, KC_LCTL, _______ ), [_DIABLOII] = LAYOUT_charybdis_4x6( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_GRV, _______, _______, _______, _______, _______, _______, KC_TAB, KC_A, KC_T, KC_Q, KC_I, KC_M, _______, _______, _______, _______, _______, _______, KC_S, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, _______, _______, KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, + KC_DIABLO_CLEAR, _______, _______, _______, TG(_DIABLOII), + SFT_T(KC_SPACE), ALT_T(KC_Q), _______ + ), + [_MOUSE] = LAYOUT_charybdis_4x6( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______, + _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, + _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, DRGSCRL, _______, + _______, SNIPING, SNIPING, _______, _______, _______, _______, _______ ), @@ -112,18 +110,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_ADJUST] = LAYOUT_charybdis_4x6_wrapper( - QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_NOMODE, KC_NOMODE,KC_BLOCKS,KC_REGIONAL,_______,_______, QK_BOOT, + QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_BLOCKS,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT, VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR, KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS, UC_MOD, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY, - QK_RBT, AUTO_CTN, _______, KC_NUKE, _______, + QK_RBT, AUTO_CTN, _______, _______, KC_NUKE, _______, _______, _______ ) }; // clang-format on -void matrix_init_keyemap(void) { setPinInputHigh(A0); } +void matrix_init_keymap(void) { + setPinInputHigh(A0); +#ifdef RGB_MATRIX_ENABLE + g_led_config.flags[53] = g_led_config.flags[54] = g_led_config.flags[55] = + g_led_config.flags[0] = g_led_config.flags[1] = g_led_config.flags[2] = g_led_config.flags[3] = + g_led_config.flags[29] = g_led_config.flags[30] = g_led_config.flags[31] = g_led_config.flags[32] = + LED_FLAG_MODIFIER; +#endif +} void matrix_scan_keymap(void) { if (!readPin(A0)) { @@ -144,3 +150,25 @@ void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { __asm__ volatile("nop" ::: "memory"); } } + + +#ifdef SWAP_HANDS_ENABLE +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + /* Left hand, matrix positions */ + {{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}}, + {{2, 9}, {4, 9}, {5, 9}, {1, 9}, {0, 9}, {3, 9}}, + /* Right hand, matrix positions */ + {{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}, {3, 4}, {2, 4}, {5, 4}, {4, 4}, {2, 4}}, + }; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0}; +# endif +#endif diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h index 0f60612d79..5712bb4574 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h @@ -17,19 +17,18 @@ #pragma once #include_next "mcuconf.h" -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE -// #undef STM32_I2C_I2C1_RX_DMA_STREAM -// #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) -#undef STM32_I2C_I2C1_TX_DMA_STREAM -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE -#undef STM32_PWM_USE_TIM3 -#define STM32_PWM_USE_TIM3 TRUE +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE #undef STM32_SPI_USE_SPI1 #define STM32_SPI_USE_SPI1 TRUE @@ -37,8 +36,8 @@ #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE -#undef STM32_GPT_USE_TIM4 -#define STM32_GPT_USE_TIM4 TRUE +#undef STM32_GPT_USE_TIM3 +#define STM32_GPT_USE_TIM3 TRUE #undef STM32_ST_USE_TIMER #define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk index ab86b1b8ba..d9c1a5a9ba 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk @@ -1,24 +1,33 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection -BOOTLOADER = stm32-dfu -# BOOTLOADER := tinyuf2 +BOOTLOADER := tinyuf2 -LTO_ENABLE := no +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = yes # Audio output +AUDIO_SUPPORTED = yes # is set to no in kb, needs to be forcibly enabled -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -KEYBOARD_SHARED_EP = yes -MOUSE_SHARED_EP = yes +KEYBOARD_SHARED_EP = yes +MOUSE_SHARED_EP = yes -EEPROM_DRIVER = spi -WS2812_DRIVER = pwm -SERIAL_DRIVER = usart - -MOUSEKEY_ENABLE = yes -NKRO_ENABLE = yes -CONSOLE_ENABLE = yes +EEPROM_DRIVER = spi +WS2812_DRIVER = pwm +SERIAL_DRIVER = usart +AUDIO_DRIVER = pwm_hardware +BACKLIGHT_DRIVER = pwm AUTOCORRECTION_ENABLE = yes - -DEBOUNCE_TYPE = asym_eager_defer_pk +CAPS_WORD_ENABLE = yes +SWAP_HANDS_ENABLE = yes +TAP_DANCE_ENABLE = yes +DEBOUNCE_TYPE = asym_eager_defer_pk +WPM_ENABLE = yes +LTO_ENABLE = no diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..aa8dc85054 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,23 @@ +// Copyright 2022 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_charybdis_4x6( \ +XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ + K32, K33, K34, K35, K36, \ + XXX, K32, K37 \ +) diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk new file mode 100644 index 0000000000..ef40279cbc --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk @@ -0,0 +1,4 @@ +# Copyright 2021 Manna Harbour +# https://github.com/manna-harbour/miryoku + +MIRYOKU_KLUDGE_THUMBCOMBOS=yes diff --git a/keyboards/bastardkb/scylla/config.h b/keyboards/bastardkb/scylla/config.h index d876b5d018..3e582c4275 100644 --- a/keyboards/bastardkb/scylla/config.h +++ b/keyboards/bastardkb/scylla/config.h @@ -17,11 +17,6 @@ #pragma once #include "config_common.h" -#define VENDOR_ID 0xA8F8 -#define PRODUCT_ID 0x1829 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bastard Keyboards -#define PRODUCT Scylla #define MATRIX_ROWS 10 #define MATRIX_COLS 6 diff --git a/keyboards/bastardkb/scylla/info.json b/keyboards/bastardkb/scylla/info.json index 104932e471..1d3dd39030 100644 --- a/keyboards/bastardkb/scylla/info.json +++ b/keyboards/bastardkb/scylla/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "The Bastard Keyboard", + "keyboard_name": "Scylla", + "manufacturer": "Bastard Keyboards", "url": "https://bastardkb.com/", "maintainer": "Quentin Lebastard", + "usb": { + "vid": "0xA8F8", + "pid": "0x1829", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_4x6_5": { "layout": [ diff --git a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h index 09433f3f40..5a3153ae37 100644 --- a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/bastardkb/skeletyl/config.h b/keyboards/bastardkb/skeletyl/config.h index fae8e2ec03..45886a260f 100644 --- a/keyboards/bastardkb/skeletyl/config.h +++ b/keyboards/bastardkb/skeletyl/config.h @@ -17,11 +17,6 @@ #pragma once #include "config_common.h" -#define VENDOR_ID 0xA8F8 -#define PRODUCT_ID 0x1830 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bastard Keyboards -#define PRODUCT Skeletyl #define MATRIX_ROWS 8 #define MATRIX_COLS 5 diff --git a/keyboards/bastardkb/skeletyl/info.json b/keyboards/bastardkb/skeletyl/info.json index 54c14da330..c06e23ba22 100644 --- a/keyboards/bastardkb/skeletyl/info.json +++ b/keyboards/bastardkb/skeletyl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Skeletyl", + "manufacturer": "Bastard Keyboards", "url": "https://www.bastardkb.com", "maintainer": "Quentin Lebastard", + "usb": { + "vid": "0xA8F8", + "pid": "0x1830", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_3": { "layout": [ diff --git a/keyboards/bastardkb/tbk/config.h b/keyboards/bastardkb/tbk/config.h index f6e3ebef7b..9ce37939b5 100644 --- a/keyboards/bastardkb/tbk/config.h +++ b/keyboards/bastardkb/tbk/config.h @@ -17,11 +17,6 @@ #pragma once #include "config_common.h" -#define VENDOR_ID 0xA8F8 -#define PRODUCT_ID 0x1828 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bastard Keyboards -#define PRODUCT The Bastard Keyboard #define MATRIX_ROWS 10 #define MATRIX_COLS 6 diff --git a/keyboards/bastardkb/tbk/info.json b/keyboards/bastardkb/tbk/info.json index 104932e471..d16014c48a 100644 --- a/keyboards/bastardkb/tbk/info.json +++ b/keyboards/bastardkb/tbk/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "The Bastard Keyboard", + "manufacturer": "Bastard Keyboards", "url": "https://bastardkb.com/", "maintainer": "Quentin Lebastard", + "usb": { + "vid": "0xA8F8", + "pid": "0x1828", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_4x6_5": { "layout": [ diff --git a/keyboards/bastardkb/tbkmini/config.h b/keyboards/bastardkb/tbkmini/config.h index 094544de9a..9c0de7ea16 100644 --- a/keyboards/bastardkb/tbkmini/config.h +++ b/keyboards/bastardkb/tbkmini/config.h @@ -17,11 +17,6 @@ #pragma once #include "config_common.h" -#define VENDOR_ID 0xA8F8 -#define PRODUCT_ID 0x1828 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bastard Keyboards -#define PRODUCT TBK Mini #define MATRIX_ROWS 8 #define MATRIX_COLS 6 diff --git a/keyboards/bastardkb/tbkmini/info.json b/keyboards/bastardkb/tbkmini/info.json index d7fddeb7e6..549879328b 100644 --- a/keyboards/bastardkb/tbkmini/info.json +++ b/keyboards/bastardkb/tbkmini/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "TBK Mini", + "manufacturer": "Bastard Keyboards", "url": "https://www.bastardkb.com", "maintainer": "Quentin Lebastard", + "usb": { + "vid": "0xA8F8", + "pid": "0x1828", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x6_3": { "layout": [ diff --git a/keyboards/bbrfkr/dynamis/config.h b/keyboards/bbrfkr/dynamis/config.h index 0c11416612..c888afb25e 100644 --- a/keyboards/bbrfkr/dynamis/config.h +++ b/keyboards/bbrfkr/dynamis/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6262 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER bbrfkr -#define PRODUCT dynamis - /* key matrix */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/bbrfkr/dynamis/info.json b/keyboards/bbrfkr/dynamis/info.json index 1e4d7154e1..b29666b98e 100644 --- a/keyboards/bbrfkr/dynamis/info.json +++ b/keyboards/bbrfkr/dynamis/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "dynamis", + "manufacturer": "bbrfkr", "url": "https://github.com/bbrfkr/keyboards", "maintainer": "bbrfkr", + "usb": { + "vid": "0x6262", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/bear_face/v2/keymaps/default/keymap.c b/keyboards/bear_face/v2/keymaps/default/keymap.c index 5f3ccc8729..e5623d4f57 100644 --- a/keyboards/bear_face/v2/keymaps/default/keymap.c +++ b/keyboards/bear_face/v2/keymaps/default/keymap.c @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN1] = LAYOUT_83_ansi( - _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, KC_INS, + _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, BASE_QWER, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, BASE_COLE, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BASE_DVOR, diff --git a/keyboards/beatervan/config.h b/keyboards/beatervan/config.h index a8973ab4a6..15f1ea2c39 100644 --- a/keyboards/beatervan/config.h +++ b/keyboards/beatervan/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6F6A // "oj" -#define PRODUCT_ID 0x6276 // "bv" -#define DEVICE_VER 0x0001 -#define MANUFACTURER OJ -#define PRODUCT beatervan - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/beatervan/info.json b/keyboards/beatervan/info.json index c3030a411c..beeffae7a5 100644 --- a/keyboards/beatervan/info.json +++ b/keyboards/beatervan/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "beatervan", + "manufacturer": "OJ", "url": "", "maintainer": "OJ", + "usb": { + "vid": "0x6F7A", + "pid": "0x6276", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bfake/config.h b/keyboards/bfake/config.h index 54e01ad3db..79fe4a739a 100644 --- a/keyboards/bfake/config.h +++ b/keyboards/bfake/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0200 -#define MANUFACTURER NotWinkeyless -#define PRODUCT B.fake - #define RGBLED_NUM 16 #define MATRIX_ROWS 8 diff --git a/keyboards/bfake/info.json b/keyboards/bfake/info.json index 576c470b88..be03a2da1a 100644 --- a/keyboards/bfake/info.json +++ b/keyboards/bfake/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "b.fake", + "keyboard_name": "B.fake", + "manufacturer": "NotWinkeyless", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x20A0", + "pid": "0x422D", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/biacco42/ergo42/keymaps/hdbx/keymap.c b/keyboards/biacco42/ergo42/keymaps/hdbx/keymap.c index 58f01bb322..bb3b6fac48 100644 --- a/keyboards/biacco42/ergo42/keymaps/hdbx/keymap.c +++ b/keyboards/biacco42/ergo42/keymaps/hdbx/keymap.c @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // RGB Underglow使用時のレイヤー毎のカラー切り替え -layer_state_t layer_state_set_keymap (layer_state_t state) { +uint32_t layer_state_set_keymap (uint32_t state) { return state; } @@ -148,7 +148,7 @@ void matrix_init_user(void) { 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)) { + switch (biton32(state)) { case _RAISE: rgblight_setrgb_chartreuse(); // RAISE:シャルトリューズ break; diff --git a/keyboards/biacco42/meishi/config.h b/keyboards/biacco42/meishi/config.h index ff6c22dc56..3420c30035 100644 --- a/keyboards/biacco42/meishi/config.h +++ b/keyboards/biacco42/meishi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBC42 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Biacco42 -#define PRODUCT meishi - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 4 diff --git a/keyboards/biacco42/meishi/info.json b/keyboards/biacco42/meishi/info.json index 8241541c72..cc7bb4f713 100644 --- a/keyboards/biacco42/meishi/info.json +++ b/keyboards/biacco42/meishi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Meishi", + "manufacturer": "Biacco42", "url": "", "maintainer": "Biacco42", + "usb": { + "vid": "0xBC42", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/biacco42/meishi2/config.h b/keyboards/biacco42/meishi2/config.h index 57a4e226a3..723aae73ff 100644 --- a/keyboards/biacco42/meishi2/config.h +++ b/keyboards/biacco42/meishi2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBC42 -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Biacco42 -#define PRODUCT meishi2 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 2 diff --git a/keyboards/biacco42/meishi2/info.json b/keyboards/biacco42/meishi2/info.json index 8e277716ea..e63b586b69 100644 --- a/keyboards/biacco42/meishi2/info.json +++ b/keyboards/biacco42/meishi2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "meishi2", + "manufacturer": "Biacco42", "url": "", "maintainer": "biacco42", + "usb": { + "vid": "0xBC42", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/binepad/bn003/config.h b/keyboards/binepad/bn003/config.h index de5fb533a0..72051f3c39 100644 --- a/keyboards/binepad/bn003/config.h +++ b/keyboards/binepad/bn003/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4249 // Binepad -#define PRODUCT_ID 0x4287 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Binepad -#define PRODUCT BN003 - /* Key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 3 diff --git a/keyboards/binepad/bn003/info.json b/keyboards/binepad/bn003/info.json index 6bb5724e47..aeff56fb01 100644 --- a/keyboards/binepad/bn003/info.json +++ b/keyboards/binepad/bn003/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BN003", + "manufacturer": "Binepad", "url": "https://binepad.com", "maintainer": "binepad", + "usb": { + "vid": "0x4249", + "pid": "0x4287", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/binepad/bn009/config.h b/keyboards/binepad/bn009/config.h index 0b12f54c75..8fb7182d91 100644 --- a/keyboards/binepad/bn009/config.h +++ b/keyboards/binepad/bn009/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4249 // Binepad -#define PRODUCT_ID 0x4295 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Binepad -#define PRODUCT BN009 - /* Key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/binepad/bn009/info.json b/keyboards/binepad/bn009/info.json index 2d439c8257..528cf57016 100644 --- a/keyboards/binepad/bn009/info.json +++ b/keyboards/binepad/bn009/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BN009", + "manufacturer": "Binepad", "url": "https://binepad.com", "maintainer": "binepad", + "usb": { + "vid": "0x4249", + "pid": "0x4295", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}] diff --git a/keyboards/bioi/f60/config.h b/keyboards/bioi/f60/config.h index 40a7f6250f..e2b6fca5a4 100644 --- a/keyboards/bioi/f60/config.h +++ b/keyboards/bioi/f60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8101 -#define PRODUCT_ID 0x4660 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Basic IO Instruments -#define PRODUCT BIOI F60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/bioi/f60/info.json b/keyboards/bioi/f60/info.json index dda3ffa690..06b0176bee 100644 --- a/keyboards/bioi/f60/info.json +++ b/keyboards/bioi/f60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "f60", + "keyboard_name": "BIOI F60", + "manufacturer": "Basic IO Instruments", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0x8101", + "pid": "0x4660", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/bioi/g60/config.h b/keyboards/bioi/g60/config.h index 561cbc863b..a3831f8dd8 100644 --- a/keyboards/bioi/g60/config.h +++ b/keyboards/bioi/g60/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0x8101 // 8101 = "BIOI" -#define PRODUCT_ID 0x6080 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Basic IO Instruments -#define PRODUCT BIOI G60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/bioi/g60/info.json b/keyboards/bioi/g60/info.json index e14021a3eb..a171f68c13 100644 --- a/keyboards/bioi/g60/info.json +++ b/keyboards/bioi/g60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BIOI G60", + "manufacturer": "Basic IO Instruments", "url": "https://scottywei.github.io/bioi-g60ble/", "maintainer": "scottywei", + "usb": { + "vid": "0x8101", + "pid": "0x6080", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/bioi/g60ble/config.h b/keyboards/bioi/g60ble/config.h index 4aa806eb41..c87292c635 100644 --- a/keyboards/bioi/g60ble/config.h +++ b/keyboards/bioi/g60ble/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6583 -#define PRODUCT_ID 0x6080 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Basic IO Instruments -#define PRODUCT BIOI G60 BLE - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/bioi/g60ble/info.json b/keyboards/bioi/g60ble/info.json index f8a453773f..f47a09d3f2 100644 --- a/keyboards/bioi/g60ble/info.json +++ b/keyboards/bioi/g60ble/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BIOI G60 BLE", + "manufacturer": "Basic IO Instruments", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6583", + "pid": "0x6080", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/bioi/morgan65/config.h b/keyboards/bioi/morgan65/config.h index e4a2e4f93c..e4ad58c3a7 100644 --- a/keyboards/bioi/morgan65/config.h +++ b/keyboards/bioi/morgan65/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0x8101 // 8101 = "BIOI" -#define PRODUCT_ID 0x6581 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Basic IO Instruments -#define PRODUCT BIOI MORGAN65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/bioi/morgan65/info.json b/keyboards/bioi/morgan65/info.json index 925f7af15d..8ed769c616 100644 --- a/keyboards/bioi/morgan65/info.json +++ b/keyboards/bioi/morgan65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Morgan65", + "manufacturer": "Basic IO Instruments", "url": "", "maintainer": "scottywei", + "usb": { + "vid": "0x8101", + "pid": "0x6581", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/bioi/s65/config.h b/keyboards/bioi/s65/config.h index 77960a4db3..fabd6c84a2 100644 --- a/keyboards/bioi/s65/config.h +++ b/keyboards/bioi/s65/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8101 // 8101 = "BIOI" -#define PRODUCT_ID 0x5365 // "S"65 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Basic IO Instruments -#define PRODUCT BIOI S65 - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/bioi/s65/info.json b/keyboards/bioi/s65/info.json index e87437a267..fba9940ffb 100644 --- a/keyboards/bioi/s65/info.json +++ b/keyboards/bioi/s65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BIOI S65", + "manufacturer": "Basic IO Instruments", "url": "", "maintainer": "scottywei", + "usb": { + "vid": "0x8101", + "pid": "0x5365", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/blackplum/config.h b/keyboards/blackplum/config.h index dc92f416f3..9c9805d423 100644 --- a/keyboards/blackplum/config.h +++ b/keyboards/blackplum/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5058 // "PX" -#define PRODUCT_ID 0x4250 // "BP" -#define DEVICE_VER 0x1001 -#define MANUFACTURER Pixlup -#define PRODUCT Blackplum Keeb - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 8 diff --git a/keyboards/blackplum/info.json b/keyboards/blackplum/info.json index 63230de4f8..8982213f2f 100644 --- a/keyboards/blackplum/info.json +++ b/keyboards/blackplum/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "blackplum", + "keyboard_name": "Blackplum Keeb", + "manufacturer": "Pixlup", "url": "www.tokopedia.com/pixlup", "maintainer": "eriqadams", + "usb": { + "vid": "0x5058", + "pid": "0x4250", + "device_version": "10.0.1" + }, "layouts": { "LAYOUT_68_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.25, "y":0}, {"label":"PgUp", "x":16.25, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"PgDn", "x":16.25, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"OS", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Fn", "x":11.25, "y":4, "w":1.25}, {"label":"Ctrl", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4.25}, {"label":"\u2193", "x":15.25, "y":4.25}, {"label":"\u2192", "x":16.25, "y":4.25}] diff --git a/keyboards/blank/blank01/config.h b/keyboards/blank/blank01/config.h index 5ebf8c774a..4ee950216a 100644 --- a/keyboards/blank/blank01/config.h +++ b/keyboards/blank/blank01/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x424C // "BL" -#define PRODUCT_ID 0x4B01 // "K01" -#define DEVICE_VER 0x0001 -#define MANUFACTURER BLANK -#define PRODUCT BLANK.01 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/blank/blank01/info.json b/keyboards/blank/blank01/info.json index af79aa7e8b..e03421d82b 100644 --- a/keyboards/blank/blank01/info.json +++ b/keyboards/blank/blank01/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "blank01", + "keyboard_name": "BLANK.01", + "manufacturer": "BLANK", "url": "", "maintainer": "gkeyboard", + "usb": { + "vid": "0x424C", + "pid": "0x4B01", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_tsangan_hhkb": { "layout": [ diff --git a/keyboards/blank_tehnologii/manibus/config.h b/keyboards/blank_tehnologii/manibus/config.h index e5f1caf24a..f739334e0d 100644 --- a/keyboards/blank_tehnologii/manibus/config.h +++ b/keyboards/blank_tehnologii/manibus/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Blank Tehnologii -#define PRODUCT Manibus #define EE_HANDS /* key matrix size */ diff --git a/keyboards/blank_tehnologii/manibus/info.json b/keyboards/blank_tehnologii/manibus/info.json index ab8d9b923e..43e28db7e9 100644 --- a/keyboards/blank_tehnologii/manibus/info.json +++ b/keyboards/blank_tehnologii/manibus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Manibus", + "manufacturer": "Blank Tehnologii", "url": "https://blank.computer/", "maintainer": "SamuraiKek", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/blaster75/config.h b/keyboards/blaster75/config.h index 61a9a754fb..cad1d20ea8 100644 --- a/keyboards/blaster75/config.h +++ b/keyboards/blaster75/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xA122 -#define PRODUCT_ID 0xB075 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Altain -#define PRODUCT Blaster75 - /* Matrix Size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/blaster75/info.json b/keyboards/blaster75/info.json index 13f4669d6c..332c5a5f12 100644 --- a/keyboards/blaster75/info.json +++ b/keyboards/blaster75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Blaster 75", + "manufacturer": "Altain", "url": "", "maintainer": "Altain", + "usb": { + "vid": "0xA122", + "pid": "0xB075", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/blockey/config.h b/keyboards/blockey/config.h index d954be2d7e..e543ab16d9 100644 --- a/keyboards/blockey/config.h +++ b/keyboards/blockey/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Eucalyn -#define PRODUCT Blockey - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/blockey/info.json b/keyboards/blockey/info.json index 473bf288a0..4e584d24bb 100644 --- a/keyboards/blockey/info.json +++ b/keyboards/blockey/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BlocKey", + "manufacturer": "Eucalyn", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"`", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"-", "x":11, "y":0}, {"label":"=", "x":12, "y":0}, {"label":"Back Space", "x":13, "y":0}, {"label":"Tab", "x":0.16, "y":1}, {"label":"Q", "x":1.16, "y":1}, {"label":"W", "x":2.16, "y":1}, {"label":"E", "x":3.16, "y":1}, {"label":"R", "x":4.16, "y":1}, {"label":"T", "x":5.16, "y":1}, {"label":"Y", "x":6.16, "y":1}, {"label":"U", "x":7.16, "y":1}, {"label":"I", "x":8.16, "y":1}, {"label":"O", "x":9.16, "y":1}, {"label":"P", "x":10.16, "y":1}, {"label":"[", "x":11.16, "y":1}, {"label":"]", "x":12.16, "y":1}, {"label":"\\", "x":13.16, "y":1}, {"label":"LCtrl", "x":0.33, "y":2}, {"label":"A", "x":1.33, "y":2}, {"label":"S", "x":2.33, "y":2}, {"label":"D", "x":3.33, "y":2}, {"label":"F", "x":4.33, "y":2}, {"label":"G", "x":5.33, "y":2}, {"label":"H", "x":6.33, "y":2}, {"label":"J", "x":7.33, "y":2}, {"label":"K", "x":8.33, "y":2}, {"label":"L", "x":9.33, "y":2}, {"label":";", "x":10.33, "y":2}, {"label":"\"", "x":11.33, "y":2}, {"label":"Enter", "x":12.66, "y":2}, {"label":"LShift", "x":0.5, "y":3}, {"label":"Z", "x":1.5, "y":3}, {"label":"X", "x":2.5, "y":3}, {"label":"C", "x":3.5, "y":3}, {"label":"V", "x":4.5, "y":3}, {"label":"B", "x":5.5, "y":3}, {"label":"N", "x":6.5, "y":3}, {"label":"M", "x":7.5, "y":3}, {"label":",", "x":8.5, "y":3}, {"label":".", "x":9.5, "y":3}, {"label":"/", "x":10.5, "y":3}, {"label":"Up", "x":11.5, "y":3}, {"label":"Fn", "x":12.83, "y":3}, {"label":"Esc", "x":0, "y":4}, {"label":"Caps Lock", "x":1, "y":4}, {"label":"LAlt", "x":2, "y":4}, {"label":"LGUI", "x":3, "y":4}, {"label":"Space", "x":4, "y":4, "w":6}, {"label":"Left", "x":10.5, "y":4}, {"label":"Down", "x":11.5, "y":4}, {"label":"Right", "x":12.5, "y":4}] diff --git a/keyboards/boardrun/bizarre/config.h b/keyboards/boardrun/bizarre/config.h index 9f4b91e2b5..4034ced4e8 100644 --- a/keyboards/boardrun/bizarre/config.h +++ b/keyboards/boardrun/bizarre/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCDCD -#define PRODUCT_ID 0x5339 -#define DEVICE_VER 0x0001 -#define MANUFACTURER shensmobile -#define PRODUCT Boardrun Bizarre - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/boardrun/bizarre/info.json b/keyboards/boardrun/bizarre/info.json index 066095aa34..aa35ff24d9 100644 --- a/keyboards/boardrun/bizarre/info.json +++ b/keyboards/boardrun/bizarre/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Boardrun Bizarre", + "manufacturer": "shensmobile", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardrun/bizarre", "maintainer": "QMK Community", + "usb": { + "vid": "0xCDCD", + "pid": "0x5339", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/boardrun/classic/config.h b/keyboards/boardrun/classic/config.h index 754c42975f..f6ac6ee88e 100644 --- a/keyboards/boardrun/classic/config.h +++ b/keyboards/boardrun/classic/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCDCD -#define PRODUCT_ID 0x5338 -#define DEVICE_VER 0x0001 -#define MANUFACTURER shensmobile -#define PRODUCT Boardrun Classic - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/boardrun/classic/info.json b/keyboards/boardrun/classic/info.json index 538814f36f..70ff145c06 100644 --- a/keyboards/boardrun/classic/info.json +++ b/keyboards/boardrun/classic/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Boardrun Classic", + "manufacturer": "shensmobile", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardrun/classic", "maintainer": "QMK Community", + "usb": { + "vid": "0xCDCD", + "pid": "0x5338", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_classic": { "layout": [ diff --git a/keyboards/boardsource/3x4/3x4.c b/keyboards/boardsource/3x4/3x4.c deleted file mode 100644 index 798d5a65c4..0000000000 --- a/keyboards/boardsource/3x4/3x4.c +++ /dev/null @@ -1 +0,0 @@ -#include "3x4.h" diff --git a/keyboards/boardsource/3x4/3x4.h b/keyboards/boardsource/3x4/3x4.h deleted file mode 100644 index a27d32c74f..0000000000 --- a/keyboards/boardsource/3x4/3x4.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include "quantum.h" -#define LAYOUT( \ - K00, K01, K02, K03, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23 \ - ) { \ - {K00, K01, K02, K03}, \ - {K10, K11, K12, K13}, \ - {K20, K21, K22, K23} \ - } diff --git a/keyboards/boardsource/3x4/info.json b/keyboards/boardsource/3x4/info.json index 649c35af3f..92ed37a63c 100644 --- a/keyboards/boardsource/3x4/info.json +++ b/keyboards/boardsource/3x4/info.json @@ -1,27 +1,40 @@ { - "keyboard_name": "boardsource 4x3", - "url": "https://boardsource.xyz", - "maintainer": "boardsource", - "layouts": { - - "LAYOUT": { - - "layout": [ - { "label": "K01", "x": 0, "y": 0 }, - { "label": "K02", "x": 1, "y": 0 }, - { "label": "K03", "x": 2, "y": 0 }, - { "label": "K04", "x": 3, "y": 0 }, - - { "label": "K05", "x": 0, "y": 1 }, - { "label": "K06", "x": 1, "y": 1 }, - { "label": "K07", "x": 2, "y": 1 }, - { "label": "K08", "x": 3, "y": 1 }, - - { "label": "K09", "x": 0, "y": 2 }, - { "label": "K10", "x": 1, "y": 2 }, - { "label": "K11", "x": 2, "y": 2 }, - { "label": "K12", "x": 3, "y": 2 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "3x4", + "maintainer": "waffle87", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["B6", "B2", "B3", "B1"], + "rows": ["F7", "F6", "F5"] + }, + "url": "https://boardsource.xyz/store/5ecc2008eee64242946c98c1", + "usb": { + "device_version": "1.0.0", + "pid": "0x0304", + "vid": "0x4273" + }, + "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": [2, 3], "x": 3, "y": 2 } + ] } + } } diff --git a/keyboards/boardsource/3x4/keymaps/default/keymap.c b/keyboards/boardsource/3x4/keymaps/default/keymap.c index dec66533ef..7601c63506 100644 --- a/keyboards/boardsource/3x4/keymaps/default/keymap.c +++ b/keyboards/boardsource/3x4/keymaps/default/keymap.c @@ -1,26 +1,16 @@ +// Copyright 2022 @waffle87 +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -enum layers { - _MAIN, - _RAISE, - _LOWER, -}; - -// Readability keycodes -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_MAIN] = LAYOUT( - KC_0, KC_1, KC_4, KC_7, - KC_ENT, KC_2, KC_5, KC_8, - RAISE, KC_3, KC_6, KC_9 + [0] = LAYOUT( + KC_0, KC_1, KC_4, KC_7, + KC_ENT, KC_2, KC_5, KC_8, + MO(1), KC_3, KC_6, KC_9 ), - [_RAISE] = LAYOUT( + [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ) - }; diff --git a/keyboards/boardsource/3x4/keymaps/via/keymap.c b/keyboards/boardsource/3x4/keymaps/via/keymap.c index d24d3acbf5..5aeef391a1 100644 --- a/keyboards/boardsource/3x4/keymaps/via/keymap.c +++ b/keyboards/boardsource/3x4/keymaps/via/keymap.c @@ -1,25 +1,26 @@ +// Copyright 2022 @gwillad +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - LAYOUT( - KC_0, KC_1, KC_4, KC_7, - KC_ENT, KC_2, KC_5, KC_8, - MO(1), KC_3, KC_6, KC_9 - ), - LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT - ), - 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 - ), - 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 - ) + [0] = LAYOUT( + KC_0, KC_1, KC_4, KC_7, + KC_ENT, KC_2, KC_5, KC_8, + MO(1), KC_3, KC_6, KC_9 + ), + [1] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, QK_BOOT + ), + [2] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) }; diff --git a/keyboards/boardsource/3x4/keymaps/via/readme.md b/keyboards/boardsource/3x4/keymaps/via/readme.md deleted file mode 100644 index c68eb9cf5a..0000000000 --- a/keyboards/boardsource/3x4/keymaps/via/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# The via keymap for boardsource 3x4 macropad - -This folder contains the [VIA](https://caniusevia.com/) configuration for the boardsource 3x4 macropad - -Maintained by: [gwillad](https://github.com/gwillad) diff --git a/keyboards/boardsource/3x4/rules.mk b/keyboards/boardsource/3x4/rules.mk index 3915b035eb..6e7633bfe0 100644 --- a/keyboards/boardsource/3x4/rules.mk +++ b/keyboards/boardsource/3x4/rules.mk @@ -1,17 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # 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 -AUDIO_ENABLE = no # Audio output +# This file intentionally left blank diff --git a/keyboards/boardsource/4x12/4x12.c b/keyboards/boardsource/4x12/4x12.c deleted file mode 100644 index 2aec6900ad..0000000000 --- a/keyboards/boardsource/4x12/4x12.c +++ /dev/null @@ -1 +0,0 @@ -#include "4x12.h" diff --git a/keyboards/boardsource/4x12/4x12.h b/keyboards/boardsource/4x12/4x12.h deleted file mode 100644 index 52c23708fa..0000000000 --- a/keyboards/boardsource/4x12/4x12.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once -#include "quantum.h" - -#define LAYOUT_ortho_4x12( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ - K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ - K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ - K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ - ) { \ - {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ - {K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ - {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ - {K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47} \ - } diff --git a/keyboards/boardsource/4x12/info.json b/keyboards/boardsource/4x12/info.json index bb4acbbfe8..ec956ea6d7 100644 --- a/keyboards/boardsource/4x12/info.json +++ b/keyboards/boardsource/4x12/info.json @@ -1,62 +1,79 @@ { - "keyboard_name": "Boardsource 4x12", - "url": "https://boardsource.xyz", - "maintainer": "Boardsource", - "layouts": { - "LAYOUT_ortho_4x12": { - "layout": [ - { "label": "K01", "x": 0, "y": 0 }, - { "label": "K02", "x": 1, "y": 0 }, - { "label": "K03", "x": 2, "y": 0 }, - { "label": "K04", "x": 3, "y": 0 }, - { "label": "K05", "x": 4, "y": 0 }, - { "label": "K06", "x": 5, "y": 0 }, - { "label": "K07", "x": 6, "y": 0 }, - { "label": "K08", "x": 7, "y": 0 }, - { "label": "K09", "x": 8, "y": 0 }, - { "label": "K010", "x": 9, "y": 0 }, - { "label": "K011", "x": 10, "y": 0 }, - { "label": "K012", "x": 11, "y": 0 }, - - { "label": "K11", "x": 0, "y": 1 }, - { "label": "K12", "x": 1, "y": 1 }, - { "label": "K13", "x": 2, "y": 1 }, - { "label": "K14", "x": 3, "y": 1 }, - { "label": "K15", "x": 4, "y": 1 }, - { "label": "K16", "x": 5, "y": 1 }, - { "label": "K17", "x": 6, "y": 1 }, - { "label": "K18", "x": 7, "y": 1 }, - { "label": "K19", "x": 8, "y": 1 }, - { "label": "K110", "x": 9, "y": 1 }, - { "label": "K111", "x": 10, "y": 1 }, - { "label": "K112", "x": 11, "y": 1 }, - - { "label": "K21", "x": 0, "y": 2 }, - { "label": "K22", "x": 1, "y": 2 }, - { "label": "K23", "x": 2, "y": 2 }, - { "label": "K24", "x": 3, "y": 2 }, - { "label": "K25", "x": 4, "y": 2 }, - { "label": "K26", "x": 5, "y": 2 }, - { "label": "K27", "x": 6, "y": 2 }, - { "label": "K28", "x": 7, "y": 2 }, - { "label": "K29", "x": 8, "y": 2 }, - { "label": "K210", "x": 9, "y": 2 }, - { "label": "K211", "x": 10, "y": 2 }, - { "label": "K212", "x": 11, "y": 2 }, - - { "label": "K31", "x": 0, "y": 3 }, - { "label": "K32", "x": 1, "y": 3 }, - { "label": "K33", "x": 2, "y": 3 }, - { "label": "K34", "x": 3, "y": 3 }, - { "label": "K35", "x": 4, "y": 3 }, - { "label": "K36", "x": 5, "y": 3 }, - { "label": "K37", "x": 6, "y": 3 }, - { "label": "K38", "x": 7, "y": 3 }, - { "label": "K39", "x": 8, "y": 3 }, - { "label": "K310", "x": 9, "y": 3 }, - { "label": "K311", "x": 10, "y": 3 }, - { "label": "K312", "x": 11, "y": 3 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "4x12", + "maintainer": "waffle87", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7"], + "rows": ["D2", "D3", "D1", "D0"] + }, + "url": "https://boardsource.xyz/store/5ecb78d286879c9a0c22dafd", + "usb": { + "device_version": "1.0.0", + "pid": "0x0412", + "vid": "0x4273" + }, + "community_layouts": [ + "ortho_4x12" + ], + "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": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 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 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] } + } } diff --git a/keyboards/boardsource/4x12/keymaps/default/keymap.c b/keyboards/boardsource/4x12/keymaps/default/keymap.c index 17823f36c9..bb192c613d 100644 --- a/keyboards/boardsource/4x12/keymaps/default/keymap.c +++ b/keyboards/boardsource/4x12/keymaps/default/keymap.c @@ -1,3 +1,5 @@ +// Copyright 2022 @waffle87 +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H enum layers { @@ -6,31 +8,26 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_4x12( 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_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_4x12( - 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, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_4x12( - 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 + 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 ) - }; diff --git a/keyboards/boardsource/4x12/keymaps/via/keymap.c b/keyboards/boardsource/4x12/keymaps/via/keymap.c index 17823f36c9..b6e26fbeca 100644 --- a/keyboards/boardsource/4x12/keymaps/via/keymap.c +++ b/keyboards/boardsource/4x12/keymaps/via/keymap.c @@ -1,3 +1,5 @@ +// Copyright 2022 @gwillad +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H enum layers { @@ -6,31 +8,32 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_4x12( 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_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_4x12( - 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, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_4x12( - 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 + 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 + ), + [4] = LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) - }; diff --git a/keyboards/boardsource/4x12/keymaps/via/readme.md b/keyboards/boardsource/4x12/keymaps/via/readme.md deleted file mode 100644 index 534633d45e..0000000000 --- a/keyboards/boardsource/4x12/keymaps/via/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# The via keymap for boardsource 4x12 ortholinear keybaoard - -This folder contains the [VIA](https://caniusevia.com/) configuration for the boardsource 4x12 ortholinear keybaoard - -Maintained by: [gwillad](https://github.com/gwillad) diff --git a/keyboards/boardsource/4x12/rules.mk b/keyboards/boardsource/4x12/rules.mk index 061f93abf6..6e7633bfe0 100644 --- a/keyboards/boardsource/4x12/rules.mk +++ b/keyboards/boardsource/4x12/rules.mk @@ -1,24 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # 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 -AUDIO_ENABLE = no # Audio output - -LAYOUTS = ortho_4x12 - -# Disable unsupported hardware -RGBLIGHT_SUPPORTED = no -AUDIO_SUPPORTED = no -BACKLIGHT_SUPPORTED = no +# This file intentionally left blank diff --git a/keyboards/boardsource/5x12/5x12.c b/keyboards/boardsource/5x12/5x12.c deleted file mode 100644 index 579cd5effc..0000000000 --- a/keyboards/boardsource/5x12/5x12.c +++ /dev/null @@ -1 +0,0 @@ -#include "5x12.h" \ No newline at end of file diff --git a/keyboards/boardsource/5x12/5x12.h b/keyboards/boardsource/5x12/5x12.h deleted file mode 100644 index bbc0689b44..0000000000 --- a/keyboards/boardsource/5x12/5x12.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once -#include "quantum.h" - -#define LAYOUT_ortho_5x12( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ - K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ - K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ - K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47, \ - K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59 \ - ) { \ - {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ - {K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ - {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ - {K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47}, \ - {K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59} \ - } - diff --git a/keyboards/boardsource/5x12/info.json b/keyboards/boardsource/5x12/info.json index 92debddd92..b251dd9319 100644 --- a/keyboards/boardsource/5x12/info.json +++ b/keyboards/boardsource/5x12/info.json @@ -1,75 +1,91 @@ { - "keyboard_name": "boardsource 5x12", - "url": "https://boardsource.xyz", - "maintainer": "boardsource", - "layouts": { - "LAYOUT_ortho_5x12": { - "layout": [ - { "label": "K01", "x": 0, "y": 0 }, - { "label": "K02", "x": 1, "y": 0 }, - { "label": "K03", "x": 2, "y": 0 }, - { "label": "K04", "x": 3, "y": 0 }, - { "label": "K05", "x": 4, "y": 0 }, - { "label": "K06", "x": 5, "y": 0 }, - { "label": "K07", "x": 6, "y": 0 }, - { "label": "K08", "x": 7, "y": 0 }, - { "label": "K09", "x": 8, "y": 0 }, - { "label": "K010", "x": 9, "y": 0 }, - { "label": "K011", "x": 10, "y": 0 }, - { "label": "K012", "x": 11, "y": 0 }, - - { "label": "K11", "x": 0, "y": 1 }, - { "label": "K12", "x": 1, "y": 1 }, - { "label": "K13", "x": 2, "y": 1 }, - { "label": "K14", "x": 3, "y": 1 }, - { "label": "K15", "x": 4, "y": 1 }, - { "label": "K16", "x": 5, "y": 1 }, - { "label": "K17", "x": 6, "y": 1 }, - { "label": "K18", "x": 7, "y": 1 }, - { "label": "K19", "x": 8, "y": 1 }, - { "label": "K110", "x": 9, "y": 1 }, - { "label": "K111", "x": 10, "y": 1 }, - { "label": "K112", "x": 11, "y": 1 }, - - { "label": "K21", "x": 0, "y": 2 }, - { "label": "K22", "x": 1, "y": 2 }, - { "label": "K23", "x": 2, "y": 2 }, - { "label": "K24", "x": 3, "y": 2 }, - { "label": "K25", "x": 4, "y": 2 }, - { "label": "K26", "x": 5, "y": 2 }, - { "label": "K27", "x": 6, "y": 2 }, - { "label": "K28", "x": 7, "y": 2 }, - { "label": "K29", "x": 8, "y": 2 }, - { "label": "K210", "x": 9, "y": 2 }, - { "label": "K211", "x": 10, "y": 2 }, - { "label": "K212", "x": 11, "y": 2 }, - - { "label": "K31", "x": 0, "y": 3 }, - { "label": "K32", "x": 1, "y": 3 }, - { "label": "K33", "x": 2, "y": 3 }, - { "label": "K34", "x": 3, "y": 3 }, - { "label": "K35", "x": 4, "y": 3 }, - { "label": "K36", "x": 5, "y": 3 }, - { "label": "K37", "x": 6, "y": 3 }, - { "label": "K38", "x": 7, "y": 3 }, - { "label": "K39", "x": 8, "y": 3 }, - { "label": "K310", "x": 9, "y": 3 }, - { "label": "K311", "x": 10, "y": 3 }, - { "label": "K312", "x": 11, "y": 3 }, - - { "label": "K41", "x": 0, "y": 4 }, - { "label": "K42", "x": 1, "y": 4 }, - { "label": "K43", "x": 2, "y": 4 }, - { "label": "K44", "x": 3, "y": 4 }, - { "label": "K45", "x": 4, "y": 4 }, - { "label": "K46", "x": 5, "y": 4 }, - { "label": "K47", "x": 6, "y": 4 }, - { "label": "K48", "x": 7, "y": 4 }, - { "label": "K49", "x": 8, "y": 4 }, - { "label": "K410", "x": 9, "y": 4 }, - { "label": "K411", "x": 10, "y": 4 }, - { "label": "K412", "x": 11, "y": 4 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "5x12", + "maintainer": "waffle87", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7"], + "rows": ["D2", "D3", "D1", "D0", "D4"] + }, + "url": "https://boardsource.xyz/store/5ecb802c86879c9a0c22db61", + "usb": { + "device_version": "1.0.0", + "pid": "0x0512", + "vid": "0x4273" + }, + "community_layouts": [ + "ortho_5x12" + ], + "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": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 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 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "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": [4, 6], "x": 6, "y": 4 }, + { "matrix": [4, 7], "x": 7, "y": 4 }, + { "matrix": [4, 8], "x": 8, "y": 4 }, + { "matrix": [4, 9], "x": 9, "y": 4 }, + { "matrix": [4, 10], "x": 10, "y": 4 }, + { "matrix": [4, 11], "x": 11, "y": 4 } + ] } + } } diff --git a/keyboards/boardsource/5x12/keymaps/default/keymap.c b/keyboards/boardsource/5x12/keymaps/default/keymap.c index 0f2534bbe8..829da5be7f 100644 --- a/keyboards/boardsource/5x12/keymaps/default/keymap.c +++ b/keyboards/boardsource/5x12/keymaps/default/keymap.c @@ -1,3 +1,5 @@ +// Copyright 2022 @waffle87 +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H enum layers { @@ -6,34 +8,29 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = 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, - 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_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, 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_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, + 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_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_5x12( - 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, + KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_5x12( - KC_ESC, 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_LEFT, KC_DOWN, KC_RGHT, _______, _______, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, 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_UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ) - }; diff --git a/keyboards/boardsource/5x12/keymaps/via/keymap.c b/keyboards/boardsource/5x12/keymaps/via/keymap.c index 0a7eb43631..d820b61427 100644 --- a/keyboards/boardsource/5x12/keymaps/via/keymap.c +++ b/keyboards/boardsource/5x12/keymaps/via/keymap.c @@ -1,3 +1,5 @@ +// Copyright 2022 @gwillad +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H enum layers { @@ -6,42 +8,36 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = 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, - 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_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, 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_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, + 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_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_5x12( - 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, + KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_5x12( - KC_ESC, 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_LEFT, KC_DOWN, KC_RGHT, _______, _______, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, 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_UP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [3] = LAYOUT_ortho_5x12( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) - }; diff --git a/keyboards/boardsource/5x12/keymaps/via/readme.md b/keyboards/boardsource/5x12/keymaps/via/readme.md deleted file mode 100644 index d088e0a64c..0000000000 --- a/keyboards/boardsource/5x12/keymaps/via/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# The via keymap for boardsource 5x12 ortholinear keyboard - -This folder contains the [VIA](https://caniusevia.com/) configuration for the boardsource 5x12 ortholinear keyboard - -Maintained by: [gwillad](https://github.com/gwillad) diff --git a/keyboards/boardsource/5x12/rules.mk b/keyboards/boardsource/5x12/rules.mk index 0727732ac6..6e7633bfe0 100644 --- a/keyboards/boardsource/5x12/rules.mk +++ b/keyboards/boardsource/5x12/rules.mk @@ -1,24 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # 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 -AUDIO_ENABLE = no # Audio output - -LAYOUTS = ortho_5x12 - -# Disable unsupported hardware -RGBLIGHT_SUPPORTED = no -AUDIO_SUPPORTED = no -BACKLIGHT_SUPPORTED = no +# This file intentionally left blank diff --git a/keyboards/boardsource/beiwagon/config.h b/keyboards/boardsource/beiwagon/config.h index 72386c4236..6ce8d2d420 100644 --- a/keyboards/boardsource/beiwagon/config.h +++ b/keyboards/boardsource/beiwagon/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Boardsource +Copyright 2022 Boardsource This 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,62 +16,18 @@ along with this program. If not, see . */ #pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 -#define PRODUCT_ID 0x0066 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Boardsource -#define PRODUCT Beiwagon - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 3 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS {B0, B1, B2, B3} -#define MATRIX_COL_PINS {B5,B6,B7} -#define UNUSED_PINS - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -#define BACKLIGHT_BREATHING -#define RGBLIGHT_ANIMATIONS #define RGB_DI_PIN C6 -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 -// 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 DRIVER_LED_TOTAL 18 #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 @@ -85,81 +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 -// 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 -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 6 // Number of LEDs -#endif - -#define DRIVER_LED_TOTAL 22 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/beiwagon/info.json b/keyboards/boardsource/beiwagon/info.json index 6f7518b858..69ce8d96f1 100644 --- a/keyboards/boardsource/beiwagon/info.json +++ b/keyboards/boardsource/beiwagon/info.json @@ -1,26 +1,64 @@ { - "keyboard_name": "Beiwagon", - "url": "", - "maintainer": "Boardsource", - "layouts": { - "LAYOUT": { - "layout": [ - { "label": "k00", "x": 0, "y": 0 }, - { "label": "k01", "x": 1, "y": 0 }, - { "label": "k02", "x": 2, "y": 0 }, - - { "label": "k10", "x": 0, "y": 1 }, - { "label": "k11", "x": 1, "y": 1 }, - { "label": "k12", "x": 2, "y": 1 }, - - { "label": "k20", "x": 0, "y": 2 }, - { "label": "k21", "x": 1, "y": 2 }, - { "label": "k22", "x": 2, "y": 2 }, - - { "label": "k30", "x": 0, "y": 3 }, - { "label": "k31", "x": 1, "y": 3 }, - { "label": "k32", "x": 2, "y": 3 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "Beiwagon", + "maintainer": "waffle87", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": false, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B5", "B6", "B7"], + "rows": ["B0", "B1", "B2", "B3"] + }, + "processor": "atmega32u4", + "url": "https://boardsource.xyz/store/5ffbfe2ab855550844cab109", + "usb": { + "device_version": "1.0.0", + "pid": "0x0066", + "vid": "0x4273" + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 16, "y": 38 }, + { "flags": 2, "x": 16, "y": 113 }, + { "flags": 2, "x": 16, "y": 188 }, + { "flags": 2, "x": 48, "y": 38 }, + { "flags": 2, "x": 48, "y": 113 }, + { "flags": 2, "x": 48, "y": 188 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 32, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 64, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 75 }, + { "flags": 4, "matrix": [1, 1], "x": 32, "y": 75 }, + { "flags": 4, "matrix": [1, 2], "x": 64, "y": 75 }, + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 150 }, + { "flags": 4, "matrix": [2, 1], "x": 32, "y": 150 }, + { "flags": 4, "matrix": [2, 2], "x": 64, "y": 150 }, + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 224 }, + { "flags": 4, "matrix": [3, 1], "x": 32, "y": 224 }, + { "flags": 4, "matrix": [3, 2], "x": 64, "y": 224 } + ] + }, + "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": [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 } + ] } + } } diff --git a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c index 396a0c7207..584ada4830 100644 --- a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c +++ b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This 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,30 +18,23 @@ enum layers { _MAIN, - _RAISE, - _LOWER, + _RAISE }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT( KC_7, KC_8, KC_9, KC_4, KC_5, KC_6, KC_1, KC_2, KC_3, KC_0, KC_PENT,RAISE ), - [_RAISE] = LAYOUT( KC_7, KC_8, RGB_TOG, KC_4, KC_5, RGB_MOD, KC_1, KC_2, KC_3, - KC_0, KC_PENT,KC_TRNS - + KC_0, KC_PENT,_______ ) - }; - diff --git a/keyboards/boardsource/beiwagon/keymaps/default/readme.md b/keyboards/boardsource/beiwagon/keymaps/default/readme.md deleted file mode 100644 index 95f466aa83..0000000000 --- a/keyboards/boardsource/beiwagon/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for Beiwagon diff --git a/keyboards/boardsource/beiwagon/keymaps/via/keymap.c b/keyboards/boardsource/beiwagon/keymaps/via/keymap.c index 396a0c7207..ca068adab4 100644 --- a/keyboards/boardsource/beiwagon/keymaps/via/keymap.c +++ b/keyboards/boardsource/beiwagon/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This 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,30 +18,35 @@ enum layers { _MAIN, - _RAISE, - _LOWER, + _RAISE }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT( KC_7, KC_8, KC_9, KC_4, KC_5, KC_6, KC_1, KC_2, KC_3, KC_0, KC_PENT,RAISE ), - [_RAISE] = LAYOUT( KC_7, KC_8, RGB_TOG, KC_4, KC_5, RGB_MOD, KC_1, KC_2, KC_3, - KC_0, KC_PENT,KC_TRNS - + KC_0, KC_PENT,_______ + ), + [2] = LAYOUT( + _______, _______, _______, + _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, + _______, _______, _______, + _______, _______, _______, + _______, _______, _______ ) - }; - diff --git a/keyboards/boardsource/beiwagon/keymaps/via/readme.md b/keyboards/boardsource/beiwagon/keymaps/via/readme.md deleted file mode 100644 index f1b294c22a..0000000000 --- a/keyboards/boardsource/beiwagon/keymaps/via/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The via keymap for Beiwagon diff --git a/keyboards/boardsource/beiwagon/rules.mk b/keyboards/boardsource/beiwagon/rules.mk index 612dcfcfb6..32afd21635 100644 --- a/keyboards/boardsource/beiwagon/rules.mk +++ b/keyboards/boardsource/beiwagon/rules.mk @@ -1,20 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/boardsource/holiday/spooky/config.h b/keyboards/boardsource/holiday/spooky/config.h index 87d63b0d9e..e2c0600a10 100644 --- a/keyboards/boardsource/holiday/spooky/config.h +++ b/keyboards/boardsource/holiday/spooky/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 -#define PRODUCT_ID 0x1031 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Boardsource -#define PRODUCT spooky - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/boardsource/holiday/spooky/info.json b/keyboards/boardsource/holiday/spooky/info.json index c942b2af11..b8964d881e 100644 --- a/keyboards/boardsource/holiday/spooky/info.json +++ b/keyboards/boardsource/holiday/spooky/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "spooky", + "manufacturer": "Boardsource", "url": "https://boardsource.xyz/store/5f783f6da2c1b43e37ca0795", "maintainer": "boardsource", + "usb": { + "vid": "0x4273", + "pid": "0x1031", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x3": { "layout": [ diff --git a/keyboards/boardsource/lulu/config.h b/keyboards/boardsource/lulu/config.h index 8cd240179e..d4fea42b33 100644 --- a/keyboards/boardsource/lulu/config.h +++ b/keyboards/boardsource/lulu/config.h @@ -5,12 +5,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4273 -#define PRODUCT_ID 0x7685 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Boardsource -#define PRODUCT lulu - #define MATRIX_ROWS 10 #define MATRIX_COLS 6 #define MATRIX_ROW_PINS {C6, D7, E6, B4, B5} diff --git a/keyboards/boardsource/lulu/info.json b/keyboards/boardsource/lulu/info.json index 156a7cea98..4cfc688740 100644 --- a/keyboards/boardsource/lulu/info.json +++ b/keyboards/boardsource/lulu/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Lulu", + "manufacturer": "Boardsource", "url": "https://boardsource.xyz/store/61d0b772319a1f3cc53ba2fb", "maintainer": "boardsource", + "usb": { + "vid": "0x4273", + "pid": "0x7685", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/boardsource/technik_o/config.h b/keyboards/boardsource/technik_o/config.h index 146141a911..bbaacd33c4 100644 --- a/keyboards/boardsource/technik_o/config.h +++ b/keyboards/boardsource/technik_o/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Boardsource +Copyright 2022 Boardsource This 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,62 +16,19 @@ along with this program. If not, see . */ #pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 -#define PRODUCT_ID 0x0079 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Boardsource -#define PRODUCT Technik-O - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS {B0, B1, B2, B3} -#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6} -#define UNUSED_PINS - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -#define BACKLIGHT_BREATHING -#define RGBLIGHT_ANIMATIONS #define RGB_DI_PIN C6 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 -// 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 DRIVER_LED_TOTAL 58 #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 @@ -85,81 +42,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 -// 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 -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 10 // Number of LEDs -#endif - -#define DRIVER_LED_TOTAL 58 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/technik_o/info.json b/keyboards/boardsource/technik_o/info.json index 0aa780ca7b..d84a976e13 100644 --- a/keyboards/boardsource/technik_o/info.json +++ b/keyboards/boardsource/technik_o/info.json @@ -1,62 +1,144 @@ { - "keyboard_name": "Technik-O", - "url": "https://boardsource.xyz", - "maintainer": "Boardsource", - "layouts": { - "LAYOUT_ortho_4x12": { - "layout": [ - { "label": "K01", "x": 0, "y": 0 }, - { "label": "K02", "x": 1, "y": 0 }, - { "label": "K03", "x": 2, "y": 0 }, - { "label": "K04", "x": 3, "y": 0 }, - { "label": "K05", "x": 4, "y": 0 }, - { "label": "K06", "x": 5, "y": 0 }, - { "label": "K07", "x": 6, "y": 0 }, - { "label": "K08", "x": 7, "y": 0 }, - { "label": "K09", "x": 8, "y": 0 }, - { "label": "K010", "x": 9, "y": 0 }, - { "label": "K011", "x": 10, "y": 0 }, - { "label": "K012", "x": 11, "y": 0 }, - - { "label": "K11", "x": 0, "y": 1 }, - { "label": "K12", "x": 1, "y": 1 }, - { "label": "K13", "x": 2, "y": 1 }, - { "label": "K14", "x": 3, "y": 1 }, - { "label": "K15", "x": 4, "y": 1 }, - { "label": "K16", "x": 5, "y": 1 }, - { "label": "K17", "x": 6, "y": 1 }, - { "label": "K18", "x": 7, "y": 1 }, - { "label": "K19", "x": 8, "y": 1 }, - { "label": "K110", "x": 9, "y": 1 }, - { "label": "K111", "x": 10, "y": 1 }, - { "label": "K112", "x": 11, "y": 1 }, - - { "label": "K21", "x": 0, "y": 2 }, - { "label": "K22", "x": 1, "y": 2 }, - { "label": "K23", "x": 2, "y": 2 }, - { "label": "K24", "x": 3, "y": 2 }, - { "label": "K25", "x": 4, "y": 2 }, - { "label": "K26", "x": 5, "y": 2 }, - { "label": "K27", "x": 6, "y": 2 }, - { "label": "K28", "x": 7, "y": 2 }, - { "label": "K29", "x": 8, "y": 2 }, - { "label": "K210", "x": 9, "y": 2 }, - { "label": "K211", "x": 10, "y": 2 }, - { "label": "K212", "x": 11, "y": 2 }, - - { "label": "K31", "x": 0, "y": 3 }, - { "label": "K32", "x": 1, "y": 3 }, - { "label": "K33", "x": 2, "y": 3 }, - { "label": "K34", "x": 3, "y": 3 }, - { "label": "K35", "x": 4, "y": 3 }, - { "label": "K36", "x": 5, "y": 3 }, - { "label": "K37", "x": 6, "y": 3 }, - { "label": "K38", "x": 7, "y": 3 }, - { "label": "K39", "x": 8, "y": 3 }, - { "label": "K310", "x": 9, "y": 3 }, - { "label": "K311", "x": 10, "y": 3 }, - { "label": "K312", "x": 11, "y": 3 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "Technik-O", + "maintainer": "waffle87", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B5", "B6", "B7", "F5", "C7", "D0", "D1", "D2", "D3", "D4", "D5", "D6"], + "rows": ["B0", "B1", "B2", "B3"] + }, + "processor": "atmega32u4", + "url": "https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2", + "usb": { + "device_version": "1.0.0", + "pid": "0x0079", + "vid": "0x4273" + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 220, "y": 17 }, + { "flags": 2, "x": 172, "y": 17 }, + { "flags": 2, "x": 112, "y": 17 }, + { "flags": 2, "x": 50, "y": 17 }, + { "flags": 2, "x": 4, "y": 17 }, + { "flags": 2, "x": 4, "y": 56 }, + { "flags": 2, "x": 50, "y": 56 }, + { "flags": 2, "x": 112, "y": 56 }, + { "flags": 2, "x": 172, "y": 56 }, + { "flags": 2, "x": 220, "y": 56 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 40, "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": 101, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 }, + { "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 }, + { "flags": 1, "matrix": [1, 0], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 20, "y": 21 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "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": 101, "y": 21 }, + { "flags": 4, "matrix": [1, 6], "x": 122, "y": 21 }, + { "flags": 4, "matrix": [1, 7], "x": 142, "y": 21 }, + { "flags": 4, "matrix": [1, 8], "x": 162, "y": 21 }, + { "flags": 4, "matrix": [1, 9], "x": 183, "y": 21 }, + { "flags": 4, "matrix": [1, 10], "x": 203, "y": 21 }, + { "flags": 1, "matrix": [1, 11], "x": 224, "y": 21 }, + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "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": 101, "y": 42 }, + { "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 }, + { "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 }, + { "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 }, + { "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 }, + { "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 }, + { "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 }, + { "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 }, + { "flags": 1, "matrix": [3, 1], "x": 20, "y": 64 }, + { "flags": 1, "matrix": [3, 2], "x": 40, "y": 64 }, + { "flags": 1, "matrix": [3, 3], "x": 61, "y": 64 }, + { "flags": 1, "matrix": [3, 4], "x": 81, "y": 64 }, + { "flags": 4, "matrix": [3, 5], "x": 101, "y": 64 }, + { "flags": 4, "matrix": [3, 6], "x": 122, "y": 64 }, + { "flags": 1, "matrix": [3, 7], "x": 142, "y": 64 }, + { "flags": 1, "matrix": [3, 8], "x": 162, "y": 64 }, + { "flags": 1, "matrix": [3, 9], "x": 183, "y": 64 }, + { "flags": 1, "matrix": [3, 10], "x": 203, "y": 64 }, + { "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 } + ] + }, + "community_layouts": [ + "ortho_4x12" + ], + "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": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 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 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] } + } } diff --git a/keyboards/boardsource/technik_o/keymaps/default/keymap.c b/keyboards/boardsource/technik_o/keymaps/default/keymap.c index 028e3eae41..9df43c88db 100644 --- a/keyboards/boardsource/technik_o/keymaps/default/keymap.c +++ b/keyboards/boardsource/technik_o/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This 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,32 +22,27 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_4x12( 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 , RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_4x12( - 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, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_4x12( - 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, _______, - RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, 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_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, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ) - }; diff --git a/keyboards/boardsource/technik_o/keymaps/default/readme.md b/keyboards/boardsource/technik_o/keymaps/default/readme.md deleted file mode 100644 index e9427401d0..0000000000 --- a/keyboards/boardsource/technik_o/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for Technik-O diff --git a/keyboards/boardsource/technik_o/keymaps/via/keymap.c b/keyboards/boardsource/technik_o/keymaps/via/keymap.c index 028e3eae41..c04898f0aa 100644 --- a/keyboards/boardsource/technik_o/keymaps/via/keymap.c +++ b/keyboards/boardsource/technik_o/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This 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,32 +22,32 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = LAYOUT_ortho_4x12( 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 , RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_RAISE] = LAYOUT_ortho_4x12( - 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, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_LOWER] = LAYOUT_ortho_4x12( - 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, _______, - RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, 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_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, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + [3] = LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) - }; - diff --git a/keyboards/boardsource/technik_o/keymaps/via/readme.md b/keyboards/boardsource/technik_o/keymaps/via/readme.md deleted file mode 100644 index 6ae03a917f..0000000000 --- a/keyboards/boardsource/technik_o/keymaps/via/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The via keymap for Technik-O diff --git a/keyboards/boardsource/technik_o/rules.mk b/keyboards/boardsource/technik_o/rules.mk index c1a93c1f38..32afd21635 100644 --- a/keyboards/boardsource/technik_o/rules.mk +++ b/keyboards/boardsource/technik_o/rules.mk @@ -1,21 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -LAYOUTS = ortho_4x12 diff --git a/keyboards/boardsource/technik_o/technik_o.c b/keyboards/boardsource/technik_o/technik_o.c index 1488d55f59..0fd213e42a 100644 --- a/keyboards/boardsource/technik_o/technik_o.c +++ b/keyboards/boardsource/technik_o/technik_o.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * Copyright 2021 @filterpaper * * This program is free software: you can redistribute it and/or modify @@ -15,29 +15,6 @@ * along with this program. If not, see . */ -#include "technik_o.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 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} -}, { - {220, 17}, {172, 17}, {112, 17}, { 50, 17}, { 4, 17}, { 4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56}, - { 0, 0}, { 20, 0}, { 40, 0}, { 61, 0}, { 81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, - { 0, 21}, { 20, 21}, { 40, 21}, { 61, 21}, { 81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21}, - { 0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, - { 0, 64}, { 20, 64}, { 40, 64}, { 61, 64}, { 81, 64}, {101, 64}, {122, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64} -}, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1 -} }; -#endif - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -47,4 +24,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}} }; #endif - diff --git a/keyboards/boardsource/technik_s/config.h b/keyboards/boardsource/technik_s/config.h index a34ab1577a..2141a2a0a9 100644 --- a/keyboards/boardsource/technik_s/config.h +++ b/keyboards/boardsource/technik_s/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Boardsource +Copyright 2022 Boardsource This 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,62 +16,19 @@ along with this program. If not, see . */ #pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 -#define PRODUCT_ID 0x0083 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Boardsource -#define PRODUCT Technik-S - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS {B0, B1, B2, B3} -#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6} -#define UNUSED_PINS - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -#define BACKLIGHT_BREATHING -#define RGBLIGHT_ANIMATIONS #define RGB_DI_PIN C6 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 -// 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 DRIVER_LED_TOTAL 55 #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 @@ -85,81 +42,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 -// 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 -#ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 10 // Number of LEDs -#endif - -#define DRIVER_LED_TOTAL 55 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/technik_s/info.json b/keyboards/boardsource/technik_s/info.json index 938501b613..6593845e83 100644 --- a/keyboards/boardsource/technik_s/info.json +++ b/keyboards/boardsource/technik_s/info.json @@ -1,56 +1,135 @@ { - "keyboard_name": "Technik-S", - "url": "", - "maintainer": "Boardsource", - "layouts": { - "LAYOUT": { - "layout": [ - { "label": "1", "x": 0, "y": 0 }, - { "label": "2", "x": 1, "y": 0 }, - { "label": "3", "x": 2, "y": 0 }, - { "label": "4", "x": 3, "y": 0 }, - { "label": "5", "x": 4, "y": 0 }, - { "label": "6", "x": 5, "y": 0 }, - { "label": "7", "x": 6, "y": 0 }, - { "label": "8", "x": 7, "y": 0 }, - { "label": "9", "x": 8, "y": 0 }, - { "label": "10", "x": 9, "y": 0 }, - { "label": "11", "x": 10, "y": 0 }, - { "label": "12", "x": 11, "y": 0 }, - { "label": "13", "x": 0, "y": 1, "w": 1.5 }, - { "label": "14", "x": 1.5, "y": 1 }, - { "label": "15", "x": 2.5, "y": 1 }, - { "label": "16", "x": 3.5, "y": 1 }, - { "label": "17", "x": 4.5, "y": 1 }, - { "label": "18", "x": 5.5, "y": 1 }, - { "label": "19", "x": 6.5, "y": 1 }, - { "label": "20", "x": 7.5, "y": 1 }, - { "label": "21", "x": 8.5, "y": 1 }, - { "label": "22", "x": 9.5, "y": 1 }, - { "label": "23", "x": 10.5, "y": 1, "w": 1.5 }, - { "label": "24", "x": 0, "y": 2 }, - { "label": "25", "x": 1, "y": 2 }, - { "label": "26", "x": 2, "y": 2 }, - { "label": "27", "x": 3, "y": 2 }, - { "label": "28", "x": 4, "y": 2 }, - { "label": "29", "x": 5, "y": 2 }, - { "label": "30", "x": 6, "y": 2 }, - { "label": "31", "x": 7, "y": 2 }, - { "label": "32", "x": 8, "y": 2 }, - { "label": "33", "x": 9, "y": 2 }, - { "label": "34", "x": 10, "y": 2 }, - { "label": "35", "x": 11, "y": 2 }, - { "label": "36", "x": 0, "y": 3 }, - { "label": "37", "x": 1, "y": 3 }, - { "label": "38", "x": 2, "y": 3 }, - { "label": "39", "x": 3, "y": 3, "w": 1.5 }, - { "label": "40", "x": 4.5, "y": 3, "w": 1.5 }, - { "label": "41", "x": 6, "y": 3, "w": 1.5 }, - { "label": "42", "x": 7.5, "y": 3, "w": 1.5 }, - { "label": "43", "x": 9, "y": 3 }, - { "label": "44", "x": 10, "y": 3 }, - { "label": "45", "x": 11, "y": 3 } - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "Technik-S", + "maintainer": "waffle87", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B5", "B6", "B7", "F5", "C7", "D0", "D1", "D2", "D3", "D4", "D5", "D6"], + "rows": ["B0", "B1", "B2", "B3"] + }, + "processor": "atmega32u4", + "url": "https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2", + "usb": { + "device_version": "1.0.0", + "pid": "0x0083", + "vid": "0x4273" + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 220, "y": 17 }, + { "flags": 2, "x": 172, "y": 17 }, + { "flags": 2, "x": 112, "y": 17 }, + { "flags": 2, "x": 50, "y": 17 }, + { "flags": 2, "x": 4, "y": 17 }, + { "flags": 2, "x": 4, "y": 56 }, + { "flags": 2, "x": 50, "y": 56 }, + { "flags": 2, "x": 112, "y": 56 }, + { "flags": 2, "x": 172, "y": 56 }, + { "flags": 2, "x": 220, "y": 56 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 40, "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": 101, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 122, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 142, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 162, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 203, "y": 0 }, + { "flags": 1, "matrix": [0, 11], "x": 224, "y": 0 }, + { "flags": 1, "matrix": [1, 0], "x": 10, "y": 21 }, + { "flags": 4, "matrix": [1, 2], "x": 30, "y": 21 }, + { "flags": 4, "matrix": [1, 3], "x": 51, "y": 21 }, + { "flags": 4, "matrix": [1, 4], "x": 71, "y": 21 }, + { "flags": 4, "matrix": [1, 5], "x": 91, "y": 21 }, + { "flags": 4, "matrix": [1, 6], "x": 112, "y": 21 }, + { "flags": 4, "matrix": [1, 7], "x": 132, "y": 21 }, + { "flags": 4, "matrix": [1, 8], "x": 152, "y": 21 }, + { "flags": 4, "matrix": [1, 9], "x": 173, "y": 21 }, + { "flags": 4, "matrix": [1, 10], "x": 193, "y": 21 }, + { "flags": 1, "matrix": [1, 11], "x": 214, "y": 21 }, + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 20, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "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": 101, "y": 42 }, + { "flags": 4, "matrix": [2, 6], "x": 122, "y": 42 }, + { "flags": 4, "matrix": [2, 7], "x": 142, "y": 42 }, + { "flags": 4, "matrix": [2, 8], "x": 162, "y": 42 }, + { "flags": 4, "matrix": [2, 9], "x": 183, "y": 42 }, + { "flags": 4, "matrix": [2, 10], "x": 203, "y": 42 }, + { "flags": 1, "matrix": [2, 11], "x": 224, "y": 42 }, + { "flags": 1, "matrix": [3, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [3, 1], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [3, 2], "x": 40, "y": 64 }, + { "flags": 4, "matrix": [3, 3], "x": 68, "y": 64 }, + { "flags": 4, "matrix": [3, 5], "x": 97, "y": 64 }, + { "flags": 4, "matrix": [3, 6], "x": 126, "y": 64 }, + { "flags": 4, "matrix": [3, 8], "x": 154, "y": 64 }, + { "flags": 4, "matrix": [3, 9], "x": 183, "y": 64 }, + { "flags": 4, "matrix": [3, 10], "x": 203, "y": 64 }, + { "flags": 1, "matrix": [3, 11], "x": 224, "y": 64 } + ] + }, + "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": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "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], "w": 1.5, "x": 10.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": [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], "w": 1.5, "x": 3, "y": 3 }, + { "matrix": [3, 5], "w": 1.5, "x": 4.5, "y": 3 }, + { "matrix": [3, 6], "w": 1.5, "x": 6, "y": 3 }, + { "matrix": [3, 8], "w": 1.5, "x": 7.5, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] } + } } diff --git a/keyboards/boardsource/technik_s/keymaps/default/keymap.c b/keyboards/boardsource/technik_s/keymaps/default/keymap.c index 1b26f6387d..00e17b15f0 100644 --- a/keyboards/boardsource/technik_s/keymaps/default/keymap.c +++ b/keyboards/boardsource/technik_s/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This 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,32 +22,26 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = 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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT ), - [_RAISE] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, - RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + 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, + RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD ), - [_LOWER] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD - ) - + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ) }; - diff --git a/keyboards/boardsource/technik_s/keymaps/default/readme.md b/keyboards/boardsource/technik_s/keymaps/default/readme.md deleted file mode 100644 index 0e6753504b..0000000000 --- a/keyboards/boardsource/technik_s/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for Technik-S diff --git a/keyboards/boardsource/technik_s/keymaps/via/keymap.c b/keyboards/boardsource/technik_s/keymaps/via/keymap.c index 1b26f6387d..f85b1ff186 100644 --- a/keyboards/boardsource/technik_s/keymaps/via/keymap.c +++ b/keyboards/boardsource/technik_s/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This 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,32 +22,32 @@ enum layers { _LOWER, }; -// Readability keycodes #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_MAIN] = 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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT ), - [_RAISE] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, - RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + 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, + RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD ), - [_LOWER] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD - ) - + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; - diff --git a/keyboards/boardsource/technik_s/keymaps/via/readme.md b/keyboards/boardsource/technik_s/keymaps/via/readme.md deleted file mode 100644 index 54e975a5aa..0000000000 --- a/keyboards/boardsource/technik_s/keymaps/via/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The via keymap for Technik-S diff --git a/keyboards/boardsource/technik_s/rules.mk b/keyboards/boardsource/technik_s/rules.mk index 33488b9d3a..32afd21635 100644 --- a/keyboards/boardsource/technik_s/rules.mk +++ b/keyboards/boardsource/technik_s/rules.mk @@ -1,21 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -LTO_ENABLE = yes diff --git a/keyboards/boardsource/technik_s/technik_s.c b/keyboards/boardsource/technik_s/technik_s.c deleted file mode 100644 index bb7245c73d..0000000000 --- a/keyboards/boardsource/technik_s/technik_s.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "technik_s.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}, - {22, NO_LED, 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, NO_LED, 49, 50, NO_LED, 51, 52, 53, 54} -}, { - {220, 17}, {172, 17}, {112, 17}, { 50, 17}, { 4, 17}, { 4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56}, - { 0, 0}, { 20, 0}, { 40, 0}, { 61, 0}, { 81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, - { 10, 21}, { 30, 21}, { 51, 21}, { 71, 21}, { 91, 21}, {112, 21}, {132, 21}, {152, 21}, {173, 21}, {193, 21}, {214, 21}, - { 0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, - { 0, 64}, { 20, 64}, { 40, 64}, { 68, 64}, { 97, 64}, {126, 64}, {154, 64}, {183, 64}, {203, 64}, {224, 64} -}, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 4, 4, 1, 1, 1, 1 -} }; -#endif - diff --git a/keyboards/boardsource/the_mark/config.h b/keyboards/boardsource/the_mark/config.h index 99696e5d28..61628e1821 100644 --- a/keyboards/boardsource/the_mark/config.h +++ b/keyboards/boardsource/the_mark/config.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Boardsource +Copyright 2022 Boardsource This 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,141 +16,40 @@ along with this program. If not, see . */ #pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4273 // "Bs" - Boardsource -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Boardsource -#define PRODUCT The Mark65 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 16 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ - -#define MATRIX_ROW_PINS {B0, B1, B2, B3, B4} -#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6, D7,F0, F1, F4} -#define UNUSED_PINS - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW -#define RGBLIGHT_ANIMATIONS -#define RGB_DI_PIN C6 -#ifdef RGBLIGHT_ENABLE -#define RGBLED_NUM 24 // Number of LEDs -#define RGBLIGHT_LIMIT_VAL 200 -#endif - -/* RGB matrix support */ #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL 24 // Number of LEDs +# define DRIVER_LED_TOTAL 24 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 -# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# 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_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# 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_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +# define ENABLE_RGB_MATRIX_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 #endif - -/* - * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. - */ -//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -//#define BACKLIGHT_BREATHING - -//#define RGB_DI_PIN E2 -//#ifdef RGB_DI_PIN -//# define RGBLED_NUM 16 -//# define RGBLIGHT_HUE_STEP 8 -//# define RGBLIGHT_SAT_STEP 8 -//# define RGBLIGHT_VAL_STEP 8 -//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations enable ==*/ -//# define RGBLIGHT_ANIMATIONS -/*== 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 -/*== customize breathing effect ==*/ -/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ -//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 -/*==== use exp() and sin() ====*/ -//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 -//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 -//#endif - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/the_mark/info.json b/keyboards/boardsource/the_mark/info.json index 792585d12a..a0fb3de1c9 100644 --- a/keyboards/boardsource/the_mark/info.json +++ b/keyboards/boardsource/the_mark/info.json @@ -1,394 +1,431 @@ { - "keyboard_name": "The Mark: 65", - "url": "", - "maintainer": "daysgobye, Boardsource", - "layouts": { - "LAYOUT_all": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2@", "x":2, "y":0}, - {"label":"3#", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0}, - {"label":"Backspace", "x":14, "y":0}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"\\|", "x":13.5, "y":1, "w":1.5}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "x":0, "y":2, "w":1.75}, - {"label":"A", "x":1.75, "y":2}, - {"label":"S", "x":2.75, "y":2}, - {"label":"D", "x":3.75, "y":2}, - {"label":"F", "x":4.75, "y":2}, - {"label":"G", "x":5.75, "y":2}, - {"label":"H", "x":6.75, "y":2}, - {"label":"J", "x":7.75, "y":2}, - {"label":"K", "x":8.75, "y":2}, - {"label":"L", "x":9.75, "y":2}, - {"label":";:", "x":10.75, "y":2}, - {"label":"'\"", "x":11.75, "y":2}, - {"label":"Enter", "x":12.75, "y":2, "w":2.25}, - {"label":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":1.25}, - {"label":"\\|", "x":1.25, "y":3}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":2.25}, - {"label":"Space", "x":6, "y":4, "w":1.25}, - {"label":"Space", "x":7.25, "y":4, "w":2.75}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`~", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - }, - "LAYOUT_ansi": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2@", "x":2, "y":0}, - {"label":"3#", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0, "w":2}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"\\|", "x":13.5, "y":1, "w":1.5}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "x":0, "y":2, "w":1.75}, - {"label":"A", "x":1.75, "y":2}, - {"label":"S", "x":2.75, "y":2}, - {"label":"D", "x":3.75, "y":2}, - {"label":"F", "x":4.75, "y":2}, - {"label":"G", "x":5.75, "y":2}, - {"label":"H", "x":6.75, "y":2}, - {"label":"J", "x":7.75, "y":2}, - {"label":"K", "x":8.75, "y":2}, - {"label":"L", "x":9.75, "y":2}, - {"label":";:", "x":10.75, "y":2}, - {"label":"'\"", "x":11.75, "y":2}, - {"label":"Enter", "x":12.75, "y":2, "w":2.25}, - {"label":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":2.25}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":6.25}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`~", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - }, - "LAYOUT_ansi_split_bs_space": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2@", "x":2, "y":0}, - {"label":"3#", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0}, - {"label":"Backspace", "x":14, "y":0}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"\\|", "x":13.5, "y":1, "w":1.5}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "x":0, "y":2, "w":1.75}, - {"label":"A", "x":1.75, "y":2}, - {"label":"S", "x":2.75, "y":2}, - {"label":"D", "x":3.75, "y":2}, - {"label":"F", "x":4.75, "y":2}, - {"label":"G", "x":5.75, "y":2}, - {"label":"H", "x":6.75, "y":2}, - {"label":"J", "x":7.75, "y":2}, - {"label":"K", "x":8.75, "y":2}, - {"label":"L", "x":9.75, "y":2}, - {"label":";:", "x":10.75, "y":2}, - {"label":"'\"", "x":11.75, "y":2}, - {"label":"Enter", "x":12.75, "y":2, "w":2.25}, - {"label":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":2.25}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":2.25}, - {"label":"Space", "x":6, "y":4, "w":1.25}, - {"label":"Space", "x":7.25, "y":4, "w":2.75}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`~", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - }, - "LAYOUT_iso": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2\"", "x":2, "y":0}, - {"label":"3\u00a3", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0, "w":2}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "x":0, "y":2, "w":1.75}, - {"label":"A", "x":1.75, "y":2}, - {"label":"S", "x":2.75, "y":2}, - {"label":"D", "x":3.75, "y":2}, - {"label":"F", "x":4.75, "y":2}, - {"label":"G", "x":5.75, "y":2}, - {"label":"H", "x":6.75, "y":2}, - {"label":"J", "x":7.75, "y":2}, - {"label":"K", "x":8.75, "y":2}, - {"label":"L", "x":9.75, "y":2}, - {"label":";:", "x":10.75, "y":2}, - {"label":"'\"", "x":11.75, "y":2}, - {"label":"#~", "x":12.75, "y":2}, - {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, - {"label":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":1.25}, - {"label":"\\|", "x":1.25, "y":3}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":6.25}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`\u00ac", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - }, - "LAYOUT_iso_split_bs_space": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1!", "x":1, "y":0}, - {"label":"2\"", "x":2, "y":0}, - {"label":"3\u00a3", "x":3, "y":0}, - {"label":"4$", "x":4, "y":0}, - {"label":"5%", "x":5, "y":0}, - {"label":"6^", "x":6, "y":0}, - {"label":"7&", "x":7, "y":0}, - {"label":"8*", "x":8, "y":0}, - {"label":"9(", "x":9, "y":0}, - {"label":"0)", "x":10, "y":0}, - {"label":"-_", "x":11, "y":0}, - {"label":"=+", "x":12, "y":0}, - {"label":"Backspace", "x":13, "y":0}, - {"label":"Backspace", "x":14, "y":0}, - {"label":"Toggle RGB", "x":15.25, "y":0}, - - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":2.5, "y":1}, - {"label":"E", "x":3.5, "y":1}, - {"label":"R", "x":4.5, "y":1}, - {"label":"T", "x":5.5, "y":1}, - {"label":"Y", "x":6.5, "y":1}, - {"label":"U", "x":7.5, "y":1}, - {"label":"I", "x":8.5, "y":1}, - {"label":"O", "x":9.5, "y":1}, - {"label":"P", "x":10.5, "y":1}, - {"label":"[{", "x":11.5, "y":1}, - {"label":"]}", "x":12.5, "y":1}, - {"label":"RGB Mode +", "x":15.25, "y":1}, - - {"label":"Ctrl", "x":0, "y":2, "w":1.75}, - {"label":"A", "x":1.75, "y":2}, - {"label":"S", "x":2.75, "y":2}, - {"label":"D", "x":3.75, "y":2}, - {"label":"F", "x":4.75, "y":2}, - {"label":"G", "x":5.75, "y":2}, - {"label":"H", "x":6.75, "y":2}, - {"label":"J", "x":7.75, "y":2}, - {"label":"K", "x":8.75, "y":2}, - {"label":"L", "x":9.75, "y":2}, - {"label":";:", "x":10.75, "y":2}, - {"label":"'\"", "x":11.75, "y":2}, - {"label":"#~", "x":12.75, "y":2}, - {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, - {"label":"Fn", "x":15.25, "y":2}, - - {"label":"Shift", "x":0, "y":3, "w":1.25}, - {"label":"\\|", "x":1.25, "y":3}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.25, "y":3}, - {"label":"C", "x":4.25, "y":3}, - {"label":"V", "x":5.25, "y":3}, - {"label":"B", "x":6.25, "y":3}, - {"label":"N", "x":7.25, "y":3}, - {"label":"M", "x":8.25, "y":3}, - {"label":",<", "x":9.25, "y":3}, - {"label":".>", "x":10.25, "y":3}, - {"label":"/?", "x":11.25, "y":3}, - {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"label":"\u2191", "x":14.25, "y":3.25}, - - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"GUI", "x":1.25, "y":4, "w":1.25}, - {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"label":"Space", "x":3.75, "y":4, "w":2.25}, - {"label":"Space", "x":6, "y":4, "w":1.25}, - {"label":"Space", "x":7.25, "y":4, "w":2.75}, - {"label":"Alt", "x":10, "y":4}, - {"label":"Ctrl", "x":11, "y":4}, - {"label":"`\u00ac", "x":12, "y":4}, - {"label":"\u2190", "x":13.25, "y":4.25}, - {"label":"\u2193", "x":14.25, "y":4.25}, - {"label":"\u2192", "x":15.25, "y":4.25} - ] - } + "manufacturer": "Boardsource", + "keyboard_name": "The Mark65", + "maintainer": "waffle87", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgblight": true, + "rgb_matrix": false + }, + "matrix_pins": { + "cols": ["B5", "B6", "B7", "F5", "C7", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "F0", "F1", "F4"], + "rows": ["B0", "B1", "B2", "B3", "B4"] + }, + "processor": "atmega32u4", + "url": "https://boardsource.xyz/projects/5f46409bdce98063626dcb08", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4273" + }, + "rgblight": { + "led_count": 24, + "pin": "C6", + "sleep": true, + "max_brightness": 200, + "animations": { + "all": true } + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 224, "y": 42}, + { "flags": 2, "x": 224, "y": 21}, + { "flags": 2, "x": 209, "y": 21}, + { "flags": 2, "x": 179, "y": 21}, + { "flags": 2, "x": 164, "y": 21}, + { "flags": 2, "x": 134, "y": 21}, + { "flags": 2, "x": 119, "y": 21}, + { "flags": 2, "x": 89, "y": 21}, + { "flags": 2, "x": 74, "y": 21}, + { "flags": 2, "x": 45, "y": 21}, + { "flags": 2, "x": 30, "y": 21}, + { "flags": 2, "x": 30, "y": 42}, + { "flags": 2, "x": 30, "y": 64}, + { "flags": 2, "x": 30, "y": 85}, + { "flags": 2, "x": 45, "y": 85}, + { "flags": 2, "x": 74, "y": 85}, + { "flags": 2, "x": 89, "y": 85}, + { "flags": 2, "x": 119, "y": 85}, + { "flags": 2, "x": 134, "y": 85}, + { "flags": 2, "x": 164, "y": 85}, + { "flags": 2, "x": 179, "y": 85}, + { "flags": 2, "x": 209, "y": 85}, + { "flags": 2, "x": 224, "y": 85}, + { "flags": 2, "x": 224, "y": 64} + ] + }, + "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], "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": [1, 15], "x": 30, "y": 0 }, + { "matrix": [2, 0], "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, 15], "x": 44, "y": 0 }, + { "matrix": [3, 1], "x": 45, "y": 0 }, + { "matrix": [3, 0], "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, 13], "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, 3], "x": 61, "y": 0 }, + { "matrix": [4, 4], "x": 62, "y": 0 }, + { "matrix": [4, 6], "x": 63, "y": 0 }, + { "matrix": [4, 8], "x": 64, "y": 0 }, + { "matrix": [4, 10], "x": 65, "y": 0 }, + { "matrix": [4, 11], "x": 66, "y": 0 }, + { "matrix": [4, 12], "x": 67, "y": 0 }, + { "matrix": [4, 13], "x": 68, "y": 0 }, + { "matrix": [4, 14], "x": 69, "y": 0 }, + { "matrix": [4, 15], "x": 70, "y": 0 } + ] + }, + "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 }, + { "matrix": [0, 15], "x": 14, "y": 0 }, + { "matrix": [1, 0], "x": 15, "y": 0 }, + { "matrix": [1, 2], "x": 16, "y": 0 }, + { "matrix": [1, 3], "x": 17, "y": 0 }, + { "matrix": [1, 4], "x": 18, "y": 0 }, + { "matrix": [1, 5], "x": 19, "y": 0 }, + { "matrix": [1, 6], "x": 20, "y": 0 }, + { "matrix": [1, 7], "x": 21, "y": 0 }, + { "matrix": [1, 8], "x": 22, "y": 0 }, + { "matrix": [1, 9], "x": 23, "y": 0 }, + { "matrix": [1, 10], "x": 24, "y": 0 }, + { "matrix": [1, 11], "x": 25, "y": 0 }, + { "matrix": [1, 12], "x": 26, "y": 0 }, + { "matrix": [1, 13], "x": 27, "y": 0 }, + { "matrix": [1, 14], "x": 28, "y": 0 }, + { "matrix": [1, 15], "x": 29, "y": 0 }, + { "matrix": [2, 0], "x": 30, "y": 0 }, + { "matrix": [2, 2], "x": 31, "y": 0 }, + { "matrix": [2, 3], "x": 32, "y": 0 }, + { "matrix": [2, 4], "x": 33, "y": 0 }, + { "matrix": [2, 5], "x": 34, "y": 0 }, + { "matrix": [2, 6], "x": 35, "y": 0 }, + { "matrix": [2, 7], "x": 36, "y": 0 }, + { "matrix": [2, 8], "x": 37, "y": 0 }, + { "matrix": [2, 9], "x": 38, "y": 0 }, + { "matrix": [2, 10], "x": 39, "y": 0 }, + { "matrix": [2, 11], "x": 40, "y": 0 }, + { "matrix": [2, 12], "x": 41, "y": 0 }, + { "matrix": [2, 13], "x": 42, "y": 0 }, + { "matrix": [2, 15], "x": 43, "y": 0 }, + { "matrix": [3, 1], "x": 44, "y": 0 }, + { "matrix": [3, 2], "x": 45, "y": 0 }, + { "matrix": [3, 3], "x": 46, "y": 0 }, + { "matrix": [3, 4], "x": 47, "y": 0 }, + { "matrix": [3, 5], "x": 48, "y": 0 }, + { "matrix": [3, 6], "x": 49, "y": 0 }, + { "matrix": [3, 7], "x": 50, "y": 0 }, + { "matrix": [3, 8], "x": 51, "y": 0 }, + { "matrix": [3, 9], "x": 52, "y": 0 }, + { "matrix": [3, 10], "x": 53, "y": 0 }, + { "matrix": [3, 11], "x": 54, "y": 0 }, + { "matrix": [3, 13], "x": 55, "y": 0 }, + { "matrix": [3, 14], "x": 56, "y": 0 }, + { "matrix": [4, 0], "x": 57, "y": 0 }, + { "matrix": [4, 1], "x": 58, "y": 0 }, + { "matrix": [4, 3], "x": 59, "y": 0 }, + { "matrix": [4, 6], "x": 60, "y": 0 }, + { "matrix": [4, 10], "x": 61, "y": 0 }, + { "matrix": [4, 11], "x": 62, "y": 0 }, + { "matrix": [4, 12], "x": 63, "y": 0 }, + { "matrix": [4, 13], "x": 64, "y": 0 }, + { "matrix": [4, 14], "x": 65, "y": 0 }, + { "matrix": [4, 15], "x": 66, "y": 0 } + ] + }, + "LAYOUT_ansi_split_bs_space": { + "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": 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": [1, 15], "x": 30, "y": 0 }, + { "matrix": [2, 0], "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, 15], "x": 44, "y": 0 }, + { "matrix": [3, 1], "x": 45, "y": 0 }, + { "matrix": [3, 2], "x": 46, "y": 0 }, + { "matrix": [3, 3], "x": 47, "y": 0 }, + { "matrix": [3, 4], "x": 48, "y": 0 }, + { "matrix": [3, 5], "x": 49, "y": 0 }, + { "matrix": [3, 6], "x": 50, "y": 0 }, + { "matrix": [3, 7], "x": 51, "y": 0 }, + { "matrix": [3, 8], "x": 52, "y": 0 }, + { "matrix": [3, 9], "x": 53, "y": 0 }, + { "matrix": [3, 10], "x": 54, "y": 0 }, + { "matrix": [3, 11], "x": 55, "y": 0 }, + { "matrix": [3, 13], "x": 56, "y": 0 }, + { "matrix": [3, 14], "x": 57, "y": 0 }, + { "matrix": [4, 0], "x": 58, "y": 0 }, + { "matrix": [4, 1], "x": 59, "y": 0 }, + { "matrix": [4, 3], "x": 60, "y": 0 }, + { "matrix": [4, 4], "x": 61, "y": 0 }, + { "matrix": [4, 6], "x": 62, "y": 0 }, + { "matrix": [4, 8], "x": 63, "y": 0 }, + { "matrix": [4, 10], "x": 64, "y": 0 }, + { "matrix": [4, 11], "x": 65, "y": 0 }, + { "matrix": [4, 12], "x": 66, "y": 0 }, + { "matrix": [4, 13], "x": 67, "y": 0 }, + { "matrix": [4, 14], "x": 68, "y": 0 }, + { "matrix": [4, 15], "x": 69, "y": 0 } + ] + }, + "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 }, + { "matrix": [0, 15], "x": 14, "y": 0 }, + { "matrix": [1, 0], "x": 15, "y": 0 }, + { "matrix": [1, 2], "x": 16, "y": 0 }, + { "matrix": [1, 3], "x": 17, "y": 0 }, + { "matrix": [1, 4], "x": 18, "y": 0 }, + { "matrix": [1, 5], "x": 19, "y": 0 }, + { "matrix": [1, 6], "x": 20, "y": 0 }, + { "matrix": [1, 7], "x": 21, "y": 0 }, + { "matrix": [1, 8], "x": 22, "y": 0 }, + { "matrix": [1, 9], "x": 23, "y": 0 }, + { "matrix": [1, 10], "x": 24, "y": 0 }, + { "matrix": [1, 11], "x": 25, "y": 0 }, + { "matrix": [1, 12], "x": 26, "y": 0 }, + { "matrix": [1, 13], "x": 27, "y": 0 }, + { "matrix": [1, 15], "x": 28, "y": 0 }, + { "matrix": [2, 0], "x": 29, "y": 0 }, + { "matrix": [2, 2], "x": 30, "y": 0 }, + { "matrix": [2, 3], "x": 31, "y": 0 }, + { "matrix": [2, 4], "x": 32, "y": 0 }, + { "matrix": [2, 5], "x": 33, "y": 0 }, + { "matrix": [2, 6], "x": 34, "y": 0 }, + { "matrix": [2, 7], "x": 35, "y": 0 }, + { "matrix": [2, 8], "x": 36, "y": 0 }, + { "matrix": [2, 9], "x": 37, "y": 0 }, + { "matrix": [2, 10], "x": 38, "y": 0 }, + { "matrix": [2, 11], "x": 39, "y": 0 }, + { "matrix": [2, 12], "x": 40, "y": 0 }, + { "matrix": [1, 14], "x": 41, "y": 0 }, + { "matrix": [2, 13], "x": 42, "y": 0 }, + { "matrix": [2, 15], "x": 43, "y": 0 }, + { "matrix": [3, 1], "x": 44, "y": 0 }, + { "matrix": [3, 0], "x": 45, "y": 0 }, + { "matrix": [3, 2], "x": 46, "y": 0 }, + { "matrix": [3, 3], "x": 47, "y": 0 }, + { "matrix": [3, 4], "x": 48, "y": 0 }, + { "matrix": [3, 5], "x": 49, "y": 0 }, + { "matrix": [3, 6], "x": 50, "y": 0 }, + { "matrix": [3, 7], "x": 51, "y": 0 }, + { "matrix": [3, 8], "x": 52, "y": 0 }, + { "matrix": [3, 9], "x": 53, "y": 0 }, + { "matrix": [3, 10], "x": 54, "y": 0 }, + { "matrix": [3, 11], "x": 55, "y": 0 }, + { "matrix": [3, 13], "x": 56, "y": 0 }, + { "matrix": [3, 14], "x": 57, "y": 0 }, + { "matrix": [4, 0], "x": 58, "y": 0 }, + { "matrix": [4, 1], "x": 59, "y": 0 }, + { "matrix": [4, 3], "x": 60, "y": 0 }, + { "matrix": [4, 6], "x": 61, "y": 0 }, + { "matrix": [4, 10], "x": 62, "y": 0 }, + { "matrix": [4, 11], "x": 63, "y": 0 }, + { "matrix": [4, 12], "x": 64, "y": 0 }, + { "matrix": [4, 13], "x": 65, "y": 0 }, + { "matrix": [4, 14], "x": 66, "y": 0 }, + { "matrix": [4, 15], "x": 67, "y": 0 } + ] + }, + "LAYOUT_iso_split_bs_space": { + "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": 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, 15], "x": 29, "y": 0 }, + { "matrix": [2, 0], "x": 30, "y": 0 }, + { "matrix": [2, 2], "x": 31, "y": 0 }, + { "matrix": [2, 3], "x": 32, "y": 0 }, + { "matrix": [2, 4], "x": 33, "y": 0 }, + { "matrix": [2, 5], "x": 34, "y": 0 }, + { "matrix": [2, 6], "x": 35, "y": 0 }, + { "matrix": [2, 7], "x": 36, "y": 0 }, + { "matrix": [2, 8], "x": 37, "y": 0 }, + { "matrix": [2, 9], "x": 38, "y": 0 }, + { "matrix": [2, 10], "x": 39, "y": 0 }, + { "matrix": [2, 11], "x": 40, "y": 0 }, + { "matrix": [2, 12], "x": 41, "y": 0 }, + { "matrix": [1, 14], "x": 42, "y": 0 }, + { "matrix": [2, 13], "x": 43, "y": 0 }, + { "matrix": [2, 15], "x": 44, "y": 0 }, + { "matrix": [3, 1], "x": 45, "y": 0 }, + { "matrix": [3, 0], "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, 13], "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, 3], "x": 61, "y": 0 }, + { "matrix": [4, 4], "x": 62, "y": 0 }, + { "matrix": [4, 6], "x": 63, "y": 0 }, + { "matrix": [4, 8], "x": 64, "y": 0 }, + { "matrix": [4, 10], "x": 65, "y": 0 }, + { "matrix": [4, 11], "x": 66, "y": 0 }, + { "matrix": [4, 12], "x": 67, "y": 0 }, + { "matrix": [4, 13], "x": 68, "y": 0 }, + { "matrix": [4, 14], "x": 69, "y": 0 }, + { "matrix": [4, 15], "x": 70, "y": 0 } + ] + } + } } diff --git a/keyboards/boardsource/the_mark/keymaps/default/keymap.c b/keyboards/boardsource/the_mark/keymaps/default/keymap.c index dc689f9bb1..8e4b5caed7 100644 --- a/keyboards/boardsource/the_mark/keymaps/default/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c index 6e1bcd2894..75db90f23f 100644 --- a/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c index 477685c771..6bef05a7c1 100644 --- a/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * 2022 QMK / James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c index 3e29975d37..68c664aa96 100644 --- a/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c index 1f61d83225..676b9b4575 100644 --- a/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * 2022 QMK / James Young (@noroadsleft) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/boardsource/the_mark/keymaps/via/keymap.c b/keyboards/boardsource/the_mark/keymaps/via/keymap.c index dbc3b5b464..3cf3b45d56 100644 --- a/keyboards/boardsource/the_mark/keymaps/via/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 Boardsource * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/keyboards/boardsource/the_mark/keymaps/via/readme.md b/keyboards/boardsource/the_mark/keymaps/via/readme.md deleted file mode 100644 index 5fda80e18b..0000000000 --- a/keyboards/boardsource/the_mark/keymaps/via/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# The via keymap for The Mark: 65 - -This folder contains the VIA configuration for the boardsource's The Mark: 65 diff --git a/keyboards/boardsource/the_mark/rules.mk b/keyboards/boardsource/the_mark/rules.mk index e9cb6a2894..32afd21635 100644 --- a/keyboards/boardsource/the_mark/rules.mk +++ b/keyboards/boardsource/the_mark/rules.mk @@ -1,20 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) -RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/boardsource/the_mark/the_mark.c b/keyboards/boardsource/the_mark/the_mark.c deleted file mode 100644 index 59aff7f9ac..0000000000 --- a/keyboards/boardsource/the_mark/the_mark.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "the_mark.h" - -/* Map physical under glow LEDs for RGB matrix support */ -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 10 , NO_LED, 9 , NO_LED, 8 , 7 , NO_LED, 6 , 5 , NO_LED, 4 , 3 , NO_LED, 2 , NO_LED, 1 }, - { 11 , NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { 12 , 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, 23 }, - { 13 , NO_LED, 14 , NO_LED, 15 , 16 , NO_LED, 17 , 18 , NO_LED, 19 , 20 , NO_LED, 21 , NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 22 }, -}, { - // LED Index to Physical Position - {224, 42}, {224, 21}, {209, 21}, {179, 21}, {164, 21}, {134, 21}, {119, 21}, {89, 21}, {74, 21}, {45, 21}, {30, 21}, {30, 42}, - {30, 64}, {30, 85}, {45, 85}, {74, 85}, {89, 85}, {119, 85}, {134, 85}, {164, 85}, {179, 85}, {209, 85}, {224, 85}, {224, 64} -}, { - // 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_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_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - - -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} -#endif diff --git a/keyboards/boardsource/the_mark/the_mark.h b/keyboards/boardsource/the_mark/the_mark.h deleted file mode 100644 index 163d5c256c..0000000000 --- a/keyboards/boardsource/the_mark/the_mark.h +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright 2020 Boardsource - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -#define ___ KC_NO - -/* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┐ ┌───────┐ - * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E ││0F │ │0D │ 2u Backspace - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┤ └─┬─────┤ - * │10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E ││1F │ │ │ - * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ ┌──┴┐2D │ ISO Enter - * LShift │20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D ││2F │ │1E │ │ - * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ └───┴────┘ - * │31 │ │31 │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │┌───┐ - * └────────┘ ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┘│3E │ - * │40 │41 │43 │44 │46 │48 │4A │4B │4C │┌───┼───┼───┐ - * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┘│4D │4E │4F │ - * └───┴───┴───┘ - * ┌────────────────────────┬─────┬─────┐ - * 6.25u Space │46 │4A │4B │ RWKL - * └────────────────────────┴─────┴─────┘ - */ - -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ - K31, K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} - -#define LAYOUT_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ - K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { ___, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, ___, ___, K46, ___, ___, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} - -#define LAYOUT_ansi_split_bs_space( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ - K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { ___, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} - -#define LAYOUT_iso( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D, K2F, \ - K31, K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, ___, ___, K46, ___, ___, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} - -#define LAYOUT_iso_split_bs_space( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ - K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D, K2F, \ - K31, K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E, ___ }, \ - { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E, K4F } \ -} diff --git a/keyboards/boardwalk/config.h b/keyboards/boardwalk/config.h index 03e481ce62..62e75b36dd 100644 --- a/keyboards/boardwalk/config.h +++ b/keyboards/boardwalk/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCDCD -#define PRODUCT_ID 0x5337 -#define DEVICE_VER 0x0001 -#define MANUFACTURER shensmobile -#define PRODUCT Boardwalk - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/boardwalk/info.json b/keyboards/boardwalk/info.json index 63630cae8a..4d7d2ae4af 100644 --- a/keyboards/boardwalk/info.json +++ b/keyboards/boardwalk/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Boardwalk", + "manufacturer": "shensmobile", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCDCD", + "pid": "0x5337", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x14": { "layout": [ diff --git a/keyboards/bobpad/config.h b/keyboards/bobpad/config.h index c744a455e3..a0ae8612b8 100644 --- a/keyboards/bobpad/config.h +++ b/keyboards/bobpad/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x416B -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Desiboards -#define PRODUCT bobpad - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/bobpad/info.json b/keyboards/bobpad/info.json index 53ac20e9dc..cbb6b70268 100644 --- a/keyboards/bobpad/info.json +++ b/keyboards/bobpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "bobPad", + "manufacturer": "Desiboards", "url": "", "maintainer": "Ananya Kirti", + "usb": { + "vid": "0x416B", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x3": { "layout": [ diff --git a/keyboards/bolsa/damapad/config.h b/keyboards/bolsa/damapad/config.h index b829a8a998..fd3db403f5 100644 --- a/keyboards/bolsa/damapad/config.h +++ b/keyboards/bolsa/damapad/config.h @@ -20,14 +20,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D64 -#define PRODUCT_ID 0x6470 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bolsa Keyboard Supply -#define PRODUCT Damapad - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 6 diff --git a/keyboards/bolsa/damapad/info.json b/keyboards/bolsa/damapad/info.json index 28d0c4fc82..00e11799fe 100644 --- a/keyboards/bolsa/damapad/info.json +++ b/keyboards/bolsa/damapad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Damapad", + "manufacturer": "Bolsa Keyboard Supply", "url": "", "maintainer": "matthewdias", + "usb": { + "vid": "0x6D64", + "pid": "0x6470", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_wkl": { "layout": [{ diff --git a/keyboards/bop/config.h b/keyboards/bop/config.h index fa646a582f..c1a6078cb4 100644 --- a/keyboards/bop/config.h +++ b/keyboards/bop/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x666B // fk -#define PRODUCT_ID 0x626F // bo -#define DEVICE_VER 0x0001 // rev 1 -#define MANUFACTURER fruitykeeb -#define PRODUCT bop - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 20 diff --git a/keyboards/bop/info.json b/keyboards/bop/info.json index 398e9c32e9..874e797763 100644 --- a/keyboards/bop/info.json +++ b/keyboards/bop/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "bop", + "manufacturer": "fruitykeeb", "url": "https://github.com/blewis308/BOP-Keyboard", "maintainer": "Fruit", + "usb": { + "vid": "0x666B", + "pid": "0x626F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/boston/config.h b/keyboards/boston/config.h index 247616d3da..ebaa7ae640 100644 --- a/keyboards/boston/config.h +++ b/keyboards/boston/config.h @@ -16,12 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xAC12 -#define PRODUCT_ID 0x4176 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Pylon -#define PRODUCT Boston /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 19 diff --git a/keyboards/boston/info.json b/keyboards/boston/info.json index 82e4915176..f0d832afbf 100644 --- a/keyboards/boston/info.json +++ b/keyboards/boston/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "boston", + "keyboard_name": "Boston", + "manufacturer": "Pylon", "url": "https://github.com/bluepylons/Boston", "maintainer": "bluepylons", + "usb": { + "vid": "0xAC12", + "pid": "0x4176", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/botanicalkeyboards/fm2u/config.h b/keyboards/botanicalkeyboards/fm2u/config.h index 87f865b63a..23e4ad208b 100644 --- a/keyboards/botanicalkeyboards/fm2u/config.h +++ b/keyboards/botanicalkeyboards/fm2u/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6969 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER botanicalkeyboards -#define PRODUCT fm2u - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 diff --git a/keyboards/botanicalkeyboards/fm2u/info.json b/keyboards/botanicalkeyboards/fm2u/info.json index 5fceadb1fb..d6b521f24d 100644 --- a/keyboards/botanicalkeyboards/fm2u/info.json +++ b/keyboards/botanicalkeyboards/fm2u/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Botanical Keyboards FM2U", + "keyboard_name": "FM2U", + "manufacturer": "Botanical Keyboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6969", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_1u": { "layout": [ diff --git a/keyboards/box75/config.h b/keyboards/box75/config.h index b6bcc31b0a..53e717fa86 100644 --- a/keyboards/box75/config.h +++ b/keyboards/box75/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7668 // LD for LinDesign -#define PRODUCT_ID 0xB075 // For BOX75 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Lin Design -#define PRODUCT BOX75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/box75/info.json b/keyboards/box75/info.json index 9fe35289cf..af7e75360b 100644 --- a/keyboards/box75/info.json +++ b/keyboards/box75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BOX75", + "manufacturer": "Lin Design", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x7668", + "pid": "0xB075", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bpiphany/four_banger/config.h b/keyboards/bpiphany/four_banger/config.h index 7ad7a5c369..ec8a0956be 100644 --- a/keyboards/bpiphany/four_banger/config.h +++ b/keyboards/bpiphany/four_banger/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x2004 -#define DEVICE_VER 0x0001 -#define MANUFACTURER 1up Keyboards -#define PRODUCT Four Banger - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 2 diff --git a/keyboards/bpiphany/four_banger/info.json b/keyboards/bpiphany/four_banger/info.json index 48fc16cebe..5750b19a6b 100644 --- a/keyboards/bpiphany/four_banger/info.json +++ b/keyboards/bpiphany/four_banger/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Four Banger", + "manufacturer": "1up Keyboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x2004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x2": { "layout": [ diff --git a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/config.h b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/config.h index e45034f9a8..4bc6d2c3c0 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/config.h +++ b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/config.h @@ -2,7 +2,6 @@ // place overrides here #define TAPPING_TERM 200 -#define TAPPING_TERM_PER_KEY #define LEADER_TIMEOUT 800 #define DISABLE_SPACE_CADET_ROLLOVER diff --git a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/keymap.c b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/keymap.c index 6db177c183..dd2098d945 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/keymap.c +++ b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/keymap.c @@ -52,33 +52,17 @@ qk_tap_dance_action_t tap_dance_actions[] = { // Tap once for CTRL, twice for Caps Lock [TD_CTCPS] = ACTION_TAP_DANCE_DOUBLE(KC_LCTL, KC_CAPS), [COPA] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), - [EMOJIS] = ACTION_TAP_DANCE_FN_ADVANCED(cycleEmojis, NULL, NULL), - [ANIMAL] = ACTION_TAP_DANCE_FN_ADVANCED(cycleAnimals, NULL, NULL), - //[SYMBOLS] = ACTION_TAP_DANCE_FN_ADVANCED(cycleSymbols, NULL, NULL), - [FOODS] = ACTION_TAP_DANCE_FN_ADVANCED(cycleFoods, NULL, NULL), - [ETC] = ACTION_TAP_DANCE_FN_ADVANCED(cycleEtc, NULL, NULL), - //[VEHICLES] = ACTION_TAP_DANCE_FN_ADVANCED(cycleVehicles, NULL, NULL), - //[SUPPLEMENT] = ACTION_TAP_DANCE_FN_ADVANCED(cycleSupplement, NULL, NULL), - [ALLS] = ACTION_TAP_DANCE_FN_ADVANCED(cycleAll, NULL, NULL) + [EMOJIS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleEmojis, NULL, NULL, 800), + [ANIMAL] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleAnimals, NULL, NULL, 800), + //[SYMBOLS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleSymbols, NULL, NULL, 800), + [FOODS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleFoods, NULL, NULL, 800), + [ETC] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleEtc, NULL, NULL, 800), + //[VEHICLES] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleVehicles, NULL, NULL, 800), + //[SUPPLEMENT] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleSupplement, NULL, NULL, 800), + [ALLS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(cycleAll, NULL, NULL, 800) // Other declarations would go here, separated by commas, if you have them }; -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(EMOJIS): - case TD(ANIMAL): - //case TD(SYMBOLS): - case TD(FOODS): - case TD(ETC): - //case TD(VEHICLES): - //case TD(SUPPLEMENT): - case TD(ALLS): - return 800; - default: - return TAPPING_TERM; - } -} - // macros const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { diff --git a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/variableTapDance.md b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/variableTapDance.md index c3fce50f2a..b2e5041393 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/nikchi/variableTapDance.md +++ b/keyboards/bpiphany/frosty_flake/keymaps/nikchi/variableTapDance.md @@ -3,4 +3,7 @@ Tap Dance is constrained normally by `TAPPING_TERM` defined in your keyboard's c -- Implementing `uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record)`, you can set a specific tap dance to have a longer or shorter tap in between your taps, giving you more, or less, time in between each tap. The return value should be the same type and range of values that one would put into the `TAPPING_TERM` definition in the config.h file. +- `ACTION_TAP_DANCE_FN_ADVANCED_TIME(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, tap_specific_tapping_term)` : This works the same as `ACTION_TAP_DANCE_FN_ADVANCED` just with the extra `tap_specific_tapping_term` arguement at the end. This way you can set a specific tap dance to have a longer or shorter tap in between your taps, giving you more, or less, time in between each tap. + + +`tap_specific_tapping_term` should be the same type and range of values that one would put into the `TAPPING_TERM` definition in the config.h file. diff --git a/keyboards/bpiphany/ghost_squid/config.h b/keyboards/bpiphany/ghost_squid/config.h index bb8535b177..a57767cae9 100644 --- a/keyboards/bpiphany/ghost_squid/config.h +++ b/keyboards/bpiphany/ghost_squid/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6050 -#define DEVICE_VER 0x0104 -#define MANUFACTURER Bathroom Epiphanies -#define PRODUCT ghost_squid - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 18 diff --git a/keyboards/bpiphany/ghost_squid/info.json b/keyboards/bpiphany/ghost_squid/info.json index 698e3c21de..3617c7efaf 100644 --- a/keyboards/bpiphany/ghost_squid/info.json +++ b/keyboards/bpiphany/ghost_squid/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Bathroom Epiphanies Ghost Squid", + "keyboard_name": "Ghost Squid", + "manufacturer": "Bathroom Epiphanies", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6050", + "device_version": "1.0.4" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bpiphany/hid_liber/config.h b/keyboards/bpiphany/hid_liber/config.h index 95e617f562..af3936dcdb 100755 --- a/keyboards/bpiphany/hid_liber/config.h +++ b/keyboards/bpiphany/hid_liber/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xB919 -#define DEVICE_VER 0x0001 -#define MANUFACTURER "bpiphany" -#define PRODUCT "HIDLiberation" - /* key matrix size */ #define MATRIX_ROWS 18 #define MATRIX_COLS 8 diff --git a/keyboards/bpiphany/hid_liber/info.json b/keyboards/bpiphany/hid_liber/info.json index 9399b276c5..0caa64e525 100644 --- a/keyboards/bpiphany/hid_liber/info.json +++ b/keyboards/bpiphany/hid_liber/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "bpiphany HIDLiberation", + "keyboard_name": "HIDLiberation", + "manufacturer": "bpiphany", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xB919", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/bpiphany/kitten_paw/config.h b/keyboards/bpiphany/kitten_paw/config.h index b357289e69..819b68e40f 100644 --- a/keyboards/bpiphany/kitten_paw/config.h +++ b/keyboards/bpiphany/kitten_paw/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6050 -#define DEVICE_VER 0x0104 -#define MANUFACTURER Costar -#define PRODUCT Majestouch - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 18 diff --git a/keyboards/bpiphany/kitten_paw/info.json b/keyboards/bpiphany/kitten_paw/info.json index f9c517ca48..a5d7fc54e7 100644 --- a/keyboards/bpiphany/kitten_paw/info.json +++ b/keyboards/bpiphany/kitten_paw/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kitten Paw", + "manufacturer": "bpiphany", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6050", + "device_version": "1.0.4" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"KC_NUBS", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}] diff --git a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c index 4553d4e0e3..cc4d0bca63 100644 --- a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c +++ b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_scan_user(void) { uint8_t layer; - layer = get_highest_layer(layer_state); + layer = biton32(layer_state); if (current_layer_global != layer) { current_layer_global = layer; @@ -132,7 +132,7 @@ void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint bool process_record_user(uint16_t keycode, keyrecord_t *record) { uint8_t layer; - layer = get_highest_layer(layer_state); + layer = biton32(layer_state); if (layer == PROG2) { if (keycode >= KC_A && keycode <= KC_EXSEL && \ !( // do not send LSFT + these keycodes, they are needed for emulating the US layout diff --git a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c index dc55cdf9fd..7884462021 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c +++ b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case KM_BLOWRAK: ph_caps_led_on(); diff --git a/keyboards/bpiphany/sixshooter/config.h b/keyboards/bpiphany/sixshooter/config.h index 74acfac9b0..a943bcc249 100644 --- a/keyboards/bpiphany/sixshooter/config.h +++ b/keyboards/bpiphany/sixshooter/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6666 -#define DEVICE_VER 0x0001 -#define MANUFACTURER bpiphany -#define PRODUCT sixshooter - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/bpiphany/sixshooter/info.json b/keyboards/bpiphany/sixshooter/info.json index f45419746a..016568067e 100644 --- a/keyboards/bpiphany/sixshooter/info.json +++ b/keyboards/bpiphany/sixshooter/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "SixShooter", + "manufacturer": "bpiphany", "maintainer": "qmk", "url": "https://geekhack.org/index.php?topic=70033.0", + "usb": { + "vid": "0xFEED", + "pid": "0x6666", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"K00", "x":0, "y":0}, {"label":"K01", "x":1, "y":0}, {"label":"K02", "x":2, "y":0}, {"label":"K03", "x":0, "y":1}, {"label":"K04", "x":1, "y":1}, {"label":"K05", "x":2, "y":1}] diff --git a/keyboards/bpiphany/tiger_lily/config.h b/keyboards/bpiphany/tiger_lily/config.h index 1831e3e4d4..2d185e0c28 100644 --- a/keyboards/bpiphany/tiger_lily/config.h +++ b/keyboards/bpiphany/tiger_lily/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4245 //BE -#define PRODUCT_ID 0x544C //TL -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bathroom Epiphanies -#define PRODUCT tiger_lily - /* * Frosty Flake Rev. 20140521 made by Bathroom Ephiphanies * Ported from the Bathroom Epiphanies TMK Firmware: diff --git a/keyboards/bpiphany/tiger_lily/info.json b/keyboards/bpiphany/tiger_lily/info.json index aacd06dcb4..2c03cb0b7f 100644 --- a/keyboards/bpiphany/tiger_lily/info.json +++ b/keyboards/bpiphany/tiger_lily/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "tiger_lily", + "manufacturer": "Bathroom Epiphanies", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4245", + "pid": "0x544C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}] diff --git a/keyboards/bpiphany/unloved_bastard/config.h b/keyboards/bpiphany/unloved_bastard/config.h index 1f1cf72a18..9b00e97104 100644 --- a/keyboards/bpiphany/unloved_bastard/config.h +++ b/keyboards/bpiphany/unloved_bastard/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1337 -#define DEVICE_VER 0x0001 -#define MANUFACTURER BathroomEpiphanies -#define PRODUCT Unloved Bastard - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 18 diff --git a/keyboards/bpiphany/unloved_bastard/info.json b/keyboards/bpiphany/unloved_bastard/info.json index 0fe42d3197..33fe46f209 100644 --- a/keyboards/bpiphany/unloved_bastard/info.json +++ b/keyboards/bpiphany/unloved_bastard/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "unloved_bastard", + "keyboard_name": "Unloved Bastard", + "manufacturer": "Bathroom Epiphanies", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x1337", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/bt66tech/bt66tech60/config.h b/keyboards/bt66tech/bt66tech60/config.h index 18a7a2d85e..62b9f34a66 100644 --- a/keyboards/bt66tech/bt66tech60/config.h +++ b/keyboards/bt66tech/bt66tech60/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4254 -#define PRODUCT_ID 0x7070 -#define DEVICE_VER 0x0001 -#define MANUFACTURER bt66tech -#define PRODUCT bt66tech 60% - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/bt66tech/bt66tech60/info.json b/keyboards/bt66tech/bt66tech60/info.json index c4011c3439..0f65b6f57e 100644 --- a/keyboards/bt66tech/bt66tech60/info.json +++ b/keyboards/bt66tech/bt66tech60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "bt66tech60", + "keyboard_name": "bt66tech 60%", + "manufacturer": "bt66tech", "url": "", "maintainer": "bt66tech", + "usb": { + "vid": "0x4254", + "pid": "0x7070", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/bthlabs/geekpad/config.h b/keyboards/bthlabs/geekpad/config.h index 5dad96a7b4..c8d3039202 100644 --- a/keyboards/bthlabs/geekpad/config.h +++ b/keyboards/bthlabs/geekpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4257 -#define DEVICE_VER 0x0001 -#define MANUFACTURER BTHLabs -#define PRODUCT GeekPad - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/bthlabs/geekpad/info.json b/keyboards/bthlabs/geekpad/info.json index 52ecd7a693..270ce3a567 100644 --- a/keyboards/bthlabs/geekpad/info.json +++ b/keyboards/bthlabs/geekpad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BTHLabs GeekPad", + "keyboard_name": "GeekPad", + "manufacturer": "BTHLabs", "url": "https://git.bthlabs.pl/tomekwojcik/geekpad", "maintainer": "Tomek Wójcik ", + "usb": { + "vid": "0xFEED", + "pid": "0x4257", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/buildakb/potato65/config.h b/keyboards/buildakb/potato65/config.h index 4a0a17ace0..1c9b6f1549 100644 --- a/keyboards/buildakb/potato65/config.h +++ b/keyboards/buildakb/potato65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Maelkk -#define PRODUCT Potato 65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/buildakb/potato65/info.json b/keyboards/buildakb/potato65/info.json index a7713ef1bd..54b560b9a5 100644 --- a/keyboards/buildakb/potato65/info.json +++ b/keyboards/buildakb/potato65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Potato 65", + "manufacturer": "Maelkk", "url": "https://github.com/Aeonstrife/potato65", "maintainer": "Maelkk", + "usb": { + "vid": "0x4A56", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_split_bs": { "layout": [ diff --git a/keyboards/buildakb/potato65hs/config.h b/keyboards/buildakb/potato65hs/config.h index cf565d8176..dc83f4456e 100644 --- a/keyboards/buildakb/potato65hs/config.h +++ b/keyboards/buildakb/potato65hs/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4A56 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Maelkk -#define PRODUCT Potato 65 Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/buildakb/potato65hs/info.json b/keyboards/buildakb/potato65hs/info.json index 52ea416fa2..0ef7e9e01a 100644 --- a/keyboards/buildakb/potato65hs/info.json +++ b/keyboards/buildakb/potato65hs/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Potato 65 Hotswap", + "manufacturer": "Maelkk", "url": "https://github.com/Aeonstrife/potato65hotswap", "maintainer": "Maelkk", + "usb": { + "vid": "0x4A56", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/buildakb/potato65s/config.h b/keyboards/buildakb/potato65s/config.h index c1374558c9..6ad3183c84 100644 --- a/keyboards/buildakb/potato65s/config.h +++ b/keyboards/buildakb/potato65s/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4A56 -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Maelkk -#define PRODUCT Potato 65 Solderable - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/buildakb/potato65s/info.json b/keyboards/buildakb/potato65s/info.json index 257ed6022d..1920861946 100644 --- a/keyboards/buildakb/potato65s/info.json +++ b/keyboards/buildakb/potato65s/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Potato 65 Solderable", + "manufacturer": "Maelkk", "url": "https://github.com/Aeonstrife/potato65solderable", "maintainer": "Maelkk", + "usb": { + "vid": "0x4A56", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cablecardesigns/cypher/rev6/config.h b/keyboards/cablecardesigns/cypher/rev6/config.h index 51d86d721e..235a50a1bf 100644 --- a/keyboards/cablecardesigns/cypher/rev6/config.h +++ b/keyboards/cablecardesigns/cypher/rev6/config.h @@ -4,13 +4,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x41FF -#define PRODUCT_ID 0xAA99 -#define DEVICE_VER 0x0002 -#define MANUFACTURER cablecardesigns -#define PRODUCT cypher - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/cablecardesigns/cypher/rev6/info.json b/keyboards/cablecardesigns/cypher/rev6/info.json index 385ee8810a..86fb72bb24 100644 --- a/keyboards/cablecardesigns/cypher/rev6/info.json +++ b/keyboards/cablecardesigns/cypher/rev6/info.json @@ -1,5 +1,11 @@ { "keyboard_name": "Cypher Rev6", + "manufacturer": "cablecardesigns", + "usb": { + "vid": "0x41FF", + "pid": "0xAA99", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/caffeinated/serpent65/config.h b/keyboards/caffeinated/serpent65/config.h index 358e7d0f4c..1d3e71d94a 100644 --- a/keyboards/caffeinated/serpent65/config.h +++ b/keyboards/caffeinated/serpent65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4353 // "CS" = Caffeinated Studios -#define PRODUCT_ID 0x6501 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Caffeinated Studios -#define PRODUCT Serpent65 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/caffeinated/serpent65/info.json b/keyboards/caffeinated/serpent65/info.json index 6e83b4b707..1808869438 100644 --- a/keyboards/caffeinated/serpent65/info.json +++ b/keyboards/caffeinated/serpent65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Serpent65", - "url": "https", + "manufacturer": "Caffeinated Studios", + "url": "", "maintainer": "jrfhoutx", + "usb": { + "vid": "0x4353", + "pid": "0x6501", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cannonkeys/adelie/config.h b/keyboards/cannonkeys/adelie/config.h index 16f308ad2c..e07fd65bbb 100644 --- a/keyboards/cannonkeys/adelie/config.h +++ b/keyboards/cannonkeys/adelie/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x0005 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Abec13 -#define PRODUCT Adelie - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 15 diff --git a/keyboards/cannonkeys/adelie/info.json b/keyboards/cannonkeys/adelie/info.json index 5367fdbff4..d6f0abc952 100644 --- a/keyboards/cannonkeys/adelie/info.json +++ b/keyboards/cannonkeys/adelie/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Adelie", + "manufacturer": "Abec13", "url": "", "maintainer": "Abec13", + "usb": { + "vid": "0xCA04", + "pid": "0x0005", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cannonkeys/aella/config.h b/keyboards/cannonkeys/aella/config.h index dd8a6376d5..6cd08c9804 100644 --- a/keyboards/cannonkeys/aella/config.h +++ b/keyboards/cannonkeys/aella/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Aella - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/cannonkeys/aella/info.json b/keyboards/cannonkeys/aella/info.json index 806905428d..edce8f88a6 100644 --- a/keyboards/cannonkeys/aella/info.json +++ b/keyboards/cannonkeys/aella/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Aella", + "manufacturer": "CannonKeys", "url": "https://www.alchemistkeyboards.com/aella", "maintainer": "Alchemist Keyboards", + "usb": { + "vid": "0xCA04", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":6.5, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2, "w":1.5}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.75}, {"x":1.75, "y":3}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3, "w":1.25}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"x":2.25, "y":4}, {"x":3.25, "y":4}, {"x":4.25, "y":4}, {"x":5.25, "y":4}, {"x":6.25, "y":4}, {"x":7.25, "y":4}, {"x":8.25, "y":4}, {"x":9.25, "y":4}, {"x":10.25, "y":4}, {"x":11.25, "y":4}, {"x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"x":15, "y":4}, {"x":0, "y":5, "w":1.5}, {"x":2.25, "y":5, "w":1.25}, {"x":3.5, "y":5, "w":6.25}, {"x":9.75, "y":5, "w":1.25}, {"x":11, "y":5, "w":1.25}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":15, "y":5}] diff --git a/keyboards/cannonkeys/an_c/config.h b/keyboards/cannonkeys/an_c/config.h index 09e2382595..43821c07f9 100644 --- a/keyboards/cannonkeys/an_c/config.h +++ b/keyboards/cannonkeys/an_c/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0xA00C -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT AN-C - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/cannonkeys/an_c/info.json b/keyboards/cannonkeys/an_c/info.json index 12d20010b3..c18cde141f 100644 --- a/keyboards/cannonkeys/an_c/info.json +++ b/keyboards/cannonkeys/an_c/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "AN-C", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0xA00C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/cannonkeys/atlas/config.h b/keyboards/cannonkeys/atlas/config.h index 40984c3f64..e072e183a1 100644 --- a/keyboards/cannonkeys/atlas/config.h +++ b/keyboards/cannonkeys/atlas/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0xA7A5 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Atlas - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/cannonkeys/atlas/info.json b/keyboards/cannonkeys/atlas/info.json index 123b0cd118..70d8af6230 100644 --- a/keyboards/cannonkeys/atlas/info.json +++ b/keyboards/cannonkeys/atlas/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Atlas", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0xA7A5", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/cannonkeys/atlas_alps/config.h b/keyboards/cannonkeys/atlas_alps/config.h index a92ba31632..17d8c62634 100644 --- a/keyboards/cannonkeys/atlas_alps/config.h +++ b/keyboards/cannonkeys/atlas_alps/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0xA7A5 -#define DEVICE_VER 0x0010 -#define MANUFACTURER CannonKeys -#define PRODUCT Atlas - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/cannonkeys/atlas_alps/info.json b/keyboards/cannonkeys/atlas_alps/info.json index 278b48b831..889644a6ab 100644 --- a/keyboards/cannonkeys/atlas_alps/info.json +++ b/keyboards/cannonkeys/atlas_alps/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Atlas_Alps", + "keyboard_name": "Atlas", + "manufacturer": "CannonKeys", "url": "https://geekhack.org/index.php?topic=106683.msg2975081#msg2975081", "maintainer": "Nasp", + "usb": { + "vid": "0xCA04", + "pid": "0xA7A5", + "device_version": "0.1.0" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"|", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"Caps Lock", "x":0, "y":4}, {"label":"Ctrl", "x":1, "y":4}, {"label":"Alt", "x":2, "y":4}, {"label":"Super", "x":3, "y":4}, {"label":"⇓", "x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"label":"⇑", "x":7, "y":4}, {"label":"←", "x":8, "y":4}, {"label":"↓", "x":9, "y":4}, {"label":"↑", "x":10, "y":4}, {"label":"→", "x":11, "y":4}] diff --git a/keyboards/cannonkeys/balance/config.h b/keyboards/cannonkeys/balance/config.h index a16e9ea072..618dd57621 100644 --- a/keyboards/cannonkeys/balance/config.h +++ b/keyboards/cannonkeys/balance/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0xBA77 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Balance - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 20 diff --git a/keyboards/cannonkeys/balance/info.json b/keyboards/cannonkeys/balance/info.json index 9aa79c51c6..3587ab7ea5 100644 --- a/keyboards/cannonkeys/balance/info.json +++ b/keyboards/cannonkeys/balance/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Balance", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0xBA77", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cannonkeys/brutalv2_65/config.h b/keyboards/cannonkeys/brutalv2_65/config.h index ab65acdf3d..543ac8d550 100644 --- a/keyboards/cannonkeys/brutalv2_65/config.h +++ b/keyboards/cannonkeys/brutalv2_65/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x0008 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT BrutalV2_65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/cannonkeys/brutalv2_65/info.json b/keyboards/cannonkeys/brutalv2_65/info.json index e268037a44..7edbbdf05c 100644 --- a/keyboards/cannonkeys/brutalv2_65/info.json +++ b/keyboards/cannonkeys/brutalv2_65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Brutal v2 65", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x0008", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Bksp", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Home", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"End", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Up", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, {"label":"Left", "x":13, "y":4}, {"label":"Down", "x":14, "y":4}, {"label":"Right", "x":15, "y":4}] diff --git a/keyboards/cannonkeys/chimera65/config.h b/keyboards/cannonkeys/chimera65/config.h index 1fe204a4ad..a8bc244b5c 100644 --- a/keyboards/cannonkeys/chimera65/config.h +++ b/keyboards/cannonkeys/chimera65/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0xC024 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Chimera65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/cannonkeys/chimera65/info.json b/keyboards/cannonkeys/chimera65/info.json index f1854e304f..3d68ba84d8 100644 --- a/keyboards/cannonkeys/chimera65/info.json +++ b/keyboards/cannonkeys/chimera65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Chimera65", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0xC024", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/cannonkeys/cloudline/config.h b/keyboards/cannonkeys/cloudline/config.h index ad0e1a9c4d..b1064d6349 100644 --- a/keyboards/cannonkeys/cloudline/config.h +++ b/keyboards/cannonkeys/cloudline/config.h @@ -3,13 +3,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x000A -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Cloudline - #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/cannonkeys/cloudline/info.json b/keyboards/cannonkeys/cloudline/info.json index 6b6e15cfdf..04624aa3b0 100644 --- a/keyboards/cannonkeys/cloudline/info.json +++ b/keyboards/cannonkeys/cloudline/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Cloudline", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x000A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"F13", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"x":12.75, "y":3.25}, {"label":"Enter", "x":13.75, "y":3.25, "w":1.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Fn", "x":14, "y":4.25}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Win", "x":1.5, "y":5.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Menu", "x":12.5, "y":5.25}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] diff --git a/keyboards/cannonkeys/devastatingtkl/config.h b/keyboards/cannonkeys/devastatingtkl/config.h index 7173a46378..e4e87edcaa 100644 --- a/keyboards/cannonkeys/devastatingtkl/config.h +++ b/keyboards/cannonkeys/devastatingtkl/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0xDE57 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT DevastatingTKL - #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/cannonkeys/devastatingtkl/info.json b/keyboards/cannonkeys/devastatingtkl/info.json index 9387190086..2c7c2eeb0b 100644 --- a/keyboards/cannonkeys/devastatingtkl/info.json +++ b/keyboards/cannonkeys/devastatingtkl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "DevastatingTKL", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0xDE57", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"x":12.75, "y":3.25}, {"x":13.75, "y":3.25, "w":1.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Fn", "x":11.25, "y":5.25, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] diff --git a/keyboards/cannonkeys/gentoo/config.h b/keyboards/cannonkeys/gentoo/config.h new file mode 100644 index 0000000000..543ac8d550 --- /dev/null +++ b/keyboards/cannonkeys/gentoo/config.h @@ -0,0 +1,55 @@ +/* +Copyright 2022 Andrew Kannan + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_COL_PINS { C13, C15, B13, B12, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, A2 } +#define MATRIX_ROW_PINS { C14, A1, B14, B15, A8 } +#define DIODE_DIRECTION COL2ROW + +#define LED_CAPS_LOCK_PIN B3 +#define LED_PIN_ON_STATE 0 +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * 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/cannonkeys/gentoo/gentoo.c b/keyboards/cannonkeys/gentoo/gentoo.c new file mode 100644 index 0000000000..a535e9b44c --- /dev/null +++ b/keyboards/cannonkeys/gentoo/gentoo.c @@ -0,0 +1,16 @@ +/* Copyright 2022 Andrew Kannan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "gentoo.h" diff --git a/keyboards/cannonkeys/gentoo/gentoo.h b/keyboards/cannonkeys/gentoo/gentoo.h new file mode 100644 index 0000000000..8c094fd5b5 --- /dev/null +++ b/keyboards/cannonkeys/gentoo/gentoo.h @@ -0,0 +1,35 @@ +/* Copyright 2022 Andrew Kannan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K406, K409, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, ____, ____, K406, ____, ____, K409, K410, K411, K412, K413, K414 } \ +} diff --git a/keyboards/cannonkeys/gentoo/info.json b/keyboards/cannonkeys/gentoo/info.json new file mode 100644 index 0000000000..357554d9fc --- /dev/null +++ b/keyboards/cannonkeys/gentoo/info.json @@ -0,0 +1,91 @@ +{ + "keyboard_name": "Gentoo", + "manufacturer": "CannonKeys", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x000F", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Bkspc", "x":13, "y":0}, + {"label":"Del", "x":14, "y":0}, + {"label":"Del", "x":15.5, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgDn", "x":15.5, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Up", "x":14.25, "y":3.25}, + {"label":"Fn", "x":15.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4}, + {"label":"Win", "x":11, "y":4}, + {"label":"Ctrl", "x":12, "y":4}, + {"label":"Left", "x":13.25, "y":4.25}, + {"label":"Down", "x":14.25, "y":4.25}, + {"label":"Right", "x":15.25, "y":4.25} + ] + } + } +} diff --git a/keyboards/cannonkeys/gentoo/keymaps/default/keymap.c b/keyboards/cannonkeys/gentoo/keymaps/default/keymap.c new file mode 100644 index 0000000000..6fcf516616 --- /dev/null +++ b/keyboards/cannonkeys/gentoo/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, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = 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_END, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN] = LAYOUT_all( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, KC_PGUP, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, + _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) + +}; diff --git a/keyboards/cannonkeys/gentoo/keymaps/via/keymap.c b/keyboards/cannonkeys/gentoo/keymaps/via/keymap.c new file mode 100644 index 0000000000..b8e5eb1347 --- /dev/null +++ b/keyboards/cannonkeys/gentoo/keymaps/via/keymap.c @@ -0,0 +1,65 @@ +/* +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, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = 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_END, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, KC_PGUP, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, + _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/cannonkeys/gentoo/keymaps/via/rules.mk b/keyboards/cannonkeys/gentoo/keymaps/via/rules.mk new file mode 100644 index 0000000000..16d33cd89f --- /dev/null +++ b/keyboards/cannonkeys/gentoo/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes + diff --git a/keyboards/cannonkeys/gentoo/readme.md b/keyboards/cannonkeys/gentoo/readme.md new file mode 100644 index 0000000000..1b852a614b --- /dev/null +++ b/keyboards/cannonkeys/gentoo/readme.md @@ -0,0 +1,20 @@ +# Gentoo + +Gentoo Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/gentoo: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**: 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 `RESET` if it is available diff --git a/keyboards/cannonkeys/gentoo/rules.mk b/keyboards/cannonkeys/gentoo/rules.mk new file mode 100644 index 0000000000..7b44b402d1 --- /dev/null +++ b/keyboards/cannonkeys/gentoo/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # 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 + +# 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/config.h b/keyboards/cannonkeys/gentoo_hs/config.h new file mode 100644 index 0000000000..9703c0b1b0 --- /dev/null +++ b/keyboards/cannonkeys/gentoo_hs/config.h @@ -0,0 +1,57 @@ +/* +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 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_COL_PINS { A8, C13, B9, B8, B7, B6, B5, B4, B3, A7, A5, A4, A3, A2, A1 } +#define MATRIX_ROW_PINS { A14, A15, A0, B1, B0 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define LED_CAPS_LOCK_PIN B14 +#define LED_PIN_ON_STATE 0 + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/cannonkeys/gentoo_hs/gentoo_hs.c b/keyboards/cannonkeys/gentoo_hs/gentoo_hs.c new file mode 100644 index 0000000000..8ecaa655f8 --- /dev/null +++ b/keyboards/cannonkeys/gentoo_hs/gentoo_hs.c @@ -0,0 +1,16 @@ +/* Copyright 2022 Andrew Kannan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "gentoo_hs.h" diff --git a/keyboards/cannonkeys/gentoo_hs/gentoo_hs.h b/keyboards/cannonkeys/gentoo_hs/gentoo_hs.h new file mode 100644 index 0000000000..681de34985 --- /dev/null +++ b/keyboards/cannonkeys/gentoo_hs/gentoo_hs.h @@ -0,0 +1,34 @@ +/* Copyright 2022 Andrew Kannan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_default( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K406, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, ____, K213, K214 }, \ + { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, K411, K412, K413, K414 } \ +} diff --git a/keyboards/cannonkeys/gentoo_hs/info.json b/keyboards/cannonkeys/gentoo_hs/info.json new file mode 100644 index 0000000000..e20f6e6e39 --- /dev/null +++ b/keyboards/cannonkeys/gentoo_hs/info.json @@ -0,0 +1,88 @@ +{ + "keyboard_name": "Gentoo HS", + "manufacturer": "CannonKeys", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x0010", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_default": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Del", "x":15.5, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgDn", "x":15.5, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Up", "x":14.25, "y":3.25}, + {"label":"Fn", "x":15.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":4, "w":1.5}, + {"label":"Left", "x":13.25, "y":4.25}, + {"label":"Down", "x":14.25, "y":4.25}, + {"label":"Right", "x":15.25, "y":4.25} + ] + } + } +} diff --git a/keyboards/cannonkeys/gentoo_hs/keymaps/default/keymap.c b/keyboards/cannonkeys/gentoo_hs/keymaps/default/keymap.c new file mode 100644 index 0000000000..0967054438 --- /dev/null +++ b/keyboards/cannonkeys/gentoo_hs/keymaps/default/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_default( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, 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_MOD, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + BL_INC, BL_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, + BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/gentoo_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/gentoo_hs/keymaps/via/keymap.c new file mode 100644 index 0000000000..b5b7564543 --- /dev/null +++ b/keyboards/cannonkeys/gentoo_hs/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +/* +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, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, RGB_TOG, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + BL_INC, BL_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, + BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS + ), + + [_FN2] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FN3] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/gentoo_hs/keymaps/via/rules.mk b/keyboards/cannonkeys/gentoo_hs/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/cannonkeys/gentoo_hs/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/gentoo_hs/readme.md b/keyboards/cannonkeys/gentoo_hs/readme.md new file mode 100644 index 0000000000..fa99daec2f --- /dev/null +++ b/keyboards/cannonkeys/gentoo_hs/readme.md @@ -0,0 +1,20 @@ +# Gentoo65 Hotswap + +Gentoo65 Hotswap Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/gentoo_hs: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**: 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 `RESET` if it is available diff --git a/keyboards/cannonkeys/gentoo_hs/rules.mk b/keyboards/cannonkeys/gentoo_hs/rules.mk new file mode 100644 index 0000000000..b34d15f4b5 --- /dev/null +++ b/keyboards/cannonkeys/gentoo_hs/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # 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 + +# 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 fc305188a6..6971cf02b8 100644 --- a/keyboards/cannonkeys/hoodrowg/config.h +++ b/keyboards/cannonkeys/hoodrowg/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x0006 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT HoodrowG - #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/cannonkeys/hoodrowg/info.json b/keyboards/cannonkeys/hoodrowg/info.json index 63c53ac5b3..10fed32dbf 100644 --- a/keyboards/cannonkeys/hoodrowg/info.json +++ b/keyboards/cannonkeys/hoodrowg/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "HoodrowG", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x0006", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cannonkeys/instant60/config.h b/keyboards/cannonkeys/instant60/config.h index 9b4aac8e15..7037c192d9 100644 --- a/keyboards/cannonkeys/instant60/config.h +++ b/keyboards/cannonkeys/instant60/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x1600 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Instant60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/cannonkeys/instant60/info.json b/keyboards/cannonkeys/instant60/info.json index e20acf495e..0b4d600e09 100644 --- a/keyboards/cannonkeys/instant60/info.json +++ b/keyboards/cannonkeys/instant60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Instant60", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x1600", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/cannonkeys/instant65/config.h b/keyboards/cannonkeys/instant65/config.h index 464ef09044..f19308a8b8 100644 --- a/keyboards/cannonkeys/instant65/config.h +++ b/keyboards/cannonkeys/instant65/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x1565 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Instant65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/cannonkeys/instant65/info.json b/keyboards/cannonkeys/instant65/info.json index 6a49618816..8274aacce1 100644 --- a/keyboards/cannonkeys/instant65/info.json +++ b/keyboards/cannonkeys/instant65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Instant65", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x1565", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/cannonkeys/iron165/config.h b/keyboards/cannonkeys/iron165/config.h index b0b3dd8d7b..3ba33e96e5 100644 --- a/keyboards/cannonkeys/iron165/config.h +++ b/keyboards/cannonkeys/iron165/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5A12 -#define PRODUCT_ID 0x5165 -#define DEVICE_VER 0x0001 -#define MANUFACTURER SmithAndRune -#define PRODUCT Iron165 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/cannonkeys/iron165/info.json b/keyboards/cannonkeys/iron165/info.json index 7d25a5d2aa..843302efd2 100644 --- a/keyboards/cannonkeys/iron165/info.json +++ b/keyboards/cannonkeys/iron165/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Iron165", + "manufacturer": "SmithAndRune", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0x5A12", + "pid": "0x5165", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/cannonkeys/obliterated75/config.h b/keyboards/cannonkeys/obliterated75/config.h index aef5a3e374..07acff7cc9 100644 --- a/keyboards/cannonkeys/obliterated75/config.h +++ b/keyboards/cannonkeys/obliterated75/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x0B75 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Obliterated75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/cannonkeys/obliterated75/info.json b/keyboards/cannonkeys/obliterated75/info.json index 51052fce19..beda41b9a0 100644 --- a/keyboards/cannonkeys/obliterated75/info.json +++ b/keyboards/cannonkeys/obliterated75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Obliterated75", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x0B75", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":15, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"x":15, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"x":15, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"x":12.75, "y":3.25}, {"label":"Enter", "x":13.75, "y":3.25, "w":1.25}, {"x":15, "y":3.25}, {"x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"x":15, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":11.25, "y":5.25, "w":1.25}, {"x":13, "y":5.25}, {"x":14, "y":5.25}, {"x":15, "y":5.25}] diff --git a/keyboards/cannonkeys/onyx/config.h b/keyboards/cannonkeys/onyx/config.h index 2149520a5a..a07fdc9f2b 100644 --- a/keyboards/cannonkeys/onyx/config.h +++ b/keyboards/cannonkeys/onyx/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Onyx #define MATRIX_ROWS 5 #define MATRIX_COLS 19 diff --git a/keyboards/cannonkeys/onyx/info.json b/keyboards/cannonkeys/onyx/info.json index 782056cda1..2b60c7f15f 100644 --- a/keyboards/cannonkeys/onyx/info.json +++ b/keyboards/cannonkeys/onyx/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Onyx", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cannonkeys/ortho48/config.h b/keyboards/cannonkeys/ortho48/config.h index cc904a27a0..b11654dee9 100644 --- a/keyboards/cannonkeys/ortho48/config.h +++ b/keyboards/cannonkeys/ortho48/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x4F48 // "O" 48 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK -#define PRODUCT Ortho48 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/cannonkeys/ortho48/info.json b/keyboards/cannonkeys/ortho48/info.json index 1192482bce..66b1d1f50e 100644 --- a/keyboards/cannonkeys/ortho48/info.json +++ b/keyboards/cannonkeys/ortho48/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ortho48", + "manufacturer": "CannonKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCA04", + "pid": "0x4F48", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "layout": [ diff --git a/keyboards/cannonkeys/ortho60/config.h b/keyboards/cannonkeys/ortho60/config.h index 4e7db76b6b..e503e716fb 100644 --- a/keyboards/cannonkeys/ortho60/config.h +++ b/keyboards/cannonkeys/ortho60/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x4F60 // "O" 60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK -#define PRODUCT Ortho60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/cannonkeys/ortho60/info.json b/keyboards/cannonkeys/ortho60/info.json index f799e2a4c0..1a4d036a69 100644 --- a/keyboards/cannonkeys/ortho60/info.json +++ b/keyboards/cannonkeys/ortho60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ortho60", + "manufacturer": "CannonKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCA04", + "pid": "0x4F60", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/cannonkeys/ortho75/config.h b/keyboards/cannonkeys/ortho75/config.h index 93fe02f536..1746da2b73 100644 --- a/keyboards/cannonkeys/ortho75/config.h +++ b/keyboards/cannonkeys/ortho75/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Ortho75 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/cannonkeys/ortho75/info.json b/keyboards/cannonkeys/ortho75/info.json index cb6ca4c242..3cf6f3e74e 100644 --- a/keyboards/cannonkeys/ortho75/info.json +++ b/keyboards/cannonkeys/ortho75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ortho75", + "manufacturer": "CannonKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6464", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x15": { "layout": [ diff --git a/keyboards/cannonkeys/ortho75/ortho75.c b/keyboards/cannonkeys/ortho75/ortho75.c index 58b7396a1b..7c722d7156 100644 --- a/keyboards/cannonkeys/ortho75/ortho75.c +++ b/keyboards/cannonkeys/ortho75/ortho75.c @@ -5,48 +5,47 @@ uint8_t layer = 0; -layer_state_t layer_state_set_kb(layer_state_t state) { - state = layer_state_set_user(state); - layer = get_highest_layer(state); - return state; +uint32_t layer_state_set_kb(uint32_t state) { + state = layer_state_set_user(state); + layer = biton32(state); + return state; } bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) return false; - uint16_t mapped_code = 0; - if (index == 0) { - if (clockwise) { - switch (layer) { - case 0: - default: - mapped_code = KC_VOLU; - break; - case 1: - mapped_code = KC_MEDIA_NEXT_TRACK; - break; - case 2: - mapped_code = KC_PGDN; - break; - } - } else { - switch (layer) { - case 0: - default: - mapped_code = KC_VOLD; - break; - case 1: - mapped_code = KC_MEDIA_PREV_TRACK; - break; - case 2: - mapped_code = KC_PGUP; - break; - } + uint16_t mapped_code = 0; + if (index == 0) { + if (clockwise) { + switch(layer){ + case 0: + default: + mapped_code = KC_VOLU; + break; + case 1: + mapped_code = KC_MEDIA_NEXT_TRACK; + break; + case 2: + mapped_code = KC_PGDN; + break; } - uint16_t held_keycode_timer = timer_read(); - register_code(mapped_code); - while (timer_elapsed(held_keycode_timer) < MEDIA_KEY_DELAY) { /* no-op */ + } else { + switch(layer){ + case 0: + default: + mapped_code = KC_VOLD; + break; + case 1: + mapped_code = KC_MEDIA_PREV_TRACK; + break; + case 2: + mapped_code = KC_PGUP; + break; } - unregister_code(mapped_code); } - return true; + uint16_t held_keycode_timer = timer_read(); + register_code(mapped_code); + while (timer_elapsed(held_keycode_timer) < MEDIA_KEY_DELAY){ /* no-op */ } + unregister_code(mapped_code); + } + return true; } diff --git a/keyboards/cannonkeys/practice60/config.h b/keyboards/cannonkeys/practice60/config.h index 6937f5752a..179d1cafb5 100644 --- a/keyboards/cannonkeys/practice60/config.h +++ b/keyboards/cannonkeys/practice60/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Practice 60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/cannonkeys/practice60/info.json b/keyboards/cannonkeys/practice60/info.json index 2261494331..e84e2bb635 100644 --- a/keyboards/cannonkeys/practice60/info.json +++ b/keyboards/cannonkeys/practice60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Practice 60", + "manufacturer": "CannonKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCA04", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/cannonkeys/practice65/config.h b/keyboards/cannonkeys/practice65/config.h index 343d4d5272..1692998eaa 100644 --- a/keyboards/cannonkeys/practice65/config.h +++ b/keyboards/cannonkeys/practice65/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x6565 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Practice 65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/cannonkeys/practice65/info.json b/keyboards/cannonkeys/practice65/info.json index fa2eff8e21..95fdd75190 100644 --- a/keyboards/cannonkeys/practice65/info.json +++ b/keyboards/cannonkeys/practice65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Practice65", + "keyboard_name": "Practice 65", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x6565", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/cannonkeys/rekt1800/config.h b/keyboards/cannonkeys/rekt1800/config.h index 78cd623953..7e69838272 100644 --- a/keyboards/cannonkeys/rekt1800/config.h +++ b/keyboards/cannonkeys/rekt1800/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x2377 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Rekt1800 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 19 diff --git a/keyboards/cannonkeys/rekt1800/info.json b/keyboards/cannonkeys/rekt1800/info.json index 2ff238b396..7e9202a81d 100644 --- a/keyboards/cannonkeys/rekt1800/info.json +++ b/keyboards/cannonkeys/rekt1800/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Rekt1800", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x2377", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"x":14, "y":0}, {"label":"PrtSc", "x":15.5, "y":0}, {"label":"Scroll Lock", "x":16.5, "y":0}, {"label":"Pause", "x":17.5, "y":0}, {"x":18.5, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"label":"Insert", "x":15.5, "y":1.25}, {"label":"Home", "x":16.5, "y":1.25}, {"label":"PgUp", "x":17.5, "y":1.25}, {"x":18.5, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.5, "y":2.25}, {"label":"End", "x":16.5, "y":2.25}, {"label":"PgDn", "x":17.5, "y":2.25}, {"x":18.5, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"x":12.75, "y":3.25}, {"label":"Enter", "x":13.75, "y":3.25, "w":1.25}, {"x":15.5, "y":3.25}, {"x":16.5, "y":3.25}, {"x":17.5, "y":3.25}, {"x":18.5, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.5}, {"x":15.5, "y":4.25}, {"x":16.5, "y":4.25}, {"x":17.5, "y":4.25}, {"x":18.5, "y":4.25, "h":2}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Alt", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.5}, {"label":"\u2193", "x":14.25, "y":5.5}, {"label":"\u2192", "x":15.25, "y":5.5}, {"x":16.5, "y":5.25}, {"x":17.5, "y":5.25}] diff --git a/keyboards/cannonkeys/sagittarius/config.h b/keyboards/cannonkeys/sagittarius/config.h index dd8563df6b..8ba5b58891 100644 --- a/keyboards/cannonkeys/sagittarius/config.h +++ b/keyboards/cannonkeys/sagittarius/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Sagittarius - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 16 diff --git a/keyboards/cannonkeys/sagittarius/info.json b/keyboards/cannonkeys/sagittarius/info.json index 2cb5530447..64db3c34e0 100644 --- a/keyboards/cannonkeys/sagittarius/info.json +++ b/keyboards/cannonkeys/sagittarius/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Sagittarius", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"x":0, "y":0}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":13.75, "y":0}, {"x":14.75, "y":0}, {"x":15.75, "y":0}, {"x":16.75, "y":0}, {"x":17.75, "y":0}, {"x":0, "y":1}, {"x":1.5, "y":1, "w":1.5}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1}, {"x":16.75, "y":1}, {"x":17.75, "y":1, "w":1.5}, {"x":0, "y":2}, {"x":1.5, "y":2, "w":1.75}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":17, "y":2}, {"x":18, "y":2, "w":1.25}, {"x":19.25, "y":2}, {"x":0, "y":3}, {"x":1.5, "y":3, "w":1.25}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":16, "y":3, "w":1.25}, {"x":17.25, "y":3}, {"x":18.25, "y":3}, {"x":1.5, "y":4, "w":1.25}, {"x":2.75, "y":4, "w":1.25}, {"x":5.5, "y":4}, {"x":6.5, "y":4, "w":2.25}, {"x":11, "y":4, "w":1.75}, {"x":12.75, "y":4}, {"x":16.25, "y":4}, {"x":17.25, "y":4}, {"x":18.25, "y":4}] diff --git a/keyboards/cannonkeys/satisfaction75/satisfaction75.c b/keyboards/cannonkeys/satisfaction75/satisfaction75.c index 9435377839..bd7eaf1885 100644 --- a/keyboards/cannonkeys/satisfaction75/satisfaction75.c +++ b/keyboards/cannonkeys/satisfaction75/satisfaction75.c @@ -240,7 +240,7 @@ void read_host_led_state(void) { layer_state_t layer_state_set_kb(layer_state_t state) { state = layer_state_set_user(state); - layer = get_highest_layer(state); + layer = biton32(state); oled_request_wakeup(); return state; } diff --git a/keyboards/cannonkeys/savage65/config.h b/keyboards/cannonkeys/savage65/config.h index 049574c532..77efcc2db5 100644 --- a/keyboards/cannonkeys/savage65/config.h +++ b/keyboards/cannonkeys/savage65/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x5A65 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Savage65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/cannonkeys/savage65/info.json b/keyboards/cannonkeys/savage65/info.json index a3c8574b13..1fb0e0c58e 100644 --- a/keyboards/cannonkeys/savage65/info.json +++ b/keyboards/cannonkeys/savage65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Savage65", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x5A65", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/cannonkeys/tmov2/config.h b/keyboards/cannonkeys/tmov2/config.h index 821c9b7b5d..f7f867e013 100644 --- a/keyboards/cannonkeys/tmov2/config.h +++ b/keyboards/cannonkeys/tmov2/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x70F2 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT TMOv2 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 16 diff --git a/keyboards/cannonkeys/tmov2/info.json b/keyboards/cannonkeys/tmov2/info.json index 6e157d4bd7..4552b612d0 100644 --- a/keyboards/cannonkeys/tmov2/info.json +++ b/keyboards/cannonkeys/tmov2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "TMOv2", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x70F2", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"x":0, "y":0}, {"label":"Tab", "x":1.25, "y":0, "w":1.5}, {"label":"Q", "x":2.75, "y":0}, {"label":"W", "x":3.75, "y":0}, {"label":"E", "x":4.75, "y":0}, {"label":"R", "x":5.75, "y":0}, {"label":"T", "x":6.75, "y":0}, {"label":"Y", "x":7.75, "y":0}, {"label":"U", "x":8.75, "y":0}, {"label":"I", "x":9.75, "y":0}, {"label":"O", "x":10.75, "y":0}, {"label":"P", "x":11.75, "y":0}, {"label":"{", "x":12.75, "y":0}, {"label":"}", "x":13.75, "y":0}, {"label":"Backspace", "x":14.75, "y":0}, {"x":0, "y":1}, {"label":"Caps Lock", "x":1.25, "y":1, "w":1.75}, {"label":"A", "x":3, "y":1}, {"label":"S", "x":4, "y":1}, {"label":"D", "x":5, "y":1}, {"label":"F", "x":6, "y":1}, {"label":"G", "x":7, "y":1}, {"label":"H", "x":8, "y":1}, {"label":"J", "x":9, "y":1}, {"label":"K", "x":10, "y":1}, {"label":"L", "x":11, "y":1}, {"label":":", "x":12, "y":1}, {"label":"\"", "x":13, "y":1}, {"label":"Enter", "x":14, "y":1, "w":1.75}, {"x":0, "y":2}, {"label":"Shift", "x":1.25, "y":2, "w":1.25}, {"label":"ISO \\", "x":2.5, "y":2}, {"label":"Z", "x":3.5, "y":2}, {"label":"X", "x":4.5, "y":2}, {"label":"C", "x":5.5, "y":2}, {"label":"V", "x":6.5, "y":2}, {"label":"B", "x":7.5, "y":2}, {"label":"N", "x":8.5, "y":2}, {"label":"M", "x":9.5, "y":2}, {"label":"<", "x":10.5, "y":2}, {"label":">", "x":11.5, "y":2}, {"label":"?", "x":12.5, "y":2}, {"label":"Shift", "x":13.5, "y":2, "w":1.25}, {"x":14.75, "y":2}, {"x":0, "y":3}, {"label":"Win", "x":3.25, "y":3}, {"label":"Alt", "x":4.25, "y":3, "w":1.5}, {"x":5.75, "y":3, "w":2.25}, {"x":8, "y":3, "w":2.75}, {"label":"Alt", "x":10.75, "y":3, "w":1.5}, {"label":"Menu", "x":12.25, "y":3}] diff --git a/keyboards/cannonkeys/tsukuyomi/config.h b/keyboards/cannonkeys/tsukuyomi/config.h index 51411c5241..e26324180f 100644 --- a/keyboards/cannonkeys/tsukuyomi/config.h +++ b/keyboards/cannonkeys/tsukuyomi/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Tsukuyomi - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/cannonkeys/tsukuyomi/info.json b/keyboards/cannonkeys/tsukuyomi/info.json index 297aca7397..1a4e74539a 100644 --- a/keyboards/cannonkeys/tsukuyomi/info.json +++ b/keyboards/cannonkeys/tsukuyomi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Tsukuyomi", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.25, "y":0}, {"label":"!", "x":2.25, "y":0}, {"label":"@", "x":3.25, "y":0}, {"label":"#", "x":4.25, "y":0}, {"label":"$", "x":5.25, "y":0}, {"label":"%", "x":6.25, "y":0}, {"label":"^", "x":7.25, "y":0}, {"label":"&", "x":8.25, "y":0}, {"label":"*", "x":9.25, "y":0}, {"label":"(", "x":10.25, "y":0}, {"label":")", "x":11.25, "y":0}, {"label":"_", "x":12.25, "y":0}, {"label":"+", "x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":0, "y":1}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"Y", "x":7.75, "y":1}, {"label":"U", "x":8.75, "y":1}, {"label":"I", "x":9.75, "y":1}, {"label":"O", "x":10.75, "y":1}, {"label":"P", "x":11.75, "y":1}, {"label":"{", "x":12.75, "y":1}, {"label":"}", "x":13.75, "y":1}, {"label":"|", "x":14.75, "y":1, "w":1.5}, {"x":16.25, "y":1}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":8, "y":2}, {"label":"J", "x":9, "y":2}, {"label":"K", "x":10, "y":2}, {"label":"L", "x":11, "y":2}, {"label":":", "x":12, "y":2}, {"label":"\"", "x":13, "y":2}, {"x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":1.25}, {"x":16.25, "y":2}, {"x":0, "y":3}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"N", "x":8.5, "y":3}, {"label":"M", "x":9.5, "y":3}, {"label":"<", "x":10.5, "y":3}, {"label":">", "x":11.5, "y":3}, {"label":"?", "x":12.5, "y":3}, {"label":"Shift", "x":13.5, "y":3, "w":1.75}, {"x":15.25, "y":3}, {"x":16.25, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Win", "x":2.5, "y":4, "w":1.25}, {"label":"Alt", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":6.25}, {"label":"Alt", "x":11.25, "y":4, "w":1.25}, {"label":"Ctrl", "x":12.5, "y":4, "w":1.25}, {"x":14.25, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}] diff --git a/keyboards/cannonkeys/vicious40/config.h b/keyboards/cannonkeys/vicious40/config.h index c4f8c26235..4b8786163d 100644 --- a/keyboards/cannonkeys/vicious40/config.h +++ b/keyboards/cannonkeys/vicious40/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0x0004 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CannonKeys -#define PRODUCT Vicious40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/cannonkeys/vicious40/info.json b/keyboards/cannonkeys/vicious40/info.json index 1652e9d3e6..db6081773b 100644 --- a/keyboards/cannonkeys/vicious40/info.json +++ b/keyboards/cannonkeys/vicious40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Vicious40", + "manufacturer": "CannonKeys", "url": "https://cannonkeys.com", "maintainer": "awkannan", + "usb": { + "vid": "0xCA04", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Backspace", "x":11, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"Up", "x":10.75, "y":2}, {"label":"?", "x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Super", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Space", "x":3, "y":3, "w":2.25}, {"label":"Space", "x":5.25, "y":3, "w":1.25}, {"label":"Space", "x":6.5, "y":3, "w":2.75}, {"label":"Left", "x":9.75, "y":3}, {"label":"Down", "x":10.75, "y":3}, {"label":"Right", "x":11.75, "y":3}] diff --git a/keyboards/cantor/info.json b/keyboards/cantor/info.json index cd11c4eb94..9669227bc3 100644 --- a/keyboards/cantor/info.json +++ b/keyboards/cantor/info.json @@ -12,6 +12,7 @@ "nkro": true }, "processor": "STM32F401", + "board": "BLACKPILL_STM32_F411", "url": "https://github.com/diepala/cantor", "usb": { "device_version": "1.0.0", diff --git a/keyboards/capsunlocked/cu24/config.h b/keyboards/capsunlocked/cu24/config.h index cd5e0ccd39..1d3bdb1212 100644 --- a/keyboards/capsunlocked/cu24/config.h +++ b/keyboards/capsunlocked/cu24/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar/CapsUnlocked -#define PRODUCT CU24 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/capsunlocked/cu24/info.json b/keyboards/capsunlocked/cu24/info.json index 532bc13bee..e9a77c119a 100644 --- a/keyboards/capsunlocked/cu24/info.json +++ b/keyboards/capsunlocked/cu24/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "cu24", + "keyboard_name": "CU24", + "manufacturer": "Yiancar/CapsUnlocked", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_grid": { "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"x":1, "y":4}, {"label":".", "x":2, "y":4}, {"x":3, "y":4}, {"x":0, "y":5}, {"x":1, "y":5}, {"x":2, "y":5}, {"x":3, "y":5}] diff --git a/keyboards/capsunlocked/cu65/config.h b/keyboards/capsunlocked/cu65/config.h index 79ff7435bd..1ac332aa64 100644 --- a/keyboards/capsunlocked/cu65/config.h +++ b/keyboards/capsunlocked/cu65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4355 -#define PRODUCT_ID 0x0065 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CapsUnlocked -#define PRODUCT CU65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/capsunlocked/cu65/info.json b/keyboards/capsunlocked/cu65/info.json index 0e5390ae5e..8217dde0ea 100644 --- a/keyboards/capsunlocked/cu65/info.json +++ b/keyboards/capsunlocked/cu65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CU65", + "manufacturer": "CapsUnlocked", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4355", + "pid": "0x0065", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/capsunlocked/cu7/config.h b/keyboards/capsunlocked/cu7/config.h index cc22be0f02..0bf17fe96c 100644 --- a/keyboards/capsunlocked/cu7/config.h +++ b/keyboards/capsunlocked/cu7/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4355 -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CapsUnlocked -#define PRODUCT CU7 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/capsunlocked/cu7/info.json b/keyboards/capsunlocked/cu7/info.json index 9d1d84354d..b9d9671b97 100644 --- a/keyboards/capsunlocked/cu7/info.json +++ b/keyboards/capsunlocked/cu7/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CU7", + "manufacturer": "CapsUnlocked", "url": "https://caps-unlocked.com/cu7/", "maintainer": "rys", + "usb": { + "vid": "0x4355", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/capsunlocked/cu75/config.h b/keyboards/capsunlocked/cu75/config.h index 8ad8feb24a..0168668134 100644 --- a/keyboards/capsunlocked/cu75/config.h +++ b/keyboards/capsunlocked/cu75/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6062 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LFKeyboards/CapsUnlocked -#define PRODUCT CU75 - #define DIODE_DIRECTION COL2ROW #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/capsunlocked/cu75/info.json b/keyboards/capsunlocked/cu75/info.json index 07812ddb58..3ab7427b6c 100644 --- a/keyboards/capsunlocked/cu75/info.json +++ b/keyboards/capsunlocked/cu75/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "cu75", + "keyboard_name": "CU75", + "manufacturer": "LFKeyboards/CapsUnlocked", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6062", + "device_version": "0.0.1" + }, "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":"Pause", "x":14, "y":0}, {"label":"Delete", "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":"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":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "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":"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}, {"x":3.75, "y":5, "w":2.75}, {"x":6.5, "y":5}, {"x":7.5, "y":5, "w":2.5}, {"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}] diff --git a/keyboards/capsunlocked/cu80/v1/config.h b/keyboards/capsunlocked/cu80/v1/config.h index d5123cdbad..f2acea9fef 100644 --- a/keyboards/capsunlocked/cu80/v1/config.h +++ b/keyboards/capsunlocked/cu80/v1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CapsUnlocked -#define PRODUCT CU80 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/capsunlocked/cu80/v1/info.json b/keyboards/capsunlocked/cu80/v1/info.json index 937dfd8b5a..df4a67d243 100644 --- a/keyboards/capsunlocked/cu80/v1/info.json +++ b/keyboards/capsunlocked/cu80/v1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CU80", + "manufacturer": "CapsUnlocked", "url": "https://caps-unlocked.com/group-buy-cu80/", "maintainer": "aHolland909", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"\u00ac", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"\"", "x":2, "y":1.5}, {"label":"\u00a3", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"@", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/carbo65/config.h b/keyboards/carbo65/config.h index 8475b3b1bb..2e547604d1 100644 --- a/keyboards/carbo65/config.h +++ b/keyboards/carbo65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4336 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT Carbo65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/carbo65/info.json b/keyboards/carbo65/info.json index 7adfc8c04b..354ed0e767 100644 --- a/keyboards/carbo65/info.json +++ b/keyboards/carbo65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Carbo65", + "manufacturer": "Yiancar-Designs", "url": "https://yiancar-designs.com", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x4336", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/catch22/config.h b/keyboards/catch22/config.h index 5a3154dc46..8deead431c 100644 --- a/keyboards/catch22/config.h +++ b/keyboards/catch22/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCA22 -#define DEVICE_VER 0x0001 -#define MANUFACTURER rockydbull -#define PRODUCT Catch22 Hotswap Macropad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 5 diff --git a/keyboards/catch22/info.json b/keyboards/catch22/info.json index 94e2128536..c77a0f5394 100644 --- a/keyboards/catch22/info.json +++ b/keyboards/catch22/info.json @@ -1,5 +1,11 @@ { - "keyboard_name": "catch22", + "keyboard_name": "Catch22 Hotswap Macropad", + "manufacturer": "rockydbull", + "usb": { + "vid": "0xFEED", + "pid": "0xCA22", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"A", "x":1, "y":0}, {"label":"B", "x":2, "y":0}, {"label":"C", "x":3, "y":0}, {"label":"D", "x":4, "y":0}, {"label":"E", "x":1, "y":1}, {"label":"F", "x":2, "y":1}, {"label":"G", "x":3, "y":1}, {"label":"H", "x":4, "y":1}, {"label":"I", "x":0, "y":2}, {"label":"J", "x":1, "y":2}, {"label":"K", "x":2, "y":2}, {"label":"L", "x":3, "y":2}, {"label":"M", "x":4, "y":2}, {"label":"1", "x":0, "y":3, "h":2}, {"label":"N", "x":1, "y":3}, {"label":"O", "x":2, "y":3}, {"label":"P", "x":3, "y":3}, {"label":"Q", "x":4, "y":3}, {"label":"R", "x":1, "y":4}, {"label":"S", "x":2, "y":4}, {"label":"T", "x":3, "y":4}, {"label":"U", "x":4, "y":4}] diff --git a/keyboards/centromere/config.h b/keyboards/centromere/config.h index 69af48c30f..1310866fbb 100644 --- a/keyboards/centromere/config.h +++ b/keyboards/centromere/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Southpaw Design -#define PRODUCT centromere - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 10 diff --git a/keyboards/centromere/info.json b/keyboards/centromere/info.json index 839a4ec84a..d5de3624fd 100644 --- a/keyboards/centromere/info.json +++ b/keyboards/centromere/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Centromere", + "manufacturer": "Southpaw Design", "url": "", "maintainer": "spe2", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x6_3": { "layout": [ diff --git a/keyboards/cest73/tkm/config.h b/keyboards/cest73/tkm/config.h index e925f39715..9b48d1a7d8 100644 --- a/keyboards/cest73/tkm/config.h +++ b/keyboards/cest73/tkm/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBADD -#define PRODUCT_ID 0xAA55 -#define DEVICE_VER 0x0001 -#define MANUFACTURER cest73 -#define PRODUCT TKM-2021 R1.03 - /* key matrix size */ #define MATRIX_ROWS 11 #define MATRIX_COLS 10 diff --git a/keyboards/cest73/tkm/info.json b/keyboards/cest73/tkm/info.json index c37cfcadb6..98d691bf13 100644 --- a/keyboards/cest73/tkm/info.json +++ b/keyboards/cest73/tkm/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "TKM 2021", + "keyboard_name": "TKM 2021 R1.03", + "manufacturer": "cest73", "url": "https://geekhack.org/index.php?topic=110499", "maintainer": "cest73 (aka fire-h0und)", + "usb": { + "vid": "0xBADD", + "pid": "0xAA55", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/chalice/config.h b/keyboards/chalice/config.h index 75c34cacd0..1cb0404a03 100644 --- a/keyboards/chalice/config.h +++ b/keyboards/chalice/config.h @@ -19,12 +19,6 @@ #include "config_common.h" -#define VENDOR_ID 0x6A6A -#define PRODUCT_ID 0x000C -#define DEVICE_VER 0x0001 -#define MANUFACTURER CustomKBD -#define PRODUCT Chalice - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/chalice/info.json b/keyboards/chalice/info.json index 77a3f7bc12..f738f60325 100644 --- a/keyboards/chalice/info.json +++ b/keyboards/chalice/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Chalice", + "manufacturer": "CustomKBD", "url": "https://customkbd.com/products/chalice-pre-order", "maintainer": "joshajohnson, CustomKBD", + "usb": { + "vid": "0x6A6A", + "pid": "0x000C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/chaos65/config.h b/keyboards/chaos65/config.h index 8e5b7cc2fc..018d28bcb9 100644 --- a/keyboards/chaos65/config.h +++ b/keyboards/chaos65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xB23B -#define PRODUCT_ID 0x1688 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ThomasLT -#define PRODUCT Chaos65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/chaos65/info.json b/keyboards/chaos65/info.json index f9293d526c..0118705c5f 100644 --- a/keyboards/chaos65/info.json +++ b/keyboards/chaos65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Chaos65", + "manufacturer": "ThomasLT", "url": "https://www.thomasltstudio.com/product-page/chaos-65-keyboard", "maintainer": "kb-elmo", + "usb": { + "vid": "0xB23B", + "pid": "0x1688", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/charue/charon/config.h b/keyboards/charue/charon/config.h index 4ee679f707..89c9ebde7c 100644 --- a/keyboards/charue/charon/config.h +++ b/keyboards/charue/charon/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4344 // CD for CharueDesign -#define PRODUCT_ID 0x4348 // CH for Charon -#define DEVICE_VER 0x0001 // Revision prototype -#define MANUFACTURER Charue Design -#define PRODUCT Charon - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/charue/charon/info.json b/keyboards/charue/charon/info.json index 9702af08cf..cd8b7d1ba5 100644 --- a/keyboards/charue/charon/info.json +++ b/keyboards/charue/charon/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Charon", + "manufacturer": "Charue Design", "url": "https://charue-design.com/products/charon", "maintainer": "ILWrites", + "usb": { + "vid": "0x4344", + "pid": "0x4348", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/charue/sunsetter/config.h b/keyboards/charue/sunsetter/config.h index ac7746fa72..15ec852c4e 100644 --- a/keyboards/charue/sunsetter/config.h +++ b/keyboards/charue/sunsetter/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4344 // CD for CharueDesign -#define PRODUCT_ID 0x5353 // SS for Sunsetter -#define DEVICE_VER 0x0001 // Revision prototype -#define MANUFACTURER CharueDesign -#define PRODUCT Sunsetter - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/charue/sunsetter/info.json b/keyboards/charue/sunsetter/info.json index 2471c60fd2..a761fd792f 100644 --- a/keyboards/charue/sunsetter/info.json +++ b/keyboards/charue/sunsetter/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Sunsetter", + "manufacturer": "CharueDesign", "url": "https://charue-design.com/products/sunsetter", "maintainer": "coarse", + "usb": { + "vid": "0x4344", + "pid": "0x5353", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/charue/sunsetter_r2/config.h b/keyboards/charue/sunsetter_r2/config.h index f95013cd72..5a0f2e3f8e 100644 --- a/keyboards/charue/sunsetter_r2/config.h +++ b/keyboards/charue/sunsetter_r2/config.h @@ -5,16 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -// 0x4344 = CD for Charue Design -#define VENDOR_ID 0x4344 -// 0x5335 = S2 for Sunsetter R2 -#define PRODUCT_ID 0x5335 -// 0x0001 = 1 for Base version -#define DEVICE_VER 0x0001 -#define MANUFACTURER Charue Design -#define PRODUCT Sunsetter R2 - /* Key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/charue/sunsetter_r2/info.json b/keyboards/charue/sunsetter_r2/info.json index dc019f8c03..836d9ca6a1 100644 --- a/keyboards/charue/sunsetter_r2/info.json +++ b/keyboards/charue/sunsetter_r2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "sunsetter_r2", + "keyboard_name": "Sunsetter R2", + "manufacturer": "Charue Design", "url": "https://charue-design.com/collections/sunsetter", "maintainer": "ILWrites", + "usb": { + "vid": "0x4344", + "pid": "0x5335", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/charue/sunsetter_r2/sunsetter_r2.h b/keyboards/charue/sunsetter_r2/sunsetter_r2.h index 42536fd28f..628b41a943 100644 --- a/keyboards/charue/sunsetter_r2/sunsetter_r2.h +++ b/keyboards/charue/sunsetter_r2/sunsetter_r2.h @@ -10,11 +10,11 @@ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k2f, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k3f, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3g, k4g, \ - k40, k41, k42, k43, k44, k45, k48, k4a, k4c, k4d, k4e, k4f \ + k40, k41, k42, k43, k44, k45, k47, k4a, k4c, k4d, k4e, k4f \ ) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, KC_NO }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g }, \ - { k40, k41, k42, k43, k44, k45, KC_NO, KC_NO, k48, KC_NO, k4a, KC_NO, k4c, k4d, k4e, k4f, k4g } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, KC_NO }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g }, \ + { k40, k41, k42, k43, k44, k45, KC_NO, k47, KC_NO, KC_NO, k4a, KC_NO, k4c, k4d, k4e, k4f, k4g } \ } diff --git a/keyboards/checkerboards/axon40/config.h b/keyboards/checkerboards/axon40/config.h index f2deb4ad83..9f9209df70 100644 --- a/keyboards/checkerboards/axon40/config.h +++ b/keyboards/checkerboards/axon40/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x1119 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT Axon40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/checkerboards/axon40/info.json b/keyboards/checkerboards/axon40/info.json index 6f4dfb4c9f..780f0e2bed 100644 --- a/keyboards/checkerboards/axon40/info.json +++ b/keyboards/checkerboards/axon40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Axon40", + "manufacturer": "Nasp", "url": "", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x1119", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":1, "y":3}, {"x":2, "y":3, "w":1.5}, {"x":3.5, "y":3, "w":2.25}, {"x":5.75, "y":3, "w":2.75}, {"x":8.5, "y":3, "w":1.5}, {"x":10, "y":3}] diff --git a/keyboards/checkerboards/candybar_ortho/config.h b/keyboards/checkerboards/candybar_ortho/config.h index df83da61df..ee5d973365 100644 --- a/keyboards/checkerboards/candybar_ortho/config.h +++ b/keyboards/checkerboards/candybar_ortho/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x3215 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT CandyBar Ortho - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 9 diff --git a/keyboards/checkerboards/candybar_ortho/info.json b/keyboards/checkerboards/candybar_ortho/info.json index 0044f154da..96fd73bbe3 100644 --- a/keyboards/checkerboards/candybar_ortho/info.json +++ b/keyboards/checkerboards/candybar_ortho/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "CandyBar_Ortho", + "keyboard_name": "CandyBar Ortho", + "manufacturer": "Nasp", "url": "", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x3215", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_grid": { "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"label":"Y", "x":11, "y":0}, {"label":"U", "x":12, "y":0}, {"label":"I", "x":13, "y":0}, {"label":"O", "x":14, "y":0}, {"label":"P", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"x":10, "y":1}, {"label":"H", "x":11, "y":1}, {"label":"J", "x":12, "y":1}, {"label":"K", "x":13, "y":1}, {"label":"L", "x":14, "y":1}, {"label":";", "x":15, "y":1}, {"label":"'", "x":16, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"label":"N", "x":11, "y":2}, {"label":"M", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"/", "x":15, "y":2}, {"label":"Return", "x":16, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"8", "x":7, "y":3}, {"x":8, "y":3}, {"label":"10", "x":9, "y":3}, {"label":"11", "x":10, "y":3}, {"label":"12", "x":11, "y":3}, {"label":"⇑", "x":12, "y":3}, {"label":"←", "x":13, "y":3}, {"label":"15", "x":14, "y":3}, {"label":"↑", "x":15, "y":3}, {"label":"→", "x":16, "y":3}] diff --git a/keyboards/checkerboards/g_idb60/config.h b/keyboards/checkerboards/g_idb60/config.h index 996097d5a8..2aa9dc7747 100644 --- a/keyboards/checkerboards/g_idb60/config.h +++ b/keyboards/checkerboards/g_idb60/config.h @@ -19,13 +19,6 @@ Copyright 2021 Nathan Spears #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x3508 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT G_IDB60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/checkerboards/g_idb60/info.json b/keyboards/checkerboards/g_idb60/info.json index a410350ef8..81f7081aba 100644 --- a/keyboards/checkerboards/g_idb60/info.json +++ b/keyboards/checkerboards/g_idb60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "g_idb60", + "keyboard_name": "G_IDB60", + "manufacturer": "Nasp", "url": "", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x3508", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Bksp", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/checkerboards/nop60/config.h b/keyboards/checkerboards/nop60/config.h index 784594df7c..09524f940c 100644 --- a/keyboards/checkerboards/nop60/config.h +++ b/keyboards/checkerboards/nop60/config.h @@ -19,13 +19,6 @@ Copyright 2021 Nathan Spears #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x1416 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT NOP60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/checkerboards/nop60/info.json b/keyboards/checkerboards/nop60/info.json index 18b0bb25c2..4e88eece96 100644 --- a/keyboards/checkerboards/nop60/info.json +++ b/keyboards/checkerboards/nop60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "nop60", - "maintainer": "nasp", + "keyboard_name": "NOP60", + "manufacturer": "Nasp", "url": "", + "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x1416", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_2x3u": "LAYOUT_60_tsangan_hhkb_split_space", "LAYOUT_7u": "LAYOUT_60_tsangan_hhkb" diff --git a/keyboards/checkerboards/phoenix45_ortho/config.h b/keyboards/checkerboards/phoenix45_ortho/config.h index ebd954be33..9fc442cc8f 100644 --- a/keyboards/checkerboards/phoenix45_ortho/config.h +++ b/keyboards/checkerboards/phoenix45_ortho/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x1849 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT PHOENIX45_ORTHO - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/checkerboards/phoenix45_ortho/info.json b/keyboards/checkerboards/phoenix45_ortho/info.json index e64e67abbf..76a8a9b16d 100644 --- a/keyboards/checkerboards/phoenix45_ortho/info.json +++ b/keyboards/checkerboards/phoenix45_ortho/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Phoenix45_Ortho", + "keyboard_name": "Phoenix45 Ortho", + "manufacturer": "Nasp", "url": "www.checkerboards.xyz", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x1849", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x225u": { "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"x":11, "y":1}, {"label":"'", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"x":11, "y":2}, {"label":"Return", "x":12, "y":2}, {"label":"Hyper", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3}, {"label":"Meta", "x":2.25, "y":3, "w":1.5}, {"x":3.75, "y":3, "w":2.25}, {"label":"Fn", "x":6, "y":3}, {"x":7, "y":3, "w":2.25}, {"label":"Meta", "x":9.25, "y":3, "w":1.5}, {"label":"Super", "x":10.75, "y":3}, {"label":"Hyper", "x":11.75, "y":3, "w":1.25}] diff --git a/keyboards/checkerboards/plexus75/config.h b/keyboards/checkerboards/plexus75/config.h index f4d84d9d57..0acab1cf99 100644 --- a/keyboards/checkerboards/plexus75/config.h +++ b/keyboards/checkerboards/plexus75/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x5338 -#define DEVICE_VER 0x0001 -#define MANUFACTURER nasp -#define PRODUCT Plexus75 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/checkerboards/plexus75/info.json b/keyboards/checkerboards/plexus75/info.json index cb0cb6e295..b25f7f2535 100644 --- a/keyboards/checkerboards/plexus75/info.json +++ b/keyboards/checkerboards/plexus75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Plexus75", + "manufacturer": "Nasp", "url": "", "maintainer": "npspears", + "usb": { + "vid": "0x7070", + "pid": "0x5338", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_2x2u": { "layout": [{"label":"=", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"[", "x":6, "y":0}, {"label":"]", "x":7, "y":0}, {"label":"`", "x":8, "y":0}, {"label":"6", "x":9, "y":0}, {"label":"7", "x":10, "y":0}, {"label":"8", "x":11, "y":0}, {"label":"9", "x":12, "y":0}, {"label":"9", "x":13, "y":0}, {"label":"-", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"7", "x":6, "y":1}, {"label":"8", "x":7, "y":1}, {"label":"9", "x":8, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"Back Space", "x":14, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"4", "x":6, "y":2}, {"label":"5", "x":7, "y":2}, {"label":"6", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":";", "x":13, "y":2}, {"label":"'", "x":14, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"1", "x":6, "y":3}, {"label":"2", "x":7, "y":3}, {"label":"3", "x":8, "y":3}, {"label":"N", "x":9, "y":3}, {"label":"M", "x":10, "y":3}, {"label":",", "x":11, "y":3}, {"label":".", "x":12, "y":3}, {"label":"/", "x":13, "y":3}, {"label":"Return", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"OS", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4}, {"x":5, "y":4, "w":2}, {"x":7, "y":4}, {"x":8, "y":4, "w":2}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"OS", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/checkerboards/plexus75_he/config.h b/keyboards/checkerboards/plexus75_he/config.h index 62e177684c..202eee2e27 100644 --- a/keyboards/checkerboards/plexus75_he/config.h +++ b/keyboards/checkerboards/plexus75_he/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x5339 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT Plexus75_HE - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/checkerboards/plexus75_he/info.json b/keyboards/checkerboards/plexus75_he/info.json index d19e58d8ca..d4e64f0a7a 100644 --- a/keyboards/checkerboards/plexus75_he/info.json +++ b/keyboards/checkerboards/plexus75_he/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Plexus75_he", + "keyboard_name": "Plexus75 HE", + "manufacturer": "Nasp", "url": "https://www.github.com/qmk/qmk_firmware/tree/master/keyboards/checkerboards/plexus75_he", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x5339", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_2x3u": { "layout": [{"label":"=", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"[", "x":6, "y":0}, {"label":"]", "x":7, "y":0}, {"label":"`", "x":8, "y":0}, {"label":"6", "x":9, "y":0}, {"label":"7", "x":10, "y":0}, {"label":"8", "x":11, "y":0}, {"label":"9", "x":12, "y":0}, {"label":"9", "x":13, "y":0}, {"label":"-", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"7", "x":6, "y":1}, {"label":"8", "x":7, "y":1}, {"label":"9", "x":8, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"Back Space", "x":14, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"4", "x":6, "y":2}, {"label":"5", "x":7, "y":2}, {"label":"6", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":";", "x":13, "y":2}, {"label":"'", "x":14, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"1", "x":6, "y":3}, {"label":"2", "x":7, "y":3}, {"label":"3", "x":8, "y":3}, {"label":"N", "x":9, "y":3}, {"label":"M", "x":10, "y":3}, {"label":",", "x":11, "y":3}, {"label":".", "x":12, "y":3}, {"label":"/", "x":13, "y":3}, {"label":"Return", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"OS", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":3}, {"x":7, "y":4}, {"x":8, "y":4, "w":3}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"OS", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/checkerboards/pursuit40/config.h b/keyboards/checkerboards/pursuit40/config.h index 53b1ef90a5..a9714dc2d2 100644 --- a/keyboards/checkerboards/pursuit40/config.h +++ b/keyboards/checkerboards/pursuit40/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x1620 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT PURSUIT40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/checkerboards/pursuit40/info.json b/keyboards/checkerboards/pursuit40/info.json index 42b2377526..c37285cfb9 100644 --- a/keyboards/checkerboards/pursuit40/info.json +++ b/keyboards/checkerboards/pursuit40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pursuit40", + "manufacturer": "Nasp", "url": "https://panc.co/store/ols/products/panc40-keyboard", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x1620", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.5}, {"x":2.75, "y":3, "w":1.25}, {"x":4, "y":3, "w":2}, {"x":6, "y":3, "w":2}, {"x":8, "y":3, "w":1.25}, {"x":9.25, "y":3, "w":1.5}, {"x":10.75, "y":3, "w":1.25}] diff --git a/keyboards/checkerboards/quark/config.h b/keyboards/checkerboards/quark/config.h index d0ecf3bde8..f985c49b48 100644 --- a/keyboards/checkerboards/quark/config.h +++ b/keyboards/checkerboards/quark/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x5340 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT QUARK - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/checkerboards/quark/info.json b/keyboards/checkerboards/quark/info.json index 3a64c01280..6b08316a0f 100644 --- a/keyboards/checkerboards/quark/info.json +++ b/keyboards/checkerboards/quark/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "QUARK", + "manufacturer": "Nasp", "url": "", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x5340", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12_2x225u": { "layout": [ diff --git a/keyboards/checkerboards/quark_lp/config.h b/keyboards/checkerboards/quark_lp/config.h index be1cd62268..076132fd51 100644 --- a/keyboards/checkerboards/quark_lp/config.h +++ b/keyboards/checkerboards/quark_lp/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x5354 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT QUARK_LP - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/checkerboards/quark_lp/info.json b/keyboards/checkerboards/quark_lp/info.json index 4568a4cfad..74e7439bcf 100644 --- a/keyboards/checkerboards/quark_lp/info.json +++ b/keyboards/checkerboards/quark_lp/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Quark_LP", + "keyboard_name": "Quark LP", + "manufacturer": "Nasp", "url": "https://github.com/npspears", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x5354", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}] diff --git a/keyboards/checkerboards/quark_plus/config.h b/keyboards/checkerboards/quark_plus/config.h index a2d2dc230c..6883a8d565 100644 --- a/keyboards/checkerboards/quark_plus/config.h +++ b/keyboards/checkerboards/quark_plus/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x5344 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT QUARK_PlUS - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 6 diff --git a/keyboards/checkerboards/quark_plus/info.json b/keyboards/checkerboards/quark_plus/info.json index b5a111ce8e..b6647dfcef 100644 --- a/keyboards/checkerboards/quark_plus/info.json +++ b/keyboards/checkerboards/quark_plus/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Quark_Plus", + "keyboard_name": "Quark Plus", + "manufacturer": "Nasp", "url": "https://www.github.com/qmk/qmk_firmware/tree/master/keyboards/checkerboards/quark_plus", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x5344", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_grid": { "layout": diff --git a/keyboards/checkerboards/quark_plus/quark_plus.c b/keyboards/checkerboards/quark_plus/quark_plus.c index 036d3a96c5..0c0ae0cf4e 100644 --- a/keyboards/checkerboards/quark_plus/quark_plus.c +++ b/keyboards/checkerboards/quark_plus/quark_plus.c @@ -17,7 +17,7 @@ #include "quark_plus.h" bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_kb(index, clockwise)) { return false; } + if (!encoder_update_user(index, clockwise)) { return false; } if (index == 1) { /* left encoder*/ if (clockwise){ tap_code(KC_WH_U); diff --git a/keyboards/checkerboards/quark_squared/config.h b/keyboards/checkerboards/quark_squared/config.h index 32546097f1..56bcd720eb 100644 --- a/keyboards/checkerboards/quark_squared/config.h +++ b/keyboards/checkerboards/quark_squared/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x5342 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT QUARK² - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 @@ -53,3 +46,7 @@ #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) + +/* define rotary encoder pins */ +#define ENCODERS_PAD_A {B0} +#define ENCODERS_PAD_B {D1} diff --git a/keyboards/checkerboards/quark_squared/info.json b/keyboards/checkerboards/quark_squared/info.json index 4d2ce21298..a7188c27e6 100644 --- a/keyboards/checkerboards/quark_squared/info.json +++ b/keyboards/checkerboards/quark_squared/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Quark_Squared", + "keyboard_name": "Quark Squared", + "manufacturer": "Nasp", "url": "https://www.checkerboards.xyz/Quark2_p_35.html", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x5342", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_4_2x225u": { "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"label":"Super", "x":9.5, "y":3, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":3, "w":1.25}] diff --git a/keyboards/checkerboards/quark_squared/quark_squared.c b/keyboards/checkerboards/quark_squared/quark_squared.c index fbd7346cc0..1ead754eaf 100644 --- a/keyboards/checkerboards/quark_squared/quark_squared.c +++ b/keyboards/checkerboards/quark_squared/quark_squared.c @@ -15,3 +15,15 @@ */ #include "quark_squared.h" + +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_VOLD, 10); + } else { + tap_code_delay(KC_VOLU, 10); + } + } + return true; +} diff --git a/keyboards/checkerboards/quark_squared/rules.mk b/keyboards/checkerboards/quark_squared/rules.mk index d511396436..df6bcc2d31 100644 --- a/keyboards/checkerboards/quark_squared/rules.mk +++ b/keyboards/checkerboards/quark_squared/rules.mk @@ -17,7 +17,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes # Unicode - +ENCODER_ENABLE = yes # Enable Rotary Encoders # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no diff --git a/keyboards/checkerboards/snop60/config.h b/keyboards/checkerboards/snop60/config.h index d18e35744f..573f102fcb 100644 --- a/keyboards/checkerboards/snop60/config.h +++ b/keyboards/checkerboards/snop60/config.h @@ -19,13 +19,6 @@ Copyright 2022 Nathan Spears #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x2416 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT SNOP60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/checkerboards/snop60/info.json b/keyboards/checkerboards/snop60/info.json index 665aa82111..8d3d9e0358 100644 --- a/keyboards/checkerboards/snop60/info.json +++ b/keyboards/checkerboards/snop60/info.json @@ -1,11 +1,17 @@ { - "keyboard_name": "snop60", + "keyboard_name": "SNOP60", + "manufacturer": "Nasp", "url": "www.checkerboards.xyz", + "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x2416", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_7u": "LAYOUT_60_ansi_tsangan_split_bs_rshift", "LAYOUT_2x3u": "LAYOUT_60_ansi_tsangan_split_bs_rshift_space" }, - "maintainer": "nasp", "layouts": { "LAYOUT_60_ansi_tsangan_split_bs_rshift_space": { "layout": [ diff --git a/keyboards/checkerboards/ud40_ortho_alt/config.h b/keyboards/checkerboards/ud40_ortho_alt/config.h index 0595b41acf..7819d1b002 100644 --- a/keyboards/checkerboards/ud40_ortho_alt/config.h +++ b/keyboards/checkerboards/ud40_ortho_alt/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7070 -#define PRODUCT_ID 0x7030 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nasp -#define PRODUCT UD40_Ortho_Alt - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/checkerboards/ud40_ortho_alt/info.json b/keyboards/checkerboards/ud40_ortho_alt/info.json index 7236497d96..8ddf466681 100644 --- a/keyboards/checkerboards/ud40_ortho_alt/info.json +++ b/keyboards/checkerboards/ud40_ortho_alt/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "UD40_Ortho_Alt", + "manufacturer": "Nasp", "url": "", "maintainer": "nasp", + "usb": { + "vid": "0x7070", + "pid": "0x7030", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"x":8.25, "y":3, "w":1.25}, {"x":9.5, "y":3, "w":1.25}, {"x":10.75, "y":3, "w":1.25}] diff --git a/keyboards/cherrybstudio/cb1800/config.h b/keyboards/cherrybstudio/cb1800/config.h index a9932fe735..c6266e4459 100644 --- a/keyboards/cherrybstudio/cb1800/config.h +++ b/keyboards/cherrybstudio/cb1800/config.h @@ -15,13 +15,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4342 // CB -#define PRODUCT_ID 0x1818 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CherryB.Studio -#define PRODUCT CB1800 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 11 diff --git a/keyboards/cherrybstudio/cb1800/info.json b/keyboards/cherrybstudio/cb1800/info.json index ea54e1e6c5..1caf876a61 100644 --- a/keyboards/cherrybstudio/cb1800/info.json +++ b/keyboards/cherrybstudio/cb1800/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "cb1800", + "keyboard_name": "CB1800", + "manufacturer": "CherryB.Studio", "url": "https://discord.gg/qVwv3gcq83", "maintainer": "duongaanh", + "usb": { + "vid": "0x4342", + "pid": "0x1818", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cherrybstudio/cb87/config.h b/keyboards/cherrybstudio/cb87/config.h index 41c7f3f25b..1f497cee03 100644 --- a/keyboards/cherrybstudio/cb87/config.h +++ b/keyboards/cherrybstudio/cb87/config.h @@ -15,13 +15,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4342 // CB -#define PRODUCT_ID 0x8787 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CherryB Studio -#define PRODUCT CB87 - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 10 diff --git a/keyboards/cherrybstudio/cb87/info.json b/keyboards/cherrybstudio/cb87/info.json index dc6d017b33..1e7051c281 100644 --- a/keyboards/cherrybstudio/cb87/info.json +++ b/keyboards/cherrybstudio/cb87/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CB87", + "manufacturer": "CherryB Studio", "url": "https://discord.gg/qVwv3gcq83", "maintainer": "duongaanh", + "usb": { + "vid": "0x4342", + "pid": "0x8787", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cherrybstudio/cb87rgb/config.h b/keyboards/cherrybstudio/cb87rgb/config.h index ccf7aceee9..030f1e6047 100644 --- a/keyboards/cherrybstudio/cb87rgb/config.h +++ b/keyboards/cherrybstudio/cb87rgb/config.h @@ -15,13 +15,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4342 // CB -#define PRODUCT_ID 0x8785 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CherryB.Studio -#define PRODUCT CB87RGB - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/cherrybstudio/cb87rgb/info.json b/keyboards/cherrybstudio/cb87rgb/info.json index e183066bd5..36b43f5742 100644 --- a/keyboards/cherrybstudio/cb87rgb/info.json +++ b/keyboards/cherrybstudio/cb87rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "cb87v2", + "keyboard_name": "CB87RGB", + "manufacturer": "CherryB.Studio", "url": "https://discord.gg/qVwv3gcq83", "maintainer": "duongaanh", + "usb": { + "vid": "0x4342", + "pid": "0x8785", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cherrybstudio/cb87v2/config.h b/keyboards/cherrybstudio/cb87v2/config.h index 782262ebfb..e3f7b9bb9e 100644 --- a/keyboards/cherrybstudio/cb87v2/config.h +++ b/keyboards/cherrybstudio/cb87v2/config.h @@ -15,13 +15,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4342 // CB -#define PRODUCT_ID 0x8788 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CherryB.Studio -#define PRODUCT CB87v2 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/cherrybstudio/cb87v2/info.json b/keyboards/cherrybstudio/cb87v2/info.json index 8b79d0623b..6cb3f5fbe3 100644 --- a/keyboards/cherrybstudio/cb87v2/info.json +++ b/keyboards/cherrybstudio/cb87v2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "cb87v2", + "keyboard_name": "CB87v2", + "manufacturer": "CherryB.Studio", "url": "https://discord.gg/qVwv3gcq83", "maintainer": "duongaanh", + "usb": { + "vid": "0x4342", + "pid": "0x8788", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cheshire/curiosity/config.h b/keyboards/cheshire/curiosity/config.h index 7b9e618463..50b69789ff 100644 --- a/keyboards/cheshire/curiosity/config.h +++ b/keyboards/cheshire/curiosity/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCAFE -#define PRODUCT_ID 0x0FAD -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nightingale Studios/Cheshire Designs -#define PRODUCT Curiosity - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/cheshire/curiosity/info.json b/keyboards/cheshire/curiosity/info.json index 95a9e06d3e..ef355016de 100644 --- a/keyboards/cheshire/curiosity/info.json +++ b/keyboards/cheshire/curiosity/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Curiosity", + "manufacturer": "Nightingale Studios/Cheshire Designs", "maintainer": "zvecr", + "usb": { + "vid": "0xCAFE", + "pid": "0x0FAD", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/chickenman/ciel/config.h b/keyboards/chickenman/ciel/config.h index 718df02eff..800b570590 100644 --- a/keyboards/chickenman/ciel/config.h +++ b/keyboards/chickenman/ciel/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC41C -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ChickenMan -#define PRODUCT Ciel - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/chickenman/ciel/info.json b/keyboards/chickenman/ciel/info.json index 67d39c2cf4..8dd1352ea8 100644 --- a/keyboards/chickenman/ciel/info.json +++ b/keyboards/chickenman/ciel/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ciel", + "manufacturer": "ChickenMan", "url": "", "maintainer": "ramonimbao", + "usb": { + "vid": "0xC41C", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ diff --git a/keyboards/chlx/merro60/config.h b/keyboards/chlx/merro60/config.h index 526433ef8f..9cf509da86 100644 --- a/keyboards/chlx/merro60/config.h +++ b/keyboards/chlx/merro60/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4358 // "CX" - chlx -#define PRODUCT_ID 0x0601 -#define DEVICE_VER 0x0100 -#define MANUFACTURER chlx -#define PRODUCT chlx merro60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/chlx/merro60/info.json b/keyboards/chlx/merro60/info.json index e0a697df06..95a6e9b7c8 100644 --- a/keyboards/chlx/merro60/info.json +++ b/keyboards/chlx/merro60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "merro60", + "manufacturer": "chlx", "url": "www.github.com/gaclee3b", "maintainer": "gaclee3b", + "usb": { + "vid": "0x4358", + "pid": "0x0601", + "device_version": "1.0.0" + }, "layout_aliases": { "LAYOUT_default": "LAYOUT_all", "LAYOUT_hhkb": "LAYOUT_60_hhkb", diff --git a/keyboards/chlx/str_merro60/config.h b/keyboards/chlx/str_merro60/config.h index b73aaa0f73..c310396030 100644 --- a/keyboards/chlx/str_merro60/config.h +++ b/keyboards/chlx/str_merro60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4358 // "CX" - chlx -#define PRODUCT_ID 0x0602 -#define DEVICE_VER 0x0100 -#define MANUFACTURER chlx bsmt -#define PRODUCT chlx str.merro60 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/chlx/str_merro60/info.json b/keyboards/chlx/str_merro60/info.json index 0795c721c6..444d2d76e6 100644 --- a/keyboards/chlx/str_merro60/info.json +++ b/keyboards/chlx/str_merro60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "str.merro60", + "manufacturer": "chlx bsmt", "url": "www.github.com/gaclee3b", "maintainer": "gaclee3b", + "usb": { + "vid": "0x4358", + "pid": "0x0602", + "device_version": "1.0.0" + }, "layout_aliases": { "LAYOUT_default": "LAYOUT_all", "LAYOUT_hhkb": "LAYOUT_60_hhkb", @@ -151,6 +157,77 @@ {"x": 13.75, "y": 4, "w": 1.25} ] }, + "LAYOUT_60_ansi_split_bs_rshift": { + "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.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, "LAYOUT_60_hhkb": { "layout": [ {"x": 0, "y": 0}, @@ -219,6 +296,76 @@ {"x": 12.5, "y": 4} ] }, + "LAYOUT_60_iso": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 2.75}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, "LAYOUT_60_iso_split_bs_rshift": { "layout": [ {"x": 0, "y": 0}, diff --git a/keyboards/chocofly/chocofly.c b/keyboards/chocofly/chocofly.c new file mode 100644 index 0000000000..8ae38602ab --- /dev/null +++ b/keyboards/chocofly/chocofly.c @@ -0,0 +1,16 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "chocofly.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return false; +} +#endif diff --git a/keyboards/chocofly/chocofly.h b/keyboards/chocofly/chocofly.h new file mode 100644 index 0000000000..7d94774625 --- /dev/null +++ b/keyboards/chocofly/chocofly.h @@ -0,0 +1,10 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#ifdef KEYBOARD_chocofly_v1 + #include "v1.h" +#endif + +#include "quantum.h" diff --git a/keyboards/chocofly/config.h b/keyboards/chocofly/config.h new file mode 100644 index 0000000000..eb9c37d38a --- /dev/null +++ b/keyboards/chocofly/config.h @@ -0,0 +1,6 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" diff --git a/keyboards/chocofly/readme.md b/keyboards/chocofly/readme.md new file mode 100644 index 0000000000..0d9db2c04b --- /dev/null +++ b/keyboards/chocofly/readme.md @@ -0,0 +1,23 @@ +# Chocofly + +![Chocofly v1.0](https://github.com/vlkv/chocofly/blob/master/images/chocofly_v1-0.jpg) + +An open source ergonomic monoblock 60% keyboard. + +* Keyboard Maintainer: [Vitaly Volkov](https://github.com/vlkv) +* Hardware Supported: Chocofly PCB v1, Pro Micro 5V/16MHz and compatible. +* Hardware Availability: [github.com/vlkv/chocofly](https://github.com/vlkv/chocofly) + +Make example for this keyboard (after setting up your build environment): + + make chocofly/v1:default + +Flashing example for this keyboard: + + make chocofly/v1:default:flash + +## Bootloader + +Briefly press the button along the top edge of the PCB next to the microcontroller. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/chocofly/v1/config.h b/keyboards/chocofly/v1/config.h new file mode 100644 index 0000000000..e5bedf80c6 --- /dev/null +++ b/keyboards/chocofly/v1/config.h @@ -0,0 +1,22 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define VENDOR_ID 0xCEE2 +#define PRODUCT_ID 0x1001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER vitvlkv +#define PRODUCT Chocofly + +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 } + +#define DIODE_DIRECTION COL2ROW + +#define ENCODERS_PAD_A { D3 } +#define ENCODERS_PAD_B { D2 } +#define ENCODER_RESOLUTION 2 diff --git a/keyboards/chocofly/v1/info.json b/keyboards/chocofly/v1/info.json new file mode 100644 index 0000000000..c56f7ae170 --- /dev/null +++ b/keyboards/chocofly/v1/info.json @@ -0,0 +1,76 @@ +{ + "keyboard_name": "Chocofly V1", + "url": "https://github.com/vlkv/chocofly", + "maintainer": "vlkv", + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "F1", "matrix": [0, 0], "x": 0, "y": 0.375 }, + { "label": "F2", "matrix": [1, 0], "x": 1, "y": 0.375 }, + { "label": "F3", "matrix": [0, 1], "x": 2, "y": 0.125 }, + { "label": "F4", "matrix": [1, 1], "x": 3, "y": 0 }, + { "label": "F5", "matrix": [0, 2], "x": 4, "y": 0.125 }, + { "label": "F6", "matrix": [1, 2], "x": 5, "y": 0.25 }, + { "label": "F7", "matrix": [1, 5], "x": 11.5, "y": 0.25 }, + { "label": "F8", "matrix": [0, 5], "x": 12.5, "y": 0.125 }, + { "label": "F9", "matrix": [1, 6], "x": 13.5, "y": 0 }, + { "label": "F10", "matrix": [0, 6], "x": 14.5, "y": 0.125 }, + { "label": "F11", "matrix": [1, 7], "x": 15.5, "y": 0.375 }, + { "label": "F12", "matrix": [0, 7], "x": 16.5, "y": 0.375 }, + + { "label": "Tab", "matrix": [2, 0], "x": 0, "y": 1.375 }, + { "label": "Q", "matrix": [3, 0], "x": 1, "y": 1.375 }, + { "label": "W", "matrix": [2, 1], "x": 2, "y": 1.125 }, + { "label": "E", "matrix": [3, 1], "x": 3, "y": 1 }, + { "label": "R", "matrix": [2, 2], "x": 4, "y": 1.125 }, + { "label": "T", "matrix": [3, 2], "x": 5, "y": 1.25 }, + { "label": "Y", "matrix": [3, 5], "x": 11.5, "y": 1.25 }, + { "label": "U", "matrix": [2, 5], "x": 12.5, "y": 1.125 }, + { "label": "I", "matrix": [3, 6], "x": 13.5, "y": 1 }, + { "label": "O", "matrix": [2, 6], "x": 14.5, "y": 1.125 }, + { "label": "P", "matrix": [3, 7], "x": 15.5, "y": 1.375 }, + { "label": "[{", "matrix": [2, 7], "x": 16.5, "y": 1.375 }, + + { "label": "\\|", "matrix": [4, 0], "x": 0, "y": 2.375 }, + { "label": "A", "matrix": [5, 0], "x": 1, "y": 2.375 }, + { "label": "S", "matrix": [4, 1], "x": 2, "y": 2.125 }, + { "label": "D", "matrix": [5, 1], "x": 3, "y": 2 }, + { "label": "F", "matrix": [4, 2], "x": 4, "y": 2.125 }, + { "label": "G", "matrix": [5, 2], "x": 5, "y": 2.25 }, + { "label": "Mute", "matrix": [1, 3], "x": 6.5, "y": 2.375 }, + { "label": "H", "matrix": [5, 5], "x": 11.5, "y": 2.25 }, + { "label": "J", "matrix": [4, 5], "x": 12.5, "y": 2.125 }, + { "label": "K", "matrix": [5, 6], "x": 13.5, "y": 2 }, + { "label": "L", "matrix": [4, 6], "x": 14.5, "y": 2.125 }, + { "label": ";:", "matrix": [5, 7], "x": 15.5, "y": 2.375 }, + { "label": "'\"", "matrix": [4, 7], "x": 16.5, "y": 2.375 }, + + { "label": "Ctrl", "matrix": [6, 0], "x": 0, "y": 3.375 }, + { "label": "Z", "matrix": [7, 0], "x": 1, "y": 3.375 }, + { "label": "X", "matrix": [6, 1], "x": 2, "y": 3.125 }, + { "label": "C", "matrix": [7, 1], "x": 3, "y": 3 }, + { "label": "V", "matrix": [6, 2], "x": 4, "y": 3.125 }, + { "label": "B", "matrix": [7, 2], "x": 5, "y": 3.25 }, + { "label": "`~", "matrix": [3, 3], "x": 6.25, "y": 3.375 }, + { "label": "Insert", "matrix": [2, 3], "x": 7.25, "y": 3.625 }, + { "label": "Print Screen", "matrix": [2, 4], "x": 9.25, "y": 3.625 }, + { "label": "]}", "matrix": [3, 4], "x": 10.25, "y": 3.375 }, + { "label": "N", "matrix": [7, 5], "x": 11.5, "y": 3.25 }, + { "label": "M", "matrix": [6, 5], "x": 12.5, "y": 3.125 }, + { "label": ",<", "matrix": [7, 6], "x": 13.5, "y": 3 }, + { "label": ".>", "matrix": [6, 6], "x": 14.5, "y": 3.125 }, + { "label": "/?", "matrix": [7, 7], "x": 15.5, "y": 3.375 }, + { "label": "Ctrl", "matrix": [6, 7], "x": 16.5, "y": 3.375 }, + + { "label": "GUI", "matrix": [7, 3], "x": 3.5, "y": 4.125 }, + { "label": "Shift", "matrix": [6, 3], "x": 4.75, "y": 4.25 }, + { "label": "Space", "matrix": [5, 3], "x": 6, "y": 4.375 }, + { "label": "Alt", "matrix": [4, 3], "x": 7, "y": 4.625 }, + { "label": "Alt", "matrix": [4, 4], "x": 9.5, "y": 4.625 }, + { "label": "Fn", "matrix": [5, 4], "x": 10.5, "y": 4.375 }, + { "label": "Shift", "matrix": [6, 4], "x": 11.75, "y": 4.25 }, + { "label": "GUI", "matrix": [7, 4], "x": 13, "y": 4.125 } + ] + } + } +} diff --git a/keyboards/chocofly/v1/keymaps/default/keymap.c b/keyboards/chocofly/v1/keymaps/default/keymap.c new file mode 100644 index 0000000000..b128e5e17b --- /dev/null +++ b/keyboards/chocofly/v1/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, +}; + +#define RS_SPC LT(_RAISE, KC_SPC) +#define LW_LGUI LT(_LOWER, KC_LGUI) +#define RS_LGUI LT(_RAISE, KC_LGUI) +#define MT_LALT LALT_T(KC_ESC) +#define MT_RALT RALT_T(KC_ENT) +#define MT_LSFT LSFT_T(KC_EQL) +#define MT_RSFT RSFT_T(KC_MINS) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_BSLS, KC_A, KC_S, KC_D, KC_F, KC_G, KC__MUTE, 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_GRV, KC_INS, KC_PSCR, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, + LW_LGUI, MT_LSFT, RS_SPC, MT_LALT, MT_RALT, MO(_LOWER),MT_RSFT, RS_LGUI + ), + [_LOWER] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_UNDS, KC_PLUS, KC_EQL, + _______, KC_0, KC_1, KC_2, KC_3, KC_PCMM, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX, + _______, KC_0, KC_4, KC_5, KC_6, KC_DEL, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, + _______, KC_0, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, XXXXXXX, KC_PGUP, KC_APP, KC_PGDN, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_RAISE] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_UNDS, KC_PLUS, KC_EQL, + _______, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_EXLM, KC_AT, KC_HASH, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, KC_LPRN, KC_RPRN, KC_DEL, _______, KC_BSPC, KC_DLR, KC_PERC, KC_CIRC, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, XXXXXXX, _______, _______, _______, _______, XXXXXXX, KC_AMPR, KC_ASTR, KC_PCMM, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + diff --git a/keyboards/chocofly/v1/keymaps/winder/keymap.c b/keyboards/chocofly/v1/keymaps/winder/keymap.c new file mode 100644 index 0000000000..7d1889b225 --- /dev/null +++ b/keyboards/chocofly/v1/keymaps/winder/keymap.c @@ -0,0 +1,60 @@ +// Copyright 2022 Will Winder (@winder) +// SPDX-License-Identifier: GPL-2.0-or-later +// +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, +}; + +#define FN_1 MO(_LOWER) +#define FN_2 MO(_RAISE) +#define TRMINAL LGUI(KC_ENT) +#define RESIZE LGUI(KC_R) +#define BROWSER LSG(KC_ENT) // Left Shift + GUI, ENT. + +// required for my PC +#undef KC_VOLU +#undef KC_VOLD +#define KC_VOLU KC__VOLUP +#define KC_VOLD KC__VOLDOWN + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_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_DEL , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_UNDS, + KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_MUTE, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , TRMINAL, BROWSER, RESIZE , KC_UNDS, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + KC_LALT, KC_LGUI, FN_1 , KC_ENT , FN_2 , KC_SPC , KC_BSPC, KC_DEL + ), + [_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_DEL , + KC_TILD, 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] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_0, KC_1, KC_2, KC_3, KC_BSPC, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, KC_0, KC_4, KC_5, KC_6, KC_DEL, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, XXXXXXX, XXXXXXX, + _______, KC_0, KC_7, KC_8, KC_9, KC_DOT, _______, _______, _______, _______, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + return false; +} +#endif diff --git a/keyboards/chocofly/v1/rules.mk b/keyboards/chocofly/v1/rules.mk new file mode 100644 index 0000000000..777b9b9872 --- /dev/null +++ b/keyboards/chocofly/v1/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # 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 + +ENCODER_ENABLE = yes diff --git a/keyboards/chocofly/v1/v1.c b/keyboards/chocofly/v1/v1.c new file mode 100644 index 0000000000..6c142b7453 --- /dev/null +++ b/keyboards/chocofly/v1/v1.c @@ -0,0 +1,4 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "v1.h" diff --git a/keyboards/chocofly/v1/v1.h b/keyboards/chocofly/v1/v1.h new file mode 100644 index 0000000000..5f07f6c325 --- /dev/null +++ b/keyboards/chocofly/v1/v1.h @@ -0,0 +1,28 @@ +// Copyright 2022 Vitaly Volkov (@vlkv) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "chocofly.h" + +#include "quantum.h" + +#define K__ KC_NO + +#define LAYOUT( \ + K01, K07, K02, K08, K03, K09, K11, K04, K12, K05, K13, K06, \ + K14, K22, K15, K23, K16, K24, K27, K19, K28, K20, K29, K21, \ + K30, K38, K31, K39, K32, K40, K10, K43, K35, K44, K36, K45, K37, \ + K46, K54, K47, K55, K48, K56, K25, K17, K18, K26, K59, K51, K60, K52, K61, K53, \ + K57, K49, K41, K33, K34, K42, K50, K58 \ +) \ +{ \ + { K01, K02, K03, K__, K__, K04, K05, K06}, \ + { K07, K08, K09, K10, K__, K11, K12, K13}, \ + { K14, K15, K16, K17, K18, K19, K20, K21}, \ + { K22, K23, K24, K25, K26, K27, K28, K29}, \ + { K30, K31, K32, K33, K34, K35, K36, K37}, \ + { K38, K39, K40, K41, K42, K43, K44, K45}, \ + { K46, K47, K48, K49, K50, K51, K52, K53}, \ + { K54, K55, K56, K57, K58, K59, K60, K61} \ +} diff --git a/keyboards/chocv/chocv.c b/keyboards/chocv/chocv.c new file mode 100644 index 0000000000..c79f8a1b75 --- /dev/null +++ b/keyboards/chocv/chocv.c @@ -0,0 +1,17 @@ +/* Copyright 2021 BrickBots Labs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "chocv.h" diff --git a/keyboards/chocv/chocv.h b/keyboards/chocv/chocv.h new file mode 100644 index 0000000000..2691dfcb83 --- /dev/null +++ b/keyboards/chocv/chocv.h @@ -0,0 +1,43 @@ +/* Copyright 2021 BrickBots Labs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + + +#define LAYOUT_split_3x5_3( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29,\ + k30, k31, k32, k33, k34, k35 \ + ) \ + { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09}, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19}, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29}, \ + { KC_NO, KC_NO, k30, k31, k32, k33, k34, k35, KC_NO, KC_NO} \ + } + diff --git a/keyboards/chocv/config.h b/keyboards/chocv/config.h new file mode 100644 index 0000000000..4d1ea3794a --- /dev/null +++ b/keyboards/chocv/config.h @@ -0,0 +1,36 @@ +/* Copyright 2021 BrickBots Labs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + #pragma once + + #include "config_common.h" + + /* key matrix size */ + #define MATRIX_ROWS 4 + #define MATRIX_COLS 10 + + + #define MATRIX_ROW_PINS { F4, F5, D1, D0 } + #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, C6, D7, E6, B4, B5} + #define UNUSED_PINS + + /* COL2ROW, ROW2COL*/ + #define DIODE_DIRECTION COL2ROW + + + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ + #define DEBOUNCE 5 + diff --git a/keyboards/chocv/info.json b/keyboards/chocv/info.json new file mode 100644 index 0000000000..707e43b5fa --- /dev/null +++ b/keyboards/chocv/info.json @@ -0,0 +1,60 @@ +{ + "keyboard_name": "chocV", + "manufacturer": "BrickBots Labs", + "url": "https://github.com/brickbots/chocV", + "maintainer": "Brickbots", + "usb": { + "vid": "0xBBB0", + "pid": "0x0002", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"label":"Q", "x":0, "y":0.3}, + {"label":"W", "x":1, "y":0.1}, + {"label":"E", "x":2, "y":0}, + {"label":"R", "x":3, "y":0.1}, + {"label":"T", "x":4, "y":0.2}, + + {"label":"Y", "x":8, "y":0.2}, + {"label":"U", "x":9, "y":0.1}, + {"label":"I", "x":10, "y":0}, + {"label":"O", "x":11, "y":0.1}, + {"label":"P", "x":12, "y":0.3}, + + {"label":"A", "x":0, "y":1.3}, + {"label":"S", "x":1, "y":1.1}, + {"label":"D", "x":2, "y":1}, + {"label":"F", "x":3, "y":1.1}, + {"label":"G", "x":4, "y":1.2}, + + {"label":"H", "x":8, "y":1.2}, + {"label":"J", "x":9, "y":1.1}, + {"label":"K", "x":10, "y":1}, + {"label":"L", "x":11, "y":1.1}, + {"label":";", "x":12, "y":1.3}, + + {"label":"Z", "x":0, "y":2.3}, + {"label":"X", "x":1, "y":2.1}, + {"label":"C", "x":2, "y":2}, + {"label":"V", "x":3, "y":2.1}, + {"label":"B", "x":4, "y":2.2}, + + {"label":"N", "x":8, "y":2.2}, + {"label":"M", "x":9, "y":2.1}, + {"label":",", "x":10, "y":2}, + {"label":".", "x":11, "y":2.1}, + {"label":"/", "x":12, "y":2.3}, + + {"label":"KC_LSFT", "x":3, "y":3.7}, + {"label":"LC_LALT", "x":4, "y":3.7}, + {"label":"KC_ENT", "x":5, "y":3.2, "h":1.5}, + + {"label":"KC_SPC", "x":7, "y":3.2, "h":1.5}, + {"label":"KC_DEL", "x":8, "y":3.7}, + {"label":"KC_RCTL", "x":9, "y":3.7} + ] + } + } +} diff --git a/keyboards/chocv/keymaps/default/keymap.c b/keyboards/chocv/keymaps/default/keymap.c new file mode 100644 index 0000000000..f6d2f0d270 --- /dev/null +++ b/keyboards/chocv/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 BrickBots Labs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = 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_LSFT, KC_LALT, KC_ENT, KC_SPC, KC_DEL, KC_RCTL + ), +}; diff --git a/keyboards/chocv/keymaps/default/readme.md b/keyboards/chocv/keymaps/default/readme.md new file mode 100644 index 0000000000..0d9b3630ab --- /dev/null +++ b/keyboards/chocv/keymaps/default/readme.md @@ -0,0 +1,24 @@ +# chocV Keymap + +The default keymap provided here is useful for testing and as a base +for your own mapping, but does not include layers and is missing many +keycodes. To build the default keymap for testing: + +make chocv:default + +## Give Miryoku a try + +If you are looking for a full fetured keymap, you can build the +firmware with Miryoku without any additional work + +For details and building instructions and options please see the +[The official Miryoku QMK +Repo](https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku) + +The command to build with the default Miryoku layout is: + +make chocv:manna-habour_miryoku + + + + diff --git a/keyboards/chocv/readme.md b/keyboards/chocv/readme.md new file mode 100644 index 0000000000..67bb9aad02 --- /dev/null +++ b/keyboards/chocv/readme.md @@ -0,0 +1,26 @@ +# chocV + +A 36 key choc keyboard based on the [Horizon](https://github.com/skarrmann/horizon) +construction and a trimmed down [BabyV](https://www.instagram.com/eyeohdesigns/?hl=en) layout! + +![chocV Lineage](https://raw.githubusercontent.com/brickbots/chocV/main/images/lineage.jpeg "chocV Lineage") + +* Keyboard Maintainer: [Brickbots](https://github.com/brickbots) +* Hardware Supported: The chocV PCB is public domain and is compatible with any +pro-micro footprint MCU +* Hardware Availability: [The chocV github repo](https://github.com/brickbots/chocV) + +Make example for this keyboard (after setting up your build environment): + + make chocv:default + +Flashing example for this keyboard: + + make chocv:default:flash + +## Bootloader + +Enter the bootloader using the hardware reset button on the top middle of the +near the MCU. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/chocv/rules.mk b/keyboards/chocv/rules.mk new file mode 100644 index 0000000000..27b4a6282b --- /dev/null +++ b/keyboards/chocv/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = qmk-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = split_3x5_3 diff --git a/keyboards/cipulot/kallos/config.h b/keyboards/cipulot/kallos/config.h new file mode 100644 index 0000000000..9c7e298caf --- /dev/null +++ b/keyboards/cipulot/kallos/config.h @@ -0,0 +1,56 @@ +/* +Copyright 2022 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 "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS \ + { B3, B2, F0, C7, F4, F1 } +#define MATRIX_COL_PINS \ + { F5, F6, C6, B6, B5, B4, D7, D6, D4, D5, D3, F7, D2, D1, B7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Lightbar pin and LED count definitions*/ +#define RGB_DI_PIN D0 +#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 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/kallos/info.json b/keyboards/cipulot/kallos/info.json new file mode 100644 index 0000000000..a32ae0da4f --- /dev/null +++ b/keyboards/cipulot/kallos/info.json @@ -0,0 +1,428 @@ +{ + "keyboard_name": "Kallos", + "manufacturer": "Cipulot", + "url": "", + "maintainer": "Cipulot", + "usb": { + "vid": "0x6369", + "pid": "0x6B7A", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_default": { + "layout": [ + { + "label": "0,0", + "x": 0, + "y": 0 + }, + { + "label": "0,1", + "x": 1.25, + "y": 0 + }, + { + "label": "0,2", + "x": 2.25, + "y": 0 + }, + { + "label": "0,3", + "x": 3.25, + "y": 0 + }, + { + "label": "0,4", + "x": 4.25, + "y": 0 + }, + { + "label": "0,5", + "x": 5.5, + "y": 0 + }, + { + "label": "0,6", + "x": 6.5, + "y": 0 + }, + { + "label": "0,7", + "x": 7.5, + "y": 0 + }, + { + "label": "0,8", + "x": 8.5, + "y": 0 + }, + { + "label": "0,9", + "x": 9.75, + "y": 0 + }, + { + "label": "0,10", + "x": 10.75, + "y": 0 + }, + { + "label": "0,11", + "x": 11.75, + "y": 0 + }, + { + "label": "0,12", + "x": 12.75, + "y": 0 + }, + { + "label": "0,13", + "x": 14, + "y": 0 + }, + { + "label": "0,14", + "x": 15.25, + "y": 0 + }, + { + "label": "1,0", + "x": 0, + "y": 1.25 + }, + { + "label": "1,1", + "x": 1, + "y": 1.25 + }, + { + "label": "1,2", + "x": 2, + "y": 1.25 + }, + { + "label": "1,3", + "x": 3, + "y": 1.25 + }, + { + "label": "1,4", + "x": 4, + "y": 1.25 + }, + { + "label": "1,5", + "x": 5, + "y": 1.25 + }, + { + "label": "1,6", + "x": 6, + "y": 1.25 + }, + { + "label": "1,7", + "x": 7, + "y": 1.25 + }, + { + "label": "1,8", + "x": 8, + "y": 1.25 + }, + { + "label": "1,9", + "x": 9, + "y": 1.25 + }, + { + "label": "1,10", + "x": 10, + "y": 1.25 + }, + { + "label": "1,11", + "x": 11, + "y": 1.25 + }, + { + "label": "1,12", + "x": 12, + "y": 1.25 + }, + { + "label": "1,13", + "x": 13, + "y": 1.25 + }, + { + "label": "1,14", + "x": 14, + "y": 1.25 + }, + { + "label": "2,14", + "x": 15.25, + "y": 1.25 + }, + { + "label": "2,0", + "x": 0, + "y": 2.25, + "w": 1.5 + }, + { + "label": "2,1", + "x": 1.5, + "y": 2.25 + }, + { + "label": "2,2", + "x": 2.5, + "y": 2.25 + }, + { + "label": "2,3", + "x": 3.5, + "y": 2.25 + }, + { + "label": "2,4", + "x": 4.5, + "y": 2.25 + }, + { + "label": "2,5", + "x": 5.5, + "y": 2.25 + }, + { + "label": "2,6", + "x": 6.5, + "y": 2.25 + }, + { + "label": "2,7", + "x": 7.5, + "y": 2.25 + }, + { + "label": "2,8", + "x": 8.5, + "y": 2.25 + }, + { + "label": "2,9", + "x": 9.5, + "y": 2.25 + }, + { + "label": "2,10", + "x": 10.5, + "y": 2.25 + }, + { + "label": "2,11", + "x": 11.5, + "y": 2.25 + }, + { + "label": "2,12", + "x": 12.5, + "y": 2.25 + }, + { + "label": "2,13", + "x": 13.5, + "y": 2.25, + "w": 1.5 + }, + { + "label": "3,14", + "x": 15.25, + "y": 2.25 + }, + { + "label": "3,0", + "x": 0, + "y": 3.25, + "w": 1.75 + }, + { + "label": "3,1", + "x": 1.75, + "y": 3.25 + }, + { + "label": "3,2", + "x": 2.75, + "y": 3.25 + }, + { + "label": "3,3", + "x": 3.75, + "y": 3.25 + }, + { + "label": "3,4", + "x": 4.75, + "y": 3.25 + }, + { + "label": "3,5", + "x": 5.75, + "y": 3.25 + }, + { + "label": "3,6", + "x": 6.75, + "y": 3.25 + }, + { + "label": "3,7", + "x": 7.75, + "y": 3.25 + }, + { + "label": "3,8", + "x": 8.75, + "y": 3.25 + }, + { + "label": "3,9", + "x": 9.75, + "y": 3.25 + }, + { + "label": "3,10", + "x": 10.75, + "y": 3.25 + }, + { + "label": "3,11", + "x": 11.75, + "y": 3.25 + }, + { + "label": "3,13", + "x": 12.75, + "y": 3.25, + "w": 2.25 + }, + { + "label": "4,0", + "x": 0, + "y": 4.25, + "w": 2.25 + }, + { + "label": "4,1", + "x": 2.25, + "y": 4.25 + }, + { + "label": "4,2", + "x": 3.25, + "y": 4.25 + }, + { + "label": "4,3", + "x": 4.25, + "y": 4.25 + }, + { + "label": "4,4", + "x": 5.25, + "y": 4.25 + }, + { + "label": "4,5", + "x": 6.25, + "y": 4.25 + }, + { + "label": "4,6", + "x": 7.25, + "y": 4.25 + }, + { + "label": "4,7", + "x": 8.25, + "y": 4.25 + }, + { + "label": "4,8", + "x": 9.25, + "y": 4.25 + }, + { + "label": "4,9", + "x": 10.25, + "y": 4.25 + }, + { + "label": "4,10", + "x": 11.25, + "y": 4.25 + }, + { + "label": "4,12", + "x": 12.25, + "y": 4.25, + "w": 1.75 + }, + { + "label": "4,13", + "x": 14.25, + "y": 4.5 + }, + { + "label": "5,0", + "x": 0, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,1", + "x": 2.13, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,6", + "x": 3.38, + "y": 5.25, + "w": 6.25 + }, + { + "label": "5,9", + "x": 9.63, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,10", + "x": 11.75, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,12", + "x": 13.25, + "y": 5.5 + }, + { + "label": "5,13", + "x": 14.25, + "y": 5.5 + }, + { + "label": "5,14", + "x": 15.25, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/cipulot/kallos/kallos.c b/keyboards/cipulot/kallos/kallos.c new file mode 100644 index 0000000000..77f41f9075 --- /dev/null +++ b/keyboards/cipulot/kallos/kallos.c @@ -0,0 +1,17 @@ +/* Copyright 2022 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 "kallos.h" diff --git a/keyboards/cipulot/kallos/kallos.h b/keyboards/cipulot/kallos/kallos.h new file mode 100644 index 0000000000..bf71b6becf --- /dev/null +++ b/keyboards/cipulot/kallos/kallos.h @@ -0,0 +1,35 @@ +/* Copyright 2022 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 "quantum.h" + +#define LAYOUT_default( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, k214, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k314, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, \ + k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k412, k413, \ + k500, k501, k506, k509, k510, k512, k513, k514 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214 }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, KC_NO, k313, k314 }, \ + { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, KC_NO, k412, k413, KC_NO }, \ + { k500, k501, KC_NO, KC_NO, KC_NO, KC_NO, k506, KC_NO, KC_NO, k509, k510, KC_NO, k512, k513, k514 } \ +} diff --git a/keyboards/cipulot/kallos/keymaps/default/keymap.c b/keyboards/cipulot/kallos/keymaps/default/keymap.c new file mode 100644 index 0000000000..d7daac93e0 --- /dev/null +++ b/keyboards/cipulot/kallos/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 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] = { + [0] = LAYOUT_default( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), 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_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_PGDOWN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_default( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cipulot/kallos/keymaps/via/keymap.c b/keyboards/cipulot/kallos/keymaps/via/keymap.c new file mode 100644 index 0000000000..d7daac93e0 --- /dev/null +++ b/keyboards/cipulot/kallos/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 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] = { + [0] = LAYOUT_default( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MO(1), 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_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_PGDOWN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_default( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cipulot/kallos/keymaps/via/rules.mk b/keyboards/cipulot/kallos/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/cipulot/kallos/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/kallos/readme.md b/keyboards/cipulot/kallos/readme.md new file mode 100644 index 0000000000..16921fbb42 --- /dev/null +++ b/keyboards/cipulot/kallos/readme.md @@ -0,0 +1,21 @@ +# Kallos + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: Kallos +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/kallos:default + +Flashing example for this keyboard: + + make cipulot/kallos: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 + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset button**: Briefly short the pads labeled "Reset" on the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/cipulot/kallos/rules.mk b/keyboards/cipulot/kallos/rules.mk new file mode 100644 index 0000000000..1ad33bb514 --- /dev/null +++ b/keyboards/cipulot/kallos/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes diff --git a/keyboards/cipulot/kawayo/config.h b/keyboards/cipulot/kawayo/config.h new file mode 100644 index 0000000000..b99d3690c5 --- /dev/null +++ b/keyboards/cipulot/kawayo/config.h @@ -0,0 +1,37 @@ +/* Copyright 2022 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 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS \ + { B1, B12, C13, A7, B0 } +#define MATRIX_COL_PINS \ + { B10, A0, B9, B8, B7, B6, B5, B4, B3, A15, A14, A4, A3, A2, A1 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/kawayo/info.json b/keyboards/cipulot/kawayo/info.json new file mode 100644 index 0000000000..2293a1a987 --- /dev/null +++ b/keyboards/cipulot/kawayo/info.json @@ -0,0 +1,360 @@ +{ + "keyboard_name": "Kawayo", + "manufacturer": "Cipulot", + "url": "https://mecha.store", + "maintainer": "Cipulot", + "usb": { + "vid": "0x6369", + "pid": "0x6B7F", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_default": { + "layout": [ + { + "label": "~", + "x": 0, + "y": 0 + }, + { + "label": "!", + "x": 1, + "y": 0 + }, + { + "label": "@", + "x": 2, + "y": 0 + }, + { + "label": "#", + "x": 3, + "y": 0 + }, + { + "label": "$", + "x": 4, + "y": 0 + }, + { + "label": "%", + "x": 5, + "y": 0 + }, + { + "label": "^", + "x": 6, + "y": 0 + }, + { + "label": "&", + "x": 7, + "y": 0 + }, + { + "label": "*", + "x": 8, + "y": 0 + }, + { + "label": "(", + "x": 9, + "y": 0 + }, + { + "label": ")", + "x": 10, + "y": 0 + }, + { + "label": "_", + "x": 11, + "y": 0 + }, + { + "label": "+", + "x": 12, + "y": 0 + }, + { + "label": "Backspace", + "x": 13, + "y": 0, + "w": 2 + }, + { + "x": 15, + "y": 0 + }, + { + "label": "Tab", + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 1 + }, + { + "label": "W", + "x": 2.5, + "y": 1 + }, + { + "label": "E", + "x": 3.5, + "y": 1 + }, + { + "label": "R", + "x": 4.5, + "y": 1 + }, + { + "label": "T", + "x": 5.5, + "y": 1 + }, + { + "label": "Y", + "x": 6.5, + "y": 1 + }, + { + "label": "U", + "x": 7.5, + "y": 1 + }, + { + "label": "I", + "x": 8.5, + "y": 1 + }, + { + "label": "O", + "x": 9.5, + "y": 1 + }, + { + "label": "P", + "x": 10.5, + "y": 1 + }, + { + "label": "{", + "x": 11.5, + "y": 1 + }, + { + "label": "}", + "x": 12.5, + "y": 1 + }, + { + "label": "|", + "x": 13.5, + "y": 1, + "w": 1.5 + }, + { + "x": 15, + "y": 1 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 2, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 2 + }, + { + "label": "S", + "x": 2.75, + "y": 2 + }, + { + "label": "D", + "x": 3.75, + "y": 2 + }, + { + "label": "F", + "x": 4.75, + "y": 2 + }, + { + "label": "G", + "x": 5.75, + "y": 2 + }, + { + "label": "H", + "x": 6.75, + "y": 2 + }, + { + "label": "J", + "x": 7.75, + "y": 2 + }, + { + "label": "K", + "x": 8.75, + "y": 2 + }, + { + "label": "L", + "x": 9.75, + "y": 2 + }, + { + "label": ":", + "x": 10.75, + "y": 2 + }, + { + "label": "\"", + "x": 11.75, + "y": 2 + }, + { + "label": "Enter", + "x": 12.75, + "y": 2, + "w": 2.25 + }, + { + "x": 15, + "y": 2 + }, + { + "label": "Shift", + "x": 0, + "y": 3, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 3 + }, + { + "label": "X", + "x": 3.25, + "y": 3 + }, + { + "label": "C", + "x": 4.25, + "y": 3 + }, + { + "label": "V", + "x": 5.25, + "y": 3 + }, + { + "label": "B", + "x": 6.25, + "y": 3 + }, + { + "label": "N", + "x": 7.25, + "y": 3 + }, + { + "label": "M", + "x": 8.25, + "y": 3 + }, + { + "label": "<", + "x": 9.25, + "y": 3 + }, + { + "label": ">", + "x": 10.25, + "y": 3 + }, + { + "label": "?", + "x": 11.25, + "y": 3 + }, + { + "label": "Shift", + "x": 12.25, + "y": 3, + "w": 1.75 + }, + { + "label": "Up", + "x": 14, + "y": 3 + }, + { + "x": 15, + "y": 3 + }, + { + "label": "Ctrl", + "x": 0, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 4, + "w": 1.25 + }, + { + "x": 3.75, + "y": 4, + "w": 6.25 + }, + { + "label": "Alt", + "x": 10, + "y": 4, + "w": 1.25 + }, + { + "label": "Win", + "x": 11.25, + "y": 4, + "w": 1.25 + }, + { + "label": "Left", + "x": 13, + "y": 4 + }, + { + "label": "Down", + "x": 14, + "y": 4 + }, + { + "label": "Right", + "x": 15, + "y": 4 + } + ] + } + } +} diff --git a/keyboards/cipulot/kawayo/kawayo.c b/keyboards/cipulot/kawayo/kawayo.c new file mode 100644 index 0000000000..1dee38696e --- /dev/null +++ b/keyboards/cipulot/kawayo/kawayo.c @@ -0,0 +1,17 @@ +/* Copyright 2022 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 "kawayo.h" \ No newline at end of file diff --git a/keyboards/cipulot/kawayo/kawayo.h b/keyboards/cipulot/kawayo/kawayo.h new file mode 100644 index 0000000000..178f5be90d --- /dev/null +++ b/keyboards/cipulot/kawayo/kawayo.h @@ -0,0 +1,33 @@ +/* Copyright 2022 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 "quantum.h" + +#define LAYOUT_default( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \ + k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \ + k400, k401, k402, k405, k409, k410, k411, k412, k413 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, KC_NO }, \ + { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO }, \ + { k400, k401, k402, KC_NO, KC_NO, k405, KC_NO, KC_NO, KC_NO, k409, k410, k411, k412, k413, KC_NO } \ +} diff --git a/keyboards/cipulot/kawayo/keymaps/default/keymap.c b/keyboards/cipulot/kawayo/keymaps/default/keymap.c new file mode 100644 index 0000000000..36972c82cf --- /dev/null +++ b/keyboards/cipulot/kawayo/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2022 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] = { + [0] = LAYOUT_default( + KC_GRV, KC_1, KC_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, MO(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_ENTER, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_TRNS, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_default( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/cipulot/kawayo/keymaps/via/keymap.c b/keyboards/cipulot/kawayo/keymaps/via/keymap.c new file mode 100644 index 0000000000..36972c82cf --- /dev/null +++ b/keyboards/cipulot/kawayo/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2022 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] = { + [0] = LAYOUT_default( + KC_GRV, KC_1, KC_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, MO(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_ENTER, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_TRNS, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_default( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/cipulot/kawayo/keymaps/via/rules.mk b/keyboards/cipulot/kawayo/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/cipulot/kawayo/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/kawayo/readme.md b/keyboards/cipulot/kawayo/readme.md new file mode 100644 index 0000000000..99c26c6f8c --- /dev/null +++ b/keyboards/cipulot/kawayo/readme.md @@ -0,0 +1,29 @@ +# Kawayo + +![Kawayo Board](https://i.imgur.com/MecyLFl.jpeg) + +A board dedicated to Nakiri Ayame from Nakirigumi. 65% with top blocker. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) and the Mecha Team +* Hardware Supported: Kawayo +* Hardware Availability: [Mecha Store](https://mecha.store) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/kawayo:default + make cipulot/kawayo:via + +Flashing example for this keyboard: + + make cipulot/kawayo:default:flash + make cipulot/kawayo:via:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Power up the board while having the `Reset/Boot0` pad shorted. + +* **Keycode in layout**: Press the `GRV` key on layer 1 which is mapped to `RESET` diff --git a/keyboards/cipulot/kawayo/rules.mk b/keyboards/cipulot/kawayo/rules.mk new file mode 100644 index 0000000000..2deb4d731c --- /dev/null +++ b/keyboards/cipulot/kawayo/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = STM32F411 + +BOARD = GENERIC_STM32_F411XE + +# Bootloader selection +BOOTLOADER = stm32-dfu + +KEYBOARD_SHARED_EP = yes + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/ck60i/config.h b/keyboards/ck60i/config.h index 3e09f1dfb0..49a530b1d3 100644 --- a/keyboards/ck60i/config.h +++ b/keyboards/ck60i/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x434B // CK for candykeys -#define PRODUCT_ID 0x6049 // 60i -#define DEVICE_VER 0x0001 // Revision pre-Alpha -#define MANUFACTURER CandyKeys -#define PRODUCT CK60i - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/ck60i/info.json b/keyboards/ck60i/info.json index f0a81eb62b..dd5230e5eb 100644 --- a/keyboards/ck60i/info.json +++ b/keyboards/ck60i/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CK60i", + "manufacturer": "CandyKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x434B", + "pid": "0x6049", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ckeys/handwire_101/config.h b/keyboards/ckeys/handwire_101/config.h index 6b3f6c5b7f..0b9db50d2e 100755 --- a/keyboards/ckeys/handwire_101/config.h +++ b/keyboards/ckeys/handwire_101/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER cKeys -#define PRODUCT Handwire 101 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/ckeys/handwire_101/info.json b/keyboards/ckeys/handwire_101/info.json index 19e6edb481..344c34e5d8 100644 --- a/keyboards/ckeys/handwire_101/info.json +++ b/keyboards/ckeys/handwire_101/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "cKeys Handwire 101", + "keyboard_name": "Handwire 101", + "manufacturer": "cKeys", "url": "https://ckeys.org/slides/handwire/", "maintainer": "brandenbyers", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_ortho_4x4" }, diff --git a/keyboards/ckeys/handwire_101/keymaps/default/keymap.c b/keyboards/ckeys/handwire_101/keymaps/default/keymap.c index 3f5ebc8655..3bb1a2c009 100755 --- a/keyboards/ckeys/handwire_101/keymaps/default/keymap.c +++ b/keyboards/ckeys/handwire_101/keymaps/default/keymap.c @@ -134,10 +134,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------=======------------------------' */ [_TERMINAL] = LAYOUT_ortho_4x4( - _______, TERM_ABOUT, _______, _______, - _______, TERM_PRINT, _______, _______, - _______, TERM_FLUSH, _______, _______, - _______, TERM_HELP , _______, _______ + _______, TERM_ABOUT, _______, _______, + TERM_OFF, TERM_PRINT, _______, _______, + _______, TERM_FLUSH, _______, _______, + TERM_ON, TERM_HELP , _______, _______ ), /* ADMIN * ,-----------------------------------------. diff --git a/keyboards/ckeys/handwire_101/rules.mk b/keyboards/ckeys/handwire_101/rules.mk index 3131bb405a..8fa32bcee5 100755 --- a/keyboards/ckeys/handwire_101/rules.mk +++ b/keyboards/ckeys/handwire_101/rules.mk @@ -12,6 +12,7 @@ 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 +TERMINAL_ENABLE = yes NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output diff --git a/keyboards/ckeys/nakey/config.h b/keyboards/ckeys/nakey/config.h index b620ff08c7..cd1296034b 100644 --- a/keyboards/ckeys/nakey/config.h +++ b/keyboards/ckeys/nakey/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER cKeys -#define PRODUCT naKey - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/ckeys/nakey/info.json b/keyboards/ckeys/nakey/info.json index 2f939be578..1f1e67fedf 100644 --- a/keyboards/ckeys/nakey/info.json +++ b/keyboards/ckeys/nakey/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "naKey", + "manufacturer": "cKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}] diff --git a/keyboards/ckeys/obelus/config.h b/keyboards/ckeys/obelus/config.h index 1759f6c5fc..0ac18c7aa5 100644 --- a/keyboards/ckeys/obelus/config.h +++ b/keyboards/ckeys/obelus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER You -#define PRODUCT obelus - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/ckeys/obelus/info.json b/keyboards/ckeys/obelus/info.json index f930f65bc5..7c0629fd5e 100644 --- a/keyboards/ckeys/obelus/info.json +++ b/keyboards/ckeys/obelus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Obelus", + "manufacturer": "cKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}] diff --git a/keyboards/ckeys/thedora/config.h b/keyboards/ckeys/thedora/config.h index 8e96c8ed06..c14b575678 100755 --- a/keyboards/ckeys/thedora/config.h +++ b/keyboards/ckeys/thedora/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ckeys -#define PRODUCT thedora - #define ENCODERS_PAD_A { B13 } #define ENCODERS_PAD_B { B15 } #define ENCODER_RESOLUTION 4 diff --git a/keyboards/ckeys/thedora/info.json b/keyboards/ckeys/thedora/info.json index 631da8f26e..311ccec843 100644 --- a/keyboards/ckeys/thedora/info.json +++ b/keyboards/ckeys/thedora/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "The Dora Board.", + "keyboard_name": "thedora", + "manufacturer": "ckeys", "url": "https://ckeys.org/slides/exboard", "maintainer": "brandenbyers", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ckeys/washington/config.h b/keyboards/ckeys/washington/config.h index 2d5a8ce3ad..643f61c5d6 100644 --- a/keyboards/ckeys/washington/config.h +++ b/keyboards/ckeys/washington/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x002A -#define DEVICE_VER 0x0001 -#define MANUFACTURER merlin04 -#define PRODUCT Washington Macropad - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/ckeys/washington/info.json b/keyboards/ckeys/washington/info.json index 304e4f3354..20e83faf2b 100644 --- a/keyboards/ckeys/washington/info.json +++ b/keyboards/ckeys/washington/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "washington", + "keyboard_name": "Washington Macropad", + "manufacturer": "merlin04", "url": "https://keypcb.xyz/ViewPage/Washington", "maintainer": "merlin04", + "usb": { + "vid": "0xFEED", + "pid": "0x002A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":0, "y":0.75}, {"x":0.5, "y":1.75}, {"x":1.5, "y":2}] diff --git a/keyboards/ckeys/washington/keymaps/default/keymap.c b/keyboards/ckeys/washington/keymaps/default/keymap.c index 9ce0181fe4..95e0f3ab59 100644 --- a/keyboards/ckeys/washington/keymaps/default/keymap.c +++ b/keyboards/ckeys/washington/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; bool encoder_update_user(uint8_t index, bool clockwise) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _BASE: if (clockwise) { tap_code(KC_VOLU); @@ -62,7 +62,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { bool oled_task_user(void) { // Host Keyboard Layer Status oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _BASE: oled_write_P(PSTR("Default\n"), false); break; diff --git a/keyboards/clawsome/bookerboard/config.h b/keyboards/clawsome/bookerboard/config.h index 6619ef3972..208a12ef26 100644 --- a/keyboards/clawsome/bookerboard/config.h +++ b/keyboards/clawsome/bookerboard/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x41CE -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT Bookerboard - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 3 diff --git a/keyboards/clawsome/bookerboard/info.json b/keyboards/clawsome/bookerboard/info.json index 3e1eae3d21..e278685f96 100644 --- a/keyboards/clawsome/bookerboard/info.json +++ b/keyboards/clawsome/bookerboard/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "bookerboard", + "keyboard_name": "Bookerboard", + "manufacturer": "AlisGraveNil", "url": "", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0xFEED", + "pid": "0x41CE", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/coupe/config.h b/keyboards/clawsome/coupe/config.h index 8d88c95f05..8d7cfa75b0 100644 --- a/keyboards/clawsome/coupe/config.h +++ b/keyboards/clawsome/coupe/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x7E94 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT The Coupe - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/clawsome/coupe/info.json b/keyboards/clawsome/coupe/info.json index 5c66544252..6ab71fdb5d 100644 --- a/keyboards/clawsome/coupe/info.json +++ b/keyboards/clawsome/coupe/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Coupe", + "keyboard_name": "The Coupe", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x7E94", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/clawsome/doodle/config.h b/keyboards/clawsome/doodle/config.h index df33e6d84c..72ee521b64 100644 --- a/keyboards/clawsome/doodle/config.h +++ b/keyboards/clawsome/doodle/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT doodle - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/clawsome/doodle/info.json b/keyboards/clawsome/doodle/info.json index df9ca13834..7d1dcb4b60 100644 --- a/keyboards/clawsome/doodle/info.json +++ b/keyboards/clawsome/doodle/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "doodle", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/fightpad/config.h b/keyboards/clawsome/fightpad/config.h index 6f2e78b6bb..b31daece63 100644 --- a/keyboards/clawsome/fightpad/config.h +++ b/keyboards/clawsome/fightpad/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x481C -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT FightPad /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 7 diff --git a/keyboards/clawsome/fightpad/info.json b/keyboards/clawsome/fightpad/info.json index 5d52c0ce87..f6389e06c7 100644 --- a/keyboards/clawsome/fightpad/info.json +++ b/keyboards/clawsome/fightpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "FightPad", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x481C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/gamebuddy/v1_0/config.h b/keyboards/clawsome/gamebuddy/v1_0/config.h index 91b6fc6374..88ad4dc2a5 100644 --- a/keyboards/clawsome/gamebuddy/v1_0/config.h +++ b/keyboards/clawsome/gamebuddy/v1_0/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x17B9 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT GameBuddy1_0 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 7 diff --git a/keyboards/clawsome/gamebuddy/v1_0/info.json b/keyboards/clawsome/gamebuddy/v1_0/info.json index dc9c56587e..0d52501930 100644 --- a/keyboards/clawsome/gamebuddy/v1_0/info.json +++ b/keyboards/clawsome/gamebuddy/v1_0/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GameBuddy1_0", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0xFEED", + "pid": "0x17B9", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/gamebuddy/v1_m/config.h b/keyboards/clawsome/gamebuddy/v1_m/config.h index 748e35237a..c68b350fbb 100644 --- a/keyboards/clawsome/gamebuddy/v1_m/config.h +++ b/keyboards/clawsome/gamebuddy/v1_m/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT GameBuddy1_M - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 7 diff --git a/keyboards/clawsome/gamebuddy/v1_m/info.json b/keyboards/clawsome/gamebuddy/v1_m/info.json index 57b970e146..ee7f1e1ae8 100644 --- a/keyboards/clawsome/gamebuddy/v1_m/info.json +++ b/keyboards/clawsome/gamebuddy/v1_m/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GameBuddy1_M", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/hatchback/config.h b/keyboards/clawsome/hatchback/config.h index 6560ad154f..2aa7f56e47 100644 --- a/keyboards/clawsome/hatchback/config.h +++ b/keyboards/clawsome/hatchback/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT hatchbackTKL - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 10 diff --git a/keyboards/clawsome/hatchback/info.json b/keyboards/clawsome/hatchback/info.json index 94e350b4b1..75fbd34ec7 100644 --- a/keyboards/clawsome/hatchback/info.json +++ b/keyboards/clawsome/hatchback/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "hatchbackTKL", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/luggage_rack/config.h b/keyboards/clawsome/luggage_rack/config.h index 32b3ea4561..8f64283e7a 100644 --- a/keyboards/clawsome/luggage_rack/config.h +++ b/keyboards/clawsome/luggage_rack/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT luggage_rack - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 3 diff --git a/keyboards/clawsome/luggage_rack/info.json b/keyboards/clawsome/luggage_rack/info.json index 56b38ea49d..f9150a2a7e 100644 --- a/keyboards/clawsome/luggage_rack/info.json +++ b/keyboards/clawsome/luggage_rack/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "luggage_rack", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/numeros/config.h b/keyboards/clawsome/numeros/config.h index 4c873ffb8d..674c3323c3 100644 --- a/keyboards/clawsome/numeros/config.h +++ b/keyboards/clawsome/numeros/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT Los Numeros - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/clawsome/numeros/info.json b/keyboards/clawsome/numeros/info.json index 4d9f59e553..2f7c17b408 100644 --- a/keyboards/clawsome/numeros/info.json +++ b/keyboards/clawsome/numeros/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "numeros", + "keyboard_name": "Los Numeros", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/clawsome/roadster/config.h b/keyboards/clawsome/roadster/config.h index 85f9442135..e6872a31d5 100644 --- a/keyboards/clawsome/roadster/config.h +++ b/keyboards/clawsome/roadster/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT Roadster - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/clawsome/roadster/info.json b/keyboards/clawsome/roadster/info.json index 999f64c2f4..f76620cd77 100644 --- a/keyboards/clawsome/roadster/info.json +++ b/keyboards/clawsome/roadster/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Roadster", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/sedan/config.h b/keyboards/clawsome/sedan/config.h index 2a02a9a1e7..686c0afeab 100644 --- a/keyboards/clawsome/sedan/config.h +++ b/keyboards/clawsome/sedan/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x8C78 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT The Sedan - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/clawsome/sedan/info.json b/keyboards/clawsome/sedan/info.json index 568c1e010b..efee77a51b 100644 --- a/keyboards/clawsome/sedan/info.json +++ b/keyboards/clawsome/sedan/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "sedan", + "keyboard_name": "The Sedan", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x8C78", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/clawsome/sidekick/config.h b/keyboards/clawsome/sidekick/config.h index dbf1f061e6..d76dd38bbe 100644 --- a/keyboards/clawsome/sidekick/config.h +++ b/keyboards/clawsome/sidekick/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xDB9F -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT Sidekick - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 7 diff --git a/keyboards/clawsome/sidekick/info.json b/keyboards/clawsome/sidekick/info.json index 0dd1ed5e80..790f99a7eb 100644 --- a/keyboards/clawsome/sidekick/info.json +++ b/keyboards/clawsome/sidekick/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Sidekick", + "manufacturer": "AlisGraveNil", "url": "", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0xFEED", + "pid": "0xDB9F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clawsome/suv/config.h b/keyboards/clawsome/suv/config.h index 8ea2ed5bdc..a07539013d 100644 --- a/keyboards/clawsome/suv/config.h +++ b/keyboards/clawsome/suv/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7767 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AlisGraveNil -#define PRODUCT suv1.1 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 11 diff --git a/keyboards/clawsome/suv/info.json b/keyboards/clawsome/suv/info.json index 70cfd37908..b1d3a926a0 100644 --- a/keyboards/clawsome/suv/info.json +++ b/keyboards/clawsome/suv/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "suv1.1", + "manufacturer": "AlisGraveNil", "url": "www.clawboards.xyz", "maintainer": "AlisGraveNil", + "usb": { + "vid": "0x7767", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c index 7b7d2bdce0..56d4c47071 100644 --- a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c +++ b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c @@ -199,7 +199,7 @@ void matrix_scan_user(void) { if (!rgblight_config.enable || rgblight_config.mode != 1) { return; } - layer_state_t layer = layer_state; + uint32_t layer = layer_state; uint8_t val = rgblight_config.val; if (layer & (1<<_FL)) { diff --git a/keyboards/cmm_studio/fuji65/config.h b/keyboards/cmm_studio/fuji65/config.h index e93ae62c67..891eb88548 100644 --- a/keyboards/cmm_studio/fuji65/config.h +++ b/keyboards/cmm_studio/fuji65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x434D -#define PRODUCT_ID 0x364D -#define DEVICE_VER 0x0001 -#define MANUFACTURER CMM.Studio -#define PRODUCT Fuji65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/cmm_studio/fuji65/info.json b/keyboards/cmm_studio/fuji65/info.json index 4d5080a831..f1258aea8e 100644 --- a/keyboards/cmm_studio/fuji65/info.json +++ b/keyboards/cmm_studio/fuji65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "cmm.studio fuji65", + "keyboard_name": "Fuji65", + "manufacturer": "CMM.Studio", "url": "", "maintainer": "CMMS-Freather", + "usb": { + "vid": "0x434D", + "pid": "0x364D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/cmm_studio/saka68/hotswap/config.h b/keyboards/cmm_studio/saka68/hotswap/config.h index 9879dadd50..592fcf8782 100644 --- a/keyboards/cmm_studio/saka68/hotswap/config.h +++ b/keyboards/cmm_studio/saka68/hotswap/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x434D -#define PRODUCT_ID 0x5348 -#define DEVICE_VER 0x0001 -#define MANUFACTURER CMM.Studio -#define PRODUCT Saka68 Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/cmm_studio/saka68/hotswap/info.json b/keyboards/cmm_studio/saka68/hotswap/info.json index 2e48427712..fecff0d0e9 100644 --- a/keyboards/cmm_studio/saka68/hotswap/info.json +++ b/keyboards/cmm_studio/saka68/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "CMM.Studio Saka68 Hotswap", + "keyboard_name": "Saka68 Hotswap", + "manufacturer": "CMM.Studio", "url": "", "maintainer": "CMMS-Freather", + "usb": { + "vid": "0x434D", + "pid": "0x5348", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_68_ansi" }, diff --git a/keyboards/cmm_studio/saka68/solder/config.h b/keyboards/cmm_studio/saka68/solder/config.h index 3dd09922cc..583f729962 100644 --- a/keyboards/cmm_studio/saka68/solder/config.h +++ b/keyboards/cmm_studio/saka68/solder/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x434D -#define PRODUCT_ID 0x534B -#define DEVICE_VER 0x0001 -#define MANUFACTURER CMM.Studio -#define PRODUCT Saka68 Solder - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/cmm_studio/saka68/solder/info.json b/keyboards/cmm_studio/saka68/solder/info.json index 6856294471..c998dd5fa2 100644 --- a/keyboards/cmm_studio/saka68/solder/info.json +++ b/keyboards/cmm_studio/saka68/solder/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "CMM.Studio Saka68 Solder", + "keyboard_name": "Saka68 Solder", + "manufacturer": "CMM.Studio", "url": "", "maintainer": "CMMS-Freather", + "usb": { + "vid": "0x434D", + "pid": "0x534B", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_68_ansi" }, diff --git a/keyboards/coarse/cordillera/config.h b/keyboards/coarse/cordillera/config.h index 7bc2dca560..962c3edbe7 100644 --- a/keyboards/coarse/cordillera/config.h +++ b/keyboards/coarse/cordillera/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x434B // CK for Coarse Keys -#define PRODUCT_ID 0x1401 // '20 - 001 -#define DEVICE_VER 0x0001 // Revision prototype -#define MANUFACTURER Coarse -#define PRODUCT Cordillera - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/coarse/cordillera/info.json b/keyboards/coarse/cordillera/info.json index a94459180f..c72fa972ef 100644 --- a/keyboards/coarse/cordillera/info.json +++ b/keyboards/coarse/cordillera/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Cordillera", + "manufacturer": "Coarse", "url": "https://keyboard.coarse.tech/Cordillera-Alice-like-PCB-b34d95777ea44249bad3271b01d7838a", "maintainer": "coarse", + "usb": { + "vid": "0x434B", + "pid": "0x1401", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice": { "layout": [ diff --git a/keyboards/coarse/ixora/config.h b/keyboards/coarse/ixora/config.h index 13246e9226..98317817a3 100644 --- a/keyboards/coarse/ixora/config.h +++ b/keyboards/coarse/ixora/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0C61 -#define DEVICE_VER 0x0100 -#define MANUFACTURER PeiorisBoards -#define PRODUCT Ixora Rev1 - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 6 diff --git a/keyboards/coarse/ixora/info.json b/keyboards/coarse/ixora/info.json index 1bf2928885..147716608a 100644 --- a/keyboards/coarse/ixora/info.json +++ b/keyboards/coarse/ixora/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Ixora", + "keyboard_name": "Ixora Rev1", + "manufacturer": "PeiorisBoards", "url": "", "maintainer": "Peioris", + "usb": { + "vid": "0xFEED", + "pid": "0x0C61", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_full": { "layout": [{"label":"1", "x":0, "y":0}, {"label":"2", "x":1, "y":0}, {"label":"3", "x":2, "y":0}, {"label":"Caps Lock", "x":0, "y":1}, {"label":"Num Lock", "x":1, "y":1}, {"label":"Scroll Lock", "x":2, "y":1}] diff --git a/keyboards/coarse/vinta/config.h b/keyboards/coarse/vinta/config.h index 4e35b3461a..0ca163539d 100644 --- a/keyboards/coarse/vinta/config.h +++ b/keyboards/coarse/vinta/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0C61 -#define DEVICE_VER 0x0100 -#define MANUFACTURER PeiorisBoards -#define PRODUCT Vinta R1 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/coarse/vinta/info.json b/keyboards/coarse/vinta/info.json index af78ac45e2..7ae03ab599 100644 --- a/keyboards/coarse/vinta/info.json +++ b/keyboards/coarse/vinta/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "vinta", + "keyboard_name": "Vinta R1", + "manufacturer": "PeiorisBoards", "url": "", "maintainer": "Peioris", + "usb": { + "vid": "0xFEED", + "pid": "0x0C61", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_69_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"|", "x":14, "y":0}, {"label":"Del", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"End", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Reset", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] diff --git a/keyboards/compound/config.h b/keyboards/compound/config.h index 43edc00660..fb9fd51e43 100644 --- a/keyboards/compound/config.h +++ b/keyboards/compound/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x420A -#define PRODUCT_ID 0xB0BA -#define DEVICE_VER 0x0001 -#define MANUFACTURER Sabomov -#define PRODUCT Compound - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/compound/info.json b/keyboards/compound/info.json index f39a9ba1d4..b6963c0721 100644 --- a/keyboards/compound/info.json +++ b/keyboards/compound/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Compound", + "manufacturer": "Sabomov", "url": "https://geekhack.org/index.php?topic=111187.0", "maintainer": "yumagulovrn", + "usb": { + "vid": "0x420A", + "pid": "0xB0BA", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/contender/config.h b/keyboards/contender/config.h index 9977a5033e..f2ccbc7fe6 100644 --- a/keyboards/contender/config.h +++ b/keyboards/contender/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xC010 -#define DEVICE_VER 0x0001 -#define MANUFACTURER sotoba -#define PRODUCT contender - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 5 diff --git a/keyboards/contender/info.json b/keyboards/contender/info.json index 1f1d8bf534..945fce0835 100644 --- a/keyboards/contender/info.json +++ b/keyboards/contender/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "contender", + "manufacturer": "sotoba", "url": "https://github.com/sotoba/contender", "maintainer": "sotoba", + "usb": { + "vid": "0xFEED", + "pid": "0xC010", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/contra/config.h b/keyboards/contra/config.h index 499517f984..7e4fddb59f 100755 --- a/keyboards/contra/config.h +++ b/keyboards/contra/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4354 /* "CT" */ -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Cartel -#define PRODUCT Contra - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 @@ -35,11 +28,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 0 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#endif diff --git a/keyboards/contra/info.json b/keyboards/contra/info.json index 0aff3f3c2f..76f66dc3f8 100644 --- a/keyboards/contra/info.json +++ b/keyboards/contra/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Contra", + "manufacturer": "Cartel", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4354", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}] diff --git a/keyboards/contra/keymaps/default/keymap.c b/keyboards/contra/keymaps/default/keymap.c index 1a365c9a6d..6c05ebebff 100644 --- a/keyboards/contra/keymaps/default/keymap.c +++ b/keyboards/contra/keymaps/default/keymap.c @@ -163,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_planck_mit( _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/contra/keymaps/enigma/config.h b/keyboards/contra/keymaps/enigma/config.h new file mode 100644 index 0000000000..87f0199876 --- /dev/null +++ b/keyboards/contra/keymaps/enigma/config.h @@ -0,0 +1,27 @@ +/* Copyright 2022 Christopher Swenson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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_DI_PIN F7 +#ifdef RGB_DI_PIN + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLED_NUM 12 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 +#endif \ No newline at end of file diff --git a/keyboards/contra/keymaps/enigma/keymap.c b/keyboards/contra/keymaps/enigma/keymap.c new file mode 100644 index 0000000000..d8779fb063 --- /dev/null +++ b/keyboards/contra/keymaps/enigma/keymap.c @@ -0,0 +1,625 @@ +/* Copyright 2022 Christopher Swenson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { + _ENIGMA, + _QWERTY, + _FN, + _LOWER, + _RAISE +}; + +enum planck_normal_keycodes { + QWERTY = SAFE_RANGE, + ENIGMA, + EN_A, + EN_B, + EN_C, + EN_D, + EN_E, + EN_F, + EN_G, + EN_H, + EN_I, + EN_J, + EN_K, + EN_L, + EN_M, + EN_N, + EN_O, + EN_P, + EN_Q, + EN_R, + EN_S, + EN_T, + EN_U, + EN_V, + EN_W, + EN_X, + EN_Y, + EN_Z, + EN_RES, + EN_TEST, + EN_DIAG, + EN_BSPC, + EN_SREF, + EN_SROT, + EN_SPOS, + EN_SRIN, + EN_SPLU +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Enigma + * ,-----------------------------------------------------------------------------------. + * | 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 | Fn | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_ENIGMA] = LAYOUT_planck_mit( + QK_GESC, EN_Q, EN_W, EN_E, EN_R, EN_T, EN_Y, EN_U, EN_I, EN_O, EN_P, KC_BSPC, + KC_TAB, EN_A, EN_S, EN_D, EN_F, EN_G, EN_H, EN_J, EN_K, EN_L, KC_SCLN, KC_QUOT, + KC_LSFT, EN_Z, EN_X, EN_C, EN_V, EN_B, EN_N, EN_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, MO(_FN), KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + /* 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 | Fn | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_planck_mit( + QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_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, MO(_FN), KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + /* Function + * ,-----------------------------------------------------------------------------------. + * | Boot | Reset| Diag | | | | | | | | Test |Revers| + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Reflec|Rotors|Posn.s|Rings |Plugs | | |Enigma|Qwerty| | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_FN] = LAYOUT_planck_mit( + QK_BOOT, EN_RES, EN_DIAG, _______, _______, _______, _______, _______, _______, _______, EN_TEST, EN_BSPC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, EN_SREF, EN_SROT, EN_SPOS, EN_SRIN, EN_SPLU, _______, _______, QWERTY, ENIGMA, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Fn | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_planck_mit( + 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_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LCTL, _______, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + /* RAISE + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Fn | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_planck_mit( + 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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LCTL, _______, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), +}; + +char rotor_definitions[5][26] = { + "EKMFLGDQVZNTOWYHXUSPAIBRCJ", + "AJDKSIRUXBLHWTMCQGZNPYFVOE", + "BDFHJLCPRTXVZNYEIWGAKMUSQO", + "ESOVPZJAYQUIRHXLNFTGKDCMWB", + "VZBRGITYUPSDNHLXAWMJQOFECK" +}; + +char reflector_definitions[3][26] = { + "EJMZALYXVBWFCRQUONTSPIKHGD", + "YRUHQSLDPXNGOKMIEBFZCWVJAT", + "FVPJIAOYEDRZXWGCTKUQSBNMHL" +}; + +char notch[5] = "QEVJZ"; + +typedef struct Settings { + char rotor_order[3]; + char rotor_rings[3]; + char rotor_positions[3]; + char plugs[25]; + int plug_count; + char reflector; +} Settings; + +typedef struct KeyboardState { + bool is_setting_reflector; + bool is_setting_rotors; + bool is_setting_rotor_positions; + bool is_setting_rotor_rings; + bool is_setting_plugs; + char setting_progress[26]; + int setting_index; + Settings current_settings; + Settings default_settings; +} KeyboardState; + +int bound(int letter) { + return ((letter % 26) + 26) % 26; +} + +char to_char(int letter) { + return 'A' + letter; +} + +int to_int(char letter) { + return letter - 'A'; +} + +char encipher(char letter, Settings *settings) { + int rotor_2_step = settings->rotor_positions[2] == notch[settings->rotor_order[2] - 1]; + int rotor_1_step = settings->rotor_positions[1] == notch[settings->rotor_order[1] - 1]; + + // Advance the third rotor + settings->rotor_positions[2]++; + if (settings->rotor_positions[2] > 'Z') { + settings->rotor_positions[2] -= 26; + } + + // Maybe advance the second rotor, including double steps + if (rotor_2_step || rotor_1_step) { + settings->rotor_positions[1]++; + if (settings->rotor_positions[1] > 'Z') { + settings->rotor_positions[1] -= 26; + } + } + + // Maybe advance the first rotor + if (rotor_1_step) { + settings->rotor_positions[0]++; + if (settings->rotor_positions[0] > 'Z') { + settings->rotor_positions[0] -= 26; + } + } + + // Swap letters on plugboard + for (int i = 0; i < settings->plug_count * 2; i += 2) { + if (letter == settings->plugs[i]) { + letter = settings->plugs[i + 1]; + } else if (letter == settings->plugs[i + 1]) { + letter = settings->plugs[i]; + } + } + + // Rotors (right to left) + for (int rotor_index = 2; rotor_index >= 0; rotor_index--) { + char *rotor_definition = rotor_definitions[settings->rotor_order[rotor_index] - 1]; + int position = to_int(settings->rotor_positions[rotor_index]); + int ring = to_int(settings->rotor_rings[rotor_index]); + int char_index = to_int(letter); + letter = to_char(bound( + to_int(rotor_definition[bound(char_index + position - ring)]) + ring - position + )); + } + + // Swap via reflector + letter = reflector_definitions[to_int(settings->reflector)][to_int(letter)]; + + // Rotors in reverse (left to right) + for (int rotor_index = 0; rotor_index < 3; rotor_index++) { + char *rotor_definition = rotor_definitions[settings->rotor_order[rotor_index] - 1]; + int position = to_int(settings->rotor_positions[rotor_index]); + int ring = to_int(settings->rotor_rings[rotor_index]); + int search_index; + for (search_index = 0; search_index < 26; search_index++) { + if ( + rotor_definition[search_index] + == to_char(bound(to_int(letter) - ring + position)) + ) { + break; + } + } + letter = to_char(bound(search_index - position + ring)); + } + + // Plugboard again + for (int i = 0; i < settings->plug_count * 2; i += 2) { + if (letter == settings->plugs[i]) { + letter = settings->plugs[i + 1]; + } else if (letter == settings->plugs[i + 1]) { + letter = settings->plugs[i]; + } + } + + return letter; +} + +void init_enigma_default(Settings *settings) { + settings->rotor_order[0] = 1; + settings->rotor_rings[0] = 'A'; + settings->rotor_positions[0] = 'A'; + + settings->rotor_order[1] = 2; + settings->rotor_rings[1] = 'A'; + settings->rotor_positions[1] = 'A'; + + settings->rotor_order[2] = 3; + settings->rotor_rings[2] = 'A'; + settings->rotor_positions[2] = 'A'; + + strcpy(settings->plugs, ""); + settings->plug_count = 0; + + settings->reflector = 'B'; +} + +void copy_settings(Settings *from, Settings *to) { + to->rotor_order[0] = from->rotor_order[0]; + to->rotor_rings[0] = from->rotor_rings[0]; + to->rotor_positions[0] = from->rotor_positions[0]; + + to->rotor_order[1] = from->rotor_order[1]; + to->rotor_rings[1] = from->rotor_rings[1]; + to->rotor_positions[1] = from->rotor_positions[1]; + + to->rotor_order[2] = from->rotor_order[2]; + to->rotor_rings[2] = from->rotor_rings[2]; + to->rotor_positions[2] = from->rotor_positions[2]; + + strncpy(to->plugs, from->plugs, from->plug_count * 2); + to->plug_count = from->plug_count; + + to->reflector = from->reflector; +} + +char *rotor_name(int rotor_number) { + if (rotor_number == 1) { + return "I"; + } else if (rotor_number == 2) { + return "II"; + } else if (rotor_number == 3) { + return "III"; + } else if (rotor_number == 4) { + return "IV"; + } else if (rotor_number == 5) { + return "V"; + } + return "?"; +} + +void rotors_reverse(Settings *settings) { + int rotor_2_step = settings->rotor_positions[2] + == to_char(bound(to_int(notch[settings->rotor_order[2] - 1]) + 1)); + int rotor_1_step = settings->rotor_positions[1] + == to_char(bound(to_int(notch[settings->rotor_order[1] - 1]) + 1)); + + // Reverse third rotor + settings->rotor_positions[2]--; + if (settings->rotor_positions[2] < 'A') { + settings->rotor_positions[2] += 26; + } + + // Maybe reverse second rotor (including double steps) + if (rotor_2_step || rotor_1_step) { + settings->rotor_positions[1]--; + if (settings->rotor_positions[1] < 'A') { + settings->rotor_positions[1] += 26; + } + } + + // Maybe recerse first rotor + if (rotor_1_step) { + settings->rotor_positions[0]--; + if (settings->rotor_positions[0] < 'A') { + settings->rotor_positions[0] += 26; + } + } +} + +void reset_settings(KeyboardState *state) { + copy_settings(&state->default_settings, &state->current_settings); +} + +void set_layer(uint8_t default_layer) { + default_layer_set((layer_state_t)1 << default_layer); +} + +void set_backlight(uint8_t mode, uint8_t hue, uint8_t sat, uint8_t val) { + #ifdef RGBLIGHT_ENABLE + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(mode); + rgblight_sethsv_noeeprom(hue, sat, val); + #endif +} + +void clear_working_settings(KeyboardState *state) { + state->is_setting_reflector = false; + state->is_setting_rotors = false; + state->is_setting_rotor_positions = false; + state->is_setting_rotor_rings = false; + state->is_setting_plugs = false; + state->setting_index = 0; + set_layer(_ENIGMA); + set_backlight(RGBLIGHT_MODE_STATIC_LIGHT, HSV_RED); +} + +void send_settings_string(Settings *settings) { + send_char(settings->reflector); + send_string(". "); + send_string(rotor_name(settings->rotor_order[0])); + send_char(settings->rotor_rings[0]); + send_string("-"); + send_string(rotor_name(settings->rotor_order[1])); + send_char(settings->rotor_rings[1]); + send_string("-"); + send_string(rotor_name(settings->rotor_order[2])); + send_char(settings->rotor_rings[2]); + send_string(" ("); + send_char(settings->rotor_positions[0]); + send_string(", "); + send_char(settings->rotor_positions[1]); + send_string(", "); + send_char(settings->rotor_positions[2]); + send_string(") "); + for (int i = 0; i < settings->plug_count; i++) { + send_char(settings->plugs[i * 2]); + send_char(settings->plugs[i * 2 + 1]); + send_string(" "); + } + send_string("\n"); +} + +void perform_test(Settings *settings) { + for (int i = 0; i < 1000; i++) { + send_char(encipher('A', settings) - ('A' - 'a')); + } +} + +void commit_plug_settings(KeyboardState *state) { + state->default_settings.plug_count = state->setting_index / 2; + for (int i = 0; i < state->default_settings.plug_count; i++) { + state->default_settings.plugs[i * 2] = state->setting_progress[i * 2]; + state->default_settings.plugs[i * 2 + 1] = state->setting_progress[i * 2 + 1]; + } + reset_settings(state); + clear_working_settings(state); +} + +void handle_set_reflector(char letter, KeyboardState *state) { + if (letter >= 'A' && letter <= 'C') { + state->default_settings.reflector = letter; + reset_settings(state); + clear_working_settings(state); + } +} + +bool handle_set_rotor(char letter, KeyboardState *state) { + bool is_valid = letter >= 'A' && letter <= 'E' && state->setting_index < 3; + if (is_valid) { + state->setting_progress[state->setting_index] = to_int(letter) + 1; + state->setting_index += 1; + if (state->setting_index == 3) { + state->default_settings.rotor_order[0] = state->setting_progress[0]; + state->default_settings.rotor_order[1] = state->setting_progress[1]; + state->default_settings.rotor_order[2] = state->setting_progress[2]; + reset_settings(state); + clear_working_settings(state); + } + } + return is_valid; +} + +bool handle_set_rotor_position(char letter, KeyboardState *state) { + bool is_valid = state->setting_index < 3; // Guaranteed to be A-Z already + if (is_valid) { + state->setting_progress[state->setting_index] = letter; + state->setting_index += 1; + if (state->setting_index == 3) { + state->default_settings.rotor_positions[0] = state->setting_progress[0]; + state->default_settings.rotor_positions[1] = state->setting_progress[1]; + state->default_settings.rotor_positions[2] = state->setting_progress[2]; + reset_settings(state); + clear_working_settings(state); + } + } + return is_valid; +} + +bool handle_set_rotor_ring(char letter, KeyboardState *state) { + bool is_valid = state->setting_index < 3; + if (is_valid) { + state->setting_progress[state->setting_index] = letter; + state->setting_index += 1; + if (state->setting_index == 3) { + state->default_settings.rotor_rings[0] = state->setting_progress[0]; + state->default_settings.rotor_rings[1] = state->setting_progress[1]; + state->default_settings.rotor_rings[2] = state->setting_progress[2]; + reset_settings(state); + clear_working_settings(state); + } + } + return is_valid; +} + +bool handle_set_plug(char letter, KeyboardState *state) { + bool is_valid = state->setting_index < 26; + if (is_valid) { + state->setting_progress[state->setting_index] = letter; + state->setting_index += 1; + } + return is_valid; +} + +void handle_enigma_keypress(char letter, bool any_mods, KeyboardState *state) { + bool settings_valid = true; + if (letter) { + if (any_mods) { + tap_code(KC_A + to_int(letter)); + } else if (state->is_setting_reflector) { + handle_set_reflector(letter, state); + } else if (state->is_setting_rotors) { + settings_valid = handle_set_rotor(letter, state); + } else if (state->is_setting_rotor_positions) { + settings_valid = handle_set_rotor_position(letter, state); + } else if (state->is_setting_rotor_rings) { + settings_valid = handle_set_rotor_ring(letter, state); + } else if (state->is_setting_plugs) { + settings_valid = handle_set_plug(letter, state); + } else { + char c2 = encipher(letter, &state->current_settings); + send_char(c2 - ('A' - 'a')); + } + } + if (!settings_valid) { + clear_working_settings(state); + } +} + +KeyboardState STATE; + +void keyboard_pre_init_user(void) { + init_enigma_default(&STATE.default_settings); + init_enigma_default(&STATE.current_settings); + clear_working_settings(&STATE); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + uint8_t letter_index; + bool letter_found = false; + if (record->event.pressed) { + switch (keycode) { + case QWERTY: + set_layer(_QWERTY); + set_backlight(RGBLIGHT_MODE_RAINBOW_SWIRL + 4, HSV_PURPLE); + break; + case ENIGMA: + set_layer(_ENIGMA); + set_backlight(RGBLIGHT_MODE_STATIC_LIGHT, HSV_RED); + break; + case EN_SREF: + reset_settings(&STATE); + STATE.is_setting_reflector = true; + set_layer(_ENIGMA); + set_backlight(RGBLIGHT_MODE_SNAKE, HSV_RED); + break; + case EN_SROT: + reset_settings(&STATE); + STATE.is_setting_rotors = true; + STATE.setting_index = 0; + set_layer(_ENIGMA); + set_backlight(RGBLIGHT_MODE_SNAKE, 10, 255, 255); + break; + case EN_SPOS: + reset_settings(&STATE); + STATE.is_setting_rotor_positions = true; + STATE.setting_index = 0; + set_layer(_ENIGMA); + set_backlight(RGBLIGHT_MODE_SNAKE, HSV_ORANGE); + break; + case EN_SRIN: + reset_settings(&STATE); + STATE.is_setting_rotor_rings = true; + STATE.setting_index = 0; + set_layer(_ENIGMA); + set_backlight(RGBLIGHT_MODE_SNAKE, HSV_GREEN); + break; + case EN_SPLU: + reset_settings(&STATE); + STATE.is_setting_plugs = true; + STATE.setting_index = 0; + set_layer(_ENIGMA); + set_backlight(RGBLIGHT_MODE_SNAKE, HSV_BLUE); + break; + case QK_GESC: + if ( + STATE.is_setting_reflector + || STATE.is_setting_rotors + || STATE.is_setting_rotor_positions + || STATE.is_setting_rotor_rings + || STATE.is_setting_plugs + ) { + clear_working_settings(&STATE); + return false; + } + break; + case KC_ENT: + if (STATE.is_setting_plugs) { + commit_plug_settings(&STATE); + return false; + } + break; + case EN_A ... EN_Z: + letter_index = keycode - EN_A; + letter_found = true; + break; + case EN_RES: + reset_settings(&STATE); + break; + case EN_TEST: + perform_test(&STATE.current_settings); + break; + case EN_DIAG: + send_settings_string(&STATE.current_settings); + break; + case EN_BSPC: + rotors_reverse(&STATE.current_settings); + tap_code(KC_BSPC); + break; + } + } + char letter = letter_found ? 'A' + letter_index : 0; + uint8_t mods = get_mods(); + bool any_mods = (mods & MOD_MASK_CTRL) || (mods & MOD_MASK_ALT) || (mods & MOD_MASK_GUI); + handle_enigma_keypress(letter, any_mods, &STATE); + return true; +} + +void keyboard_post_init_user(void) { + set_layer(_QWERTY); + set_backlight(RGBLIGHT_MODE_RAINBOW_SWIRL + 4, HSV_PURPLE); +} diff --git a/keyboards/contra/keymaps/enigma/readme.md b/keyboards/contra/keymaps/enigma/readme.md new file mode 100644 index 0000000000..9bc69b3980 --- /dev/null +++ b/keyboards/contra/keymaps/enigma/readme.md @@ -0,0 +1,35 @@ +# A Contra Layout with an Enigma Emulator + +``` + +,-----------------------------------------------------------------------------------. +| 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 | Fn | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + +By default, this layout functions like a normal QWERTY layout. But it also has an in-built Enigma machine emulator. +To enable the emulator, press `Fn+.`, and to go back to QWERTY, press `FN+,`. + +A demonstration video can be found [here](https://youtu.be/p8kBjP1DCzo). + +When Enigma mode is enabled, all letters A-Z will be enciphered using the Enigma emulator. Other keycodes will not be modified. Shift will be sent as normal, so you can choose whether to capitalize the output. If any other modifier (Ctrl, Alt, or Gui) are being pressed, the normal letter will come through. + +There are a few key combinations for configuring and diagnosing the Enigma emulator: + +* `Fn+Q` resets the emulator to the last-configured settings +* `Fn+W` types out the current Enigma settings, e.g. `B. IA-IIA-IIIA (A, A, A) QW` (meaning reflector B; rotors I, II, and III all at ring setting A; all at position A, and with Q and W swapped on the plugboard) +* `Fn+P` types out 1000 enciphered As, for testing +* `Fn+Backspace` back-rotates the rotors one step, for fixing typos without having to re-type a whole message +* `Fn+Z` followed by A, B, or C is used to set the reflector +* `Fn+X` followed by three characters A-E is used to set the rotors +* `Fn+C` followed by three characters A-Z is used to set the rotor positions +* `Fn+V` followed by three characters A-Z is used to set the ring settings +* `Fn+B` followed by up to 13 pairs of characters A-Z (one at a time, not simulaneously) then the Enter key is used to set the plugboard + + diff --git a/keyboards/contra/keymaps/enigma/rules.mk b/keyboards/contra/keymaps/enigma/rules.mk new file mode 100644 index 0000000000..261e59922a --- /dev/null +++ b/keyboards/contra/keymaps/enigma/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_ENABLE = yes +RGBLIGHT_SUPPORTED = yes \ No newline at end of file diff --git a/keyboards/converter/m0110_usb/config.h b/keyboards/converter/m0110_usb/config.h index f980217b81..c612327ecf 100644 --- a/keyboards/converter/m0110_usb/config.h +++ b/keyboards/converter/m0110_usb/config.h @@ -42,9 +42,6 @@ Ported to QMK by Techsock get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LCTL)) \ ) -/* boot magic key */ -#define BOOTMAGIC_KEY_SALT KC_M - /* ports */ #define M0110_CLOCK_PORT PORTD #define M0110_CLOCK_PIN PIND diff --git a/keyboards/converter/modelm101_teensy2/config.h b/keyboards/converter/modelm101_teensy2/config.h new file mode 100644 index 0000000000..eb443856cd --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/config.h @@ -0,0 +1,74 @@ +/* +Copyright 2019 iw0rm3r + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wangfuco +#define PRODUCT IBM Model M 101/102 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, C6, C7, D5, D4 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D6, B0, B1, B2, B3, B7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed (5 is default) */ +#define DEBOUNCE 5 + +/* The Model M has no diodes */ +#define MATRIX_HAS_GHOST + +/* Indicator LEDs */ +#define LED_CAPS_LOCK_PIN E6 +#define LED_PIN_ON_STATE 0 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/converter/modelm101_teensy2/info.json b/keyboards/converter/modelm101_teensy2/info.json new file mode 100644 index 0000000000..1da0a88738 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "IBM Model M 101 ANSI/102 ISO", + "url": "https://github.com/wangfuco/qmk_firmware/tree/modelm101_teensy2/keyboards/converter/modelm101_teensy2", + "maintainer": "wangfuco", + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.5}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}] + } + } +} diff --git a/keyboards/converter/modelm101_teensy2/keymaps/default/keymap.c b/keyboards/converter/modelm101_teensy2/keymaps/default/keymap.c new file mode 100644 index 0000000000..3f01f2c65c --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2019 iw0rm3r + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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 layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), +}; diff --git a/keyboards/converter/modelm101_teensy2/keymaps/default/readme.md b/keyboards/converter/modelm101_teensy2/keymaps/default/readme.md new file mode 100644 index 0000000000..fb91a8ebe5 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for modelm101 \ No newline at end of file diff --git a/keyboards/converter/modelm101_teensy2/modelm101_teensy2.c b/keyboards/converter/modelm101_teensy2/modelm101_teensy2.c new file mode 100644 index 0000000000..8283d91eda --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/modelm101_teensy2.c @@ -0,0 +1,16 @@ +/* Copyright 2019 iw0rm3r + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "modelm101_teensy2.h" diff --git a/keyboards/converter/modelm101_teensy2/modelm101_teensy2.h b/keyboards/converter/modelm101_teensy2/modelm101_teensy2.h new file mode 100644 index 0000000000..1a2cdc8b68 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/modelm101_teensy2.h @@ -0,0 +1,45 @@ +/* Copyright 2019 iw0rm3r + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * The first section contains "names" for physical keys of the keyboard + * and defines their position on the board. + * The second section defines position of the keys on the switch matrix + * (where COLUMNS and ROWS crosses). */ + +#define LAYOUT( \ + K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5P, \ + \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, K4P, K4Q, K4R, K4S, K4T, K4U, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K3O, K3P, K3Q, K3R, K3S, K3T, K3U, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K2O, K2P, K2Q, \ + K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1M, K1N, K1O, K1P, K1Q, K1R, \ + K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J \ +) \ +{ \ +/* 00 */ { KC_NO, KC_NO, K5A, K1B, K5E, K2F, K5F, K2G, K5G, KC_NO, K2L, KC_NO, K0I, K0J, K1N, K0B }, \ +/* 01 */ { KC_NO, K1A, K3A, K2A, K5D, K3F, K4N, K3G, K3M, K5H, K3L, K2O, K2P, K2Q, KC_NO, KC_NO }, \ +/* 02 */ { K0A, KC_NO, K4A, K5B, K5C, K4F, K5J, K4G, K4M, K5I, K4L, K3O, K4O, K4Q, K4P, KC_NO }, \ +/* 03 */ { KC_NO, KC_NO, K4B, K4C, K4D, K4E, K5K, K4H, K4I, K4J, K4K, K5L, K5M, K3Q, K3P, K5N }, \ +/* 04 */ { KC_NO, KC_NO, K3B, K3C, K3D, K3E, KC_NO, K3H, K3I, K3J, K3K, K3R, K3S, K3T, K3U, K5O }, \ +/* 05 */ { KC_NO, KC_NO, K2B, K2C, K2D, K2E, K3N, K2H, K2I, K2J, K2K, K1O, K1P, K1Q, K1R, KC_NO }, \ +/* 06 */ { K0E, K1M, K1C, K1D, K1E, K1F, K2N, K1I, K1J, K1K, K2M, K4R, K4S, K4T, K5P, KC_NO }, \ +/* 07 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K1G, K0C, K1H, KC_NO, KC_NO, K1L, K0G, K0H, K4U, K0F, K0D }, \ +} +/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \ No newline at end of file diff --git a/keyboards/converter/modelm101_teensy2/readme.md b/keyboards/converter/modelm101_teensy2/readme.md new file mode 100644 index 0000000000..d65df72580 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/readme.md @@ -0,0 +1,29 @@ +# modelm101_teensy2 + +![IBM Model M 101 ANSI/102 ISO](https://user-images.githubusercontent.com/46733695/161862805-c891735b-e2e8-418a-ad82-d71c00570eab.jpg) + +This is based on the modelm101 keyboard by iw0rm3r. The difference is that Teensy 2.0 board (produced by PJRC) is used instead of the Teensy 2.0++ due to the availability issues. Only CapsLock LED is supported since Teensy 2.0 only has 25 digital I/0 pins. + +Configuration is build for the Atmel ATmega32U4 controller, which you can easily use on the Teensy 2.0 board (produced by PJRC). + +Pins of the Teensy board you should use by default: +``` +Columns: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +Pins: F0 F1 F4 F5 F6 F7 B6 B5 B4 D7 D6 B0 B1 B2 B3 B7 +-------------------------------------------------------- +Rows: 1 2 3 4 5 6 7 8 +Pins: D0 D1 D2 D3 C6 C7 D5 D4 +-------------------------------------------------------- +Status LEDs: CapsLock +5V ScrollLock NumLock +Pins: E6 5V - - +``` + +Keyboard Maintainer: [wangfuco](https://github.com/wangfuco) +Hardware Supported: Teensy 2.0 board by PJRC +Hardware Availability: https://www.pjrc.com/store/teensy.html + +Make example for this keyboard (after setting up your build environment): + + make converter/modelm101_teensy2:default:teensy + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/converter/modelm101_teensy2/rules.mk b/keyboards/converter/modelm101_teensy2/rules.mk new file mode 100644 index 0000000000..c1c611e577 --- /dev/null +++ b/keyboards/converter/modelm101_teensy2/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cool836a/config.h b/keyboards/cool836a/config.h index 4cf356d8b3..1b4f3b8916 100644 --- a/keyboards/cool836a/config.h +++ b/keyboards/cool836a/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ohashi -#define PRODUCT cool836A - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 6 diff --git a/keyboards/cool836a/info.json b/keyboards/cool836a/info.json index fb9e7a2f24..e413d13434 100644 --- a/keyboards/cool836a/info.json +++ b/keyboards/cool836a/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "cool836a", + "keyboard_name": "cool836A", + "manufacturer": "Ohashi", "url": "https://github.com/telzo2000/cool836A", "maintainer": "Ohashi", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/copenhagen_click/click_pad_v1/config.h b/keyboards/copenhagen_click/click_pad_v1/config.h index 7fc16c54fe..07e498856a 100755 --- a/keyboards/copenhagen_click/click_pad_v1/config.h +++ b/keyboards/copenhagen_click/click_pad_v1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x27DB -#define DEVICE_VER 0x0001 -#define MANUFACTURER Copenhagen Click -#define PRODUCT Click Pad V1 - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 diff --git a/keyboards/copenhagen_click/click_pad_v1/info.json b/keyboards/copenhagen_click/click_pad_v1/info.json index f684748c64..96dcb150ff 100755 --- a/keyboards/copenhagen_click/click_pad_v1/info.json +++ b/keyboards/copenhagen_click/click_pad_v1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "CopenhagenClickPad-V1", + "keyboard_name": "Click Pad V1", + "manufacturer": "Copenhagen Click", "url": "http://copenhagenclick.com/ClickPad-V1/", "maintainer": "mini-ninja-64", + "usb": { + "vid": "0xFEED", + "pid": "0x27DB", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}] diff --git a/keyboards/coseyfannitutti/discipad/config.h b/keyboards/coseyfannitutti/discipad/config.h index 69e2e1561c..9fe37c68a4 100644 --- a/keyboards/coseyfannitutti/discipad/config.h +++ b/keyboards/coseyfannitutti/discipad/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x6B62 -#define PRODUCT_ID 0x1769 -#define DEVICE_VER 0x0001 -#define MANUFACTURER coseyfannitutti -#define PRODUCT DISCIPAD - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/coseyfannitutti/discipad/info.json b/keyboards/coseyfannitutti/discipad/info.json index 267fd9f039..d11120c0dd 100644 --- a/keyboards/coseyfannitutti/discipad/info.json +++ b/keyboards/coseyfannitutti/discipad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "DISCIPAD", + "manufacturer": "coseyfannitutti", "url": "https://github.com/coseyfannitutti/discipad", "maintainer": "coseyfannitutti", + "usb": { + "vid": "0x6B62", + "pid": "0x1769", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}] diff --git a/keyboards/coseyfannitutti/discipline/config.h b/keyboards/coseyfannitutti/discipline/config.h index 570fff8752..7d9c73f480 100644 --- a/keyboards/coseyfannitutti/discipline/config.h +++ b/keyboards/coseyfannitutti/discipline/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x6B62 -#define PRODUCT_ID 0x6869 -#define DEVICE_VER 0x0001 -#define MANUFACTURER coseyfannitutti -#define PRODUCT DISCIPLINE - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/coseyfannitutti/discipline/info.json b/keyboards/coseyfannitutti/discipline/info.json index ea1886a353..f42c420633 100644 --- a/keyboards/coseyfannitutti/discipline/info.json +++ b/keyboards/coseyfannitutti/discipline/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "DISCIPLINE", + "manufacturer": "coseyfannitutti", "url": "https://github.com/coseyfannitutti/discipline", "maintainer": "coseyfannitutti", + "usb": { + "vid": "0x6B62", + "pid": "0x6869", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_65_ansi_2_right_mods": "LAYOUT_65_ansi_blocker", "LAYOUT_65_iso_2_right_mods": "LAYOUT_65_iso_blocker", diff --git a/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c new file mode 100644 index 0000000000..32199fd8ac --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c @@ -0,0 +1,112 @@ +/* Copyright 2019 COSEYFANNITUTTI + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_ESC LT(_FUNC, KC_ESC) + +enum discipline_layers { + _QWERTY, + _WORKMAN, + _FUNC, +}; + +enum discpline_keycodes { + QWERTY = SAFE_RANGE, + WORKMAN, + FUNC, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* QWERTY: Default Layer + * ,--------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| `~| + * |---------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del| + * |---------------------------------------------------------------| + * |Fn/CL | A| S| D| F| G| H| J| K| L| ;| '| Enter|PgU| + * |---------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| + * |---------------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| + * `---------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_65_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_DEL, + FN_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_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, KC_RGUI, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Workman + * ,---------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| `~| + * |---------------------------------------------------------------| + * |Tab | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| Del| + * |---------------------------------------------------------------| + * |Fn/CL | A| S| H| T| G| Y| N| E| O| I| '| Enter| PgU| + * |---------------------------------------------------------------| + * |Shift | Z| X| M| C| V| K| L| ,| .| /|Shift |Up| PgD| + * |---------------------------------------------------------------| + * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig| + * `---------------------------------------------------------------' + */ + [_WORKMAN] = LAYOUT_65_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_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + FN_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, 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 + ), + + /* Function + * ,---------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | | |INS| + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | |HME| + * |---------------------------------------------------------------| + * | | | | | | | | | | | | | |VL+|END| + * |---------------------------------------------------------------| + * | | | | PLY/PS | | | | |PRV|VL-|NXT| + * `---------------------------------------------------------------' + */ + [_FUNC] = LAYOUT_65_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,_______, RESET, + _______,KC_WH_U,KC_BTN1,KC_MS_U,KC_BTN2,_______,_______,AG_NORM,AG_SWAP,QWERTY,WORKMAN,_______,_______,_______, KC_INS, + _______,KC_WH_D,KC_MS_L,KC_MS_D,KC_MS_R,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, + _______,KC_WH_L,KC_BTN3,KC_WH_R,_______,_______,_______,_______,_______,_______,_______, _______,KC_VOLU, KC_PGDN, + _______,_______,_______, KC_MPLY, _______,_______,_______,KC_MPRV,KC_VOLD, KC_MNXT + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + } + return true; +} diff --git a/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/readme.md b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/readme.md new file mode 100644 index 0000000000..c97f4ced16 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/briianpowell/readme.md @@ -0,0 +1,15 @@ +# Discipline Keyboard Compilation + +## Features + +- Base Layers + - QWERTY + - Workman +- Mouse Keys +- Entertainment Keys + +## Building and flashing + +``` +make coseyfannitutti/discipline:briianpowell:flash +``` diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c index 050e406772..4460d6f9bb 100644 --- a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c +++ b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 James Young (@noroadsleft) +/* Copyright 2021-2022 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 @@ -30,7 +30,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DV] = LAYOUT_65_ansi( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME, + KC_ESC, 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_BSPC, KC_HOME, 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_EQL, KC_BSLS, KC_PGUP, FN_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_PGDN, 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_UP, KC_END, @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_QW] = LAYOUT_65_ansi( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_ESC, KC_1, KC_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, FN_CAPS, KC_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, @@ -56,13 +56,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_65_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, DM_REC1, _______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, DM_REC2, - _______, M_SALL, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, + _______, M_SALL, _______, _______, G_PWD, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, _______, M_UNDO, M_CUT, M_COPY, M_PASTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TO(_SY), _______, _______, DM_PLY2, _______, _______, _______, TG(_NP), _______, _______, _______, _______, _______, _______ ), [_SY] = LAYOUT_65_ansi( - TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, + TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 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/coseyfannitutti/mullet/config.h b/keyboards/coseyfannitutti/mullet/config.h index d01be9744c..1b9c4c4fac 100644 --- a/keyboards/coseyfannitutti/mullet/config.h +++ b/keyboards/coseyfannitutti/mullet/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6969 -#define DEVICE_VER 0x0001 -#define MANUFACTURER coseyfannitutti -#define PRODUCT mullet - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/coseyfannitutti/mullet/info.json b/keyboards/coseyfannitutti/mullet/info.json index 0be8b87767..29a2be6a4d 100644 --- a/keyboards/coseyfannitutti/mullet/info.json +++ b/keyboards/coseyfannitutti/mullet/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "mullet", + "manufacturer": "coseyfannitutti", "url": "https://github.com/coseyfannitutti/mullet", "maintainer": "coseyfannitutti", + "usb": { + "vid": "0xFEED", + "pid": "0x6969", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Page Up", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Page Down", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"End", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Fn", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] diff --git a/keyboards/coseyfannitutti/mulletpad/config.h b/keyboards/coseyfannitutti/mulletpad/config.h index e6d68469bf..3d5badf883 100644 --- a/keyboards/coseyfannitutti/mulletpad/config.h +++ b/keyboards/coseyfannitutti/mulletpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6666 -#define DEVICE_VER 0x0001 -#define MANUFACTURER coseyfannitutti -#define PRODUCT mulletpad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/coseyfannitutti/mulletpad/info.json b/keyboards/coseyfannitutti/mulletpad/info.json index 5decb0e450..2f467f9a11 100644 --- a/keyboards/coseyfannitutti/mulletpad/info.json +++ b/keyboards/coseyfannitutti/mulletpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "mulletpad", + "manufacturer": "coseyfannitutti", "url": "https://github.com/coseyfannitutti/mulletpad", "maintainer": "coseyfannitutti", + "usb": { + "vid": "0xFEED", + "pid": "0x6666", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}] diff --git a/keyboards/coseyfannitutti/mysterium/config.h b/keyboards/coseyfannitutti/mysterium/config.h index 4fa4b15708..b6bb2f8510 100644 --- a/keyboards/coseyfannitutti/mysterium/config.h +++ b/keyboards/coseyfannitutti/mysterium/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x6B62 -#define PRODUCT_ID 0x8769 -#define DEVICE_VER 0x0001 -#define MANUFACTURER coseyfannitutti -#define PRODUCT MYSTERIUM - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/coseyfannitutti/mysterium/info.json b/keyboards/coseyfannitutti/mysterium/info.json index 9005974099..bbe590e7a7 100644 --- a/keyboards/coseyfannitutti/mysterium/info.json +++ b/keyboards/coseyfannitutti/mysterium/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MYSTERIUM", + "manufacturer": "coseyfannitutti", "url": "https://github.com/coseyfannitutti/mysterium", "maintainer": "coseyfannitutti", + "usb": { + "vid": "0x6B62", + "pid": "0x8769", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Menu", "x":11.25, "y":5.25, "w":1.25}, {"label":"Fn", "x":12.5, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] diff --git a/keyboards/coseyfannitutti/romeo/config.h b/keyboards/coseyfannitutti/romeo/config.h index 811787df79..d82277dc89 100644 --- a/keyboards/coseyfannitutti/romeo/config.h +++ b/keyboards/coseyfannitutti/romeo/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x6B62 -#define PRODUCT_ID 0x4069 -#define DEVICE_VER 0x0001 -#define MANUFACTURER coseyfannitutti -#define PRODUCT ROMEO - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/coseyfannitutti/romeo/info.json b/keyboards/coseyfannitutti/romeo/info.json index a79308a8da..3f8c9a616d 100644 --- a/keyboards/coseyfannitutti/romeo/info.json +++ b/keyboards/coseyfannitutti/romeo/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ROMEO", + "manufacturer": "coseyfannitutti", "url": "https://github.com/coseyfannitutti/romeo", "maintainer": "coseyfannitutti", + "usb": { + "vid": "0x6B62", + "pid": "0x4069", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"1.5u", "x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"label":"1.5u", "x":11.5, "y":0, "w":1.5}, {"label":"1.75u", "x":0, "y":1, "w":1.75}, {"x":1.75, "y":1}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"label":"2.25u", "x":10.75, "y":1, "w":2.25}, {"label":"1.25u", "x":0, "y":2, "w":1.25}, {"x":1.25, "y":2}, {"x":2.25, "y":2}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"label":"1.75u", "x":11.25, "y":2, "w":1.75}, {"label":"1.25u", "x":0, "y":3, "w":1.25}, {"label":"1u", "x":1.25, "y":3}, {"label":"1.25u", "x":2.25, "y":3, "w":1.25}, {"label":"2.25u", "x":3.5, "y":3, "w":2.25}, {"label":"1u", "x":5.75, "y":3}, {"label":"2.75u", "x":6.75, "y":3, "w":2.75}, {"label":"1.25u", "x":9.5, "y":3, "w":1.25}, {"label":"1u", "x":10.75, "y":3}, {"label":"1.25u", "x":11.75, "y":3, "w":1.25}] diff --git a/keyboards/cradio/config.h b/keyboards/cradio/config.h index aba6050af1..65895f8492 100644 --- a/keyboards/cradio/config.h +++ b/keyboards/cradio/config.h @@ -21,13 +21,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC88B -#define PRODUCT_ID 0x3988 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DPB -#define PRODUCT Cradio - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 5 diff --git a/keyboards/cradio/info.json b/keyboards/cradio/info.json index 78cb7ef195..9a99ee7c3e 100644 --- a/keyboards/cradio/info.json +++ b/keyboards/cradio/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Cradio", + "manufacturer": "DPB", "url": "https://github.com/davidphilipbarr/Sweep", "maintainer": "@davidphilipbarr", + "usb": { + "vid": "0xC88B", + "pid": "0x3988", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_2": { "layout": [ diff --git a/keyboards/craftwalk/config.h b/keyboards/craftwalk/config.h index f87c61cdb1..8bb7623376 100644 --- a/keyboards/craftwalk/config.h +++ b/keyboards/craftwalk/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x2E8F -#define DEVICE_VER 0x0001 -#define MANUFACTURER sotoba -#define PRODUCT craftwalk - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 7 diff --git a/keyboards/craftwalk/info.json b/keyboards/craftwalk/info.json index 0d854c5333..ac6324efba 100644 --- a/keyboards/craftwalk/info.json +++ b/keyboards/craftwalk/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "craftwalk", + "manufacturer": "sotoba", "url": "https://github.com/sotoba/craftwalk", "maintainer": "sotoba", + "usb": { + "vid": "0xFEED", + "pid": "0x2E8F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/crawlpad/config.h b/keyboards/crawlpad/config.h index d923fe0c27..dd8b7dde07 100755 --- a/keyboards/crawlpad/config.h +++ b/keyboards/crawlpad/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6070 -#define DEVICE_VER 0x0001 -#define MANUFACTURER WoodKeys.click -#define PRODUCT CrawlPad - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/crawlpad/info.json b/keyboards/crawlpad/info.json index 4613a4a5a0..7b95c4495d 100644 --- a/keyboards/crawlpad/info.json +++ b/keyboards/crawlpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Crawlpad", + "manufacturer": "WoodKeys.Click", "url": "", "maintainer": "colemarkham", + "usb": { + "vid": "0xFEED", + "pid": "0x6070", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [ diff --git a/keyboards/crazy_keyboard_68/config.h b/keyboards/crazy_keyboard_68/config.h index ea2bc568bc..e6c7b4c9ef 100644 --- a/keyboards/crazy_keyboard_68/config.h +++ b/keyboards/crazy_keyboard_68/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED // by default from pcb -#define PRODUCT_ID 0x13DE -#define DEVICE_VER 0x0001 -#define MANUFACTURER chent7 -#define PRODUCT Crazy Keyboard 68 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/crazy_keyboard_68/info.json b/keyboards/crazy_keyboard_68/info.json index 38c3025ec8..040b29825d 100644 --- a/keyboards/crazy_keyboard_68/info.json +++ b/keyboards/crazy_keyboard_68/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "crazy_keyboard_68", + "keyboard_name": "Crazy_Keyboard 68", + "manufacturer": "chent7", "url": "", "maintainer": "chent7", + "usb": { + "vid": "0xFEED", + "pid": "0x13DE", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/crbn/config.h b/keyboards/crbn/config.h index 8873022269..d2ff5b1fea 100644 --- a/keyboards/crbn/config.h +++ b/keyboards/crbn/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x726F -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Polarity Works -#define PRODUCT CRBN - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/crbn/info.json b/keyboards/crbn/info.json index f9369ec2cd..0ae3a72434 100644 --- a/keyboards/crbn/info.json +++ b/keyboards/crbn/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CRBN", + "manufacturer": "Polarity Works", "url": "polarityworks.com", "maintainer": "qmk", + "usb": { + "vid": "0x726F", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_crbn_1x2u": { "layout": [ diff --git a/keyboards/creatkeebs/glacier/config.h b/keyboards/creatkeebs/glacier/config.h index 1cfb2b6a8d..2da93150f6 100644 --- a/keyboards/creatkeebs/glacier/config.h +++ b/keyboards/creatkeebs/glacier/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0410 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER creatkeebs -#define PRODUCT glacier - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/creatkeebs/glacier/info.json b/keyboards/creatkeebs/glacier/info.json index 3bc2ee2018..3c81d34267 100644 --- a/keyboards/creatkeebs/glacier/info.json +++ b/keyboards/creatkeebs/glacier/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "glacier", + "manufacturer": "creatkeebs", "url": "", "maintainer": "Timliuzhaolu", + "usb": { + "vid": "0x0410", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan" }, diff --git a/keyboards/creatkeebs/thera/config.h b/keyboards/creatkeebs/thera/config.h index 0e673dd9d3..863897acbf 100644 --- a/keyboards/creatkeebs/thera/config.h +++ b/keyboards/creatkeebs/thera/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0410 -#define PRODUCT_ID 0x6061 -#define DEVICE_VER 0x0001 -#define MANUFACTURER creatkeebs -#define PRODUCT thera - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/creatkeebs/thera/info.json b/keyboards/creatkeebs/thera/info.json index 856aae93bf..388fc448e0 100644 --- a/keyboards/creatkeebs/thera/info.json +++ b/keyboards/creatkeebs/thera/info.json @@ -1,106 +1,831 @@ { - "keyboard_name": "jelly epoch", + "keyboard_name": "thera", + "manufacturer": "creatkeebs", "url": "https://eschit.com/collections/thera75", "maintainer": "https://github.com/Timliuzhaolu", + "usb": { + "vid": "0x0410", + "pid": "0x6061", + "device_version": "0.0.1" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_ansi" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ - {"x":0, "y":0}, + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, - {"x":1.25, "y":0}, - {"x":2.25, "y":0}, - {"x":3.25, "y":0}, - {"x":4.25, "y":0}, + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5}, + {"label":"Backspace", "x":14, "y":1.5}, + {"label":"Insert", "x":15.5, "y":1.5}, - {"x":5.5, "y":0}, - {"x":6.5, "y":0}, - {"x":7.5, "y":0}, - {"x":8.5, "y":0}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Page Up", "x":15.5, "y":2.5}, - {"x":9.75, "y":0}, - {"x":10.75, "y":0}, - {"x":11.75, "y":0}, - {"x":12.75, "y":0}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Page Down", "x":15.5, "y":3.5}, - {"x":14, "y":0}, + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.75}, - {"x":0, "y":1.5}, - {"x":1, "y":1.5}, - {"x":2, "y":1.5}, - {"x":3, "y":1.5}, - {"x":4, "y":1.5}, - {"x":5, "y":1.5}, - {"x":6, "y":1.5}, - {"x":7, "y":1.5}, - {"x":8, "y":1.5}, - {"x":9, "y":1.5}, - {"x":10, "y":1.5}, - {"x":11, "y":1.5}, - {"x":12, "y":1.5}, - {"x":13, "y":1.5, "w":2}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5}, + {"label":"GUI", "x":11, "y":5.5}, + {"label":"Ctrl", "x":12, "y":5.5}, + {"label":"\u2190", "x":13.25, "y":5.75}, + {"label":"\u2193", "x":14.25, "y":5.75}, + {"label":"\u2192", "x":15.25, "y":5.75} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, - {"x":15.5, "y":1.5}, + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.5, "y":1.5}, - {"x":0, "y":2.5, "w":1.5}, - {"x":1.5, "y":2.5}, - {"x":2.5, "y":2.5}, - {"x":3.5, "y":2.5}, - {"x":4.5, "y":2.5}, - {"x":5.5, "y":2.5}, - {"x":6.5, "y":2.5}, - {"x":7.5, "y":2.5}, - {"x":8.5, "y":2.5}, - {"x":9.5, "y":2.5}, - {"x":10.5, "y":2.5}, - {"x":11.5, "y":2.5}, - {"x":12.5, "y":2.5}, - {"x":13.5, "y":2.5, "w":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Page Up", "x":15.5, "y":2.5}, - {"x":15.5, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Page Down", "x":15.5, "y":3.5}, - {"x":0, "y":3.5, "w":1.75}, - {"x":1.75, "y":3.5}, - {"x":2.75, "y":3.5}, - {"x":3.75, "y":3.5}, - {"x":4.75, "y":3.5}, - {"x":5.75, "y":3.5}, - {"x":6.75, "y":3.5}, - {"x":7.75, "y":3.5}, - {"x":8.75, "y":3.5}, - {"x":9.75, "y":3.5}, - {"x":10.75, "y":3.5}, - {"x":11.75, "y":3.5}, - {"x":12.75, "y":3.5, "w":2.25}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.75}, - {"x":15.5, "y":3.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5}, + {"label":"GUI", "x":11, "y":5.5}, + {"label":"Ctrl", "x":12, "y":5.5}, + {"label":"\u2190", "x":13.25, "y":5.75}, + {"label":"\u2193", "x":14.25, "y":5.75}, + {"label":"\u2192", "x":15.25, "y":5.75} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, - {"x":0, "y":4.5, "w":2.25}, - {"x":2.25, "y":4.5}, - {"x":3.25, "y":4.5}, - {"x":4.25, "y":4.5}, - {"x":5.25, "y":4.5}, - {"x":6.25, "y":4.5}, - {"x":7.25, "y":4.5}, - {"x":8.25, "y":4.5}, - {"x":9.25, "y":4.5}, - {"x":10.25, "y":4.5}, - {"x":11.25, "y":4.5}, - {"x":12.25, "y":4.5, "w":1.75}, + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5}, + {"label":"Backspace", "x":14, "y":1.5}, + {"label":"Insert", "x":15.5, "y":1.5}, - {"x":14.25, "y":4.75}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Page Up", "x":15.5, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Page Down", "x":15.5, "y":3.5}, - {"x":0, "y":5.5, "w":1.25}, - {"x":1.25, "y":5.5, "w":1.25}, - {"x":2.5, "y":5.5, "w":1.25}, - {"x":3.75, "y":5.5, "w":6.25}, - {"x":10, "y":5.5}, - {"x":11, "y":5.5}, - {"x":12, "y":5.5}, + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.75}, - {"x":13.25, "y":5.75}, - {"x":14.25, "y":5.75}, - {"x":15.25, "y":5.75} + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5}, + {"label":"GUI", "x":11, "y":5.5}, + {"label":"Ctrl", "x":12, "y":5.5}, + {"label":"\u2190", "x":13.25, "y":5.75}, + {"label":"\u2193", "x":14.25, "y":5.75}, + {"label":"\u2192", "x":15.25, "y":5.75} + ] + }, + "LAYOUT_ansi_rwkl": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.5, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Page Up", "x":15.5, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Page Down", "x":15.5, "y":3.5}, + + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.75}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5}, + {"label":"Alt", "x":2.25, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.5, "y":5.5, "w":7}, + {"label":"Alt", "x":10.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":13.25, "y":5.75}, + {"label":"\u2193", "x":14.25, "y":5.75}, + {"label":"\u2192", "x":15.25, "y":5.75} + ] + }, + "LAYOUT_ansi_rwkl_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5}, + {"label":"Backspace", "x":14, "y":1.5}, + {"label":"Insert", "x":15.5, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Page Up", "x":15.5, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + {"label":"Page Down", "x":15.5, "y":3.5}, + + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.75}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5}, + {"label":"Alt", "x":2.25, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.5, "y":5.5, "w":7}, + {"label":"Alt", "x":10.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":13.25, "y":5.75}, + {"label":"\u2193", "x":14.25, "y":5.75}, + {"label":"\u2192", "x":15.25, "y":5.75} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2\"", "x":2, "y":1.5}, + {"label":"3\u00a3", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.5, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"Page Up", "x":15.5, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'@", "x":11.75, "y":3.5}, + {"label":"#~", "x":12.75, "y":3.5}, + {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, + {"label":"Page Down", "x":15.5, "y":3.5}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.75}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"AltGr", "x":10, "y":5.5}, + {"label":"GUI", "x":11, "y":5.5}, + {"label":"Ctrl", "x":12, "y":5.5}, + {"label":"\u2190", "x":13.25, "y":5.75}, + {"label":"\u2193", "x":14.25, "y":5.75}, + {"label":"\u2192", "x":15.25, "y":5.75} + ] + }, + "LAYOUT_iso_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2\"", "x":2, "y":1.5}, + {"label":"3\u00a3", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5}, + {"label":"Backspace", "x":14, "y":1.5}, + {"label":"Insert", "x":15.5, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"Page Up", "x":15.5, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'@", "x":11.75, "y":3.5}, + {"label":"#~", "x":12.75, "y":3.5}, + {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, + {"label":"Page Down", "x":15.5, "y":3.5}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.75}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"AltGr", "x":10, "y":5.5}, + {"label":"GUI", "x":11, "y":5.5}, + {"label":"Ctrl", "x":12, "y":5.5}, + {"label":"\u2190", "x":13.25, "y":5.75}, + {"label":"\u2193", "x":14.25, "y":5.75}, + {"label":"\u2192", "x":15.25, "y":5.75} + ] + }, + "LAYOUT_iso_rwkl": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2\"", "x":2, "y":1.5}, + {"label":"3\u00a3", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.5, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"Page Up", "x":15.5, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'@", "x":11.75, "y":3.5}, + {"label":"#~", "x":12.75, "y":3.5}, + {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, + {"label":"Page Down", "x":15.5, "y":3.5}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.75}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5}, + {"label":"Alt", "x":2.25, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.5, "y":5.5, "w":7}, + {"label":"AltGr", "x":10.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":13.25, "y":5.75}, + {"label":"\u2193", "x":14.25, "y":5.75}, + {"label":"\u2192", "x":15.25, "y":5.75} + ] + }, + "LAYOUT_iso_rwkl_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2\"", "x":2, "y":1.5}, + {"label":"3\u00a3", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5}, + {"label":"Backspace", "x":14, "y":1.5}, + {"label":"Insert", "x":15.5, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"Page Up", "x":15.5, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'@", "x":11.75, "y":3.5}, + {"label":"#~", "x":12.75, "y":3.5}, + {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, + {"label":"Page Down", "x":15.5, "y":3.5}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.75}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5}, + {"label":"Alt", "x":2.25, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.5, "y":5.5, "w":7}, + {"label":"AltGr", "x":10.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":13.25, "y":5.75}, + {"label":"\u2193", "x":14.25, "y":5.75}, + {"label":"\u2192", "x":15.25, "y":5.75} ] } } diff --git a/keyboards/creatkeebs/thera/keymaps/default/keymap.c b/keyboards/creatkeebs/thera/keymaps/default/keymap.c index 4af1d96a2b..5c361175e1 100644 --- a/keyboards/creatkeebs/thera/keymaps/default/keymap.c +++ b/keyboards/creatkeebs/thera/keymaps/default/keymap.c @@ -1,30 +1,30 @@ - /* Copyright 2022 Tim - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General 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 Tim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_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_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [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_GRV, KC_1, KC_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_TAB, KC_Q, KC_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), }; - diff --git a/keyboards/creatkeebs/thera/keymaps/default_ansi/keymap.c b/keyboards/creatkeebs/thera/keymaps/default_ansi/keymap.c new file mode 100644 index 0000000000..1fc8870ff5 --- /dev/null +++ b/keyboards/creatkeebs/thera/keymaps/default_ansi/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2022 Tim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_GRV, KC_1, KC_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_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/creatkeebs/thera/keymaps/default_ansi_rwkl/keymap.c b/keyboards/creatkeebs/thera/keymaps/default_ansi_rwkl/keymap.c new file mode 100644 index 0000000000..47e57abff9 --- /dev/null +++ b/keyboards/creatkeebs/thera/keymaps/default_ansi_rwkl/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2022 Tim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_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_GRV, KC_1, KC_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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/creatkeebs/thera/keymaps/default_ansi_rwkl_split_bs/keymap.c b/keyboards/creatkeebs/thera/keymaps/default_ansi_rwkl_split_bs/keymap.c new file mode 100644 index 0000000000..4c4262bb44 --- /dev/null +++ b/keyboards/creatkeebs/thera/keymaps/default_ansi_rwkl_split_bs/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2022 Tim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_rwkl_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_GRV, KC_1, KC_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_TAB, KC_Q, KC_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/creatkeebs/thera/keymaps/default_ansi_split_bs/keymap.c b/keyboards/creatkeebs/thera/keymaps/default_ansi_split_bs/keymap.c new file mode 100644 index 0000000000..090f6f5675 --- /dev/null +++ b/keyboards/creatkeebs/thera/keymaps/default_ansi_split_bs/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2022 Tim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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( + KC_ESC, KC_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_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_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/creatkeebs/thera/keymaps/default_iso/keymap.c b/keyboards/creatkeebs/thera/keymaps/default_iso/keymap.c new file mode 100644 index 0000000000..b9fb813050 --- /dev/null +++ b/keyboards/creatkeebs/thera/keymaps/default_iso/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2022 Tim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_GRV, KC_1, KC_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_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/creatkeebs/thera/keymaps/default_iso_rwkl/keymap.c b/keyboards/creatkeebs/thera/keymaps/default_iso_rwkl/keymap.c new file mode 100644 index 0000000000..bf56fde226 --- /dev/null +++ b/keyboards/creatkeebs/thera/keymaps/default_iso_rwkl/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2022 Tim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_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_GRV, KC_1, KC_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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/creatkeebs/thera/keymaps/default_iso_rwkl_split_bs/keymap.c b/keyboards/creatkeebs/thera/keymaps/default_iso_rwkl_split_bs/keymap.c new file mode 100644 index 0000000000..b5b30eaa8f --- /dev/null +++ b/keyboards/creatkeebs/thera/keymaps/default_iso_rwkl_split_bs/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2022 Tim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_rwkl_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_GRV, KC_1, KC_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_TAB, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/creatkeebs/thera/keymaps/default_iso_split_bs/keymap.c b/keyboards/creatkeebs/thera/keymaps/default_iso_split_bs/keymap.c new file mode 100644 index 0000000000..1a2648eb10 --- /dev/null +++ b/keyboards/creatkeebs/thera/keymaps/default_iso_split_bs/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2022 Tim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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( + KC_ESC, KC_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_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_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/creatkeebs/thera/thera.h b/keyboards/creatkeebs/thera/thera.h index 8603c3605b..403a9c7336 100644 --- a/keyboards/creatkeebs/thera/thera.h +++ b/keyboards/creatkeebs/thera/thera.h @@ -18,20 +18,173 @@ #include "quantum.h" -#define ____ KC_NO +#define ___ KC_NO -#define LAYOUT( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, 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, K313, K314, \ - K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, \ - K500, K501, K502, K506, K509, K510, K511, K512, K513, K514 \ +/* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0A │0B │0C ││0D │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │0E │1D │ │1E │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤ └─┬─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┤ ┌──┴┐3D │ ISO Enter + * LShift │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │3E │ │2D │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ └───┘ └───┴────┘ + * │40 │ │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │┌───┐ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│4D │ + * │50 │51 │52 │56 │59 │5A │5B │┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│5C │5D │5E │ + * └───┴───┴───┘ + * + * ┌────┬────┬────┬────────────────────────┬─────┬─────┐ + * │50 │51 │52 │56 │59 │5B │ RWKL + * └────┴────┴────┴────────────────────────┴─────┴─────┘ both layouts + * ┌────┬───┬────┬───────────────────────────┬────┬────┐ use same matrix + * │50 │51 │52 │56 │59 │5B │ + * └────┴───┴────┴───────────────────────────┴────┴────┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K0E, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5A, K5B, K5C, K5D, K5E \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, ____ }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, 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, ____, K313, K314 }, \ - { K400, ____, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, ____ }, \ - { K500, K501, K502, ____, ____, ____, K506, ____, ____, K509, K510, K511, K512, K513, K514 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___ }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_ansi_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K0E, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_ansi_rwkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___ }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, ___, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_ansi_rwkl_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K0E, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, ___, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___ }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_iso_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K0E, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_iso_rwkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___ }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, ___, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_iso_rwkl_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K0E, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, ___, K5B, K5C, K5D, K5E } \ } diff --git a/keyboards/crimsonkeyboards/resume1800/config.h b/keyboards/crimsonkeyboards/resume1800/config.h index d6552b744e..3e8304935b 100644 --- a/keyboards/crimsonkeyboards/resume1800/config.h +++ b/keyboards/crimsonkeyboards/resume1800/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xC18B -#define DEVICE_VER 0x0001 -#define MANUFACTURER CrimsonKeyboards -#define PRODUCT Resume1800 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 20 diff --git a/keyboards/crimsonkeyboards/resume1800/info.json b/keyboards/crimsonkeyboards/resume1800/info.json index e36cc5050b..b53be64e9d 100644 --- a/keyboards/crimsonkeyboards/resume1800/info.json +++ b/keyboards/crimsonkeyboards/resume1800/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Resume1800", + "manufacturer": "CrimsonKeyboards", "url": "", "maintainer": "CrimsonKeyboards", + "usb": { + "vid": "0xFEED", + "pid": "0xC18B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_resume1800_ansi_all": { "layout": [ diff --git a/keyboards/crin/config.h b/keyboards/crin/config.h index 4561a05df0..04af4a21e2 100644 --- a/keyboards/crin/config.h +++ b/keyboards/crin/config.h @@ -17,14 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6400 -#define PRODUCT_ID 0xCC11 -#define DEVICE_VER 0x0001 - -#define MANUFACTURER Bachoo -#define PRODUCT Crin - #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/crin/info.json b/keyboards/crin/info.json index 94f57c48bf..9ce4fbfafb 100644 --- a/keyboards/crin/info.json +++ b/keyboards/crin/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Crin", + "manufacturer": "Bachoo", "url": "https://bachoo.com", "maintainer": "KnoblesseOblige", + "usb": { + "vid": "0x6400", + "pid": "0xCC11", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_default": "LAYOUT_all", "LAYOUT_tsangan": "LAYOUT_ansi_tsangan" diff --git a/keyboards/crkbd/keymaps/bermeo/config.h b/keyboards/crkbd/keymaps/bermeo/config.h new file mode 100644 index 0000000000..567497afbe --- /dev/null +++ b/keyboards/crkbd/keymaps/bermeo/config.h @@ -0,0 +1,126 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +// #define TAPPING_FORCE_HOLD +#define TAPPING_TERM 150 +// #define RETRO_TAPPING +// #define IGNORE_MOD_TAP_INTERRUPT +// #define PERMISSIVE_HOLD + +#ifdef RGBLIGHT_ENABLE +# undef RGBLED_NUM +# define RGBLED_NUM 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_SLEEP +# define RGBLIGHT_SPLIT +# define RGBLIGHT_LIMIT_VAL 120 +# define RGBLIGHT_HUE_STEP 6 +# define RGBLIGHT_SAT_STEP 6 +# define RGBLIGHT_VAL_STEP 6 +# define RGBLIGHT_SLEEP +# define RGBLIGHT_TIMEOUT 75000 +#endif + +#ifdef OLED_ENABLE +# define SPLIT_LAYER_STATE_ENABLE +# define SPLIT_LED_STATE_ENABLE +# define SPLIT_MODS_ENABLE +# define SPLIT_WPM_ENABLE +# define SPLIT_OLED_ENABLE +# define OLED_FONT_H "keyboards/crkbd/keymaps/soundmonster/glcdfont.c" +# define OLED_DISABLE_TIMEOUT +# define OLED_TIMEOUT 150000 +# define OLED_BRIGHTNESS 255 +# define OLED_FADE_OUT +# define OLED_FADE_OUT_INTERVAL 15 +#endif + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +# define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 + +/* 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. */ +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# undef ENABLE_RGB_MATRIX_BREATHING +# undef ENABLE_RGB_MATRIX_BAND_SAT +# undef ENABLE_RGB_MATRIX_BAND_VAL +# define 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 +# 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_RAINBOW_PINWHEELS +# undef ENABLE_RGB_MATRIX_RAINDROPS +# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define 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 +# 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/bermeo/glcdfont.c b/keyboards/crkbd/keymaps/bermeo/glcdfont.c new file mode 100644 index 0000000000..588ecfd8c8 --- /dev/null +++ b/keyboards/crkbd/keymaps/bermeo/glcdfont.c @@ -0,0 +1,232 @@ +#include "progmem.h" + +// Corne 8x6 font with QMK Firmware Logo +// Online editor: https://helixfonteditor.netlify.com/ +// See also: https://github.com/soundmonster/glcdfont_converter + +const unsigned char font[] PROGMEM = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, +0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, +0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, +0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, +0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, +0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, +0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, +0x00, 0x18, 0x24, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, +0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, +0x26, 0x29, 0x79, 0x29, 0x26, 0x00, +0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, +0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, +0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, +0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, +0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, +0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, +0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, +0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, +0x60, 0x60, 0x60, 0x60, 0x60, 0x00, +0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, +0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, +0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, +0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, +0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, +0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, +0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, +0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, +0x00, 0x07, 0x00, 0x07, 0x00, 0x00, +0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, +0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, +0x23, 0x13, 0x08, 0x64, 0x62, 0x00, +0x36, 0x49, 0x56, 0x20, 0x50, 0x00, +0x00, 0x08, 0x07, 0x03, 0x00, 0x00, +0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, +0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, +0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, +0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, +0x00, 0x80, 0x70, 0x30, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x08, 0x00, +0x00, 0x00, 0x60, 0x60, 0x00, 0x00, +0x20, 0x10, 0x08, 0x04, 0x02, 0x00, +0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, +0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, +0x72, 0x49, 0x49, 0x49, 0x46, 0x00, +0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, +0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, +0x27, 0x45, 0x45, 0x45, 0x39, 0x00, +0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, +0x41, 0x21, 0x11, 0x09, 0x07, 0x00, +0x36, 0x49, 0x49, 0x49, 0x36, 0x00, +0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, +0x00, 0x00, 0x14, 0x00, 0x00, 0x00, +0x00, 0x40, 0x34, 0x00, 0x00, 0x00, +0x00, 0x08, 0x14, 0x22, 0x41, 0x00, +0x14, 0x14, 0x14, 0x14, 0x14, 0x00, +0x00, 0x41, 0x22, 0x14, 0x08, 0x00, +0x02, 0x01, 0x59, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, +0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, +0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, +0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, +0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, +0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, +0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, +0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, +0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, +0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, +0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, +0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, +0x26, 0x49, 0x49, 0x49, 0x32, 0x00, +0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, +0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, +0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, +0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, +0x63, 0x14, 0x08, 0x14, 0x63, 0x00, +0x03, 0x04, 0x78, 0x04, 0x03, 0x00, +0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, +0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, +0x02, 0x04, 0x08, 0x10, 0x20, 0x00, +0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, +0x04, 0x02, 0x01, 0x02, 0x04, 0x00, +0x40, 0x40, 0x40, 0x40, 0x40, 0x00, +0x00, 0x03, 0x07, 0x08, 0x00, 0x00, +0x20, 0x54, 0x54, 0x78, 0x40, 0x00, +0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, +0x38, 0x44, 0x44, 0x44, 0x28, 0x00, +0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, +0x38, 0x54, 0x54, 0x54, 0x18, 0x00, +0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, +0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, +0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, +0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, +0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, +0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, +0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, +0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, +0x38, 0x44, 0x44, 0x44, 0x38, 0x00, +0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, +0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, +0x48, 0x54, 0x54, 0x54, 0x24, 0x00, +0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, +0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, +0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, +0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, +0x44, 0x28, 0x10, 0x28, 0x44, 0x00, +0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, +0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, +0x00, 0x08, 0x36, 0x41, 0x00, 0x00, +0x00, 0x00, 0x77, 0x00, 0x00, 0x00, +0x00, 0x41, 0x36, 0x08, 0x00, 0x00, +0x02, 0x01, 0x02, 0x04, 0x02, 0x00, +0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, +0xF8, 0x18, 0x00, 0xC0, 0xF0, 0xFC, +0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, +0x00, 0xF8, 0x04, 0x22, 0x52, 0xE2, +0x42, 0x42, 0x42, 0xE2, 0x52, 0x22, +0x22, 0x22, 0x42, 0x82, 0x02, 0x02, +0x22, 0x22, 0x02, 0x04, 0xF8, 0x00, +0x00, 0xF8, 0x04, 0x02, 0x02, 0x82, +0x42, 0x22, 0x42, 0x82, 0x02, 0x02, +0x02, 0x82, 0x42, 0x22, 0x12, 0x22, +0x42, 0x82, 0x02, 0x04, 0xF8, 0x00, +0x00, 0xF8, 0xFC, 0xDE, 0xAE, 0x1E, +0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE, +0xDE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, +0xDE, 0xDE, 0xFE, 0xFC, 0xF8, 0x00, +0x00, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E, +0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x80, 0x80, 0x40, 0x40, 0x20, 0x20, +0x10, 0x10, 0x08, 0x08, 0x10, 0x10, +0x20, 0x20, 0x40, 0x40, 0x80, 0x80, +0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, +0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0, +0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, +0x80, 0x80, 0x40, 0x40, 0x20, 0x20, +0x10, 0x10, 0x08, 0x08, 0x10, 0x10, +0x20, 0x20, 0x40, 0x40, 0x80, 0x80, +0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0, +0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0, +0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80, +0x00, 0xF8, 0xFC, 0xFE, 0xFF, 0xE0, +0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, +0x07, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x1F, 0x20, 0x44, 0x4A, 0x47, +0x42, 0x42, 0x42, 0x47, 0x4A, 0x44, +0x40, 0x40, 0x40, 0x40, 0x41, 0x42, +0x44, 0x44, 0x40, 0x20, 0x1F, 0x00, +0x00, 0x1F, 0x20, 0x40, 0x41, 0x40, +0x40, 0x40, 0x40, 0x40, 0x41, 0x40, +0x41, 0x41, 0x4F, 0x48, 0x48, 0x48, +0x4F, 0x41, 0x41, 0x20, 0x1F, 0x00, +0x00, 0x1F, 0x3F, 0x7B, 0x75, 0x78, +0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B, +0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D, +0x7B, 0x7B, 0x7F, 0x3F, 0x1F, 0x00, +0x00, 0x1F, 0x3F, 0x7F, 0x7E, 0x7F, +0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E, +0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C, +0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88, +0x88, 0x88, 0x55, 0x55, 0x23, 0x23, +0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47, +0x23, 0x23, 0x55, 0x55, 0x88, 0x88, +0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2, +0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4, +0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88, +0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6, +0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6, +0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88, +0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3F, +0x3F, 0x3F, 0x1F, 0x1F, 0x3F, 0x3F, +0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, +0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7C, +0x78, 0x78, 0x38, 0x1C, 0x0F, 0x00, +0x04, 0xF8, 0x00, 0x00, 0xF8, 0x04, +0x20, 0x1F, 0x00, 0x00, 0x1F, 0x20, +0xFC, 0xF8, 0x00, 0x00, 0xF8, 0x04, +0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x20, +0x04, 0xF8, 0x00, 0x00, 0xF8, 0xFC, +0x20, 0x1F, 0x00, 0x00, 0x1F, 0x3F, +0xFC, 0xF8, 0x00, 0x00, 0xF8, 0xFC, +0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F, +0xFE, 0x7E, 0xBE, 0xDE, 0xEE, 0xDE, +0xBE, 0x7E, 0xFE, 0xFC, 0xF8, 0x00, +0x7E, 0x7E, 0x70, 0x77, 0x77, 0x77, +0x70, 0x7E, 0x7E, 0x3F, 0x1F, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x02, 0x02, +0x04, 0x04, 0x08, 0x08, 0x04, 0x04, +0x02, 0x02, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x02, 0x02, +0x04, 0x04, 0x08, 0x08, 0x04, 0x04, +0x02, 0x02, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x03, 0x03, +0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07, +0x03, 0x03, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x03, 0x02, +0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06, +0x03, 0x02, 0x01, 0x01, 0x00, 0x00 +}; diff --git a/keyboards/crkbd/keymaps/bermeo/keymap.c b/keyboards/crkbd/keymaps/bermeo/keymap.c new file mode 100644 index 0000000000..ad1dc92450 --- /dev/null +++ b/keyboards/crkbd/keymaps/bermeo/keymap.c @@ -0,0 +1,596 @@ +// Copyright 2022 Guilherme Bermêo (bermeo.dev) +// 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 layers { + _QWERTY, + _LOWER, + _RAISE, + _NUMP, +}; + +uint8_t mod_state; + +bool isBarking = false; +bool isJumping = false; +bool showedJump = true; +bool isSneaking = false; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, + CEDILHA, // ç direct key + AO, // ã direct key + ASPAS, // " direct key + +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {[_QWERTY] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + LCTL_T(KC_F3), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_GRAVE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LALT_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LSFT_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RGUI_T(KC_RIGHT), + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + LGUI_T(KC_DOWN), MO(1), KC_SPC, KC_BSPC, MO(2), RSFT_T(KC_UP) + // `--------------------------' `--------------------------' + ), + +[_LOWER] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + LCTL_T(KC_F5), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ESCAPE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LCTL(LGUI(KC_SPC)), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_ENT, KC_LBRC, KC_RBRC, KC_BSLS, KC_QUOT, KC_COLON, KC_ENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LALT(KC_LEFT), KC_F1, KC_F2, KC_C, KC_V, KC_BSPC, KC_MINS, KC_EQL, KC_LT, KC_GT, KC_QUESTION, LALT(KC_RIGHT), + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + LGUI_T(KC_PAGE_DOWN), _______, KC_SPC, LALT(KC_BSPC), TG(3), RSFT_T(KC_PAGE_UP) + // `--------------------------' `--------------------------' + ), + +[_RAISE] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + LCTL_T(KC_F4), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILDE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LALT_T(KC_TAB), AO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_PIPE, ASPAS, KC_COLON, KC_ENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LALT(KC_LEFT), XXXXXXX, XXXXXXX, CEDILHA, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LT, KC_GT, KC_QUESTION, LALT(KC_RIGHT), + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + LGUI_T(KC_END), TG(3), KC_SPC, KC_DEL, _______, RSFT_T(KC_HOME) + // `--------------------------' `--------------------------' + ), + +[_NUMP] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + RGB_TOG, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_ENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_PDOT, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_NO, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + TG(3), TG(3), TG(3), KC_BSPC, TG(3), KC_P0 + // `--------------------------' `--------------------------' + )}; + +//Per key lights +void rgb_matrix_indicators_user(void) { +#ifdef RGB_MATRIX_ENABLE + switch (get_highest_layer(layer_state)) { + case _QWERTY: + isSneaking = false; + mod_state = get_mods(); + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + if (mod_state & MOD_MASK_SHIFT) { + isBarking = true; + rgb_matrix_set_color(52, 255, 255, 255); + rgb_matrix_set_color(i, 255, 150, 0); + } else if (mod_state & MOD_MASK_GUI || mod_state & MOD_MASK_CTRL) { + isBarking = true; + rgb_matrix_set_color(15, 255, 0, 0); + switch (i) { + case 0 ... 5: // underglow left side + case 9: // cmd + T white (new tab) + case 11: // cmd + F white (find) + case 18: // cmd + W white (close tab) + case 19: // cmd + S white (save) + case 21: // cmd + Z white (undo) + case 22: // cmd + A white (select all) + case 27 ... 32: // underglow right side + case 43: // cmd + K white (comment for desktop remote) + case 48: // cmd + / white (comment line) + rgb_matrix_set_color(i, 255, 255, 255); // white + break; + case 6: // space bar off + case 24 ... 26: // left column off + case 33: // backspace off + case 41: // shift off + case 51 ... 53: // right column off + rgb_matrix_set_color(i, 0, 0, 0); //off + break; + } + if (mod_state & MOD_MASK_GUI) { + rgb_matrix_set_color(12, 255, 255, 255); // white V key + rgb_matrix_set_color(15, 255, 255, 255); // white C key + rgb_matrix_set_color(20, 255, 255, 255); // white X key + } else { + } + } else if (mod_state & MOD_MASK_ALT) { + isBarking = true; + } else { + isBarking = false; + rgb_matrix_set_color(14, 0, 0, 0); // command key off + } + } + rgb_matrix_set_color(13, 23, 181, 255); // cyan layer + rgb_matrix_set_color(40, 255, 33, 0); // orange layer + break; + + case _RAISE: + isSneaking = true; + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + switch (i) { + case 7: // B key off + case 8: // G key off + case 11: // F key off + case 12: // V key off + case 16: // D key off + case 19 ... 21: // S, X, Z keys off + case 25: // tab key off + case 26: // shift key off + case 52 ... 53: // right column off + rgb_matrix_set_color(i, 0, 0, 0); // off + break; + case 15: // Ç key + case 22: // Ã key + case 24: // Launch (F4) + case 40: // Active layer + rgb_matrix_set_color(i, 255, 255, 255); // white + break; + case 13: // active layer + rgb_matrix_set_color(i, 0, 255, 0); // green + break; + case 42: // , shifted key + case 47 ... 49: // . / ; shifted keys + rgb_matrix_set_color(i, 255, 214, 0); // yellow + break; + default: + rgb_matrix_set_color(i, 255, 33, 0); // orange + } + } + break; + + case _LOWER: + isSneaking = true; + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + switch (i) { + case 7: // Delete key + case 51: // ESC key + rgb_matrix_set_color(i, 255, 0, 0); // red + break; + case 12: // V key off + case 15: // C key off + case 20: // X key off + case 21: // Z key off + + case 26: // shift key off + case 52 ... 53: // right column off + rgb_matrix_set_color(i, 0, 0, 0); // off + break; + case 11: // Right arrow key + case 13: // Active layer + case 16: // Up arrow key + case 19: // Down arrow key + case 22: // Left arrow key + case 24: // Print + rgb_matrix_set_color(i, 255, 255, 255); // white + break; + case 8: // Enter key + case 40: // Activate Numpad + rgb_matrix_set_color(i, 0, 255, 0); // green + break; + case 42: // , shifted key + case 47 ... 49: // . / ; shifted keys + case 25: // opens emoji dialog (on macOS) + rgb_matrix_set_color(i, 255, 214, 0); // yellow + break; + default: + rgb_matrix_set_color(i, 23, 181, 255); // cyan + } + } + + break; + + case _NUMP: + isSneaking = true; + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + switch (i) { + case 12: // RGB speed- + case 15: // RGB brigthness- + case 20: // RGB saturation- + case 21: // RGB hue- + case 49: // Numpad - + case 51: // Numpad / + rgb_matrix_set_color(i, 255, 0, 0); // red + break; + case 8 ... 10: // G T R off + case 17: // E off + case 18: // W off + case 23: // Q off + case 25: // Tab off + case 26: // LShift off + case 33: // Backspace off + case 35: // H off + case 36: // Y off + case 53: // RShift off + rgb_matrix_set_color(i, 0, 0, 0); // off + break; + case 6: // Space bar off + case 13: // Return to default layer + case 16: // RGB brigthness+ + case 24: // RGB toggle + case 37 ... 47: // Numpad numbers + case 52: // Enter key + rgb_matrix_set_color(i, 255, 255, 255); // white + break; + case 11: // RGB speed+ + case 19: // RGB saturation+ + case 22: // RGB hue+ + case 48: // Numpad + + rgb_matrix_set_color(i, 0, 255, 0); // green + break; + case 34: // . numpad key + rgb_matrix_set_color(i, 255, 214, 0); // yellow + break; + } + rgb_matrix_set_color(13, 23, 181, 255); // Activate cyan layer + rgb_matrix_set_color(40, 255, 33, 0); // Activate orange layer + rgb_matrix_set_color(50, 0, 33, 255); // Numpad * + rgb_matrix_set_color(14, 0, 255, 0); // Green layer active + } + } +}; +#endif + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +/* KEYBOARD PET START */ +/* settings */ +# define MIN_WALK_SPEED 10 +# define MIN_RUN_SPEED 60 +/* advanced settings */ +# define ANIM_FRAME_DURATION 100 // how long each frame lasts in ms +# define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 +/* timers */ +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +/* current frame */ +uint8_t current_frame = 0; +/* status variables */ +int current_wpm = 0; +// led_t led_usb_state; +/* logic */ +static void render_luna(int LUNA_X, int LUNA_Y) { + /* Sit */ + static const char PROGMEM sit[2][ANIM_SIZE] = {/* 'sit1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + /* 'sit2', 32x22px */ + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + + /* Walk */ + static const char PROGMEM walk[2][ANIM_SIZE] = {/* 'walk1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + /* 'walk2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }}; + + /* Run */ + static const char PROGMEM run[2][ANIM_SIZE] = {/* 'run1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'run2', 32x22px */ + { + 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }}; + + // /* Bark */ + static const char PROGMEM bark[2][ANIM_SIZE] = {/* 'bark1', 32x22px */ + { + 0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'bark2', 32x22px */ + { + 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }}; + + /* Sneak */ + static const char PROGMEM sneak[2][ANIM_SIZE] = {/* 'sneak1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'sneak2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + }}; + + /* animation */ + void animate_luna(void) { + /* jump */ + if (isJumping || !showedJump) { + /* clear */ + oled_set_cursor(LUNA_X, LUNA_Y + 2); + oled_write(" ", false); + oled_set_cursor(LUNA_X, LUNA_Y - 1); + showedJump = true; + } else { + /* clear */ + oled_set_cursor(LUNA_X, LUNA_Y - 1); + oled_write(" ", false); + oled_set_cursor(LUNA_X, LUNA_Y); + } + /* switch frame */ + current_frame = (current_frame + 1) % 2; + /* draw */ + if (isBarking) { + oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + + } else if (isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + + } else if (current_wpm <= MIN_WALK_SPEED) { + oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + + } else if (current_wpm <= MIN_RUN_SPEED) { + oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + + } else { + oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + } + } + /* animation timer */ + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animate_luna(); + } +} + +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_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 nump_layer[] = {0x20, 0x9d, 0x9e, 0x9f, 0x20, 0x20, 0xbd, 0xbe, 0xbf, 0x20, 0x20, 0xdd, 0xde, 0xdf, 0x20, 0}; + if (layer_state_is(_NUMP)) { + oled_write_P(nump_layer, false); + } else if (layer_state_is(_LOWER)) { + oled_write_P(lower_layer, false); + } else if (layer_state_is(_RAISE)) { + oled_write_P(raise_layer, false); + } else { + oled_write_P(default_layer, false); + } +} + +// renders on oled +bool oled_task_user(void) { + current_wpm = get_current_wpm(); + // led_usb_state = host_keyboard_led_state(); + + if (is_keyboard_left()) { + oled_set_cursor(0, 2); + if (isSneaking) { + render_layer_state(); + } else { + for (size_t i = 0; i < 7; i++) { + oled_write(" ", false); + } + } + render_luna(0, 12); + } else { + oled_set_cursor(0, 6); + render_layer_state(); + oled_set_cursor(0, 11); + if (mod_state) { + render_mod_status_gui_alt(get_mods()); + render_mod_status_ctrl_shift(get_mods()); + } else { + for (size_t i = 0; i < 5; i++) { + oled_write(" ", false); + } + } + } + return false; +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + // ç key + case CEDILHA: + if (record->event.pressed) { + register_code(KC_QUOT); + unregister_code(KC_QUOT); + register_code(KC_C); + unregister_code(KC_C); + } + break; + return false; + + // ã key + case AO: + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_GRV); + unregister_code(KC_LSFT); + unregister_code(KC_GRV); + register_code(KC_A); + unregister_code(KC_A); + } + break; + return false; + + // direct " key + case ASPAS: + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_QUOT); + register_code(KC_SPC); + unregister_code(KC_SPC); + unregister_code(KC_QUOT); + unregister_code(KC_LSFT); + } + break; + return false; + + // Luna jumping on space + case KC_SPC: + if (record->event.pressed) { + isJumping = true; + showedJump = false; + } else { + isJumping = false; + } + break; + return false; + } + return true; +} diff --git a/keyboards/crkbd/keymaps/bermeo/readme.md b/keyboards/crkbd/keymaps/bermeo/readme.md new file mode 100644 index 0000000000..a9b0d4ff09 --- /dev/null +++ b/keyboards/crkbd/keymaps/bermeo/readme.md @@ -0,0 +1,158 @@ +# Bermeo Layout for Corne + +## Features + +### *Corne for neo-latin creatives* + +* Usable with left hand only (Figma, Adobe, Spline, etc) to combo with mouse. +* Delete and enter keys on the left side. +* Z and X on left side with lower layer used to control the monitor's brigtness. +* Arrow keys on left hand (vim logic) +* Accentuations used in Romance (neo-latin) languages like Spanish, Portuguese, French and Italian - ` ~ ^ ' -. + +#### Direct ç and ã keys + +The termination "tion" (eg. action) in portuguese is "ção" (eg. ação). This layout is optimized to use the less keys possible to write words with this termination. + +Compared to the `crkbd:default` layout the difference to output ção would be half of the interations: + +| crkbd:bermeo | `MO(2)`, `KC_C`, `KC_A`, `MO(2)` | +|:--|:--| +| crkbd:default | `KC_QUOT`, `KC_C`, `MO(2)`, `KC_SFT`, `KC_GRV`, `MO(2)`, `KC_SFT`, `KC_A` | + +[ `hold key` , `release key` ] + +### Modern OLED Support + +* Non-intrusive OLED layer indicator. +* Non-intrusive OLED modifier indicators ⌘ ⇧ ⌥ ⌃. +* Fully animated Luna on left side. + +### Full per-key RGB Matrix support + +With the index of every key mapped in the table below to be used with `rgb_matrix_set_color(index, r, g, b)`;. + +#### Indexes of the keys + +||||||||||||||| +|:--:|:--:|:--:|:--:|:--:|:--:|--|--|:--:|:--:|:--:|:--:|:--:|:--:| +| 24 | 23 | 18 | 17 | 10 | 9 ||| 36 | 37 | 44 | 45 | 50 | 51 | +| 25 | 22 | 19 | 16 | 11 | 8 ||| 35 | 38 | 43 | 46 | 49 | 52 | +| 26 | 21 | 20 | 15 | 12 | 7 ||| 34 | 39 | 42 | 47 | 48 | 53 | +||||| 14 | 13 | 6 | 33 | 40 | 41 ||||| + +Each layer uses the LED `14` as an visual indicator: + +* ⚫️ Default layer +* 🔵 Lower (0) +* 🟠 Raise (1) +* 🟢 Numpad (2) +* ⚪️ Control and Command +* 🟡 Shift + +## Mod-taps + +For convenience, QMK includes some Mod-Tap shortcuts to make common combinations more compact in your keymap: +| Key | Description | +| :-- | --: | +| LCTL_T(kc) | Left Control when held, kc when tapped. | +| LSFT_T(kc) | Left Shift when held, kc when tapped. | +| LALT_T(kc) | Left Alt when held, kc when tapped. | +| ALT(kc) | Left Alt + kc when tapped. | +| LGUI_T(kc) | Left GUI when held, kc when tapped. | +| RSFT_T(kc) | Right Shift when held, kc when tapped. | +| RGUI_T(kc) | Right GUI when held, kc when tapped. | + +## Macros + +|Layer | Name | Description | Keys | +| :--: | --: | -- | --: | +| 🟠 | CEDILLA | Directly outputs ç | ' + c | +| 🟠 | AO | Directly outputs ã | shift + ` + a | +| 🟠 | ASPAS | Outputs ", since diaeresis[^1] are less used than " (for coding and quoting) | shift + ' + space | + +## Layers + +### QWERTY + +||||||||||||||| +|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|--:| +| LCTL_T(F3[^2]) | Q | W | E | R | T ||| Y | U | I | O | P | GRAVE | +| LALT_T(TAB) | A | S | D | F | G ||| H | J | K | L | ; | ↵ | +| LSFT_T(←) | Z | X | C | V | B ||| N | M | , | . | / | RGUI_T(→) | +||||| LGUI_T(↓) | MO(1) | SPACE | ⌫ | MO(2)| RSFT_T( ↑) ||||| + + +### LOWER 🔵 + +||||||||||||||| +|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|--:| +|CTL_T(F5[^3]) | 1 | 2 | 3 | 4 | 5 ||| 6 | 7 | 8 | 9 | 0 | ESCAPE | +|LCTL(LGUI(KC_SPC))[^4] | ← | ↓ | ↑ | → | ↵ ||| [ | ] | \ | ' | : | ↵ | +|ALT(←) | F1[^5] | F2[^6] | C | V | ⌫ ||| - | = | < | > | ? | LALT(→) | +||||| LGUI_T(PAGE_DOWN) | _ | SPACE | LALT(⌫) | TG(3) | RSFT_T(PAGE_UP) ||||| + +### RAISE 🟠 + +||||||||||||||| +|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|--:| +LCTL_T(F4[^7]) | ! | @ | # | $ | % ||| ˆ | & | * | ( | ) | ˜ | +LALT_T(TAB) | Ã[^8] | | | | ||| { | } | | | "[^9] | : | ↵ | +LALT(←) | | | Ç[^10] | | ||| _ | + | < | > | ? | LALT(→) | +||||| LGUI_T(END) | TG(3) | SPACE| DEL| _ | RSFT_T(HOME) ||||| + +### NUMPAD 🟢 + +||||||||||||||| +|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|--:| +| RGB_TOG || | | |||| | 7 | 8 | 9 | * | / | +|| RGB_HUI | RGB_SAI | RGB_VAI | RGB_SPI |||| | 4 | 5 | 6 | - | ↵ | +|| RGB_HUD | RGB_SAD | RGB_VAD | RGB_SPD |||| . | 1 | 2 | 3 | + | | +||||| TG(3)| TG(3) | TG(3) | ⌫ | TG(3) | 0 ||||| + +## Usage + +To compile and flash, from `qmk setup` folder, run: + + make crkbd:bermeo:flash + +## Compiled size + + 28658/28672 (99%, 14 bytes free) + +If more space is needed, start by deactivating Macros and Luna's animations. + +## Credits + +Guilherme Bermêo [(github)](https://git.bermeo.dev) + +### Thanks + +* @armand1m +* @brneor +* @drashna +* @hellsingcoder +* @soundmonster +* @wdtamagi + +[^1]: The diaeresis (/daɪˈɛrəsɪs, -ˈɪər-/ dy-ERR-ə-sis, -⁠EER-; also known as the trema) and the umlaut (/ˈʊmlaʊt/) are two different diacritical marks that (in modern usage) look alike. They both consist of two dots ¨ placed over a letter, usually a vowel; when that letter is an i or a j, the diacritic replaces the tittle: ï. In computer systems, both forms have the same code point (binary code). Their appearance in print or on screen may vary between typefaces but rarely within the same typeface. The "diaeresis" diacritic is used to mark the separation of two distinct vowels in adjacent syllables when an instance of diaeresis (or hiatus) occurs, so as to distinguish from a digraph or diphthong. +The "umlaut" diacritic, in contrast, indicates a sound shift phenomenon – also known as umlaut – in which a back vowel becomes a front vowel. +Neither of these phenomena occur in English, except in loanwords (like naïve) or for stylistic reasons (as in the Brontë family or Mötley Crüe). + +[^2]: Open Mission Control. + +[^3]: Bring up the screenshot toolbar. + +[^4]: Opens emoji dialog box. + +[^5]: Decrease display brightness. + +[^6]: Increase display brightness. + +[^7]: Launchpad. + +[^8]: Macro "CEDILLA". + +[^9]: Macro "AO". + +[^10]: Macro "ASPAS". diff --git a/keyboards/crkbd/keymaps/bermeo/rules.mk b/keyboards/crkbd/keymaps/bermeo/rules.mk new file mode 100644 index 0000000000..e666f1f0cb --- /dev/null +++ b/keyboards/crkbd/keymaps/bermeo/rules.mk @@ -0,0 +1,19 @@ +RGBLIGHT_ENABLE = no +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 + + +#Dont use +CONSOLE_ENABLE = no +MOUSEKEY_ENABLE = no +BOOTMAGIC_ENABLE = no +COMBO_ENABLE = no +AUDIO_ENABLE = no +MIDI_ENABLE = no +BLUETOOTH_ENABLE = no \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/dsanchezseco/keymap.c b/keyboards/crkbd/keymaps/dsanchezseco/keymap.c index ab84e5c580..6ef428a11f 100644 --- a/keyboards/crkbd/keymaps/dsanchezseco/keymap.c +++ b/keyboards/crkbd/keymaps/dsanchezseco/keymap.c @@ -84,7 +84,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { const char *read_logo(void); bool oled_task_user(void){ - switch (get_highest_layer(layer_state)){ + switch (biton32(layer_state)){ case _DVORAK: oled_write_ln_P(PSTR("DVRK"), false); break; diff --git a/keyboards/crkbd/keymaps/edvorakjp/keymap.c b/keyboards/crkbd/keymaps/edvorakjp/keymap.c index f3b801da68..5e56da61a9 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/keymap.c +++ b/keyboards/crkbd/keymaps/edvorakjp/keymap.c @@ -54,9 +54,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT -layer_state_t layer_state_set_keymap(layer_state_t state) { +uint32_t layer_state_set_keymap(uint32_t state) { rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - switch (get_highest_layer(state)) { + switch (biton32(state)) { case L_EDVORAKJP_LOWER: rgblight_sethsv_noeeprom_red(); break; diff --git a/keyboards/crkbd/keymaps/edvorakjp/oled.c b/keyboards/crkbd/keymaps/edvorakjp/oled.c index cd75f8e277..e5ff029565 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/oled.c +++ b/keyboards/crkbd/keymaps/edvorakjp/oled.c @@ -9,7 +9,7 @@ void render_layer_state(void) { char layer_name[17]; oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case L_EDVORAKJP_BASE: oled_write_ln_P(PSTR("Default"), false); break; diff --git a/keyboards/crkbd/keymaps/jarred/keymap.c b/keyboards/crkbd/keymaps/jarred/keymap.c index 3784eff2b8..b938636c2a 100644 --- a/keyboards/crkbd/keymaps/jarred/keymap.c +++ b/keyboards/crkbd/keymaps/jarred/keymap.c @@ -84,7 +84,7 @@ const char *read_keylogs(void); char matrix_line_str[24]; const char *read_layer_state(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); strcpy(matrix_line_str, "Layer: "); diff --git a/keyboards/crkbd/keymaps/ollyhayes/config.h b/keyboards/crkbd/keymaps/ollyhayes/config.h new file mode 100644 index 0000000000..b7653e1c9a --- /dev/null +++ b/keyboards/crkbd/keymaps/ollyhayes/config.h @@ -0,0 +1,96 @@ +/* Copyright 2022 Olly Hayes (@ollyhayes) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define EE_HANDS + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 + +#define NO_ACTION_ONESHOT + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" + +#define UNICODE_SELECTED_MODES UC_LNX + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 + + +// 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 +// # 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 RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 200 +// # 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 diff --git a/keyboards/crkbd/keymaps/ollyhayes/keymap.c b/keyboards/crkbd/keymaps/ollyhayes/keymap.c new file mode 100644 index 0000000000..80ce41df49 --- /dev/null +++ b/keyboards/crkbd/keymaps/ollyhayes/keymap.c @@ -0,0 +1,112 @@ +/* Copyright 2022 Olly Hayes (@ollyhayes) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "ollyhayes.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_split_3x6_3( +// +------------+------+------+---------+----------+---------+--------+----------+---------+--------+---------+---------+ + NUM_SWITCH , 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_ENT , + 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_LCTL , MO(PUNC) , MO(ARR) , KC_SPC , MO(PUNC) , KC_RCTL +// +------------+------+------+---------+----------+---------+--------+----------+---------+--------+---------+---------+ + ), + + [QWERTY] = LAYOUT_split_3x6_3( +// +---------+------+------+---------+---------+---------+---------+---------+---------+--------+---------+---------+ + KC_TRNS , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_TRNS , + KC_TRNS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_TRNS , + KC_TRNS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_TRNS , + KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS +// +---------+------+------+---------+---------+---------+---------+---------+---------+--------+---------+---------+ + ), + + [GAMES] = LAYOUT_split_3x6_3( +// +---------+------+------+---------+---------+----------+---------+---------+---------+--------+---------+---------+ + KC_TRNS , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_TRNS , + KC_TRNS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_TRNS , + KC_TRNS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_TRNS , + KC_TRNS , KC_LALT , KC_SPACE , MO(ARR) , KC_TRNS , KC_TRNS +// +---------+------+------+---------+---------+----------+---------+---------+---------+--------+---------+---------+ + ), + + [NUM] = LAYOUT_split_3x6_3( +// +---------+---------------+------+--------+---------+-----------+-----------+------+--------+------+---------+---------+ + KC_TRNS , MO(FUNCTIONS) , KC_1 , KC_2 , KC_3 , DF(BASE) , C(KC_GRV) , KC_7 , KC_8 , KC_9 , KC_TRNS , KC_TRNS , + KC_TRNS , MO(MEDIA) , KC_4 , KC_5 , KC_6 , DF(GAMES) , KC_NO , KC_4 , KC_5 , KC_6 , KC_TRNS , KC_TRNS , + KC_TRNS , KC_0 , KC_7 , KC_8 , KC_9 , DF(QWERTY), KC_NO , KC_1 , KC_2 , KC_3 , KC_TRNS , KC_TRNS , + KC_DOT , KC_TRNS , KC_TAB , KC_TRNS , KC_0 , KC_DOT +// +---------+---------------+------+--------+---------+-----------+-----------+------+--------+------+---------+---------+ + ), + + [FUNCTIONS] = LAYOUT_split_3x6_3( +// +---------------+---------+---------+---------+---------+---------+---------+---------+---------+-------+---------+---------+ + KC_TRNS , KC_TRNS , KC_TRNS , KC_F8 , KC_F9 , KC_F12 , KC_F12 , KC_F7 , KC_F8 , KC_F9 , KC_TRNS , KC_TRNS , + TG(FUNCTIONS) , KC_TRNS , KC_F4 , KC_F5 , KC_F6 , KC_F11 , KC_F11 , KC_F4 , KC_F5 , KC_F6 , KC_TRNS , KC_TRNS , + KC_TRNS , KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_F10 , KC_F10 , KC_F1 , KC_F2 , KC_F3 , KC_TRNS , KC_TRNS , + KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS +// +---------------+---------+---------+---------+---------+---------+---------+---------+---------+-------+---------+---------+ + ), + + [ARR] = LAYOUT_split_3x6_3( +// +---------+---------+-----------+---------+---------+------------+-----------+---------+---------+-----------+---------+---------+ + KC_TRNS , KC_TRNS , KC_HOME , KC_PGUP , KC_PGDN , KC_END , KC_HOME , KC_PGDN , KC_PGUP , KC_END , KC_TRNS , KC_TRNS , + KC_ENT , KC_DEL , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , KC_DEL , KC_TRNS , + KC_TRNS , KC_INS , C(KC_LEFT), KC_LGUI , KC_LALT , C(KC_RGHT) , C(KC_LEFT), DOWN4 , UP4 , C(KC_RGHT), KC_INS , KC_TRNS , + KC_TRNS , KC_F12 , KC_TRNS , KC_TRNS , KC_F12 , KC_TRNS +// +---------+---------+-----------+---------+---------+------------+-----------+---------+---------+-----------+---------+---------+ + ), + + [PUNC] = LAYOUT_split_3x6_3( +// +---------+------------+-----------+-----------+-------------+------------+------------+-------------+------------+------------+-----------+---------+ + ALTTAB , S(KC_1) , S(KC_2) , UC(0x20ac), S(KC_4) , S(KC_5) , S(KC_6) , S(KC_7) , S(KC_8) , S(KC_9) , S(KC_0) , KC_TRNS , + KC_TRNS , S(KC_NUBS) , S(KC_GRV) , KC_LBRC , KC_RBRC , S(KC_NUHS) , KC_QUOT , S(KC_LBRC) , S(KC_RBRC) , KC_MINS , S(KC_EQL) , KC_TRNS , + KC_TRNS , KC_NUBS , KC_GRV , KC_LGUI , KC_LALT , KC_NUHS , S(KC_QUOT) , KC_LALT , KC_LGUI , S(KC_MINS) , KC_EQL , KC_TRNS , + KC_TRNS , MO(DUBPUNC) , KC_MPLY , KC_TRNS , MO(DUBPUNC) , KC_TRNS +// +---------+------------+-----------+-----------+-------------+------------+------------+-------------+------------+------------+-----------+---------+ + ), + + [MEDIA] = LAYOUT_split_3x6_3( +// +------------+-----------+---------+---------+---------+----------------+----------------+---------+---------+---------+----------+---------+ + RESET , RGB_RMOD , RGB_MOD , RGB_TOG , RGB_HUD , RGB_HUI , RGB_HUD , RGB_HUI , RGB_TOG , RGB_RMOD, RGB_MOD , KC_SLEP , + KC_TRNS , KC_TRNS , KC_TRNS , KC_VOLD , KC_VOLU , RGB_MODE_PLAIN , RGB_MODE_PLAIN , KC_VOLD , KC_VOLU , KC_TRNS , KC_TRNS , KC_TRNS , + KC_TRNS , KC_TRNS , RGB_VAD , RGB_VAI , RGB_SAD , RGB_SAI , RGB_SAD , RGB_SAI , RGB_VAD , RGB_VAI , KC_TRNS , KC_TRNS , + KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS +// +------------+-----------+---------+---------+---------+----------------+----------------+---------+---------+---------+----------+---------+ + ), + + [DUBPUNC] = LAYOUT_split_3x6_3( +// +---------+----------+-----------+-----------+------------+---------+-----------+---------+----------+---------+----------+---------+ + KC_TRNS , KC_TRNS , KC_TRNS , UC(0x00a3), KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , U_UMLAUT , KC_TRNS , KC_TRNS , KC_TRNS , + KC_TRNS , A_UMLAUT , KC_TRNS , UC(0x00df), UC(0x2713) , KC_TRNS , UC(0x00b0), KC_TRNS , KC_TRNS , KC_TRNS , O_UMLAUT , KC_TRNS , + KC_TRNS , KC_TRNS , UC(0x2717), KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , + KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS +// +---------+----------+-----------+-----------+------------+---------+-----------+---------+----------+---------+----------+---------+ + ) +}; + +/* +[TEMPLATE] = LAYOUT_split_3x6_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 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , + KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS +// +--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+ +), +*/ diff --git a/keyboards/crkbd/keymaps/ollyhayes/oled.c b/keyboards/crkbd/keymaps/ollyhayes/oled.c new file mode 100644 index 0000000000..33db85fbb7 --- /dev/null +++ b/keyboards/crkbd/keymaps/ollyhayes/oled.c @@ -0,0 +1,112 @@ +/* Copyright 2022 Olly Hayes (@ollyhayes) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "ollyhayes.h" + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_NUM 8 +#define L_FUNCTIONS 16 +#define L_ARR 32 +#define L_PUNC 64 +#define L_DUBPUNC 128 +#define L_MEDIA 256 + +#define DL_COLEMAK 1 +#define DL_QWERTY 2 +#define DL_GAMES 4 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + switch (default_layer_state) { + case DL_QWERTY: + oled_write_ln_P(PSTR("Qwerty"), false); + break; + case DL_GAMES: + oled_write_ln_P(PSTR("Games"), false); + break; + case DL_COLEMAK: + default: + oled_write_ln_P(PSTR("Colemak"), false); + break; + } + break; + case L_NUM: + oled_write_ln_P(PSTR("Numbers"), false); + break; + case L_FUNCTIONS: + case L_FUNCTIONS|L_NUM: + oled_write_ln_P(PSTR("Functions"), false); + break; + case L_ARR: + oled_write_ln_P(PSTR("Navigation"), false); + break; + case L_PUNC: + oled_write_ln_P(PSTR("Punctuation"), false); + break; + case L_MEDIA: + case L_MEDIA|L_NUM: + oled_write_ln_P(PSTR("Media"), false); + break; + case L_DUBPUNC: + case L_DUBPUNC|L_PUNC: + oled_write_ln_P(PSTR("Specials"), false); + break; + } +} + +void oled_render_timer(void) { + static uint16_t microticks = 0; + static uint16_t ticks = 0; + + if (microticks++ % 1000 == 0) { + ticks++; + } + + oled_write_P(PSTR("Ticks: "), false); + oled_write_ln(get_u16_str(ticks, ' '), false); +} + +void oled_render_presses(void) { + oled_write_P(PSTR("Presses: "), false); + oled_write_ln(get_u16_str(key_presses, ' '), false); +} + +void oled_render_rgb_mode(void) { + oled_write_P(PSTR("Animation: "), false); + oled_write_ln(get_u8_str(rgb_matrix_get_mode(), ' '), false); +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + } + oled_render_timer(); + if (is_keyboard_master()) { + oled_render_presses(); + } + oled_render_rgb_mode(); + return false; +} diff --git a/keyboards/crkbd/keymaps/ollyhayes/readme.md b/keyboards/crkbd/keymaps/ollyhayes/readme.md new file mode 100644 index 0000000000..9e63f780ff --- /dev/null +++ b/keyboards/crkbd/keymaps/ollyhayes/readme.md @@ -0,0 +1,67 @@ +# ollyhayes's keymap for [Corne Keyboard (crkbd)](https://github.com/foostan/crkbd) + +## Keymap + +After many years of changing my keymap often and reperatedly, I finally came to a stable version. I've been using this for a while now with only small tweaks every so often. + +All layers are activated only whilst the layer key is held, except the default layers. + +Lots of keys are repeated on both sides. I find this really useful for two reasons: + +* I like to have the option to use the opposite hand to hold modifiers shift/ctrl etc as the hand pressing the key, I find this really comfortable. +* When using the mouse, I like to be able to do common things with just my left hand. + +### Colemak + +The base layer: + +![colemak](https://i.imgur.com/uxLJzul.png) + +### Navigation + +All things for moving the cursor around, inspired by vim. + +* `c←` is ctrl+left +* `↓↓↓↓` is ↓ pressed four times + +![navigation](https://i.imgur.com/xfkA0ze.png) + +### Symbols + +The shifted number row and all brackets and other symbols. + +* `a/t` is alt-tab for window switching in windows/linux. Using some special code to release alt when the punc key is released, this works quite nicely. + +![symbols](https://i.imgur.com/t9Jygs1.png) + +### Specials + +Some extra symbols (linux only for now) that work by sending UTF sequences. Layer activated by holding both punctuation layer keys. + +![specials](https://i.imgur.com/AtPWKrA.png) + +### Numbers + +Numbpads (left version is reversed so 1, 2, 3 are easy to reach with one hand (like on a regular keyboard). + +Also the keys to switch the default layer are here. + +![numbers](https://i.imgur.com/9XXcAXK.png) + +### Functions + +Function keys, nothing too interesting. + +![functions](https://i.imgur.com/ttrw3FJ.png) + +### Games (default layer) + +Used for some games, qwerty with space bar and alt for the left hand. + +![games](https://i.imgur.com/zVvHWKd.png) + +### Qwerty (default layer) + +Mostly for guests. + +![qwerty](https://i.imgur.com/Bqs1bjV.png) diff --git a/keyboards/crkbd/keymaps/ollyhayes/rules.mk b/keyboards/crkbd/keymaps/ollyhayes/rules.mk new file mode 100644 index 0000000000..2dcd9007e5 --- /dev/null +++ b/keyboards/crkbd/keymaps/ollyhayes/rules.mk @@ -0,0 +1,17 @@ +SRC += oled.c + +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 + +EXTRAKEY_ENABLE = yes +UNICODE_ENABLE = yes + +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = yes +# RGB_MATRIX_CUSTOM_USER = yes + +VIRTSER_ENABLE = yes + +LTO_ENABLE = yes + +MOUSEKEY_ENABLE = no diff --git a/keyboards/crkbd/keymaps/thunderbird2086/config.h b/keyboards/crkbd/keymaps/thunderbird2086/config.h new file mode 100644 index 0000000000..735caadaee --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/config.h @@ -0,0 +1,97 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define EE_HANDS +#define SPLIT_USB_DETECT + +// #define RGB_LAYER_ENABLE +#undef USE_I2C +#undef SSD1306OLED + +#define IGNORE_MOD_TAP_INTERRUPT +#define PERMISSIVE_HOLD + +#if defined(TAPPING_TERM) +# undef TAPPING_TERM +#endif +#define TAPPING_TERM 200 + +#define NO_ACTION_ONESHOT + +#if defined(OLED_ENABLE) +# define SPLIT_LAYER_STATE_ENABLE +# define SPLIT_LED_STATE_ENABLE +# define SPLIT_MODS_ENABLE +# define SPLIT_OLED_ENABLE +# define OLED_FONT_H "keyboards/crkbd/keymaps/thunderbird2086/glcdfont.c" +# undef OLED_TIMEOUT + // due to timer_read() for render_prompt(), we have own implementation of oled time out +# define OLED_KEY_TIMEOUT 30000 +# define KEY_LOG_ENABLE +#endif + +#define RGBLIGHT_SLEEP + +#if defined(RGBLIGHT_ENABLE) +# define RGBLIGHT_LIMIT_VAL 150 +# define RGBLIGHT_HUE_STEP 16 +# define RGBLIGHT_SAT_STEP 32 +# define RGBLIGHT_VAL_STEP 32 + +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_KNIGHT +#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 + // 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_STARTUP_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 +# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define 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_UP_DOWN +# 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_RAINBOW_PINWHEELS +# undef ENABLE_RGB_MATRIX_RAINDROPS +# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# 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 +#endif diff --git a/keyboards/crkbd/keymaps/thunderbird2086/glcdfont.c b/keyboards/crkbd/keymaps/thunderbird2086/glcdfont.c new file mode 100644 index 0000000000..97dc8fdaa3 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/glcdfont.c @@ -0,0 +1,238 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. +// https://helixfonteditor.netlify.com/ + +#include "progmem.h" + +// clang-format off +// Standard ASCII 5x7 font +static const unsigned char PROGMEM font[] = { + 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, 0x20, 0x20, 0xF8, + 0x0C, 0x04, 0xE7, 0xE4, 0xE4, 0x07, + 0x04, 0xE4, 0xE7, 0xE4, 0x04, 0x07, + 0xE4, 0xE4, 0xE7, 0x04, 0x0C, 0xF8, + 0x20, 0x20, 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, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, + 0x00, 0x77, 0x55, 0x7F, 0x14, 0x7F, + 0x55, 0x77, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x60, + 0x70, 0x3E, 0x1F, 0x19, 0x18, 0x0C, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x08, 0x08, 0x08, 0x00, 0x1C, + 0x22, 0x41, 0x41, 0x41, 0x22, 0x1C, + 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x08, 0x0C, 0x5E, 0x5F, 0x5E, 0x0C, + 0x00, 0x00, 0x00, 0x49, 0x49, 0xFF, + 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x38, + 0x30, 0xFF, 0xFF, 0xFF, 0x30, 0x38, + 0x3F, 0x1F, 0x0F, 0x00, 0x00, 0xFF, + 0x49, 0x49, 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, 0x00, 0x00, 0x06, 0x06, 0x06, + 0x0C, 0x18, 0x30, 0x66, 0x66, 0x66, + 0x08, 0x0C, 0x7E, 0x7F, 0x7E, 0x0C, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF0, 0x90, 0x90, 0xF0, 0x90, 0x90, + 0xF0, 0x98, 0x9C, 0xF2, 0x22, 0x21, + 0xE1, 0x01, 0x01, 0x01, 0xF1, 0x91, + 0x91, 0xFA, 0x4C, 0x4C, 0xF8, 0x48, + 0x48, 0xF8, 0x48, 0x48, 0xF8, 0x00, + 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, + 0x00, 0x1C, 0x22, 0x00, 0x00, 0x1C, + 0x3E, 0x7F, 0x63, 0x41, 0x22, 0x1C, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x02, 0x0F, + 0x18, 0x10, 0x70, 0x10, 0x10, 0x70, + 0x10, 0x13, 0x73, 0x13, 0x10, 0x70, + 0x10, 0x10, 0x70, 0x10, 0x18, 0x0F, + 0x02, 0x02, 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, + 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1, + 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x02, 0x39, 0xFC, 0xED, + 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00, + 0x07, 0x04, 0x04, 0x07, 0x04, 0x04, + 0x07, 0x04, 0x04, 0x0F, 0x09, 0x09, + 0x0F, 0x00, 0x00, 0x00, 0x07, 0x04, + 0x04, 0x07, 0x02, 0x02, 0x03, 0x02, + 0x02, 0x03, 0x02, 0x02, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, + 0x22, 0x41, 0x63, 0x7F, 0x3E, 0x1C, + 0x00, 0x00, 0x22, 0x1C, 0x00, 0x00, + 0x41, 0x22, 0x1C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; +// clang-format on diff --git a/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h b/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h new file mode 100644 index 0000000000..cb10a3ac07 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h @@ -0,0 +1,69 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +enum custom_keycodes { + // Layer Macros + COLEMAK = SAFE_RANGE, + QWERTY, + FUNCTION, + CODE, + ADJUST, + RGBRST, + // Secret Macros + M_XXX1, + M_XXX2, + M_XXX3, + M_XXX4, + M_XXX5, +}; + + +enum layers { + _COLEMAK, + _QWERTY, + _FUNCTION, + _CODE, + _ADJUST, + _SECRET, +}; + +// Shortcut Keys +#define K_BACK LGUI(KC_LBRC) // browser back +#define K_FWRD LGUI(KC_RBRC) // browser forward +#define K_LOCK LGUI(LCTL(KC_Q)) // Lock screen +#define K_CSCN LGUI(LCTL(LSFT(KC_4))) // Copy a portion of the screen to the clipboard +#define K_MDSH LSFT(LALT(KC_MINS)) + +// Layer Keys +#define FCT_BSP LT(_FUNCTION, KC_BSPC) +#define FCT_DEL LT(_FUNCTION, KC_DEL) + +#define FCT_ENT LT(_FUNCTION, KC_ENT) +#define RAI_ENT LT(_CODE , KC_ENT) + +#define FCT_EQL LT(_FUNCTION, KC_EQL) +#define RAI_EQL LT(_CODE , KC_EQL) + +#define FCT_SPC LT(_FUNCTION, KC_SPC) +#define RAI_SPC LT(_CODE , KC_SPC) + +#define FCT_TAB LT(_FUNCTION, KC_TAB) + +#define ADJ_EQL LT(_ADJUST, KC_EQL) +#define ADJ_GRV LT(_ADJUST, KC_GRV) + +// Mod-Tap Keys +#define SFT_SLSH MT(MOD_RSFT, KC_SLSH) +#define SFT_Z MT(MOD_LSFT, KC_Z) + +#define CTL_QUOT MT(MOD_RCTL, KC_QUOT) +#define CTL_SCLN MT(MOD_RCTL, KC_SCLN) +#define CTL_A MT(MOD_LCTL, KC_A) +#define CTL_O MT(MOD_LCTL, KC_O) + +#define M_LOPT_F MT(MOD_LALT, KC_F) +#define M_LOPT_T MT(MOD_LALT, KC_T) +#define RCMD_J MT(MOD_LGUI, KC_J) +#define RCMD_N MT(MOD_RGUI, KC_N) diff --git a/keyboards/crkbd/keymaps/thunderbird2086/keymap.c b/keyboards/crkbd/keymaps/thunderbird2086/keymap.c new file mode 100644 index 0000000000..7bc23db8aa --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/keymap.c @@ -0,0 +1,85 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "layers_block.h" + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_COLEMAK] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + T_TAB , ___________________COLEMAK_DH_L1_______________ , ___________________COLEMAK_DH_R1_______________ , KC_MINS , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + KC_LCTL , ___________________COLEMAK_DH_L2_______________ , ___________________COLEMAK_DH_R2_______________ , CTL_QUOT, + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + KC_LSFT , ___________________COLEMAK_DH_L3_______________ , ___________________COLEMAK_DH_R3_______________ , ADJ_EQL , + // +---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+ + _________MOD_LEFT__________ , _________MOD_RIGHT_________ + // \----------------------------/ \-----------------------------/ + ), + + [_QWERTY] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + T_TAB , ___________________QWERTY_L1___________________ , ___________________QWERTY_R1___________________ , KC_MINS , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + KC_LCTL , ___________________QWERTY_L2___________________ , ___________________QWERTY_R2___________________ , CTL_QUOT, + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + KC_LSFT , ___________________QWERTY_L3___________________ , ___________________QWERTY_R3___________________ , ADJ_EQL , + // +---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+ + _________MOD_LEFT__________ , _________MOD_RIGHT_________ + // \----------------------------/ \-----------------------------/ + ), + + [_FUNCTION] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + KC_ESC , ___________________FUNC_LEFT___________________ , ___________________FUNC_RIGHT__________________ , KC_F11 , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + K_CSCN , ____________________MEDIA_1____________________ , KC_DEL , _______________NAV_1_________________ , KC_F12 , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + _______ , ____________________MEDIA_2____________________ , KC_INS , _______________NAV_2_________________ , K_LOCK , + // +---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+ + _______MOD_TRNS_LEFT_______ , _______MOD_TRNS_RIGHT______ + // \----------------------------/ \-----------------------------/ + ), + + [_CODE] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + T_GRV , ___________________NUM_LEFT____________________ , ___________________NUM_RIGHT___________________ , KC_BSLS , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________SYMBOL_L1________________________ , ________________________SYMBOL_R1________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________SYMBOL_L2________________________ , ________________________SYMBOL_R2________________________ , + // +---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+ + _______MOD_TRNS_LEFT_______ , _______MOD_TRNS_RIGHT______ + // \----------------------------/ \-----------------------------/ + ), + + [_ADJUST] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + ________________________ADJUST_L1________________________ , ________________________ADJUST_R1________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________ADJUST_L2________________________ , ________________________ADJUST_R2________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________ADJUST_L3________________________ , ________________________ADJUST_R3________________________ , + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + _______ , _______ , _______ , _______ , _______ , _______ + // \----------------------------/ \-----------------------------/ + ), + + [_SECRET] = LAYOUT_wrapper( + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + ________________________SECRET_L1________________________ , ________________________SECRET_R1________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________SECRET_L2________________________ , ________________________SECRET_R2________________________ , + // |---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------| + ________________________SECRET_L3________________________ , ________________________SECRET_R3________________________ , + // +---------+---------+---------+---------+---------+---------+ +---------+---------+---------+---------+---------+---------+ + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + // \----------------------------/ \-----------------------------/ + ) +}; +// clang-format off + +layer_state_t layer_state_set_user(layer_state_t state) { + 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 new file mode 100644 index 0000000000..03d438306e --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h @@ -0,0 +1,89 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "keycodes.h" +#include "tap_dances.h" + +// Layout blocks +#define ___________________COLEMAK_DH_L1_______________ KC_Q , KC_W , KC_F , KC_P , KC_B +#define ___________________COLEMAK_DH_L2_______________ CTL_A , KC_R , KC_S , M_LOPT_T, KC_G +#define ___________________COLEMAK_DH_L3_______________ SFT_Z , KC_X , KC_C , KC_D , KC_V + +#define ___________________COLEMAK_DH_R1_______________ KC_J , KC_L , KC_U , KC_Y , KC_SCLN +#define ___________________COLEMAK_DH_R2_______________ KC_M , RCMD_N , KC_E , KC_I , CTL_O +#define ___________________COLEMAK_DH_R3_______________ KC_K , KC_H , KC_COMM , KC_DOT , SFT_SLSH + +#define ___________________QWERTY_L1___________________ KC_Q , KC_W , KC_E , KC_R , KC_T +#define ___________________QWERTY_L2___________________ CTL_A , KC_S , KC_D , M_LOPT_F, KC_G +#define ___________________QWERTY_L3___________________ SFT_Z , KC_X , KC_C , KC_V , KC_B + +#define ___________________QWERTY_R1___________________ KC_Y , KC_U , KC_I , KC_O , KC_P +#define ___________________QWERTY_R2___________________ KC_H , RCMD_J , KC_K , KC_L , CTL_SCLN +#define ___________________QWERTY_R3___________________ KC_N , KC_M , KC_COMM , KC_DOT , SFT_SLSH + +#define ___________________COLEMAK_L1__________________ KC_Q , KC_W , KC_F , KC_P , KC_G +#define ___________________COLEMAK_L2__________________ CTL_A , KC_R , KC_S , M_LOPT_T, KC_D +#define ___________________COLEMAK_L3__________________ SFT_Z , KC_X , KC_C , KC_V , KC_B + +#define ___________________COLEMAK_R1__________________ KC_J , KC_L , KC_U , KC_Y , KC_SCLN +#define ___________________COLEMAK_R2__________________ KC_H , RCMD_N , KC_E , KC_I , CTL_O +#define ___________________COLEMAK_R3__________________ KC_K , KC_M , KC_COMM , KC_DOT , SFT_SLSH + +#define ___________________NUM_LEFT____________________ KC_1 , KC_2 , KC_3 , KC_4 , KC_5 +#define ___________________NUM_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 ________________________SYMBOL_L1________________________ KC_TILD , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC +#define ________________________SYMBOL_L2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + +#define ________________________SYMBOL_R1________________________ KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_PIPE +#define ________________________SYMBOL_R2________________________ XXXXXXX , KC_LCBR , KC_RCBR , KC_LBRC , KC_RBRC , KC_PLUS + + +#define ________________________ADJUST_L1________________________ RESET , XXXXXXX , KC_PWR , KC_WAKE , KC_SLEP , XXXXXXX + +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) +# define ________________________ADJUST_L2________________________ RGBRST , XXXXXXX , RGB_SPI , RGB_SAI , RGB_HUI , RGB_VAI +# define ________________________ADJUST_L3________________________ EEP_RST , XXXXXXX , RGB_SPD , RGB_SAD , RGB_HUD , RGB_VAD +#else +# define ________________________ADJUST_L2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +# define ________________________ADJUST_L3________________________ EEP_RST , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#endif + +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) +# define ________________________ADJUST_R1________________________ RGB_TOG , XXXXXXX , XXXXXXX , XXXXXXX , COLEMAK , QWERTY +# define ________________________ADJUST_R3________________________ RGB_MOD , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#else +# define ________________________ADJUST_R1________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , COLEMAK , QWERTY +# define ________________________ADJUST_R3________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#endif +#define ________________________ADJUST_R2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + +#define ________________________SECRET_L1________________________ M_XXX1 , XXXXXXX , M_XXX3 , XXXXXXX , M_XXX5 , XXXXXXX +#define ________________________SECRET_L2________________________ XXXXXXX , M_XXX2 , XXXXXXX , M_XXX4 , XXXXXXX , XXXXXXX +#define ________________________SECRET_L3________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + +#define ________________________SECRET_R1________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#define ________________________SECRET_R2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +#define ________________________SECRET_R3________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX + +#define _______________NAV_1_________________ KC_LEFT , KC_UP , KC_RGHT , KC_PGUP +#define _______________NAV_2_________________ KC_HOME , KC_DOWN , KC_END , KC_PGDN + +#define _______________MOUSE_1_______________ KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_D +#define _______________MOUSE_2_______________ KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_U + +#define ____________________MEDIA_1____________________ KC_BRMU , KC_MFFD , KC_MPLY , KC_VOLU , K_BACK +#define ____________________MEDIA_2____________________ KC_BRMD , KC_MRWD , KC_MUTE , KC_VOLD , K_FWRD + +#define _________MOD_LEFT__________ T_GUI , FCT_DEL , RAI_SPC +#define _________MOD_RIGHT_________ RAI_ENT , FCT_BSP , KC_ROPT +#define _______MOD_TRNS_LEFT_______ KC_TRNS , T_ESC , XXXXXXX +#define _______MOD_TRNS_RIGHT______ XXXXXXX , T_ESC , KC_TRNS + +// Layout wrappers +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) diff --git a/keyboards/crkbd/keymaps/thunderbird2086/oled.c b/keyboards/crkbd/keymaps/thunderbird2086/oled.c new file mode 100644 index 0000000000..bee9bc26de --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/oled.c @@ -0,0 +1,298 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "keycodes.h" + + +// 5x3 Logos +void render_qmk_logo(void) { + static const char PROGMEM font_qmk_logo[16] = { + 0x80, 0x81, 0x82, 0x83, 0x84, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, + 0 + }; + oled_write_P(font_qmk_logo, false); +}; + +// 5x2 Keyboard, Controller logos +void render_kb_split(void) { + static const char PROGMEM font_kb_split[11] = { + 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, + 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, + 0 + }; + oled_write_P(font_kb_split, false); +}; + +// 5x1 Layer indicator + +void render_layer(void) { + static const char PROGMEM font_layer[4][6] = { + {0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0}, + {0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0}, + {0xda, 0xdb, 0xdc, 0xdd, 0xde, 0}, + {0x95, 0x96, 0x97, 0x98, 0x99, 0}, + }; + + uint8_t layer = 0; + if (layer_state_is(_FUNCTION)) { + layer = 1; + } else if (layer_state_is(_CODE)) { + layer = 2; + } else if (layer_state_is(_ADJUST)) { + layer = 3; + } + oled_write_P(font_layer[layer], false); +}; + + +void render_layers(void) { + static const char PROGMEM font_layers[4][16] = { + {0x20, 0x85, 0x86, 0x87, 0x20, + 0x20, 0xa5, 0xa6, 0xa7, 0x20, + 0x20, 0xc5, 0xc6, 0xc7, 0x20, + 0}, + {0x20, 0x88, 0x89, 0x8a, 0x20, + 0x20, 0xa8, 0xa9, 0xaa, 0x20, + 0x20, 0xc8, 0xc9, 0xca, 0x20, + 0}, + {0x20, 0x8b, 0x8c, 0x8d, 0x20, + 0x20, 0xab, 0xac, 0xad, 0x20, + 0x20, 0xcb, 0xcc, 0xcd, 0x20, + 0}, + {0x20, 0x8e, 0x8f, 0x90, 0x20, + 0x20, 0xae, 0xaf, 0xb0, 0x20, + 0x20, 0xce, 0xcf, 0xd0, 0x20, + 0}, + }; + + uint8_t layer = 0; + if (layer_state_is(_FUNCTION)) { + layer = 1; + } else if (layer_state_is(_CODE)) { + layer = 2; + } else if (layer_state_is(_ADJUST)) { + layer = 3; + } + oled_write_P(font_layers[layer], false); +}; + +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) + +void render_rgb_status(void) { + static const char PROGMEM font_rgb_off[3] = {0xd1, 0xd2, 0}; + static const char PROGMEM font_rgb_on[3] = {0xd3, 0xd4, 0}; + bool rgb_enabled = +# if defined(RGBLIGHT_ENABLE) + rgblight_is_enabled(); +# elif defined(RGB_MATRIX_ENABLE) + rgb_matrix_is_enabled(); +# endif + + oled_write_P(rgb_enabled ? font_rgb_on : font_rgb_off, false); +}; +#endif + +// 2x1 Ctrl, Alt, Shift, GUI, Caps + +void render_mod_ctrl(void) { + static const char PROGMEM font_ctrl[3] = {0x91, 0x92, 0}; + oled_write_P(font_ctrl, false); +}; + +void render_mod_alt(void) { + static const char PROGMEM font_alt[3] = {0xb1, 0xb2, 0}; + oled_write_P(font_alt, false); +}; + +void render_mod_shift(void) { + static const char PROGMEM font_shift[3] = {0xb3, 0xb4, 0}; + oled_write_P(font_shift, false); +}; + +void render_mod_gui(void) { + static const char PROGMEM font_gui[3] = {0x93, 0x94, 0}; + oled_write_P(font_gui, false); +}; + +void render_caps_lock(void) { + static const char PROGMEM font_caps[3] = {0x9f, 0xbf, 0}; + oled_write_P(font_caps, false); +}; + + +// 5x2 Mod and feature indicator clusters + +void render_mod_status(void) { +#if defined(NO_ACTION_ONESHOT) + uint8_t modifiers = get_mods(); +#else + uint8_t modifiers = get_mods() | get_oneshot_mods(); +#endif + + (modifiers & MOD_MASK_CTRL) ? render_mod_ctrl() : oled_write_P(PSTR(" "), false); + oled_write_P(PSTR(" "), false); + (modifiers & MOD_MASK_SHIFT) ? render_mod_shift() : oled_write_P(PSTR(" "), false); + + (modifiers & MOD_MASK_ALT) ? render_mod_alt() : oled_write_P(PSTR(" "), false); + oled_write_P(PSTR(" "), false); + (modifiers & MOD_MASK_GUI) ? render_mod_gui() : oled_write_P(PSTR(" "), false); + + led_t led_state = host_keyboard_led_state(); + (led_state.caps_lock) ? render_caps_lock() : oled_write_P(PSTR(" "), false); +} + +void render_feature_status(void) { +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) + render_rgb_status(); +#endif +}; + +// Keylogger +#define KEYLOGGER_LENGTH 5 +static char keylog_str[KEYLOGGER_LENGTH + 1] = {"\n"}; +// clang-format off +static const char PROGMEM code_to_name[0xFF] = { +// 0 1 2 3 4 5 6 7 8 9 A B C D E F + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x + 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x + '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x + ']','\\', '#', ';','\'', '`', ',', '.', '/', 128, ' ', ' ', ' ', ' ', ' ', ' ', // 3x + ' ', ' ', ' ', ' ', ' ', ' ', 'P', 'S', ' ', ' ', ' ', ' ', 16, ' ', ' ', ' ', // 4x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx + 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx +}; + + +#if defined(KEY_LOG_ENABLE) +void add_keylog(uint16_t keycode) { + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) + || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) + || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) { + keycode = keycode & 0xFF; + } else if (keycode > 0xFF) { + keycode = 0; + } + + for (uint8_t i = (KEYLOGGER_LENGTH - 1); i > 0; --i) { + keylog_str[i] = keylog_str[i - 1]; + } + + if (keycode < (sizeof(code_to_name) / sizeof(char))) { + keylog_str[0] = pgm_read_byte(&code_to_name[keycode]); + } +} +#endif + +static uint16_t key_timer = 0; +static bool is_key_processed = true; +bool process_record_oled(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + key_timer = timer_read(); + is_key_processed = true; + +# if defined(KEY_LOG_ENABLE) + add_keylog(keycode); +#endif + } + + return true; +} + + +void render_keylogger_status(void) { + oled_write(keylog_str, false); +} + + +void render_prompt(void) { + bool blink = (timer_read() % 1000) < 500; + + if (layer_state_is(_FUNCTION)) { + oled_write_ln_P(blink ? PSTR("> ft_") : PSTR("> ft "), false); + } else if (layer_state_is(_CODE)) { + oled_write_ln_P(blink ? PSTR("> sy_") : PSTR("> sy "), false); + } else if (layer_state_is(_ADJUST)) { + oled_write_ln_P(blink ? PSTR("> aj_") : PSTR("> aj "), false); + } else { + oled_write_ln_P(blink ? PSTR("> _ ") : PSTR("> "), false); + } +}; + + +void render_status_secondary(void) { + oled_write_ln("", false); + oled_write_ln("", false); + + render_kb_split(); + + oled_write_ln("", false); + oled_write_ln("", false); + oled_write_ln("", false); + + render_layer(); + + oled_write_ln("", false); + oled_write_ln("", false); + oled_write_ln("", false); + +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) + layer_state_is(_ADJUST) ? render_feature_status() : render_mod_status(); +#else + render_mod_status(); +#endif +}; + + +void render_status_main(void) { + oled_write_ln("", false); + oled_write_ln("", false); + + render_qmk_logo(); + + oled_write_ln("", false); + oled_write_ln("", false); + + render_layers(); + + oled_write_ln("", false); + oled_write_ln("", false); + + render_prompt(); + + oled_write_ln("", false); + + render_keylogger_status(); +} + + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + + +bool oled_task_user(void) { + if (is_keyboard_master()) { + if (is_key_processed && (timer_elapsed(key_timer) < OLED_KEY_TIMEOUT)) { + render_status_main(); + } else if (is_key_processed) { + is_key_processed = false; + oled_off(); + } + } else { + render_status_secondary(); + } + + return false; +} diff --git a/keyboards/crkbd/keymaps/thunderbird2086/process_records.c b/keyboards/crkbd/keymaps/thunderbird2086/process_records.c new file mode 100644 index 0000000000..381cf281e5 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/process_records.c @@ -0,0 +1,45 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#include "keycodes.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; +} + +#if defined(OLED_ENABLE) +__attribute__((weak)) +bool process_record_oled(uint16_t keycode, keyrecord_t *record) { + return true; +} +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; + } + + return process_record_keymap(keycode, record) && process_record_secrets(keycode, record) +# if defined(OLED_ENABLE) + && process_record_oled(keycode, record) +# endif + ; +} diff --git a/keyboards/crkbd/keymaps/thunderbird2086/readme.md b/keyboards/crkbd/keymaps/thunderbird2086/readme.md new file mode 100644 index 0000000000..6400309fe8 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/readme.md @@ -0,0 +1,65 @@ +# Thunderbird2086's custom CRKBD Layout + +The concept is Mac and **baby finger** friendly keymap. + +## Layers +- Colemak-DH: base layer. The option(⌥) and command(⌘) keys are assigned to thumb blocks as well as home position keys on each side. Also, far end two columns are assigned to shift(⇧) and control(⌃) keys. + ![colemak-dh](https://i.imgur.com/R7EzTTt.png) + - Thumb keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | Command(⌘) | Command(⌘) + Space(␣) | | + | Delete(⌦) | | Function layer | + | Backspace(⌫)| | Function layer | + | Space(␣) | | Code layer | + | Enter(⏎) | | Code layer | + - Staggered keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | TAB | Control(⌃) + TAB | | + | a | | Control(⌃) | + | z | | Shift(⇧) | + | t | | Option(⌥) | + | n | | Command(⌘) | + | o | | Control(⌃) | + | ' | | Control(⌃) | + | / | | Shift(⇧) | + | = | | Adjust layer | + +- QWERTY: same as Colemak-DH layer + ![qwery](https://i.imgur.com/v9JBwQu.png) + - Thumb keys : same as Colemak-DH + - Staggered keys : almost same as Colemak-DH except + | Tap | Double tap | Long tap | + | --- | --- | --- | + | f | | Option(⌥) | + | j | | Command(⌘) | + | ; | | Control(⌃) | + +- CODE: numbers and symbols. + ![symbol](https://i.imgur.com/BPgPlYX.png) + - Thumb keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | ESC | Caps lock | | + - Staggered keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | ` | Command(⌘) + ` | | + +- FUNCTION: function, meadia and navigation keys + ![function](https://i.imgur.com/cs5haUP.png) + - Thumb keys + | Tap | Double tap | Long tap | + | --- | --- | --- | + | ESC | Caps lock | | + +- ADJUST: RGB control, Power control, default layer setting and reset + ![adjust](https://i.imgur.com/uDIhigd.png) +- SECRET: hold `ADJUST` and `FUNCTION` to activate + +## Custom OLED +This keymap includes custom OLED font and code. The font contains some logos and status indidcators from [gotham](../gotham) and [soundmonster](../soundmonster) including my own CAPS LOCK icon. Enable OLED in rukes.mk to check it out. Feel free to reuse the font or parts of it. + +## Flashing +Flash using `make crkbd:thunderbird2086:avrdude` for Pro Micro and `make crkbd:thunderbird2086:dfu` for Elite-C. diff --git a/keyboards/crkbd/keymaps/thunderbird2086/rules.mk b/keyboards/crkbd/keymaps/thunderbird2086/rules.mk new file mode 100644 index 0000000000..4da48db08e --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/rules.mk @@ -0,0 +1,18 @@ +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +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 += tap_dances.c + +ifneq ("$(wildcard keyboards/crkbd/keymaps/thunderbird2086/secrets.c)","") + SRC += secrets.c +endif diff --git a/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.c b/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.c new file mode 100644 index 0000000000..1cf6fdf092 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.c @@ -0,0 +1,12 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "tap_dances.h" + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), + [TD_TAB_CTRLTAB] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, LCTL(KC_TAB)), + [TD_GRV_CTRLGRV] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, LGUI(KC_GRV)), + [TD_GUI_GUISPC] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, LGUI(KC_SPC)), +}; diff --git a/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.h b/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.h new file mode 100644 index 0000000000..34d3c4e32c --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/tap_dances.h @@ -0,0 +1,16 @@ +// Copyright 2021 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +enum custom_tapdances { + TD_ESC_CAPS = 0, + TD_TAB_CTRLTAB, + TD_GRV_CTRLGRV, + TD_GUI_GUISPC, +}; + +#define T_ESC TD(TD_ESC_CAPS) // Tap for ESC, double tap for CAPSLOCK +#define T_TAB TD(TD_TAB_CTRLTAB) // Tap for TAB, double tap for CTRL + TAB +#define T_GRV TD(TD_GRV_CTRLGRV) // Tap for GRV, double tap for Cmd + GRV +#define T_GUI TD(TD_GUI_GUISPC) // Tap for Cmd, double tap for Cmd + Space diff --git a/keyboards/custommk/evo70/config.h b/keyboards/custommk/evo70/config.h new file mode 100644 index 0000000000..f07560cb98 --- /dev/null +++ b/keyboards/custommk/evo70/config.h @@ -0,0 +1,51 @@ +/* Copyright 2021 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 "config_common.h" + +#define OLED_UPDATE_INTERVAL 33 + +#define BACKLIGHT_PIN B5 +#define BACKLIGHT_LIMIT_VAL 255 +#define BACKLIGHT_ON_STATE 0 +#define BACKLIGHT_LEVELS 17 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +#define OLED_DISABLE_TIMEOUT + +#define ENCODERS_PAD_A { C7 } +#define ENCODERS_PAD_B { D5 } +#define ENCODER_RESOLUTION 2 +#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 RGBLIGHT_LAYERS +#define RGBLIGHT_LIMIT_VAL 128 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4 + +#define RGBLIGHT_SLEEP \ No newline at end of file diff --git a/keyboards/custommk/evo70/evo70.c b/keyboards/custommk/evo70/evo70.c new file mode 100644 index 0000000000..4c15d03dd2 --- /dev/null +++ b/keyboards/custommk/evo70/evo70.c @@ -0,0 +1,811 @@ +/* Copyright 2021 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 "evo70.h" +#include +#include "matrix.h" +#include OLED_FONT_H + +//If Bongo cat not undefined, Scroll wheel will be enabled, +//but for scroll wheel to work, you must also set MOUSEKEY_ENABLE = yes +//in rules.mk +#define BONGOCAT + +/* Placement information for display elements */ +#define ENC_DISPLAY_X 0 +#define ENC_DISPLAY_Y 0 + +#define LAYER_DISPLAY_X 5 +#define LAYER_DISPLAY_Y 19 + +#define CAPSLOCK_DISPLAY_X 80 +#define CAPSLOCK_DISPLAY_Y 19 + +#define NUMLOCK_DISPLAY_X 105 +#define NUMLOCK_DISPLAY_Y 19 + +/* Encoder Parameters */ +static bool OLED_awakened = false; +static bool OLED_redraw = false; +static bool startup_complete = false; +static bool startup_delay = false; +static bool starting_up = false; + +#define ENCODER_MATRIX_ROW 5 +#define ENCODER_MATRIX_COL 6 + +#define ENC_SPLASH 0 +#define ENC_VOLUME 1 +#define ENC_MEDIA 2 +#define ENC_CUSTOM 3 +#define ENC_BL_BRIGHT 4 +#define ENC_BL_BREATH 5 +#define ENC_RGB_BRIGHT 6 +#define ENC_RGB_MODE 7 +#define ENC_RGB_COLOR 8 +#define ENC_SCROLL 9 +#ifdef BONGOCAT +#define ENC_BONGO 9 +#endif //bongocat + + +extern matrix_row_t matrix[MATRIX_ROWS]; + +char* enc_mode_str[] = { +#ifdef BONGOCAT + /* Splash */ "", \ + "Volume", \ + "Media Control", \ + "Custom", \ + "Backlight Brightness", \ + "Backlight Breathing", \ + "Underglow Brightness", \ + "Underglow Mode", \ + "Underglow Color", \ + "" // Bongo Cat +}; + +uint16_t enc_cw[] = { KC_VOLU, KC_VOLU, KC_MEDIA_NEXT_TRACK, KC_VOLU, 0, 0, 0, 0, 0, KC_VOLU }; +uint16_t enc_ccw[] = { KC_VOLD, KC_VOLD, KC_MEDIA_PREV_TRACK, KC_VOLD, 0, 0, 0, 0, 0, KC_VOLD }; +#else + /* Splash */ "", \ + "Volume", \ + "Media Control", \ + "Custom", \ + "Backlight Brightness", \ + "Backlight Breathing", \ + "Underglow Brightness", \ + "Underglow Mode", \ + "Underglow Color", \ + "Scroll Wheel" +}; + +uint16_t enc_cw[] = { KC_VOLU, KC_VOLU, KC_MEDIA_NEXT_TRACK, KC_VOLU, 0, 0, 0, 0, 0, KC_WH_U }; +uint16_t enc_ccw[] = { KC_VOLD, KC_VOLD, KC_MEDIA_PREV_TRACK, KC_VOLD, 0, 0, 0, 0, 0, KC_WH_D }; +#endif //bongocat + +uint8_t num_enc_modes = 10; + +uint8_t enc_mode_str_startpos[] = {0, 49, 28, 49, 7, 10, 7, 25, 22, 31}; + +uint8_t prev_layer = 255; +uint8_t prev_capslock = 255; +uint8_t prev_numlock = 255; + +typedef union { + uint32_t raw; + struct { + uint8_t enc_mode; + uint8_t breathingperiod; + bool oled_is_on : 1; + }; +} user_config_t; + +user_config_t user_config; + + + +/* OLED Draw Functions */ +/* TODO: Reimplement using Quantum Painter when available */ + +static void draw_line_h(uint8_t x, uint8_t y, uint8_t len, bool on) { + for (uint8_t i = 0; i < len; i++) { + oled_write_pixel(i + x, y, on); + } + } + + static void draw_line_v(uint8_t x, uint8_t y, uint8_t len, bool on) { + for (uint8_t i = 0; i < len; i++) { + oled_write_pixel(x, i + y, on); + } + } + +void draw_rect_soft(uint8_t x, uint8_t y, uint8_t width, uint8_t height, bool on) { + uint8_t tempHeight; + + draw_line_h(x + 1, y, width - 2, on); + draw_line_h(x + 1, y + height - 1, width - 2, on); + + tempHeight = height - 2; + + if (tempHeight < 1) return; + + draw_line_v(x, y + 1, tempHeight, on); + draw_line_v(x + width - 1, y + 1, tempHeight, on); +} + +void write_char_at_pixel_xy(uint8_t x, uint8_t y, const char data, bool invert) { + uint8_t i, j, temp; + uint8_t cast_data = (uint8_t)data; + + const uint8_t *glyph = &font[((uint8_t)cast_data - OLED_FONT_START) * OLED_FONT_WIDTH]; + temp = pgm_read_byte(glyph); + for (i = 0; i < OLED_FONT_WIDTH ; i++) { + for (j = 0; j < OLED_FONT_HEIGHT; j++) { + if (temp & 0x01) { + oled_write_pixel(x + i, y + j, !invert); + } else { + oled_write_pixel(x + i, y + j, invert); + } + temp >>= 1; + } + temp = pgm_read_byte(++glyph); + } +} + +void write_chars_at_pixel_xy(uint8_t x, uint8_t y, const char *data, bool invert) { + uint8_t c = data[0]; + uint8_t offset = 0; + while (c != 0) { + write_char_at_pixel_xy(x + offset, y, c, invert); + data++; + c = data[0]; + offset += 6; + } +} + + +void draw_rect_filled_soft(uint8_t x, uint8_t y, uint8_t width, uint8_t height, bool on) { + for (int i = x; i < x + width; i++) { + if (i == x || i == (x + width - 1)) + draw_line_v(i, y + 1, height - 2, on); + else + draw_line_v(i, y, height, on); + } +} + +void draw_text_rectangle(uint8_t x, uint8_t y, uint8_t width, char* str, bool filled) { + if (filled) { + draw_rect_filled_soft(x, y, width, 11, true); + write_chars_at_pixel_xy(x+3, y+2, str, true); + } else { + draw_rect_soft(x, y, width, 11, true); + write_chars_at_pixel_xy(x+3, y+2, str, false); + } +} + +void draw_keyboard_layer(void){ + uint8_t highest_layer; + highest_layer = get_highest_layer(layer_state); + draw_rect_filled_soft(LAYER_DISPLAY_X + highest_layer*12, LAYER_DISPLAY_Y, 11, 11, true); + + write_char_at_pixel_xy(LAYER_DISPLAY_X+3, LAYER_DISPLAY_Y+2, '0', highest_layer == 0); + write_char_at_pixel_xy(LAYER_DISPLAY_X+3+12, LAYER_DISPLAY_Y+2, '1', highest_layer == 1); + write_char_at_pixel_xy(LAYER_DISPLAY_X+3+24, LAYER_DISPLAY_Y+2, '2', highest_layer == 2); + write_char_at_pixel_xy(LAYER_DISPLAY_X+3+36, LAYER_DISPLAY_Y+2, '3', highest_layer == 3); + + draw_line_h(0, 14, 128, true); +} + + +static const uint8_t splash[] PROGMEM = { \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 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, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 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, 0x1c, 0x06, 0x02, 0x02, \ + 0x03, 0x03, 0x83, 0x83, 0x83, 0x83, 0x03, 0x03, 0x03, 0x03, 0x83, 0x83, 0x83, 0x83, 0x83, 0x03, \ + 0x03, 0x03, 0x83, 0x83, 0x83, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0x83, 0x83, 0x83, 0x03, \ + 0x02, 0x02, 0x06, 0x0c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0xf8, 0xfe, 0x87, 0xe1, 0xbf, 0x9f, 0x00, 0x00, \ + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xe0, 0xc0, 0xf8, 0x7f, 0x0f, 0xff, 0xff, 0x00, 0x00, \ + 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xc0, 0xf0, 0xf8, 0x3c, 0x1f, 0x0f, 0x03, 0x01, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0xff, 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, 0xc7, 0x83, \ + 0x83, 0x8f, 0xc6, 0xc0, 0xfe, 0xff, 0xc7, 0xc0, 0xf0, 0xff, 0xff, 0x81, 0xc0, 0xe0, 0x70, 0x9e, \ + 0x8f, 0xbf, 0xf8, 0xf0, 0x80, 0xc1, 0xe3, 0x7f, 0xff, 0xff, 0x83, 0x83, 0x83, 0xc1, 0xfc, 0xfe, \ + 0xff, 0x83, 0x83, 0xdf, 0xff, 0x7e, 0x18, 0x18, 0xfe, 0xff, 0xfb, 0x1c, 0x06, 0xff, 0xff, 0xff, \ + 0x3c, 0x0e, 0xe7, 0xff, 0xff, 0x80, 0xc0, 0xe0, 0x60, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, \ + 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x03, 0x03, 0x0f, 0x3f, 0x7c, 0xf8, 0xe0, 0x80, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x01, 0x01, \ + 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, \ + 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, \ + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, \ + 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x38, 0x20, 0x40, 0x40, \ + 0x40, 0x40, 0x43, 0x43, 0x43, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x43, 0x43, 0x40, 0x40, \ + 0x40, 0x40, 0x43, 0x43, 0x43, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x43, 0x43, 0x43, 0x40, \ + 0x40, 0x40, 0x60, 0x30, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +uint16_t startup_timer = 0; +bool redrawn_splash = false; + + +#ifdef BONGOCAT + + +#define ANIM_FRAME_DURATION 75 +#define IDLE_FRAMES 5 +#define IDLE_TIMEOUT 750 +#define SLEEP_TIMEOUT 15000 + + +static const uint8_t bongofont[] PROGMEM = { \ + 0xC1, 0xC1, 0xC2, 0x04, 0x08, 0x10, \ + 0xC0, 0x38, 0x04, 0x03, 0x00, 0x00, \ + 0xA0, 0x22, 0x24, 0x14, 0x12, 0x12, \ + 0xA0, 0x21, 0x22, 0x12, 0x11, 0x11, \ + 0x83, 0x7C, 0x41, 0x41, 0x40, 0x40, \ + 0x82, 0x82, 0x84, 0x08, 0x10, 0x20, \ + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, \ + 0x80, 0x70, 0x19, 0x06, 0x00, 0x00, \ + 0x80, 0x70, 0x0C, 0x03, 0x00, 0x00, \ + 0x80, 0x00, 0x30, 0x30, 0x00, 0xC0, \ + 0x80, 0x00, 0x30, 0x30, 0x00, 0x00, \ + 0x49, 0x88, 0x08, 0x08, 0x08, 0x00, \ + 0x44, 0x84, 0x04, 0x04, 0x00, 0x00, \ + 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, \ + 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, \ + 0x3C, 0xC2, 0x01, 0x01, 0x02, 0x02, \ + 0x35, 0x01, 0x8A, 0x7C, 0x00, 0x00, \ + 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, \ + 0x20, 0x21, 0x22, 0x12, 0x11, 0x11, \ + 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, \ + 0x1E, 0xE1, 0x00, 0x00, 0x01, 0x01, \ + 0x1C, 0xE2, 0x01, 0x01, 0x02, 0x02, \ + 0x18, 0x64, 0x82, 0x02, 0x02, 0x02, \ + 0x18, 0x60, 0x80, 0x00, 0x00, 0x00, \ + 0x18, 0x18, 0x1B, 0x03, 0x00, 0x40, \ + 0x18, 0x06, 0x05, 0x98, 0x99, 0x84, \ + 0x12, 0x0B, 0x08, 0x08, 0x08, 0x08, \ + 0x11, 0x09, 0x08, 0x08, 0x08, 0x08, \ + 0x10, 0x10, 0xD0, 0x11, 0x0F, 0x21, \ + 0x10, 0x10, 0x10, 0x11, 0x0F, 0x01, \ + 0x10, 0x08, 0x08, 0x04, 0x04, 0x04, \ + 0x10, 0x08, 0x04, 0x02, 0x02, 0x04, \ + 0x0C, 0x30, 0x40, 0x80, 0x00, 0x00, \ + 0x0C, 0x0C, 0x0D, 0x01, 0x00, 0x40, \ + 0x08, 0xE8, 0x08, 0x07, 0x10, 0x24, \ + 0x08, 0x30, 0x40, 0x80, 0x00, 0x00, \ + 0x08, 0x08, 0x08, 0x07, 0x00, 0x00, \ + 0x08, 0x08, 0x04, 0x02, 0x02, 0x02, \ + 0x08, 0x04, 0x02, 0x01, 0x01, 0x02, \ + 0x05, 0x05, 0x09, 0x09, 0x10, 0x10, \ + 0x04, 0x38, 0x40, 0x80, 0x00, 0x00, \ + 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, \ + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, \ + 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, \ + 0x02, 0x02, 0x81, 0x80, 0x80, 0x00, \ + 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, \ + 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, \ + 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, \ + 0x01, 0xE1, 0x1A, 0x06, 0x09, 0x31, \ + 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, \ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, \ + 0x00, 0x80, 0x40, 0x40, 0x20, 0x20, \ + 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, \ + 0x00, 0x00, 0x60, 0x60, 0x00, 0x81, \ + 0x00, 0x00, 0x01, 0x01, 0x00, 0x40, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + +static const uint8_t bongo_line_x[] = {51, 49, 48, 57}; +static const uint8_t bongo_line_y[] = {0, 8, 16, 24}; +static const uint8_t bongo_line_len[] = {5, 7, 8, 6}; + +const uint8_t bongo_line_data[8][26] PROGMEM = { + { //idle1 + 60, 52, 19, 30, 35, \ + 22, 47, 51, 60, 9, 0, 17, \ + 1, 57, 33, 3, 27, 41, 29, 50, \ + 45, 36, 60, 60, 60, 60}, \ + { //idle2 + 60, 52, 19, 30, 35, \ + 22, 47, 51, 60, 9, 0, 17, \ + 1, 57, 33, 3, 27, 41, 29, 50, \ + 45, 36, 60, 60, 60, 60}, \ + { //idle3 + 60, 53, 14, 31, 23, \ + 15, 43, 60, 60, 54, 5, 13, \ + 7, 56, 24, 2, 26, 39, 29, 50, \ + 45, 36, 60, 60, 60, 60}, \ + { //idle4 + 6, 52, 19, 38, 32, \ + 20, 47, 51, 60, 9, 0, 17, \ + 8, 57, 33, 3, 27, 41, 29, 50, \ + 45, 36, 60, 60, 60, 60}, \ + { //idle5 + 60, 52, 19, 37, 40, \ + 21, 47, 51, 60, 9, 0, 17, \ + 8, 57, 33, 3, 27, 41, 29, 50, \ + 45, 36, 60, 60, 60, 60}, \ + { //prep + 6, 52, 19, 38, 32, \ + 20, 44, 51, 60, 10, 48, 16, \ + 8, 25, 4, 18, 27, 42, 46, 50, \ + 60, 60, 60, 60, 60, 60}, \ + { //tap1 + 6, 52, 19, 38, 32, \ + 20, 44, 51, 60, 10, 49, 17, \ + 8, 25, 4, 18, 27, 41, 28, 11, \ + 60, 60, 60, 60, 58, 59}, \ + { //tap2 + 6, 52, 19, 38, 32, \ + 20, 47, 51, 60, 10, 48, 16, \ + 8, 60, 55, 3, 27, 42, 46, 50, \ + 45, 34, 12, 60, 60, 60} +}; + +enum anin_states { sleep, idle, prep, tap }; +uint8_t anim_state = idle; +uint32_t idle_timeout_timer = 0; +uint32_t anim_timer = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 6; +uint8_t last_bongo_frame = 12; + +void write_bongochar_at_pixel_xy(uint8_t x, uint8_t y, uint8_t data, bool invert) { + uint8_t i, j, temp; + for (i = 0; i < 6 ; i++) { // 6 = font width + temp = pgm_read_byte(&bongofont[data * 6]+i); + for (j = 0; j < 8; j++) { // 8 = font height + if (temp & 0x01) { + oled_write_pixel(x + i, y + j, !invert); + } else { + oled_write_pixel(x + i, y + j, invert); + } + temp >>= 1; + } + } +} + +bool is_key_down(void) { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + if (matrix[i] > 0) { + return true; + } + } + return false; +} + +void eval_anim_state(void) { + bool key_down; + key_down = is_key_down(); + + switch (anim_state) { + case sleep: + if(key_down) { anim_state = tap; } + break; + case idle: + if(key_down) { anim_state = tap; } + else if (timer_elapsed32(idle_timeout_timer) >= SLEEP_TIMEOUT) //prep to idle + { + anim_state = sleep; + current_idle_frame = 0; + } + break; + case prep: + if(key_down) { anim_state = tap; } + else if (timer_elapsed32(idle_timeout_timer) >= IDLE_TIMEOUT) //prep to idle + { + anim_state = idle; + current_idle_frame = 0; + } + break; + case tap: + if (!key_down) + { + anim_state = prep; + idle_timeout_timer = timer_read32(); + } + break; + default: + break; + } +} + +void draw_bongo_table(void) { + //draws the table edge for bongocat, this edge doesn't change during the animation + uint8_t i; + uint8_t y = 31; + uint8_t j = 0; + for (i = 17; i < 57; i++) { + oled_write_pixel(i, y, true); //every five horizontal pixels, move up one pixel to make a diagonal line + if (j == 4) { + --y; + j=0; + } else { + j++; + } + } + + y=15; + j=0; + for (i = 91; i < 128; i++) { + + oled_write_pixel(i, y, true); //every four horizontal pixels, move up one pixel to make a diagonal line + if (j == 3) { + --y; + j=0; + } else { + j++; + } + } + + +} + + +void draw_bongocat_frame(int framenumber) { + //only redraw if the animation frame has changed + if (framenumber != last_bongo_frame) { + last_bongo_frame = framenumber; + uint8_t i, j, current_bongochar = 0; + for (i = 0; i < 4; i++) { + for (j = 0; j < bongo_line_len[i]; j++) { + write_bongochar_at_pixel_xy(bongo_line_x[i] + j*6, bongo_line_y[i], pgm_read_byte(&bongo_line_data[framenumber][current_bongochar]), false); + current_bongochar++; + } + } + } + +} + +bool is_new_tap(void) { + static matrix_row_t old_matrix[] = { 0, 0, 0, 0, 0, 0 }; + bool new_tap = false; + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + if (matrix[i] > old_matrix[i]) { // more 1's detected, there was a new tap + new_tap = true; + } + old_matrix[i] = matrix[i]; + } + return new_tap; +} + +void draw_bongocat(void) { + static bool already_tapped = false; + if (is_new_tap()) { + already_tapped = false; + }; + eval_anim_state(); + switch (anim_state) { + case sleep: + draw_bongocat_frame(4); + break; + case idle: + draw_bongocat_frame(4 - current_idle_frame); + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + current_idle_frame = (current_idle_frame + 1) % 5; + anim_timer = timer_read32(); + } + break; + case prep: + draw_bongocat_frame(5); + already_tapped = false; + break; + case tap: + draw_bongocat_frame(current_tap_frame); + if (already_tapped == false) { + if (current_tap_frame == 6) { + current_tap_frame = 7; + } + else { + current_tap_frame = 6; + } + } + already_tapped = true; + break; + default: + draw_bongocat_frame(4); + already_tapped = false; + break; + + } +} + +#endif //BONGOCAT + +void draw_splash(void) { + uint8_t i, j, k, temp; + uint16_t count; + count = 0; + temp = pgm_read_byte(&splash[count]); + for (i = 0; i < 4 ; i++) { + for (j = 0; j < 128; j++) { + for (k = 0; k < 8; k++) { + if (temp & 0x01) { + oled_write_pixel(j, (i * 8) + k, true); + } else { + oled_write_pixel(j, (i * 8) + k, false); + } + temp >>= 1; + + } + temp = pgm_read_byte(&splash[++count]); + } + } +} + +void draw_media_arrow(uint8_t x, uint8_t y, bool fwd) { + draw_line_v(x, y, 7, true); + draw_line_v(x+4, y, 7, true); + draw_line_v(x+2, y+2, 3, true); + if (fwd) { + draw_line_v(x+1, y+1, 5, true); + oled_write_pixel(x+3, y+3, true); + } else { + draw_line_v(x+3, y+1, 5, true); + oled_write_pixel(x+1, y+3, true); + } +} + +void draw_enc_mode(void){ + write_chars_at_pixel_xy(enc_mode_str_startpos[user_config.enc_mode], ENC_DISPLAY_Y + 2, enc_mode_str[user_config.enc_mode], false); + if (user_config.enc_mode == ENC_MEDIA) { + draw_media_arrow(enc_mode_str_startpos[user_config.enc_mode] - 16, ENC_DISPLAY_Y + 2, false); + draw_media_arrow(enc_mode_str_startpos[user_config.enc_mode] + 88, ENC_DISPLAY_Y + 2, true); + } +} + +void draw_keyboard_locks(void) { + led_t led_state = host_keyboard_led_state(); + draw_text_rectangle(CAPSLOCK_DISPLAY_X, CAPSLOCK_DISPLAY_Y, 5 + (3 * 6), "CAP", led_state.caps_lock); + draw_text_rectangle(NUMLOCK_DISPLAY_X, NUMLOCK_DISPLAY_Y, 5 + (3 * 6), "NUM", led_state.num_lock); +} + + +/* Encoder handling functions */ + +__attribute__((weak)) void set_custom_encoder_mode_user(bool custom_encoder_mode) {} + +void update_custom_encoder_mode_user(void) { +#ifdef BONGOCAT + set_custom_encoder_mode_user((user_config.enc_mode == ENC_CUSTOM) || (user_config.enc_mode == ENC_SPLASH) || (user_config.enc_mode == ENC_BONGO)); +#else + set_custom_encoder_mode_user((user_config.enc_mode == ENC_CUSTOM) || (user_config.enc_mode == ENC_SPLASH)); +#endif +} + +void update_kb_eeprom(void) { + eeconfig_update_kb(user_config.raw); +} + +void update_breathing(void); +void matrix_init_kb(void) { + + user_config.raw = eeconfig_read_kb(); + if (user_config.enc_mode == 0xFF) { //EEPROM was cleared + user_config.enc_mode = 0; + user_config.oled_is_on = true; + user_config.breathingperiod = 1; + update_kb_eeprom(); + + } + startup_delay = true; + update_custom_encoder_mode_user(); + matrix_init_user(); +} + +void handle_encoder_switch_process_record(keyrecord_t *record) { + + static uint32_t encoder_press_timer = 0; + if (record->event.pressed) { + if (!user_config.oled_is_on) { + oled_on(); + user_config.oled_is_on = true; + OLED_awakened = true; + OLED_redraw = true; + update_kb_eeprom(); + } + encoder_press_timer = timer_read32(); + } else { + if (OLED_awakened == true) { + OLED_awakened = false; + } else { + if (timer_elapsed32(encoder_press_timer) < 300) { + + if (get_mods() & MOD_MASK_SHIFT) { + user_config.enc_mode = (user_config.enc_mode + (num_enc_modes- 1)) % num_enc_modes; + } else { + user_config.enc_mode = (user_config.enc_mode + 1) % num_enc_modes; + } + OLED_redraw = true; + update_custom_encoder_mode_user(); + update_kb_eeprom(); + } else { + OLED_redraw = false; + oled_clear(); + user_config.oled_is_on = false; + update_kb_eeprom(); + } + } + } + +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.key.row == ENCODER_MATRIX_ROW && record->event.key.col == ENCODER_MATRIX_COL){ + handle_encoder_switch_process_record(record); + } + return process_record_user(keycode, record); +} + +void update_breathing(void) { + if (user_config.breathingperiod == 1) { + breathing_disable(); + } + else { + breathing_period_set(user_config.breathingperiod); + breathing_enable(); + } + update_kb_eeprom(); +} + + +void backlight_breath_change(bool increase) { //increase period or decrease period + if ((increase) && (user_config.breathingperiod < 15)) { + user_config.breathingperiod++; + update_breathing(); + } + if (!increase) { + if (user_config.breathingperiod > 2) { + user_config.breathingperiod--; + update_breathing(); + } + else { + user_config.breathingperiod = 1; + update_breathing(); + + + } + } +} + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; + switch (user_config.enc_mode) { + case ENC_RGB_MODE : + if (clockwise) { + rgblight_step(); + } else { + rgblight_step_reverse(); + } + break; + case ENC_RGB_BRIGHT : + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + break; + case ENC_BL_BRIGHT : + if (clockwise) { + backlight_increase(); + } else { + backlight_decrease(); + } + break; + case ENC_BL_BREATH : + backlight_breath_change(clockwise); + break; + case ENC_RGB_COLOR : + if (clockwise) { + rgblight_increase_hue(); + } else { + rgblight_decrease_hue(); + } + break; + default: + if (clockwise) { + tap_code(enc_cw[user_config.enc_mode]); + } else { + tap_code(enc_ccw[user_config.enc_mode]); + } + } + return true; +} + + +void matrix_scan_kb(void) { + matrix_scan_user(); + led_t current_led_state = host_keyboard_led_state(); + uint8_t current_layer = get_highest_layer(layer_state); + if (startup_delay) { + startup_timer = timer_read(); + startup_delay = false; + startup_complete = false; + starting_up = true; + OLED_redraw = false; + } + else if (starting_up) { + if (timer_elapsed(startup_timer) >= 200) { + update_breathing(); + startup_complete = true; + starting_up = false; + if (user_config.oled_is_on) { + oled_on(); + OLED_redraw = true; + } else + { + oled_clear(); + user_config.oled_is_on = false; + } + } + } + if (startup_complete) { + if (user_config.enc_mode == ENC_SPLASH) { + if (user_config.oled_is_on && OLED_redraw) { + draw_splash(); + } + } + #ifdef BONGOCAT + else if (user_config.enc_mode == ENC_BONGO) { + if (user_config.oled_is_on) { + if (OLED_redraw) { + oled_clear(); + last_bongo_frame = 12; //force a redraw + draw_bongo_table(); + OLED_redraw = false; + } + draw_bongocat(); + + } + + } + #endif //BONGOCAT + else { + if (user_config.oled_is_on && ( + OLED_redraw + || (prev_layer != current_layer) + || (prev_capslock != current_led_state.caps_lock) + || (prev_numlock != current_led_state.num_lock))) { + + prev_layer = current_layer; + prev_capslock = current_led_state.caps_lock; + prev_numlock = current_led_state.num_lock; + + oled_clear(); + draw_keyboard_layer(); + draw_keyboard_locks(); + draw_enc_mode(); + } + } + OLED_redraw = false; + } + +} + diff --git a/keyboards/custommk/evo70/evo70.h b/keyboards/custommk/evo70/evo70.h new file mode 100644 index 0000000000..2766da19c9 --- /dev/null +++ b/keyboards/custommk/evo70/evo70.h @@ -0,0 +1,34 @@ +/* Copyright 2021 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 "quantum.h" + +#define LAYOUT( \ + K11, K61, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K62, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K66, K31, K63, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K57, K55, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ + K52, K54, K65, K51, K53, K56, K67, E00A, K59, K5A, E00B, K5C, K5D, K5E \ +) { \ + { K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E }, \ + { K51, K52, K53, K54, K55, K56, K57, E00A, K59, K5A, E00B, K5C, K5D, K5E }, \ + { K61, K62, K63, KC_NO, K65, K66, K67, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ +} diff --git a/keyboards/custommk/evo70/info.json b/keyboards/custommk/evo70/info.json new file mode 100644 index 0000000000..f3d132fd79 --- /dev/null +++ b/keyboards/custommk/evo70/info.json @@ -0,0 +1,111 @@ +{ + "keyboard_name": "EVO70", + "url": "https://www.customMK.com", + "maintainer": "customMK", + "manufacturer": "customMK", + "tags": ["70%", "encoder", "underglow", "backlight"], + "usb": { + "vid": "0xF35B", + "pid": "0xFAB5", + "device_version": "0.0.1" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["F1", "F4", "E6", "B1", "B7", "B0", "E2", "D4", "D6", "D7", "B4", "B3", "B6", "C6"], + "rows": ["D3", "D2", "F7", "F6", "F5", "F0"] + + }, + "debounce": 5, + "processor": "atmega32u4", + "rgblight": { + "led_count": 48, + "pin": "B2", + "hue_steps": 4, + "saturation_steps": 8, + "brightness_steps": 4, + "animations": { + "all": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"KC_ESC", "x":2.5, "y":1.1}, + {"label":"KC_1", "x":3.5, "y":1.1}, + {"label":"KC_2", "x":4.5, "y":1.1}, + {"label":"KC_3", "x":5.5, "y":1.1}, + {"label":"KC_4", "x":6.5, "y":1.1}, + {"label":"KC_5", "x":7.5, "y":1.1}, + {"label":"KC_6", "x":8.5, "y":1.1}, + {"label":"KC_7", "x":9.5, "y":1.1}, + {"label":"KC_8", "x":10.5, "y":1.1}, + {"label":"KC_9", "x":11.5, "y":1.1}, + {"label":"KC_0", "x":12.5, "y":1.1}, + {"label":"KC_MINS", "x":13.5, "y":1.1}, + {"label":"KC_EQL", "x":14.5, "y":1.1}, + {"label":"KC_BSPC", "x":15.5, "y":1.1, "w":2}, + {"label":"KC_DEL", "x":17.5, "y":1.1}, + {"label":"KC_TAB", "x":2.5, "y":2.1, "w":1.5}, + {"label":"KC_Q", "x":4, "y":2.1}, + {"label":"KC_W", "x":5, "y":2.1}, + {"label":"KC_E", "x":6, "y":2.1}, + {"label":"KC_R", "x":7, "y":2.1}, + {"label":"KC_T", "x":8, "y":2.1}, + {"label":"KC_Y", "x":9, "y":2.1}, + {"label":"KC_U", "x":10, "y":2.1}, + {"label":"KC_I", "x":11, "y":2.1}, + {"label":"KC_O", "x":12, "y":2.1}, + {"label":"KC_P", "x":13, "y":2.1}, + {"label":"KC_LBRC", "x":14, "y":2.1}, + {"label":"KC_RBRC", "x":15, "y":2.1}, + {"label":"KC_BSLS", "x":16, "y":2.1, "w":1.5}, + {"label":"KC_PGUP", "x":17.5, "y":2.1}, + {"label":"KC_F1", "x":0, "y":3.1}, + {"label":"KC_F2", "x":1, "y":3.1}, + {"label":"KC_CAPS", "x":2.5, "y":3.1, "w":1.75}, + {"label":"KC_A", "x":4.25, "y":3.1}, + {"label":"KC_S", "x":5.25, "y":3.1}, + {"label":"KC_D", "x":6.25, "y":3.1}, + {"label":"KC_F", "x":7.25, "y":3.1}, + {"label":"KC_G", "x":8.25, "y":3.1}, + {"label":"KC_H", "x":9.25, "y":3.1}, + {"label":"KC_J", "x":10.25, "y":3.1}, + {"label":"KC_K", "x":11.25, "y":3.1}, + {"label":"KC_L", "x":12.25, "y":3.1}, + {"label":"KC_SCLN", "x":13.25, "y":3.1}, + {"label":"KC_QUOT", "x":14.25, "y":3.1}, + {"label":"KC_ENT", "x":15.25, "y":3.1, "w":2.25}, + {"label":"KC_PGDN", "x":17.5, "y":3.1}, + {"label":"KC_F3", "x":0, "y":4.1}, + {"label":"KC_F4", "x":1, "y":4.1}, + {"label":"KC_LSFT", "x":2.5, "y":4.1, "w":2.25}, + {"label":"KC_Z", "x":4.75, "y":4.1}, + {"label":"KC_X", "x":5.75, "y":4.1}, + {"label":"KC_C", "x":6.75, "y":4.1}, + {"label":"KC_V", "x":7.75, "y":4.1}, + {"label":"KC_B", "x":8.75, "y":4.1}, + {"label":"KC_N", "x":9.75, "y":4.1}, + {"label":"KC_M", "x":10.75, "y":4.1}, + {"label":"KC_COMM", "x":11.75, "y":4.1}, + {"label":"KC_DOT", "x":12.75, "y":4.1}, + {"label":"KC_SLSH", "x":13.75, "y":4.1}, + {"label":"KC_RSFT", "x":14.75, "y":4.1, "w":1.75}, + {"label":"KC_UP", "x":16.5, "y":4.1}, + {"label":"KC_END", "x":17.5, "y":4.1}, + {"label":"KC_F5", "x":0, "y":5.1}, + {"label":"KC_F6", "x":1, "y":5.1}, + {"label":"KC_LCTL", "x":2.5, "y":5.1, "w":1.25}, + {"label":"KC_LGUI", "x":3.75, "y":5.1, "w":1.25}, + {"label":"KC_LALT", "x":5, "y":5.1, "w":1.25}, + {"label":"KC_SPC", "x":6.25, "y":5.1, "w":6.25}, + {"label":"KC_TRNS", "x":0.5, "y":1.1}, + {"label":"KC_VOLD", "x":0, "y":0}, + {"label":"KC_RALT", "x":12.5, "y":5.1, "w":1.25}, + {"label":"KC_RCTL", "x":13.75, "y":5.1, "w":1.25}, + {"label":"KC_VOLU", "x":1, "y":0}, + {"label":"KC_LEFT", "x":15.5, "y":5.1}, + {"label":"KC_DOWN", "x":16.5, "y":5.1}, + {"label":"KC_RGHT", "x":17.5, "y":5.1}] + } + } +} \ No newline at end of file diff --git a/keyboards/custommk/evo70/keymaps/default/keymap.c b/keyboards/custommk/evo70/keymaps/default/keymap.c new file mode 100644 index 0000000000..b9f843e52f --- /dev/null +++ b/keyboards/custommk/evo70/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 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( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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), + + [1] = LAYOUT( + RESET, KC_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_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), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/custommk/evo70/keymaps/default/readme.md b/keyboards/custommk/evo70/keymaps/default/readme.md new file mode 100644 index 0000000000..427180663d --- /dev/null +++ b/keyboards/custommk/evo70/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default EVO70 Layout + +This is the default layout for EVO70. \ No newline at end of file diff --git a/keyboards/custommk/evo70/keymaps/via/keymap.c b/keyboards/custommk/evo70/keymaps/via/keymap.c new file mode 100644 index 0000000000..5351f28814 --- /dev/null +++ b/keyboards/custommk/evo70/keymaps/via/keymap.c @@ -0,0 +1,98 @@ +/* Copyright 2021 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( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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), + + [1] = LAYOUT( + RESET, KC_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_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), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; + +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 +}; + +keyevent_t encoder_cw = { + .key = (keypos_t){.row = 4, .col = 10}, + .pressed = false +}; + + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (custom_encoder_mode) { + if (clockwise) { + encoder_cw.pressed = true; + encoder_cw.time = (timer_read() | 1); + action_exec(encoder_cw); + } + else { + encoder_ccw.pressed = true; + encoder_ccw.time = (timer_read() | 1); + action_exec(encoder_ccw); + } + return false; + } + return true; +} + +void matrix_scan_user(void) { + if (IS_PRESSED(encoder_ccw)) { + encoder_ccw.pressed = false; + encoder_ccw.time = (timer_read() | 1); + action_exec(encoder_ccw); + } + + if (IS_PRESSED(encoder_cw)) { + encoder_cw.pressed = false; + encoder_cw.time = (timer_read() | 1); + action_exec(encoder_cw); + } +} \ No newline at end of file diff --git a/keyboards/custommk/evo70/keymaps/via/readme.md b/keyboards/custommk/evo70/keymaps/via/readme.md new file mode 100644 index 0000000000..19f936fac7 --- /dev/null +++ b/keyboards/custommk/evo70/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# EVO70 Layout for VIA + +This is the via layout for the EVO70. It is identical to the default layout except VIA is enabled. \ No newline at end of file diff --git a/keyboards/custommk/evo70/keymaps/via/rules.mk b/keyboards/custommk/evo70/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/custommk/evo70/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/evo70/readme.md b/keyboards/custommk/evo70/readme.md new file mode 100644 index 0000000000..05c051ff80 --- /dev/null +++ b/keyboards/custommk/evo70/readme.md @@ -0,0 +1,21 @@ +# EVO70 + +EVO70 is a 70% keyboard (65% w/left side function cluster) designed and produced by customMK. + +![EVO70](https://i.imgur.com/JBiQF8Ch.jpg) + +* Keyboard Maintainer: [customMK](https://github.com/customMK) +* Hardware Supported: EVO70 +* 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:default + +Flashing example for this keyboard: + + make custommk/evo70:default:flash + +EVO70 has qmk-dfu bootloader preinstalled. 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 + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/rules.mk b/keyboards/custommk/evo70/rules.mk new file mode 100644 index 0000000000..5676d945f9 --- /dev/null +++ b/keyboards/custommk/evo70/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = qmk-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +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/custommk/genesis/rev1/config.h b/keyboards/custommk/genesis/rev1/config.h index 3393c53302..7bd527449b 100644 --- a/keyboards/custommk/genesis/rev1/config.h +++ b/keyboards/custommk/genesis/rev1/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF35B -#define PRODUCT_ID 0xFAB0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER customMK -#define PRODUCT GenesisRev1 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/custommk/genesis/rev1/info.json b/keyboards/custommk/genesis/rev1/info.json index a000b9cfbb..ef7838af56 100644 --- a/keyboards/custommk/genesis/rev1/info.json +++ b/keyboards/custommk/genesis/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Genesis Rev1", + "manufacturer": "customMK", "url": "https://www.customMK.com", "maintainer": "customMK", + "usb": { + "vid": "0xF35B", + "pid": "0xFAB0", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x4": { "layout": [{"label":"MO(1)", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"Mute", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"Pg Up", "x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Pg Dn", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"label":"Spc", "x":1, "y":4}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4}] diff --git a/keyboards/custommk/genesis/rev2/config.h b/keyboards/custommk/genesis/rev2/config.h index cbfda53f14..a8f6ae8644 100644 --- a/keyboards/custommk/genesis/rev2/config.h +++ b/keyboards/custommk/genesis/rev2/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF35B -#define PRODUCT_ID 0xFAB1 -#define DEVICE_VER 0x0001 -#define MANUFACTURER customMK -#define PRODUCT GenesisRev2 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/custommk/genesis/rev2/info.json b/keyboards/custommk/genesis/rev2/info.json index 16501ca1d1..8c94f48eab 100644 --- a/keyboards/custommk/genesis/rev2/info.json +++ b/keyboards/custommk/genesis/rev2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Genesis Rev2", + "manufacturer": "customMK", "url": "https://www.customMK.com", "maintainer": "customMK", + "usb": { + "vid": "0xF35B", + "pid": "0xFAB1", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x4": { "layout": [{"label":"MO(1)", "x":0, "y":0}, diff --git a/keyboards/cutie_club/borsdorf/config.h b/keyboards/cutie_club/borsdorf/config.h index 07452fdfb0..9c12a349e3 100644 --- a/keyboards/cutie_club/borsdorf/config.h +++ b/keyboards/cutie_club/borsdorf/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFB9C -#define PRODUCT_ID 0x6D8A -#define DEVICE_VER 0x0001 -#define MANUFACTURER Cutie Club -#define PRODUCT Borsdorf - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/cutie_club/borsdorf/info.json b/keyboards/cutie_club/borsdorf/info.json index 2f3941ba6e..b7fca0f340 100644 --- a/keyboards/cutie_club/borsdorf/info.json +++ b/keyboards/cutie_club/borsdorf/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Borsdorf", + "manufacturer": "Cutie Club", "url": "", "maintainer": "Cutie Club", + "usb": { + "vid": "0xFB9C", + "pid": "0x6D8A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cutie_club/giant_macro_pad/config.h b/keyboards/cutie_club/giant_macro_pad/config.h index c6ef81309d..c6b63dfa9c 100755 --- a/keyboards/cutie_club/giant_macro_pad/config.h +++ b/keyboards/cutie_club/giant_macro_pad/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFB9C -#define PRODUCT_ID 0x74B6 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Cutie Club -#define PRODUCT Cupar19 Giant Macro Pad - /* key matrix size */ #define MATRIX_ROWS 20 #define MATRIX_COLS 20 diff --git a/keyboards/cutie_club/giant_macro_pad/info.json b/keyboards/cutie_club/giant_macro_pad/info.json index f8225fdae7..c85bda93f3 100644 --- a/keyboards/cutie_club/giant_macro_pad/info.json +++ b/keyboards/cutie_club/giant_macro_pad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Cupar19 Giant Macro Pad", + "manufacturer": "Cutie Club", "url": "", "maintainer": "cutie-club", + "usb": { + "vid": "0xFB9C", + "pid": "0x74B6", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_all": "LAYOUT_ortho_20x20" }, diff --git a/keyboards/cutie_club/keebcats/denis/config.h b/keyboards/cutie_club/keebcats/denis/config.h index f7c21efe5e..32b93e1eaa 100644 --- a/keyboards/cutie_club/keebcats/denis/config.h +++ b/keyboards/cutie_club/keebcats/denis/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFB9C -#define PRODUCT_ID 0xB260 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Cutie Club -#define PRODUCT Keebcats Denis 60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/cutie_club/keebcats/denis/info.json b/keyboards/cutie_club/keebcats/denis/info.json index 72a84e62e8..0857feb552 100644 --- a/keyboards/cutie_club/keebcats/denis/info.json +++ b/keyboards/cutie_club/keebcats/denis/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Keebcats Denis", + "keyboard_name": "Keebcats Denis 80", + "manufacturer": "Cutie Club", "url": "", "maintainer": "Cutie Club", + "usb": { + "vid": "0xFB9C", + "pid": "0xB260", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cutie_club/keebcats/dougal/config.h b/keyboards/cutie_club/keebcats/dougal/config.h index 00d3f3a82d..616b7818f1 100644 --- a/keyboards/cutie_club/keebcats/dougal/config.h +++ b/keyboards/cutie_club/keebcats/dougal/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFB9C -#define PRODUCT_ID 0xB265 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Cutie Club -#define PRODUCT Keebcats Dougal 65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/cutie_club/keebcats/dougal/info.json b/keyboards/cutie_club/keebcats/dougal/info.json index f637be7a1a..2ed09a9e49 100644 --- a/keyboards/cutie_club/keebcats/dougal/info.json +++ b/keyboards/cutie_club/keebcats/dougal/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Keebcats Dougal", + "keyboard_name": "Keebcats Dougal 65", + "manufacturer": "Cutie Club", "url": "", "maintainer": "Cutie Club", + "usb": { + "vid": "0xFB9C", + "pid": "0xB265", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cutie_club/novus/config.h b/keyboards/cutie_club/novus/config.h index 842ec901d0..8fa4014ca3 100644 --- a/keyboards/cutie_club/novus/config.h +++ b/keyboards/cutie_club/novus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFB9C -#define PRODUCT_ID 0x3F42 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Cutie Club -#define PRODUCT Novus - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/cutie_club/novus/info.json b/keyboards/cutie_club/novus/info.json index 9e111e0a87..ce7e993efd 100644 --- a/keyboards/cutie_club/novus/info.json +++ b/keyboards/cutie_club/novus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Novus", + "manufacturer": "Cutie Club", "url": "", "maintainer": "Cutie Club", + "usb": { + "vid": "0xFB9C", + "pid": "0x3F42", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" }, diff --git a/keyboards/cutie_club/wraith/config.h b/keyboards/cutie_club/wraith/config.h index fa7467eb4a..f354efe72e 100644 --- a/keyboards/cutie_club/wraith/config.h +++ b/keyboards/cutie_club/wraith/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Amber -#define PRODUCT Wraith - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 8 diff --git a/keyboards/cutie_club/wraith/info.json b/keyboards/cutie_club/wraith/info.json index 40cade6f1a..f3f35d56ce 100644 --- a/keyboards/cutie_club/wraith/info.json +++ b/keyboards/cutie_club/wraith/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "wraith", + "keyboard_name": "Wraith", + "manufacturer": "Amber", "url": "", "maintainer": "amberstarlight", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/cx60/config.h b/keyboards/cx60/config.h index 5ff4865a77..a80c1398d8 100644 --- a/keyboards/cx60/config.h +++ b/keyboards/cx60/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4358 // "CX" -#define PRODUCT_ID 0x3630 // "60" -#define DEVICE_VER 0x0001 -#define MANUFACTURER CX60 -#define PRODUCT CX60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/cx60/info.json b/keyboards/cx60/info.json index fc301d45e6..4672a3e09f 100644 --- a/keyboards/cx60/info.json +++ b/keyboards/cx60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "CX60-VIA", + "keyboard_name": "CX60", + "manufacturer": "CX60", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4358", + "pid": "0x3630", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"label":"Up", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4}] diff --git a/keyboards/cybergear/macro25/config.h b/keyboards/cybergear/macro25/config.h index 982559ef37..7c85e2a486 100644 --- a/keyboards/cybergear/macro25/config.h +++ b/keyboards/cybergear/macro25/config.h @@ -17,7 +17,3 @@ #pragma once #include "config_common.h" - -/* USB Device descriptor parameter */ -#define MANUFACTURER CyberGear -#define PRODUCT Macro25 (mk-macro-01) diff --git a/keyboards/cybergear/macro25/info.json b/keyboards/cybergear/macro25/info.json index 951468fddf..adb0030b8e 100644 --- a/keyboards/cybergear/macro25/info.json +++ b/keyboards/cybergear/macro25/info.json @@ -1,5 +1,6 @@ { - "keyboard_name": "Macro225 (mk-macro-01)", + "keyboard_name": "Macro25 (mk-macro-01)", + "manufacturer": "CyberGear", "url": "https://github.com/CyberGear/mk-macro-01", "maintainer": "CyberGear", "usb": { diff --git a/keyboards/dailycraft/owl8/config.h b/keyboards/dailycraft/owl8/config.h index b0634c2566..3704497521 100644 --- a/keyboards/dailycraft/owl8/config.h +++ b/keyboards/dailycraft/owl8/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5946 // YF -#define PRODUCT_ID 0x0008 -#define DEVICE_VER 0x0001 -#define MANUFACTURER yfuku -#define PRODUCT owl8 - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 16 diff --git a/keyboards/dailycraft/owl8/info.json b/keyboards/dailycraft/owl8/info.json index e50484ba90..88b8ee94da 100644 --- a/keyboards/dailycraft/owl8/info.json +++ b/keyboards/dailycraft/owl8/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "owl8", + "manufacturer": "yfuku", "url": "", "maintainer": "yfuku", + "usb": { + "vid": "0x5946", + "pid": "0x0008", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/daji/seis_cinco/config.h b/keyboards/daji/seis_cinco/config.h index 1ca045a4a5..0472a84805 100644 --- a/keyboards/daji/seis_cinco/config.h +++ b/keyboards/daji/seis_cinco/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBF00 -#define PRODUCT_ID 0xBF22 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Daji -#define PRODUCT Seis Cinco - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/daji/seis_cinco/info.json b/keyboards/daji/seis_cinco/info.json index 7c213d216c..c155d3e238 100644 --- a/keyboards/daji/seis_cinco/info.json +++ b/keyboards/daji/seis_cinco/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Seis Cinco", + "manufacturer": "Daji", "url": "", "maintainer": "toraifu", + "usb": { + "vid": "0xBF00", + "pid": "0xBF22", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/db/db63/config.h b/keyboards/db/db63/config.h index 85625b7200..e938096a8e 100644 --- a/keyboards/db/db63/config.h +++ b/keyboards/db/db63/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once -#define VENDOR_ID 0xFAAD -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0200 -#define MANUFACTURER HNB -#define PRODUCT DB63v1 Hotswap - #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/db/db63/info.json b/keyboards/db/db63/info.json index e588de4879..99d71762fa 100644 --- a/keyboards/db/db63/info.json +++ b/keyboards/db/db63/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "db63", + "keyboard_name": "DB63v1 Hotswap", + "manufacturer": "HNB", "url": "http://www.keyboard-layout-editor.com/#/gists/dadea703fc8bfc87dc7c480de9f3ef38", "maintainer": "QMK Community", + "usb": { + "vid": "0xFAAD", + "pid": "0x422D", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dc01/arrow/config.h b/keyboards/dc01/arrow/config.h index e240d71e8e..0dc107bd51 100644 --- a/keyboards/dc01/arrow/config.h +++ b/keyboards/dc01/arrow/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x1012 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechboards -#define PRODUCT DC01 Arrow - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 3 diff --git a/keyboards/dc01/arrow/info.json b/keyboards/dc01/arrow/info.json index fccf577941..007e83d5cf 100644 --- a/keyboards/dc01/arrow/info.json +++ b/keyboards/dc01/arrow/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "DC01 Arrow Cluster", + "keyboard_name": "DC01 Arrow", + "manufacturer": "Mechboards", "url": "", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x1012", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Insert", "x":0, "y":0}, {"label":"Home", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"Delete", "x":0, "y":1}, {"label":"End", "x":1, "y":1}, {"label":"PgDn", "x":2, "y":1}, {"label":"\u2191", "x":1, "y":3}, {"label":"\u2190", "x":0, "y":4}, {"label":"\u2193", "x":1, "y":4}, {"label":"\u2192", "x":2, "y":4}] diff --git a/keyboards/dc01/left/config.h b/keyboards/dc01/left/config.h index d5b2962590..5ce6f43c26 100644 --- a/keyboards/dc01/left/config.h +++ b/keyboards/dc01/left/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x1010 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechboards -#define PRODUCT DC01 Left - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 21 diff --git a/keyboards/dc01/left/info.json b/keyboards/dc01/left/info.json index c2bc9337c5..f16677a44f 100644 --- a/keyboards/dc01/left/info.json +++ b/keyboards/dc01/left/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "DC01 Left Half", + "keyboard_name": "DC01 Left", + "manufacturer": "Mechboards", "url": "", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x1010", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Back", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Home", "x":16.25, "y":0}, {"label":"PgUp", "x":17.25, "y":0}, {"label":"Num Lock", "x":18.5, "y":0}, {"label":"/", "x":19.5, "y":0}, {"label":"*", "x":20.5, "y":0}, {"label":"-", "x":21.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"End", "x":16.25, "y":1}, {"label":"PgDn", "x":17.25, "y":1}, {"label":"7", "x":18.5, "y":1}, {"label":"8", "x":19.5, "y":1}, {"label":"9", "x":20.5, "y":1}, {"label":"+", "x":21.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":18.5, "y":2}, {"label":"5", "x":19.5, "y":2}, {"label":"6", "x":20.5, "y":2}, {"label":"+", "x":21.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Shift", "x":14, "y":3}, {"label":"\u2191", "x":16.25, "y":3}, {"label":"1", "x":18.5, "y":3}, {"label":"2", "x":19.5, "y":3}, {"label":"3", "x":20.5, "y":3}, {"label":"Enter", "x":21.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"label":"Fn", "x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}, {"label":"\u2190", "x":15.25, "y":4}, {"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}, {"label":"0", "x":18.5, "y":4}, {"label":"00", "x":19.5, "y":4}, {"label":".", "x":20.5, "y":4}, {"label":"Enter", "x":21.5, "y":4}] diff --git a/keyboards/dc01/numpad/config.h b/keyboards/dc01/numpad/config.h index 87c73ebc21..969d97e268 100644 --- a/keyboards/dc01/numpad/config.h +++ b/keyboards/dc01/numpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x1013 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechboards -#define PRODUCT DC01 Numpad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/dc01/numpad/info.json b/keyboards/dc01/numpad/info.json index 6a151aa93b..02158add29 100644 --- a/keyboards/dc01/numpad/info.json +++ b/keyboards/dc01/numpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "DC01 Numpad", + "manufacturer": "Mechboards", "url": "", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x1013", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}] diff --git a/keyboards/dc01/right/config.h b/keyboards/dc01/right/config.h index 60672e252d..e4dcfd549d 100644 --- a/keyboards/dc01/right/config.h +++ b/keyboards/dc01/right/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x1011 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechboards -#define PRODUCT DC01 Right - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 8 diff --git a/keyboards/dc01/right/info.json b/keyboards/dc01/right/info.json index 1eb6f17928..059eddad20 100644 --- a/keyboards/dc01/right/info.json +++ b/keyboards/dc01/right/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "DC01 Right Half", + "keyboard_name": "DC01 Right", + "manufacturer": "Mechboards", "url": "", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x1011", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"&", "x":0.5, "y":0}, {"label":"*", "x":1.5, "y":0}, {"label":"(", "x":2.5, "y":0}, {"label":")", "x":3.5, "y":0}, {"label":"_", "x":4.5, "y":0}, {"label":"+", "x":5.5, "y":0}, {"label":"Back", "x":6.5, "y":0}, {"label":"Del", "x":7.5, "y":0}, {"label":"Y", "x":0, "y":1}, {"label":"U", "x":1, "y":1}, {"label":"I", "x":2, "y":1}, {"label":"O", "x":3, "y":1}, {"label":"P", "x":4, "y":1}, {"label":"{", "x":5, "y":1}, {"label":"}", "x":6, "y":1}, {"label":"|", "x":7, "y":1, "w":1.5}, {"label":"H", "x":0.25, "y":2}, {"label":"J", "x":1.25, "y":2}, {"label":"K", "x":2.25, "y":2}, {"label":"L", "x":3.25, "y":2}, {"label":":", "x":4.25, "y":2}, {"label":"@", "x":5.25, "y":2}, {"label":"~", "x":6.25, "y":2}, {"label":"Enter", "x":7.25, "y":2, "w":1.25}, {"label":"N", "x":0.75, "y":3}, {"label":"M", "x":1.75, "y":3}, {"label":"<", "x":2.75, "y":3}, {"label":">", "x":3.75, "y":3}, {"label":"?", "x":4.75, "y":3}, {"label":"Shift", "x":5.75, "y":3, "w":1.75}, {"label":"Shift", "x":7.5, "y":3}, {"label":"Fn", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":2.25}, {"label":"AltGr", "x":3.5, "y":4, "w":1.25}, {"label":"Win", "x":4.75, "y":4, "w":1.25}, {"label":"Menu", "x":6, "y":4, "w":1.25}, {"label":"Ctrl", "x":7.25, "y":4, "w":1.25}] diff --git a/keyboards/dekunukem/duckypad/config.h b/keyboards/dekunukem/duckypad/config.h index 06f2ae807d..ca339f6e1b 100644 --- a/keyboards/dekunukem/duckypad/config.h +++ b/keyboards/dekunukem/duckypad/config.h @@ -22,12 +22,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x444E // "DN" -#define PRODUCT_ID 0x4450 // "DP" -#define DEVICE_VER 0x0001 // 1.0 -#define MANUFACTURER dekuNukem -#define PRODUCT duckyPad - #define MATRIX_ROWS 1 #define MATRIX_COLS 17 diff --git a/keyboards/dekunukem/duckypad/info.json b/keyboards/dekunukem/duckypad/info.json index e9e6e250c5..aaf68af2b2 100644 --- a/keyboards/dekunukem/duckypad/info.json +++ b/keyboards/dekunukem/duckypad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "duckyPad", + "manufacturer": "dekuNukem", "url": "https://github.com/dekuNukem/", "maintainer": "M4cs", + "usb": { + "vid": "0x444E", + "pid": "0x4450", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/delikeeb/flatbread60/config.h b/keyboards/delikeeb/flatbread60/config.h index 3de88a16f6..055eec6af5 100644 --- a/keyboards/delikeeb/flatbread60/config.h +++ b/keyboards/delikeeb/flatbread60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x9906 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER delikeeb -#define PRODUCT Flatbread60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/delikeeb/flatbread60/info.json b/keyboards/delikeeb/flatbread60/info.json index 6de1a7e827..0bb06feb9c 100644 --- a/keyboards/delikeeb/flatbread60/info.json +++ b/keyboards/delikeeb/flatbread60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "flatbread60", + "keyboard_name": "Flatbread60", + "manufacturer": "delikeeb", "url": "", "maintainer": "noclew", + "usb": { + "vid": "0x9906", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/delikeeb/vaguettelite/config.h b/keyboards/delikeeb/vaguettelite/config.h index 5ad1942437..c57dd2187a 100644 --- a/keyboards/delikeeb/vaguettelite/config.h +++ b/keyboards/delikeeb/vaguettelite/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x9906 -#define PRODUCT_ID 0x0011 -#define DEVICE_VER 0x0003 -#define MANUFACTURER dELIKEEb -#define PRODUCT Vaguette Lite - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 12 diff --git a/keyboards/delikeeb/vaguettelite/info.json b/keyboards/delikeeb/vaguettelite/info.json index f3e99b374c..7aa5dee3f2 100644 --- a/keyboards/delikeeb/vaguettelite/info.json +++ b/keyboards/delikeeb/vaguettelite/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "vaguettelite", + "keyboard_name": "Vaguette Lite", + "manufacturer": "dELIKEEb", "url": "", "maintainer": "noclew", + "usb": { + "vid": "0x9906", + "pid": "0x0011", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":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, "w":1.5}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2, "w":1.25}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3, "w":1.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4}, {"x":4.5, "y":4, "w":1.25}, {"x":5.75, "y":4, "w":2}, {"x":7.75, "y":4, "w":1.25}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] diff --git a/keyboards/delikeeb/vaneela/config.h b/keyboards/delikeeb/vaneela/config.h index 936c8eb5ec..c240196291 100644 --- a/keyboards/delikeeb/vaneela/config.h +++ b/keyboards/delikeeb/vaneela/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x9906 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER noclew -#define PRODUCT Vaneela - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/delikeeb/vaneela/info.json b/keyboards/delikeeb/vaneela/info.json index 20f0fa9f49..8f114b1778 100644 --- a/keyboards/delikeeb/vaneela/info.json +++ b/keyboards/delikeeb/vaneela/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Vaneela", + "manufacturer": "noclew", "url": "http://www.keyboard-layout-editor.com/#/gists/be89ff3a761a44280296994d459bd0a9", "maintainer": "qmk", + "usb": { + "vid": "0x9906", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/delikeeb/vaneela/keymaps/default/keymap.c b/keyboards/delikeeb/vaneela/keymaps/default/keymap.c index 57df91cd4d..b1d7401b9d 100644 --- a/keyboards/delikeeb/vaneela/keymaps/default/keymap.c +++ b/keyboards/delikeeb/vaneela/keymaps/default/keymap.c @@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FN] = LAYOUT_ortho_5x12( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______,_______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______,TERM_ON, TERM_OFF, KC_DEL, _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/delikeeb/vaneela/keymaps/via/keymap.c b/keyboards/delikeeb/vaneela/keymaps/via/keymap.c index 4bfee3daf5..65194b84d3 100644 --- a/keyboards/delikeeb/vaneela/keymaps/via/keymap.c +++ b/keyboards/delikeeb/vaneela/keymaps/via/keymap.c @@ -105,7 +105,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FN] = LAYOUT_ortho_5x12( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______,TERM_ON, TERM_OFF, KC_DEL, _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/delikeeb/vaneelaex/config.h b/keyboards/delikeeb/vaneelaex/config.h index 27d2420176..836402fcea 100644 --- a/keyboards/delikeeb/vaneelaex/config.h +++ b/keyboards/delikeeb/vaneelaex/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x9906 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER delikeeb -#define PRODUCT VaneelaEx - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 12 diff --git a/keyboards/delikeeb/vaneelaex/info.json b/keyboards/delikeeb/vaneelaex/info.json index 8ecd733aa2..d7f1e75673 100644 --- a/keyboards/delikeeb/vaneelaex/info.json +++ b/keyboards/delikeeb/vaneelaex/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "VaneelaEx", + "manufacturer": "delikeeb", "url": "http://www.keyboard-layout-editor.com/#/gists/f605c1a2cb2fea256161964740bd2a52", "maintainer": "qmk", + "usb": { + "vid": "0x9906", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ss_6x12": { "layout": [ diff --git a/keyboards/deltapad/config.h b/keyboards/deltapad/config.h index 186a11ee27..78c8027a04 100644 --- a/keyboards/deltapad/config.h +++ b/keyboards/deltapad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0123 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Richard Snijder -#define PRODUCT deltapad - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/deltapad/info.json b/keyboards/deltapad/info.json index 94fca5a9b4..abd6df5558 100644 --- a/keyboards/deltapad/info.json +++ b/keyboards/deltapad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "deltapad", + "manufacturer": "Richard Snijder", "url": "", "maintainer": "Richard Snijder", + "usb": { + "vid": "0xFEED", + "pid": "0x0123", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}] diff --git a/keyboards/demiurge/config.h b/keyboards/demiurge/config.h index b7e3c70b3c..fcc9960845 100755 --- a/keyboards/demiurge/config.h +++ b/keyboards/demiurge/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6F6A -#define PRODUCT_ID 0x6475 -#define DEVICE_VER 0x0001 -#define PRODUCT Demiurge - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/demiurge/info.json b/keyboards/demiurge/info.json index 427d7ce278..7e0435856b 100644 --- a/keyboards/demiurge/info.json +++ b/keyboards/demiurge/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Demiurge", + "manufacturer": "ojthetiny", "url": "", "maintainer": "ojthetiny", + "usb": { + "vid": "0x6F6A", + "pid": "0x6475", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/deng/djam/config.h b/keyboards/deng/djam/config.h new file mode 100644 index 0000000000..001b2ff19f --- /dev/null +++ b/keyboards/deng/djam/config.h @@ -0,0 +1,28 @@ +/* Copyright 2022 Leo Deng (@myst729) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "config_common.h" + +#define MATRIX_ROWS 3 +#define MATRIX_COLS 8 +#define MATRIX_ROW_PINS { F0, F1, F4 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4 } +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCE 5 + +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_LEVELS 5 diff --git a/keyboards/deng/djam/djam.c b/keyboards/deng/djam/djam.c new file mode 100644 index 0000000000..97bfda5ac5 --- /dev/null +++ b/keyboards/deng/djam/djam.c @@ -0,0 +1,16 @@ +/* Copyright 2022 Leo Deng (@myst729) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "djam.h" diff --git a/keyboards/deng/djam/djam.h b/keyboards/deng/djam/djam.h new file mode 100644 index 0000000000..bf740f736a --- /dev/null +++ b/keyboards/deng/djam/djam.h @@ -0,0 +1,28 @@ +/* Copyright 2022 Leo Deng (@myst729) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K005, K006, K007, \ + K100, K101, K102, K103, K104, K105, K106, K107, \ + K200, K201, K202, K203, K204, K205, K206 \ +) { \ + { K000, K001, K002, KC_NO, KC_NO, K005, K006, K007 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107 }, \ + { K200, K201, K202, K203, K204, K205, K206, KC_NO } \ +} diff --git a/keyboards/deng/djam/info.json b/keyboards/deng/djam/info.json new file mode 100644 index 0000000000..3e871ae85b --- /dev/null +++ b/keyboards/deng/djam/info.json @@ -0,0 +1,38 @@ +{ + "keyboard_name": "DJam", + "manufacturer": "Leo Deng", + "url": "", + "maintainer": "myst729", + "usb": { + "vid": "0xDE29", + "pid": "0x7325", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "x": 1, "y": 0 }, + { "x": 2, "y": 0 }, + { "x": 3, "y": 0 }, + { "x": 7, "y": 0 }, + { "x": 8, "y": 0 }, + { "x": 9, "y": 0 }, + { "x": 0, "y": 0.5, "h": 2 }, + { "x": 1, "y": 1 }, + { "x": 2, "y": 1 }, + { "x": 3, "y": 1 }, + { "x": 7, "y": 1 }, + { "x": 8, "y": 1 }, + { "x": 9, "y": 1 }, + { "x": 10, "y": 0.5, "h": 2 }, + { "x": 0, "y": 3 }, + { "x": 1, "y": 3 }, + { "x": 3, "y": 3, "w": 2 }, + { "x": 5, "y": 3 }, + { "x": 6, "y": 3, "w": 2 }, + { "x": 9, "y": 3 }, + { "x": 10, "y": 3 } + ] + } + } +} diff --git a/keyboards/deng/djam/keymaps/default/keymap.c b/keyboards/deng/djam/keymaps/default/keymap.c new file mode 100644 index 0000000000..724a915e66 --- /dev/null +++ b/keyboards/deng/djam/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2022 Leo Deng (@myst729) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_S, KC_D, KC_F, KC_J, KC_K, KC_L, + KC_A, KC_Z, KC_X, KC_C, KC_N, KC_M, KC_COMM, KC_SCLN, + KC_LEFT, KC_RGHT, BL_TOGG, KC_SPC, BL_STEP, KC_UP, KC_DOWN) +}; diff --git a/keyboards/deng/djam/keymaps/via/keymap.c b/keyboards/deng/djam/keymaps/via/keymap.c new file mode 100644 index 0000000000..87ff22eb29 --- /dev/null +++ b/keyboards/deng/djam/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2022 Leo Deng (@myst729) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_S, KC_D, KC_F, KC_J, KC_K, KC_L, + KC_A, KC_Z, KC_X, KC_C, KC_N, KC_M, KC_COMM, KC_SCLN, + KC_LEFT, KC_RGHT, BL_TOGG, KC_SPC, BL_STEP, KC_UP, KC_DOWN), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/deng/djam/keymaps/via/rules.mk b/keyboards/deng/djam/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/deng/djam/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/deng/djam/readme.md b/keyboards/deng/djam/readme.md new file mode 100644 index 0000000000..2af54464c0 --- /dev/null +++ b/keyboards/deng/djam/readme.md @@ -0,0 +1,23 @@ +# DJam + +![DJam](https://i.imgur.com/n95Y83h.jpeg) + +A custom controller for the music game DJMax. + +* Keyboard Maintainer: [Leo Deng](https://github.com/myst729) +* Hardware Supported: DJam controller with ATMEGA32U4 +* Hardware Availability: Private Groupbuy + +Make example for this keyboard (after setting up your build environment): + + make deng/djam:default + +Flashing example for this keyboard: + + make deng/djam: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 pressing the button on the back of the PCB. diff --git a/keyboards/deng/djam/rules.mk b/keyboards/deng/djam/rules.mk new file mode 100644 index 0000000000..4fa3df3f58 --- /dev/null +++ b/keyboards/deng/djam/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = 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 = yes # Enable keyboard backlight functionality +BACKLIGHT_DRIVER = pwm +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/dichotomy/config.h b/keyboards/dichotomy/config.h index c4bb030900..581f133571 100644 --- a/keyboards/dichotomy/config.h +++ b/keyboards/dichotomy/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xACC7 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Broekhuijsen -#define PRODUCT Dichotomy - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/dichotomy/info.json b/keyboards/dichotomy/info.json index e5f3265f35..094ccd67b3 100644 --- a/keyboards/dichotomy/info.json +++ b/keyboards/dichotomy/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Dichotomy", + "manufacturer": "Broekhuijsen", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xACC7", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [{"label":"k00", "x":0, "y":0.5}, {"label":"k01", "x":1, "y":0.5}, {"label":"k02", "x":2, "y":0.25}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0.5}, {"label":"k05", "x":5, "y":0.5}, {"label":"k06", "x":7, "y":0.5}, {"label":"k07", "x":8, "y":0.5}, {"label":"k08", "x":9, "y":0}, {"label":"k09", "x":10, "y":0.25}, {"label":"k0A", "x":11, "y":0.5}, {"label":"k0B", "x":12, "y":0.5}, {"label":"k10", "x":0, "y":1.5}, {"label":"k11", "x":1, "y":1.5}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1}, {"label":"k14", "x":4, "y":1.5}, {"label":"k15", "x":5, "y":1.5}, {"label":"k16", "x":7, "y":1.5}, {"label":"k17", "x":8, "y":1.5}, {"label":"k18", "x":9, "y":1}, {"label":"k19", "x":10, "y":1.25}, {"label":"k1A", "x":11, "y":1.5}, {"label":"k1B", "x":12, "y":1.5}, {"label":"k20", "x":0, "y":2.5}, {"label":"k21", "x":1, "y":2.5}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2}, {"label":"k24", "x":4, "y":2.5}, {"label":"k25", "x":5, "y":2.5}, {"label":"k26", "x":7, "y":2.5}, {"label":"k27", "x":8, "y":2.5}, {"label":"k28", "x":9, "y":2}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2A", "x":11, "y":2.5}, {"label":"k2B", "x":12, "y":2.5}, {"label":"k33", "x":3, "y":4}, {"label":"k34", "x":4, "y":4}, {"label":"k35", "x":5, "y":4}, {"label":"k36", "x":7, "y":4}, {"label":"k37", "x":8, "y":4}, {"label":"k38", "x":9, "y":4}, {"label":"k42", "x":2, "y":5}, {"label":"k43", "x":3, "y":5}, {"label":"k44", "x":4, "y":5}, {"label":"k45", "x":5, "y":5}, {"label":"k46", "x":7, "y":5}, {"label":"k47", "x":8, "y":5}, {"label":"k48", "x":9, "y":5}, {"label":"k49", "x":10, "y":5}] diff --git a/keyboards/dichotomy/keymaps/default/keymap.c b/keyboards/dichotomy/keymaps/default/keymap.c index 80fc4d89bc..b8c7ef4274 100755 --- a/keyboards/dichotomy/keymaps/default/keymap.c +++ b/keyboards/dichotomy/keymaps/default/keymap.c @@ -109,7 +109,7 @@ report_mouse_t currentReport = {}; bool process_record_user(uint16_t keycode, keyrecord_t *record) { //uint8_t layer; - //layer = get_highest_layer(layer_state); // get the current layer //Or don't, I didn't use it. + //layer = biton32(layer_state); // get the current layer //Or don't, I didn't use it. bool returnVal = true; //this is to determine if more key processing is needed. //custom layer handling for tri_layer, @@ -437,7 +437,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; void matrix_scan_user(void) { - //uint8_t layer = get_highest_layer(layer_state); + //uint8_t layer = biton32(layer_state); for (uint8_t i = 0; i= CUSTOM_LONGPRESS) && (!special_key_states[i]) && special_key_pressed[i]){ switch (i + SAFE_RANGE){ diff --git a/keyboards/dinofizz/fnrow/v1/config.h b/keyboards/dinofizz/fnrow/v1/config.h index fb7e4e91db..9560d18621 100644 --- a/keyboards/dinofizz/fnrow/v1/config.h +++ b/keyboards/dinofizz/fnrow/v1/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xD1F1 -#define PRODUCT_ID 0x0100 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Dino Fizzotti -#define PRODUCT FnRow v1 - #define MATRIX_ROWS 2 #define MATRIX_COLS 7 diff --git a/keyboards/dinofizz/fnrow/v1/info.json b/keyboards/dinofizz/fnrow/v1/info.json index b0dc34c43c..de21492393 100644 --- a/keyboards/dinofizz/fnrow/v1/info.json +++ b/keyboards/dinofizz/fnrow/v1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "FnRow v1", + "manufacturer": "Dino Fizzotti", "maintainer": "dinofizz", "url": "https://github.com/dinofizz/fnrow-pcb", + "usb": { + "vid": "0xD1F1", + "pid": "0x0100", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_fn_row": { "layout": [ diff --git a/keyboards/dk60/config.h b/keyboards/dk60/config.h index eef0ddc474..9fd0a69d64 100644 --- a/keyboards/dk60/config.h +++ b/keyboards/dk60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x56C2 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DARKOU -#define PRODUCT DK60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/dk60/info.json b/keyboards/dk60/info.json index f32bd47cfa..7d7cf4a7b0 100644 --- a/keyboards/dk60/info.json +++ b/keyboards/dk60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "DK60", + "manufacturer": "DARKOU", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x56C2", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dm9records/ergoinu/config.h b/keyboards/dm9records/ergoinu/config.h index e4fb80ad2e..7e6743d677 100644 --- a/keyboards/dm9records/ergoinu/config.h +++ b/keyboards/dm9records/ergoinu/config.h @@ -21,14 +21,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter - VID & PID are lisenced from microchip sublisence program, Don't use other project! */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEE60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Dm9Records -#define PRODUCT ergoinu - #define USE_SERIAL /* serial.c configuration for split keyboard */ diff --git a/keyboards/dm9records/ergoinu/info.json b/keyboards/dm9records/ergoinu/info.json index b9ce9ea5cb..10f67b05ac 100644 --- a/keyboards/dm9records/ergoinu/info.json +++ b/keyboards/dm9records/ergoinu/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ergoinu", + "manufacturer": "Dm9Records", "url": "", "maintainer": "hsgw(Takuya Urakawa)", + "usb": { + "vid": "0x04D8", + "pid": "0xEE60", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dm9records/lain/config.h b/keyboards/dm9records/lain/config.h index adc0d165c3..592b517ed2 100644 --- a/keyboards/dm9records/lain/config.h +++ b/keyboards/dm9records/lain/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE8F4 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Dm9Records -#define PRODUCT lain - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/dm9records/lain/info.json b/keyboards/dm9records/lain/info.json index 57e28d28dd..fd39c977fd 100644 --- a/keyboards/dm9records/lain/info.json +++ b/keyboards/dm9records/lain/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "lain", + "manufacturer": "Dm9Records", "url": "https://5z6p.com/lain", "maintainer": "hsgw", + "usb": { + "vid": "0x04D8", + "pid": "0xE8F4", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dm9records/plaid/config.h b/keyboards/dm9records/plaid/config.h index ab6b0fbabc..2ea548dd11 100644 --- a/keyboards/dm9records/plaid/config.h +++ b/keyboards/dm9records/plaid/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -/* VID & PID from vusb project, see tmk_core/protocol/vusb/USB-IDs-for-free.txt"*/ -#define VENDOR_ID 0x16c0 -#define PRODUCT_ID 0x27db -#define DEVICE_VER 0x0002 -#define MANUFACTURER dm9records -#define PRODUCT Plaid - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/dm9records/plaid/info.json b/keyboards/dm9records/plaid/info.json index 12c9e43c08..f4c6ae5281 100644 --- a/keyboards/dm9records/plaid/info.json +++ b/keyboards/dm9records/plaid/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Plaid // Through Hole", + "keyboard_name": "Plaid", + "manufacturer": "Dm9Records", "url": "https://github.com/hsgw/plaid", "maintainer": "hsgw(Takuya Urakawa)", + "usb": { + "vid": "0x16C0", + "pid": "0x27DB", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_plaid_mit": { "layout": [ diff --git a/keyboards/dm9records/plaid/keymaps/default/keymap.c b/keyboards/dm9records/plaid/keymaps/default/keymap.c index d96c250609..f11b744066 100644 --- a/keyboards/dm9records/plaid/keymaps/default/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/default/keymap.c @@ -195,7 +195,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_plaid_grid( QK_BOOT,LED_1, LED_2, LED_3, LED_4, LED_5,LED_6, LED_7, LED_8, LED_9, LED_0,KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/dm9records/plaid/keymaps/thehalfdeafchef/keymap.c b/keyboards/dm9records/plaid/keymaps/thehalfdeafchef/keymap.c index e617d0dd5f..6dcabb160e 100644 --- a/keyboards/dm9records/plaid/keymaps/thehalfdeafchef/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/thehalfdeafchef/keymap.c @@ -129,7 +129,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_laye // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _LOWER: diff --git a/keyboards/dm9records/tartan/config.h b/keyboards/dm9records/tartan/config.h index 4faec53721..0f608d2e33 100644 --- a/keyboards/dm9records/tartan/config.h +++ b/keyboards/dm9records/tartan/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -/* VID & PID from vusb project, see tmk_core/protocol/vusb/USB-IDs-for-free.txt"*/ -#define VENDOR_ID 0x16c0 -#define PRODUCT_ID 0x27db -#define DEVICE_VER 0x0001 -#define MANUFACTURER dm9records -#define PRODUCT Tartan - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/dm9records/tartan/info.json b/keyboards/dm9records/tartan/info.json index 32e018fde7..e2c64b943f 100644 --- a/keyboards/dm9records/tartan/info.json +++ b/keyboards/dm9records/tartan/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Tartan # Through Hole", + "keyboard_name": "Tartan", + "manufacturer": "Dm9Records", "url": "https://github.com/hsgw/tartan", "maintainer": "hsgw(Takuya Urakawa)", + "usb": { + "vid": "0x16C0", + "pid": "0x27DB", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/dmqdesign/spin/config.h b/keyboards/dmqdesign/spin/config.h index ee4f5bf490..8253c6030f 100644 --- a/keyboards/dmqdesign/spin/config.h +++ b/keyboards/dmqdesign/spin/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA455 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DMQ Design -#define PRODUCT SPIN - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 5 diff --git a/keyboards/dmqdesign/spin/info.json b/keyboards/dmqdesign/spin/info.json index 4d8c09c277..14db65cc65 100644 --- a/keyboards/dmqdesign/spin/info.json +++ b/keyboards/dmqdesign/spin/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "SPIN", + "manufacturer": "DMQ Design", "url": "https://www.DMQdesign.com", "maintainer": "Quarren42", + "usb": { + "vid": "0xA455", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/do60/config.h b/keyboards/do60/config.h index 8a0f324aa2..5832927baf 100644 --- a/keyboards/do60/config.h +++ b/keyboards/do60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4453 // DS for Doyu Studios -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Shopkey by Doyu Studio -#define PRODUCT Do60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/do60/info.json b/keyboards/do60/info.json index fbc1cb1c78..86e3e5f39a 100644 --- a/keyboards/do60/info.json +++ b/keyboards/do60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "do60", + "keyboard_name": "Do60", + "manufacturer": "Doyu Studio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4453", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"x":12, "y":3}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4}, {"label":"3u(Space)", "x":7.5, "y":4, "w":2.25}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] diff --git a/keyboards/doio/kb16/config.h b/keyboards/doio/kb16/config.h new file mode 100644 index 0000000000..043a492006 --- /dev/null +++ b/keyboards/doio/kb16/config.h @@ -0,0 +1,91 @@ +/* Copyright 2022 DOIO + * 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 + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 7 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D5, D4, D3, D2 } +#define MATRIX_COL_PINS { F5, F4, F1, F0, B7, B4, B5 } + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Forcing to use NKRO instead 6KRO */ +#define FORCE_NKRO + +/* Larger keys per scan */ +#define QMK_KEYS_PER_SCAN 12 + +/* Use the custom font */ +#define OLED_FONT_H "lib/glcdfont.c" + +/* Encoder pins */ +#define ENCODERS_PAD_A { F7, C7, D7 } +#define ENCODERS_PAD_B { E6, C6, D6 } + +#ifdef RGB_MATRIX_ENABLE + /* RGB Matrix config */ + #define RGB_DI_PIN F6 + #define DRIVER_LED_TOTAL 16 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_UP_DOWN + #define RGB_MATRIX_KEYPRESSES + + /* RGB Matrix effect */ + #define ENABLE_RGB_MATRIX_ALPHAS_MODS + #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #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_CYCLE_ALL + #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN + #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define ENABLE_RGB_MATRIX_DUAL_BEACON + #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define ENABLE_RGB_MATRIX_RAINDROPS + #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define ENABLE_RGB_MATRIX_HUE_BREATHING + #define ENABLE_RGB_MATRIX_HUE_PENDULUM + #define ENABLE_RGB_MATRIX_HUE_WAVE + #define ENABLE_RGB_MATRIX_PIXEL_RAIN + #define ENABLE_RGB_MATRIX_PIXEL_FLOW + #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL + + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + #define ENABLE_RGB_MATRIX_MULTISPLASH + #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/doio/kb16/info.json b/keyboards/doio/kb16/info.json new file mode 100644 index 0000000000..7cd02bce7b --- /dev/null +++ b/keyboards/doio/kb16/info.json @@ -0,0 +1,48 @@ +{ + "keyboard_name": "KB16-01", + "manufacturer": "DOIO", + "url": "", + "maintainer": "HorrorTroll", + "usb": { + "vid": "0xD010", + "pid": "0x1601", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"1!", "x":0, "y":0}, + {"label":"2@", "x":1, "y":0}, + {"label":"3#", "x":2, "y":0}, + {"label":"4$", "x":3, "y":0}, + + {"label":"Encoder 1 CCW", "x":4.25, "y":0, "w":0.5}, + {"label":"Encoder 1", "x":4.75, "y":0}, + {"label":"Encoder 1 CW", "x":5.75, "y":0, "w":0.5}, + + {"label":"5%", "x":0, "y":1}, + {"label":"6^", "x":1, "y":1}, + {"label":"7&", "x":2, "y":1}, + {"label":"8*", "x":3, "y":1}, + + {"label":"Encoder 2 CCW", "x":6.25, "y":0, "w":0.5}, + {"label":"Encoder 2", "x":6.75, "y":0}, + {"label":"Encoder 2 CW", "x":7.75, "y":0, "w":0.5}, + + {"label":"9(", "x":0, "y":2}, + {"label":"0)", "x":1, "y":2}, + {"label":"\u2191", "x":2, "y":2}, + {"label":"Enter", "x":3, "y":2}, + + {"label":"Encoder 3 CCW", "x":5.25, "y":2.5, "w":0.5}, + {"label":"Encoder 3", "x":5.75, "y":2.5}, + {"label":"Encoder 3 CW", "x":6.75, "y":2.5, "w":0.5}, + + {"label":"Fn", "x":0, "y":3}, + {"label":"\u2190", "x":1, "y":3}, + {"label":"\u2193", "x":2, "y":3}, + {"label":"\u2192", "x":3, "y":3} + ] + } + } +} diff --git a/keyboards/doio/kb16/kb16.c b/keyboards/doio/kb16/kb16.c new file mode 100644 index 0000000000..037f561e97 --- /dev/null +++ b/keyboards/doio/kb16/kb16.c @@ -0,0 +1,66 @@ +/* Copyright 2022 DOIO + * 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 . + */ + +#include "kb16.h" + +// OLED animation +#include "lib/logo.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 0, 1, 2, 3, NO_LED, NO_LED, NO_LED }, + { 4, 5, 6, 7, NO_LED, NO_LED, NO_LED }, + { 8, 9, 10, 11, NO_LED, NO_LED, NO_LED }, + { 12, 13, 14, 15, NO_LED, NO_LED, NO_LED } +}, { + {0 , 0}, {75 , 0}, {149, 0}, {224, 0}, + {0 , 21}, {75 , 21}, {149, 21}, {224, 21}, + {0 , 43}, {75 , 43}, {149, 43}, {224, 43}, + {0 , 64}, {75 , 64}, {149, 64}, {224, 64}, +}, { + 1, 1, 1, 1, + 1, 4, 4, 1, + 1, 4, 4, 1, + 1, 1, 1, 1, +} }; +#endif + +#ifdef OLED_ENABLE + uint16_t startup_timer; + + oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + startup_timer = timer_read(); + + return rotation; + } + + bool oled_task_kb(void) { + static bool finished_logo = false; + + if ((timer_elapsed(startup_timer) < 5000) && !finished_logo) { + render_logo(); + } else { + finished_logo = true; + + if (!oled_task_user()) { + return false; + } + } + + return true; + } +#endif diff --git a/keyboards/doio/kb16/kb16.h b/keyboards/doio/kb16/kb16.h new file mode 100644 index 0000000000..c4dc7cfed1 --- /dev/null +++ b/keyboards/doio/kb16/kb16.h @@ -0,0 +1,47 @@ +/* Copyright 2022 DOIO + * 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 + +#include "quantum.h" + +#define XXX KC_NO + +/* 06 ◯ 05 16 ◯ 15 + * ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + * │00 │01 │02 │03 │ │04 │ │14 │ + * ├───┼───┼───┼───┤ └───┘ └───┘ + * │10 │11 │12 │13 │ + * ├───┼───┼───┼───┤ 26 ◯ 25 + * │20 │21 │22 │23 │ ┌───┐ + * ├───┼───┼───┼───┤ │24 │ + * │30 │31 │32 │33 │ └───┘ + * └───┴───┴───┴───┘ + */ + +#define LAYOUT( \ + K00, K01, K02, K03, K06, K04, K05, \ + K10, K11, K12, K13, K16, K14, K15, \ + K20, K21, K22, K23, K26, K24, K25, \ + K30, K31, K32, K33 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06 }, \ + { K10, K11, K12, K13, K14, K15, K16 }, \ + { K20, K21, K22, K23, K24, K25, K26 }, \ + { K30, K31, K32, K33, XXX, XXX, XXX } \ +} + diff --git a/keyboards/doio/kb16/keymaps/bongocat/config.h b/keyboards/doio/kb16/keymaps/bongocat/config.h new file mode 100644 index 0000000000..bb22eebb1b --- /dev/null +++ b/keyboards/doio/kb16/keymaps/bongocat/config.h @@ -0,0 +1,45 @@ +/* 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 + +/* Additional thing to reduce compiled size */ +#define NO_ACTION_ONESHOT +#define LAYER_STATE_8BIT + +#ifdef RGB_MATRIX_ENABLE + /* RGB Matrix config */ + #undef RGB_MATRIX_KEYPRESSES + + /* RGB Matrix effect */ + #undef ENABLE_RGB_MATRIX_ALPHAS_MODS + #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_CYCLE_OUT_IN + #undef ENABLE_RGB_MATRIX_DUAL_BEACON + #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #undef ENABLE_RGB_MATRIX_RAINDROPS + #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #undef ENABLE_RGB_MATRIX_HUE_PENDULUM + #undef ENABLE_RGB_MATRIX_HUE_WAVE + #undef ENABLE_RGB_MATRIX_PIXEL_RAIN + #undef ENABLE_RGB_MATRIX_PIXEL_FLOW + #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#endif diff --git a/keyboards/doio/kb16/keymaps/bongocat/keymap.c b/keyboards/doio/kb16/keymaps/bongocat/keymap.c new file mode 100644 index 0000000000..b60688a385 --- /dev/null +++ b/keyboards/doio/kb16/keymaps/bongocat/keymap.c @@ -0,0 +1,180 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +// OLED animation +#include "oled/bongocat.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, + _FN1, + _FN2 +}; + +// enum layer_keycodes { }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ 1 │ 2 │ 3 │ 4 │ │Ply│ │TO1│ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ 5 │ 6 │ 7 │ 8 │ + ├───┼───┼───┼───┤ + │ 9 │ 0 │ ↑ │Ent│ ┌───┐ + ├───┼───┼───┼───┤ │Mut│ + │Fn2│ ← │ ↓ │ → │ └───┘ + └───┴───┴───┴───┘ + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ ! │ @ │ # │ $ │ │ │ │ │ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ % │ ^ │ & │ * │ + ├───┼───┼───┼───┤ + │ ( │ ) │ │ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │ │ │ │ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_BASE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_MPRV, KC_MPLY, KC_MNXT, + KC_5, KC_6, KC_7, KC_8, KC_PGDN, TO(_FN), KC_PGUP, + KC_9, KC_0, KC_UP, KC_ENT, KC_VOLD, KC_MUTE, KC_VOLU, + MO(_FN2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ │ │ │ │ │ │ │ │ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ │ │ │ │ + ├───┼───┼───┼───┤ + │ │ │ │ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │ │ │ │ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, TO(_FN1), _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ │ │ │ │ │ │ │ │ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ │ │ │ │ + ├───┼───┼───┼───┤ + │ │ │ │ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │ │ │ │ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_FN1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, TO(_FN2), _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │Spi│Spd│ │ │ │ │ │TO0│ + ├───┼───┼───┼───┤ └───┘ └───┘ + │Sai│Sad│ │ │ + ├───┼───┼───┼───┤ + │Tog│Mod│Hui│ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │Vai│Hud│Vad│ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_FN2] = LAYOUT( + RGB_SPI, RGB_SPD, _______, QK_BOOT, _______, _______, _______, + RGB_SAI, RGB_SAD, _______, _______, _______, TO(_BASE), _______, + RGB_TOG, RGB_MOD, RGB_HUI, _______, _______, _______, _______, + _______, RGB_VAI, RGB_HUD, RGB_VAD + ), +}; + +#ifdef OLED_ENABLE + bool oled_task_user(void) { + led_t led_usb_state = host_keyboard_led_state(); + + render_bongocat(); + oled_set_cursor(14, 0); // sets cursor to (column, row) using charactar spacing (4 rows on 128x32 screen, anything more will overflow back to the top) + oled_write_P(PSTR("WPM:"), false); + oled_write(get_u8_str(get_current_wpm(), '0'), false); // writes wpm on top right corner of string + oled_set_cursor(17, 2); + oled_write_P(led_usb_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); + oled_set_cursor(17, 3); + oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRL") : PSTR(" "), false); + + return true; + } +#endif + +#ifdef ENCODER_ENABLE + +#define ENCODERS 3 +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = {{ 5, 0 }, { 5, 1 }, { 5, 2 }}; +static keypos_t encoder_ccw[ENCODERS] = {{ 6, 0 }, { 6, 1 }, { 6, 2 }}; + +void encoder_action_unregister(void) { + for (int index = 0; index < ENCODERS; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t) { + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1) + }; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +} + +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() | 1) + }; + 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/doio/kb16/keymaps/bongocat/oled/bongocat.c b/keyboards/doio/kb16/keymaps/bongocat/oled/bongocat.c new file mode 100644 index 0000000000..12ca8694c1 --- /dev/null +++ b/keyboards/doio/kb16/keymaps/bongocat/oled/bongocat.c @@ -0,0 +1,378 @@ +/* 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 . + */ + +#include "quantum.h" + +// WPM-responsive animation stuff here +#define IDLE_FRAMES 5 +#define IDLE_SPEED 10 // below this wpm value your animation will idle +// #define PREP_FRAMES 1 // uncomment if >1 +#define TAP_FRAMES 2 +#define ANIM_WPM_LOWER 20 // above this wpm value typing animation to trigger +#define ANIM_FRAME_DURATION_MAX 450 // longest animation duration in ms +#define ANIM_FRAME_DURATION_MIN 100 // shortest animation duration in ms +#define IDLE_FRAME_DURATION 300 // how long each frame lasts in ms +#define ANIM_FRAME_RATIO 2.5 // how aggressively animation speeds up with wpm +// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing +#define ANIM_SIZE 525 // number of bytes in array, minimize for adequate firmware size, max is 1024 +#define MAX(x, y) (((x) > (y)) ? (x) : (y)) // Math.max macro + +uint32_t curr_anim_duration = 0; // variable animation duration +uint32_t bongo_timer = 0; +uint32_t bongo_sleep = 0; +uint8_t current_idle_frame = 0; +// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 +uint8_t current_tap_frame = 0; + +// Code containing pixel art, contains: +// 5 idle frames, 1 prep frame, and 2 tap frames + +// To make your own pixel art: +// save a png/jpeg of an 128x32 image (resource: https://www.pixilart.com/draw ) +// follow this guide up to and including "CONVERT YOUR IMAGE" https://docs.splitkb.com/hc/en-us/articles/360013811280-How-do-I-convert-an-image-for-use-on-an-OLED-display- +// replace numbers in brackets with your own +// if you start getting errors when compiling make sure you didn't accedentally delete a bracket +void render_bongocat(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { + { + //Idle 1 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0xf8, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 2 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x9f, 0x9f, 0xff, + 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1e, 0x1e, 0x3f, 0x3d, 0x3d, 0x3e, 0x7f, 0x7f, 0x7f, 0x7f, 0xf9, 0xf9, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 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, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 3 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x9f, 0x9f, 0xff, + 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1e, 0x1e, 0x3f, 0x3d, 0x3d, 0x3e, 0x7f, 0x7f, 0x7f, 0x7f, 0xf9, 0xf9, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 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, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 4 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0x3c, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 5 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0xf8, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x0f, 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, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + } + }; + + static const char PROGMEM prep[][ANIM_SIZE] = { + { + //Prepare - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0xf0, 0xf8, + 0xdc, 0x36, 0x3e, 0xee, 0xfc, 0xe0, 0x9c, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7e, 0xbe, 0xbc, 0xbc, 0x7c, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x44, 0xc4, 0xc4, 0x68, 0x78, + 0x59, 0x89, 0x91, 0x91, 0xd3, 0xf3, 0xa3, 0x23, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0x81, + 0xfa, 0xff, 0xe6, 0xe7, 0xfd, 0xff, 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x13, 0x12, 0x3c, + 0x2c, 0x26, 0x27, 0x45, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x34, 0x3c, 0x2c, 0x44, 0xc8, 0xc8, + 0xe9, 0xb9, 0x11, 0x11, 0x13, 0x93, 0xe3, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + } + }; + + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + { + //Tap left - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0xf0, 0xf8, + 0xdc, 0x36, 0x3e, 0xee, 0xfc, 0xe0, 0x9c, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x44, 0xc4, 0xc4, 0x68, 0x78, + 0x59, 0x89, 0x91, 0x91, 0xd3, 0xf3, 0xa3, 0x23, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x3f, 0x1f, 0x07, 0x83, 0xc0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x13, 0x12, 0x3c, + 0x2c, 0x26, 0x27, 0x45, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x11, 0x11, 0x21, 0x23, 0x23, 0x21, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Tap right - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0xa0, 0xa0, 0x20, 0x20, 0x40, 0x46, 0x4f, 0x5f, 0x9f, 0x9c, 0x90, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7e, 0xbe, 0xbc, 0xbc, 0x7c, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x0f, 0x8f, 0xc7, 0xe3, 0x31, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0x81, + 0xfa, 0xff, 0xe6, 0xe7, 0xfd, 0xff, 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x34, 0x3c, 0x2c, 0x44, 0xc8, 0xc8, + 0xe9, 0xb9, 0x11, 0x11, 0x13, 0x93, 0xe3, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + }; + + // assumes 1 frame prep stage + 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() < ANIM_WPM_LOWER) { + // oled_write_raw_P(prep[abs((PREP_FRAMES-1)-current_prep_frame)], ANIM_SIZE); // uncomment if IDLE_FRAMES >1 + oled_write_raw_P(prep[0], ANIM_SIZE); // remove if IDLE_FRAMES >1 + } + + if (get_current_wpm() >= ANIM_WPM_LOWER) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + + // variable animation duration. Don't want this value to get near zero as it'll bug out. + curr_anim_duration = MAX(ANIM_FRAME_DURATION_MIN, ANIM_FRAME_DURATION_MAX - ANIM_FRAME_RATIO * get_current_wpm()); + + if (get_current_wpm() > ANIM_WPM_LOWER) { + oled_on(); // not essential but turns on animation OLED with any alpha keypress + + if (timer_elapsed32(bongo_timer) > curr_anim_duration) { + bongo_timer = timer_read32(); + animation_phase(); + } + + bongo_sleep = timer_read32(); + } else { + if (timer_elapsed32(bongo_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(bongo_timer) > IDLE_FRAME_DURATION) { + bongo_timer = timer_read32(); + animation_phase(); + } + } + } +} diff --git a/keyboards/doio/kb16/keymaps/bongocat/oled/bongocat.h b/keyboards/doio/kb16/keymaps/bongocat/oled/bongocat.h new file mode 100644 index 0000000000..65ceabc682 --- /dev/null +++ b/keyboards/doio/kb16/keymaps/bongocat/oled/bongocat.h @@ -0,0 +1,17 @@ +/* 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 . + */ + +void render_bongocat(void); diff --git a/keyboards/doio/kb16/keymaps/bongocat/rules.mk b/keyboards/doio/kb16/keymaps/bongocat/rules.mk new file mode 100644 index 0000000000..087a45a944 --- /dev/null +++ b/keyboards/doio/kb16/keymaps/bongocat/rules.mk @@ -0,0 +1,9 @@ +SRC += oled/bongocat.c + +VIA_ENABLE = yes + +# Additional thing to reduce compiled size +GRAVE_ESC_ENABLE = no + +# OLED enabled +WPM_ENABLE = yes diff --git a/keyboards/doio/kb16/keymaps/default/keymap.c b/keyboards/doio/kb16/keymaps/default/keymap.c new file mode 100644 index 0000000000..0d229c753b --- /dev/null +++ b/keyboards/doio/kb16/keymaps/default/keymap.c @@ -0,0 +1,137 @@ +/* Copyright 2022 DOIO + * 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 . + */ + +#include QMK_KEYBOARD_H + +// OLED animation +#include "lib/layer_status/layer_status.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, + _FN1, + _FN2 +}; + +// enum layer_keycodes { }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ 1 │ 2 │ 3 │ 4 │ │Ply│ │TO1│ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ 5 │ 6 │ 7 │ 8 │ + ├───┼───┼───┼───┤ + │ 9 │ 0 │ ↑ │Ent│ ┌───┐ + ├───┼───┼───┼───┤ │Mut│ + │Fn2│ ← │ ↓ │ → │ └───┘ + └───┴───┴───┴───┘ + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ ! │ @ │ # │ $ │ │ │ │ │ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ % │ ^ │ & │ * │ + ├───┼───┼───┼───┤ + │ ( │ ) │ │ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │ │ │ │ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_BASE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, _______, KC_MPLY, _______, + KC_5, KC_6, KC_7, KC_8, _______, TO(_FN), _______, + KC_9, KC_0, KC_UP, KC_ENT, _______, KC_MUTE, _______, + MO(_FN2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ │ │ │ │ │ │ │ │ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ │ │ │ │ + ├───┼───┼───┼───┤ + │ │ │ │ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │ │ │ │ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, TO(_FN1), _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ │ │ │ │ │ │ │ │ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ │ │ │ │ + ├───┼───┼───┼───┤ + │ │ │ │ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │ │ │ │ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_FN1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, TO(_FN2), _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │Spi│Spd│ │ │ │ │ │TO0│ + ├───┼───┼───┼───┤ └───┘ └───┘ + │Sai│Sad│ │ │ + ├───┼───┼───┼───┤ + │Tog│Mod│Hui│ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │Vai│Hud│Vad│ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_FN2] = LAYOUT( + RGB_SPI, RGB_SPD, _______, QK_BOOT, _______, _______, _______, + RGB_SAI, RGB_SAD, _______, _______, _______, TO(_BASE), _______, + RGB_TOG, RGB_MOD, RGB_HUI, _______, _______, _______, _______, + _______, RGB_VAI, RGB_HUD, RGB_VAD + ), +}; + +#ifdef OLED_ENABLE + bool oled_task_user(void) { + render_layer_status(); + + return true; + } +#endif + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +}; +#endif diff --git a/keyboards/doio/kb16/keymaps/default/rules.mk b/keyboards/doio/kb16/keymaps/default/rules.mk new file mode 100644 index 0000000000..00003ba11b --- /dev/null +++ b/keyboards/doio/kb16/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +# Encoder enabled +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/doio/kb16/keymaps/via/keymap.c b/keyboards/doio/kb16/keymaps/via/keymap.c new file mode 100644 index 0000000000..4f01846eae --- /dev/null +++ b/keyboards/doio/kb16/keymaps/via/keymap.c @@ -0,0 +1,172 @@ +/* Copyright 2022 DOIO + * 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 . + */ + +#include QMK_KEYBOARD_H + +// OLED animation +#include "lib/layer_status/layer_status.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, + _FN1, + _FN2 +}; + +// enum layer_keycodes { }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ 1 │ 2 │ 3 │ 4 │ │Ply│ │TO1│ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ 5 │ 6 │ 7 │ 8 │ + ├───┼───┼───┼───┤ + │ 9 │ 0 │ ↑ │Ent│ ┌───┐ + ├───┼───┼───┼───┤ │Mut│ + │Fn2│ ← │ ↓ │ → │ └───┘ + └───┴───┴───┴───┘ + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ ! │ @ │ # │ $ │ │ │ │ │ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ % │ ^ │ & │ * │ + ├───┼───┼───┼───┤ + │ ( │ ) │ │ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │ │ │ │ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_BASE] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_MPRV, KC_MPLY, KC_MNXT, + KC_5, KC_6, KC_7, KC_8, KC_PGDN, TO(_FN), KC_PGUP, + KC_9, KC_0, KC_UP, KC_ENT, KC_VOLD, KC_MUTE, KC_VOLU, + MO(_FN2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ │ │ │ │ │ │ │ │ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ │ │ │ │ + ├───┼───┼───┼───┤ + │ │ │ │ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │ │ │ │ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, TO(_FN1), _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │ │ │ │ │ │ │ │ │ + ├───┼───┼───┼───┤ └───┘ └───┘ + │ │ │ │ │ + ├───┼───┼───┼───┤ + │ │ │ │ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │ │ │ │ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_FN1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, TO(_FN2), _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + +/* + ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ + │Spi│Spd│ │ │ │ │ │TO0│ + ├───┼───┼───┼───┤ └───┘ └───┘ + │Sai│Sad│ │ │ + ├───┼───┼───┼───┤ + │Tog│Mod│Hui│ │ ┌───┐ + ├───┼───┼───┼───┤ │ │ + │ │Vai│Hud│Vad│ └───┘ + └───┴───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 */ + [_FN2] = LAYOUT( + RGB_SPI, RGB_SPD, _______, QK_BOOT, _______, _______, _______, + RGB_SAI, RGB_SAD, _______, _______, _______, TO(_BASE), _______, + RGB_TOG, RGB_MOD, RGB_HUI, _______, _______, _______, _______, + _______, RGB_VAI, RGB_HUD, RGB_VAD + ), +}; + +#ifdef OLED_ENABLE + bool oled_task_user(void) { + render_layer_status(); + + return true; + } +#endif + +#ifdef ENCODER_ENABLE + +#define ENCODERS 3 +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = {{ 5, 0 }, { 5, 1 }, { 5, 2 }}; +static keypos_t encoder_ccw[ENCODERS] = {{ 6, 0 }, { 6, 1 }, { 6, 2 }}; + +void encoder_action_unregister(void) { + for (int index = 0; index < ENCODERS; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t) { + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1) + }; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +} + +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() | 1) + }; + 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/doio/kb16/keymaps/via/rules.mk b/keyboards/doio/kb16/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/doio/kb16/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/doio/kb16/lib/glcdfont.c b/keyboards/doio/kb16/lib/glcdfont.c new file mode 100644 index 0000000000..c0987f75cf --- /dev/null +++ b/keyboards/doio/kb16/lib/glcdfont.c @@ -0,0 +1,249 @@ +/* Copyright 2022 DOIO + * 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 . + */ + +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. + +#include "progmem.h" + +// Standard ASCII 5x7 font +const unsigned char font[] PROGMEM = { + 0x07, 0x08, 0x7F, 0x08, 0x07, 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, + 0x2A, 0x1C, 0x77, 0x1C, 0x2A, 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, 0x3E, 0x04, 0x08, 0x00, + 0x08, 0x10, 0x3E, 0x10, 0x08, 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, + 0x41, 0x22, 0x14, 0x08, 0x00, 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, 0xA4, 0xA4, 0x9C, 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, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 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, 0x38, 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, + 0x10, 0x38, 0x10, 0x10, 0x1C, 0x00, + 0x0C, 0x7A, 0x41, 0x7A, 0x0C, 0x00, + 0x18, 0x2F, 0x41, 0x2F, 0x18, 0x00, + 0x22, 0x72, 0x22, 0x27, 0x22, 0x00, + 0x08, 0x1C, 0x08, 0x08, 0x08, 0x00, + 0x08, 0x08, 0x38, 0x20, 0x28, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x2A, 0x2A, 0x2A, 0x00, 0x00, + 0x4E, 0x46, 0x4A, 0x50, 0x2F, 0x00, + 0x3E, 0x45, 0x55, 0x51, 0x3E, 0x00, + 0x48, 0x50, 0x7E, 0x50, 0x48, 0x00, + 0x3E, 0x49, 0x71, 0x49, 0x3E, 0x00, + 0x10, 0x22, 0x4F, 0x20, 0x10, 0x00, + 0x0E, 0x06, 0x0A, 0x10, 0x20, 0x00, + 0x20, 0x10, 0x0A, 0x06, 0x0E, 0x00, + 0x08, 0x08, 0x08, 0x1C, 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, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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/doio/kb16/lib/layer_status/layer_status.c b/keyboards/doio/kb16/lib/layer_status/layer_status.c new file mode 100644 index 0000000000..657ac86ff2 --- /dev/null +++ b/keyboards/doio/kb16/lib/layer_status/layer_status.c @@ -0,0 +1,167 @@ +/* Copyright 2022 DOIO + * 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 . + */ + +#include "quantum.h" + +#define ANIM_SIZE 525 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +void render_layer_status(void) { + static const char PROGMEM layer_status[][ANIM_SIZE] = { + { + //Layer 1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf7, 0xf1, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9e, 0x9e, 0x9e, 0x9e, 0x86, 0x86, 0x86, + 0x86, 0x86, 0xc6, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, + 0x86, 0x86, 0x86, 0xf6, 0xfe, 0xfe, 0xfe, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0xfe, 0xfe, 0x3e, 0x02, 0x00, + 0x00, 0x80, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x6f, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x79, 0x7f, 0x7f, 0x7f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0f, 0x0f, 0x0f, 0x0d, 0x0c, 0x0c, 0x0c, + 0x4c, 0x7f, 0x7f, 0x7f, 0x7f, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + //Layer 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0e, 0xfe, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x61, 0x61, 0x61, 0x61, 0x79, 0x79, 0x79, + 0x79, 0x79, 0x39, 0x01, 0x01, 0x01, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, + 0x86, 0x86, 0x86, 0xf6, 0xfe, 0xfe, 0xfe, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0xfe, 0xfe, 0x3e, 0x02, 0x00, + 0x00, 0x80, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x90, 0x9e, 0x9e, 0x9e, 0x9e, + 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x79, 0x7f, 0x7f, 0x7f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0f, 0x0f, 0x0f, 0x0d, 0x0c, 0x0c, 0x0c, + 0x4c, 0x7f, 0x7f, 0x7f, 0x7f, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + //Layer 3 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0e, 0xfe, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9e, 0x9e, 0x9e, 0x9e, 0x86, 0x86, 0x86, + 0x86, 0x86, 0xc6, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, + 0x79, 0x79, 0x79, 0x09, 0x01, 0x01, 0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0xfe, 0xfe, 0x3e, 0x02, 0x00, + 0x00, 0x80, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x6f, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x9f, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, + 0x9e, 0x9e, 0x86, 0x80, 0x80, 0x80, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0f, 0x0f, 0x0f, 0x0d, 0x0c, 0x0c, 0x0c, + 0x4c, 0x7f, 0x7f, 0x7f, 0x7f, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 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 + }, + { + //Layer 4 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0e, 0xfe, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9e, 0x9e, 0x9e, 0x9e, 0x86, 0x86, 0x86, + 0x86, 0x86, 0xc6, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, + 0x86, 0x86, 0x86, 0xf6, 0xfe, 0xfe, 0xfe, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x03, 0x01, 0x01, 0xc1, 0xfd, 0xff, + 0xff, 0x7f, 0x01, 0x01, 0x01, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x6f, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x79, 0x7f, 0x7f, 0x7f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf0, 0xf0, 0xf0, 0xf2, 0xf3, 0xf3, 0xf3, + 0xb3, 0x80, 0x80, 0x80, 0x80, 0xf3, 0xf3, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + oled_write_raw_P(layer_status[get_highest_layer(layer_state)], sizeof(layer_status[0])); +} diff --git a/keyboards/doio/kb16/lib/layer_status/layer_status.h b/keyboards/doio/kb16/lib/layer_status/layer_status.h new file mode 100644 index 0000000000..a367a829d7 --- /dev/null +++ b/keyboards/doio/kb16/lib/layer_status/layer_status.h @@ -0,0 +1,18 @@ +/* Copyright 2022 DOIO + * 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 . + */ + +void render_layer_status(void); diff --git a/keyboards/doio/kb16/lib/logo.c b/keyboards/doio/kb16/lib/logo.c new file mode 100644 index 0000000000..7a52b479ff --- /dev/null +++ b/keyboards/doio/kb16/lib/logo.c @@ -0,0 +1,61 @@ +/* Copyright 2022 DOIO + * 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 . + */ + +#include "quantum.h" + +#define ANIM_SIZE 525 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +void render_logo(void) { + static const char PROGMEM doio[][ANIM_SIZE] = { + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x20, 0x30, 0x10, 0x18, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x18, 0x10, 0x30, 0x20, 0x60, 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, 0x80, 0xf0, 0xfc, 0x0e, 0x03, 0x01, 0x00, 0xf8, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0xf0, + 0xf0, 0xe0, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x70, 0xf0, 0xe0, 0xc0, 0x00, 0x18, + 0xf8, 0xf8, 0xf8, 0x18, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x70, 0xf0, 0xe0, 0xc0, + 0x01, 0x03, 0x0e, 0xfc, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xf8, 0xf8, 0x80, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x18, 0x00, 0xf8, 0xf8, 0xf8, 0xb8, 0xb8, 0xb8, + 0xf8, 0xf8, 0x70, 0x00, 0x60, 0x60, 0x70, 0x78, 0xf8, 0xf8, 0xf8, 0x00, 0xe0, 0xf0, 0xf0, 0xb8, + 0xb8, 0xb8, 0xb8, 0xb8, 0x30, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0xe0, 0xf0, 0xf8, + 0x38, 0x38, 0x38, 0xf8, 0xf0, 0xe0, 0x00, 0x60, 0x60, 0x70, 0x78, 0xf8, 0xf8, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x70, 0xc0, 0x80, 0x00, 0x1f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x0f, + 0x0f, 0x07, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x1c, 0x1c, 0x1c, 0x0e, 0x0f, 0x07, 0x03, 0x00, 0x18, + 0x1f, 0x1f, 0x1f, 0x18, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x1c, 0x1c, 0x1c, 0x0e, 0x0f, 0x07, 0x03, + 0x80, 0xc0, 0x70, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x1f, 0x1f, 0x01, 0x03, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x00, 0x1f, 0x1f, 0x1f, 0x1d, 0x1d, 0x1d, + 0x1f, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x07, 0x0f, 0x0f, 0x1d, + 0x1d, 0x1d, 0x1f, 0x1f, 0x0f, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x07, 0x0f, 0x1f, + 0x1c, 0x1c, 0x1c, 0x1f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x04, 0x0c, 0x08, 0x18, 0x10, 0x10, + 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, 0x10, 0x18, 0x08, 0x0c, 0x04, 0x06, 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 + } + }; + + oled_write_raw_P(doio[0], ANIM_SIZE); +} diff --git a/keyboards/doio/kb16/lib/logo.h b/keyboards/doio/kb16/lib/logo.h new file mode 100644 index 0000000000..91d1ddce34 --- /dev/null +++ b/keyboards/doio/kb16/lib/logo.h @@ -0,0 +1,18 @@ +/* Copyright 2022 DOIO + * 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 . + */ + +void render_logo(void); diff --git a/keyboards/doio/kb16/readme.md b/keyboards/doio/kb16/readme.md new file mode 100644 index 0000000000..e83bfa67db --- /dev/null +++ b/keyboards/doio/kb16/readme.md @@ -0,0 +1,26 @@ +# KB16-01 + +![KB16-01](https://i.imgur.com/lpq47ELh.png) + +A macropad that have 16-key keyboard made by DOIO, which controlled by an Atmega32u4 chipset. The keyboard features per-key RGB, 3 encoder and an OLED screen for displaying useful information. + +* Keyboard Maintainer: [HorrorTroll](https://github.com/HorrorTroll) +* Hardware Supported: Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make doio/kb16/rev1:default + +Flashing example for this keyboard: + + make doio/kb16/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 (1! key) and plug in the keyboard +* **Physical reset button**: Short press the button under Spacebar keycap to enter the Bootloader and flash the firmware +* **Keycode in layout**: Press the key mapped to RESET if it is available diff --git a/keyboards/doio/kb16/rules.mk b/keyboards/doio/kb16/rules.mk new file mode 100644 index 0000000000..b2982c9743 --- /dev/null +++ b/keyboards/doio/kb16/rules.mk @@ -0,0 +1,36 @@ +SRC += lib/layer_status/layer_status.c +SRC += lib/logo.c + +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +# Additional thing to reduce compiled size +LTO_ENABLE = yes +SPACE_CADET_ENABLE = no + +# OLED enabled +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 + +# RGB Matrix enabled +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 + +# Encoder enabled +ENCODER_ENABLE = yes diff --git a/keyboards/donutcables/budget96/config.h b/keyboards/donutcables/budget96/config.h index 39b661dda7..243020ae1f 100644 --- a/keyboards/donutcables/budget96/config.h +++ b/keyboards/donutcables/budget96/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x4443 -#define PRODUCT_ID 0xB960 -#define DEVICE_VER 0x0200 -#define MANUFACTURER DonutCables -#define PRODUCT Budget96 - #define RGBLED_NUM 18 #define MATRIX_ROWS 8 diff --git a/keyboards/donutcables/budget96/info.json b/keyboards/donutcables/budget96/info.json index a392a9eb5e..338b3c2451 100644 --- a/keyboards/donutcables/budget96/info.json +++ b/keyboards/donutcables/budget96/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "budget96", + "keyboard_name": "Budget96", + "manufacturer": "DonutCables", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4443", + "pid": "0xB960", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":16, "y":0}, {"x":17, "y":0}, {"x":18, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1}, {"x":17, "y":1}, {"x":18, "y":1}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":6.5, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2, "w":1.5}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":17, "y":2}, {"x":18, "y":2}, {"x":0, "y":3, "w":1.75}, {"x":1.75, "y":3}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3, "w":1.25}, {"x":15, "y":3}, {"x":16, "y":3}, {"x":17, "y":3}, {"x":18, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"x":2.25, "y":4}, {"x":3.25, "y":4}, {"x":4.25, "y":4}, {"x":5.25, "y":4}, {"x":6.25, "y":4}, {"x":7.25, "y":4}, {"x":8.25, "y":4}, {"x":9.25, "y":4}, {"x":10.25, "y":4}, {"x":11.25, "y":4}, {"x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"x":15, "y":4}, {"x":16, "y":4}, {"x":17, "y":4}, {"x":18, "y":4}, {"x":0, "y":5, "w":1.25}, {"x":1.25, "y":5, "w":1.25}, {"x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"x":10, "y":5}, {"x":11, "y":5}, {"x":12, "y":5}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":15, "y":5}, {"x":16, "y":5}, {"x":17, "y":5}, {"x":18, "y":5}] diff --git a/keyboards/donutcables/scrabblepad/config.h b/keyboards/donutcables/scrabblepad/config.h index 2c6c704bde..4796c68c30 100644 --- a/keyboards/donutcables/scrabblepad/config.h +++ b/keyboards/donutcables/scrabblepad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4443 -#define PRODUCT_ID 0x21D7 -#define DEVICE_VER 0x0100 -#define MANUFACTURER DonutCables -#define PRODUCT ScrabblePad - /* key matrix size */ #define MATRIX_ROWS 15 #define MATRIX_COLS 15 diff --git a/keyboards/donutcables/scrabblepad/info.json b/keyboards/donutcables/scrabblepad/info.json index e4579f58ff..513aea53aa 100644 --- a/keyboards/donutcables/scrabblepad/info.json +++ b/keyboards/donutcables/scrabblepad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "scrabblepad", + "keyboard_name": "ScrabblePad", + "manufacturer": "DonutCables", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4443", + "pid": "0x21D7", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "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}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":0, "y":5}, {"x":1, "y":5}, {"x":2, "y":5}, {"x":3, "y":5}, {"x":4, "y":5}, {"x":5, "y":5}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":8, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":11, "y":5}, {"x":12, "y":5}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":0, "y":6}, {"x":1, "y":6}, {"x":2, "y":6}, {"x":3, "y":6}, {"x":4, "y":6}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":8, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":12, "y":6}, {"x":13, "y":6}, {"x":14, "y":6}, {"x":0, "y":7}, {"x":1, "y":7}, {"x":2, "y":7}, {"x":3, "y":7}, {"x":4, "y":7}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":8, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}, {"x":12, "y":7}, {"x":13, "y":7}, {"x":14, "y":7}, {"x":0, "y":8}, {"x":1, "y":8}, {"x":2, "y":8}, {"x":3, "y":8}, {"x":4, "y":8}, {"x":5, "y":8}, {"x":6, "y":8}, {"x":7, "y":8}, {"x":8, "y":8}, {"x":9, "y":8}, {"x":10, "y":8}, {"x":11, "y":8}, {"x":12, "y":8}, {"x":13, "y":8}, {"x":14, "y":8}, {"x":0, "y":9}, {"x":1, "y":9}, {"x":2, "y":9}, {"x":3, "y":9}, {"x":4, "y":9}, {"x":5, "y":9}, {"x":6, "y":9}, {"x":7, "y":9}, {"x":8, "y":9}, {"x":9, "y":9}, {"x":10, "y":9}, {"x":11, "y":9}, {"x":12, "y":9}, {"x":13, "y":9}, {"x":14, "y":9}, {"x":0, "y":10}, {"x":1, "y":10}, {"x":2, "y":10}, {"x":3, "y":10}, {"x":4, "y":10}, {"x":5, "y":10}, {"x":6, "y":10}, {"x":7, "y":10}, {"x":8, "y":10}, {"x":9, "y":10}, {"x":10, "y":10}, {"x":11, "y":10}, {"x":12, "y":10}, {"x":13, "y":10}, {"x":14, "y":10}, {"x":0, "y":11}, {"x":1, "y":11}, {"x":2, "y":11}, {"x":3, "y":11}, {"x":4, "y":11}, {"x":5, "y":11}, {"x":6, "y":11}, {"x":7, "y":11}, {"x":8, "y":11}, {"x":9, "y":11}, {"x":10, "y":11}, {"x":11, "y":11}, {"x":12, "y":11}, {"x":13, "y":11}, {"x":14, "y":11}, {"x":0, "y":12}, {"x":1, "y":12}, {"x":2, "y":12}, {"x":3, "y":12}, {"x":4, "y":12}, {"x":5, "y":12}, {"x":6, "y":12}, {"x":7, "y":12}, {"x":8, "y":12}, {"x":9, "y":12}, {"x":10, "y":12}, {"x":11, "y":12}, {"x":12, "y":12}, {"x":13, "y":12}, {"x":14, "y":12}, {"x":0, "y":13}, {"x":1, "y":13}, {"x":2, "y":13}, {"x":3, "y":13}, {"x":4, "y":13}, {"x":5, "y":13}, {"x":6, "y":13}, {"x":7, "y":13}, {"x":8, "y":13}, {"x":9, "y":13}, {"x":10, "y":13}, {"x":11, "y":13}, {"x":12, "y":13}, {"x":13, "y":13}, {"x":14, "y":13}, {"x":0, "y":14}, {"x":1, "y":14}, {"x":2, "y":14}, {"x":3, "y":14}, {"x":4, "y":14}, {"x":5, "y":14}, {"x":6, "y":14}, {"x":7, "y":14}, {"x":8, "y":14}, {"x":9, "y":14}, {"x":10, "y":14}, {"x":11, "y":14}, {"x":12, "y":14}, {"x":13, "y":14}, {"x":14, "y":14}] diff --git a/keyboards/doodboard/duckboard/config.h b/keyboards/doodboard/duckboard/config.h index 80c9411165..f0a7a54c28 100644 --- a/keyboards/doodboard/duckboard/config.h +++ b/keyboards/doodboard/duckboard/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4442 -#define PRODUCT_ID 0xFF44 -#define DEVICE_VER 0x0001 -#define MANUFACTURER doodboard -#define PRODUCT duckboard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 5 diff --git a/keyboards/doodboard/duckboard/info.json b/keyboards/doodboard/duckboard/info.json index 69dde7790d..465dcec611 100644 --- a/keyboards/doodboard/duckboard/info.json +++ b/keyboards/doodboard/duckboard/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "duckboard", + "manufacturer": "doodboard", "url": "https://doodboard.xyz/", "maintainer": "doodboard", + "usb": { + "vid": "0x4442", + "pid": "0xFF44", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/doodboard/duckboard_r2/config.h b/keyboards/doodboard/duckboard_r2/config.h index 10ed3c4cab..b431f471b6 100644 --- a/keyboards/doodboard/duckboard_r2/config.h +++ b/keyboards/doodboard/duckboard_r2/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4442 -#define PRODUCT_ID 0x6462 -#define DEVICE_VER 0x0001 -#define MANUFACTURER doodboard -#define PRODUCT duckboard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 5 diff --git a/keyboards/doodboard/duckboard_r2/info.json b/keyboards/doodboard/duckboard_r2/info.json index 5a774a6e51..f877a63a0c 100644 --- a/keyboards/doodboard/duckboard_r2/info.json +++ b/keyboards/doodboard/duckboard_r2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "duckboard", + "manufacturer": "doodboard", "url": "https://doodboard.xyz/", "maintainer": "doodboard", + "usb": { + "vid": "0x4442", + "pid": "0x6462", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/doppelganger/config.h b/keyboards/doppelganger/config.h index 39e29e7c15..a72fa76d1c 100644 --- a/keyboards/doppelganger/config.h +++ b/keyboards/doppelganger/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4447 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT Doppelganger - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 9 diff --git a/keyboards/doppelganger/doppelganger.c b/keyboards/doppelganger/doppelganger.c index 304d764028..04d19480da 100644 --- a/keyboards/doppelganger/doppelganger.c +++ b/keyboards/doppelganger/doppelganger.c @@ -15,31 +15,25 @@ */ #include "doppelganger.h" -void keyboard_pre_init_kb(void) { - setPinOutput(C6); - setPinOutput(B0); +void keyboard_pre_init_kb (void) { + setPinOutput(C6); + setPinOutput(B0); } bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if (res) { - // writePin sets the pin high for 1 and low for 0. - // In this example the pins are inverted, setting - // it low/0 turns it on, and high/1 turns the LED off. - // This behavior depends on whether the LED is between the pin - // and VCC or the pin and GND. - writePin(C6, !led_state.caps_lock); - } - return res; + bool res = led_update_user(led_state); + if(res) { + // writePin sets the pin high for 1 and low for 0. + // In this example the pins are inverted, setting + // it low/0 turns it on, and high/1 turns the LED off. + // This behavior depends on whether the LED is between the pin + // and VCC or the pin and GND. + writePin(C6, !led_state.caps_lock); + } + return res; } __attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { - writePin(B0, !(state & (1UL << 1))); - return state; -} - -// Override core logic as we reuse SPLIT_HAND_PIN within matrix pins -bool is_keyboard_left(void) { - setPinInput(SPLIT_HAND_PIN); - return readPin(SPLIT_HAND_PIN); + writePin(B0, !(state & (1UL << 1))); + return state; } diff --git a/keyboards/doppelganger/info.json b/keyboards/doppelganger/info.json index 7200fab68f..e1edf3d77d 100644 --- a/keyboards/doppelganger/info.json +++ b/keyboards/doppelganger/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Doppelganger", + "manufacturer": "Yiancar-Designs", "url": "", "maintainer": "yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x4447", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"F1", "x":1, "y":0}, {"label":"Esc", "x":2.5, "y":0}, {"label":"1", "x":3.5, "y":0}, {"label":"2", "x":4.5, "y":0}, {"label":"3", "x":5.5, "y":0}, {"label":"4", "x":6.5, "y":0}, {"label":"5", "x":7.5, "y":0}, {"label":"6", "x":8.5, "y":0}, {"label":"7", "x":10.5, "y":0}, {"label":"8", "x":11.5, "y":0}, {"label":"9", "x":12.5, "y":0}, {"label":"0", "x":13.5, "y":0}, {"label":"_", "x":14.5, "y":0}, {"label":"+", "x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "y":0}, {"label":"F2", "x":0, "y":1}, {"label":"F3", "x":1, "y":1}, {"label":"Tab", "x":2.5, "y":1, "w":1.5}, {"label":"Q", "x":4, "y":1}, {"label":"W", "x":5, "y":1}, {"label":"E", "x":6, "y":1}, {"label":"R", "x":7, "y":1}, {"label":"T", "x":8, "y":1}, {"label":"Y", "x":10, "y":1}, {"label":"U", "x":11, "y":1}, {"label":"I", "x":12, "y":1}, {"label":"O", "x":13, "y":1}, {"label":"P", "x":14, "y":1}, {"label":"{", "x":15, "y":1}, {"label":"}", "x":16, "y":1}, {"label":"|", "x":17, "y":1, "w":1.5}, {"label":"Pg Up", "x":19, "y":1}, {"label":"F4", "x":0, "y":2}, {"label":"F5", "x":1, "y":2}, {"label":"Caps Lock", "x":2.5, "y":2, "w":1.75}, {"label":"A", "x":4.25, "y":2}, {"label":"S", "x":5.25, "y":2}, {"label":"D", "x":6.25, "y":2}, {"label":"F", "x":7.25, "y":2}, {"label":"G", "x":8.25, "y":2}, {"label":"H", "x":10.25, "y":2}, {"label":"J", "x":11.25, "y":2}, {"label":"K", "x":12.25, "y":2}, {"label":"L", "x":13.25, "y":2}, {"label":":", "x":14.25, "y":2}, {"label":"\"", "x":15.25, "y":2}, {"label":"~", "x":16.25, "y":2}, {"label":"Enter", "x":17.25, "y":2, "w":1.25}, {"label":"Pg Dn", "x":19, "y":2}, {"label":"F6", "x":0, "y":3}, {"label":"F7", "x":1, "y":3}, {"label":"Shift", "x":2.5, "y":3, "w":1.25}, {"label":"|", "x":3.75, "y":3}, {"label":"Z", "x":4.75, "y":3}, {"label":"X", "x":5.75, "y":3}, {"label":"C", "x":6.75, "y":3}, {"label":"V", "x":7.75, "y":3}, {"label":"B", "x":8.75, "y":3}, {"label":"N", "x":10.75, "y":3}, {"label":"M", "x":11.75, "y":3}, {"label":"<", "x":12.75, "y":3}, {"label":">", "x":13.75, "y":3}, {"label":"?", "x":14.75, "y":3}, {"label":"Shift", "x":15.75, "y":3, "w":1.75}, {"label":"Up", "x":17.75, "y":3.25}, {"label":"Fn", "x":19, "y":3}, {"label":"F8", "x":0, "y":4}, {"label":"F9", "x":1, "y":4}, {"label":"Ctrl", "x":2.5, "y":4, "w":1.25}, {"label":"Win", "x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.25}, {"x":6, "y":4, "w":2.25}, {"x":8.25, "y":4}, {"x":10.25, "y":4, "w":2.75}, {"label":"Alt", "x":13, "y":4, "w":1.25}, {"x":14.25, "y":4}, {"label":"Win", "x":15.25, "y":4, "w":1.25}, {"label":"Left", "x":16.75, "y":4.25}, {"label":"Down", "x":17.75, "y":4.25}, {"label":"Right", "x":18.75, "y":4.25}] diff --git a/keyboards/doro67/multi/config.h b/keyboards/doro67/multi/config.h index bd4bd7a5ba..8032184f99 100644 --- a/keyboards/doro67/multi/config.h +++ b/keyboards/doro67/multi/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4250 // BP for Backprop -#define PRODUCT_ID 0x4D4C // ML for Multi -#define DEVICE_VER 0x0001 -#define MANUFACTURER Backprop Studio -#define PRODUCT Doro67 Multi PCB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/doro67/multi/info.json b/keyboards/doro67/multi/info.json index 24a7982437..1918da8300 100644 --- a/keyboards/doro67/multi/info.json +++ b/keyboards/doro67/multi/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Doro67 Multi PCB", + "keyboard_name": "Doro67 Multi", + "manufacturer": "Backprop Studio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4250", + "pid": "0x4D4C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Ins", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Fn", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] diff --git a/keyboards/doro67/regular/config.h b/keyboards/doro67/regular/config.h index c778ed7a08..5b1424ae40 100644 --- a/keyboards/doro67/regular/config.h +++ b/keyboards/doro67/regular/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4250 // BP for Backprop -#define PRODUCT_ID 0x5245 // RE for Regular -#define DEVICE_VER 0x0001 -#define MANUFACTURER Backprop Studio -#define PRODUCT Doro67 Regular PCB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/doro67/regular/info.json b/keyboards/doro67/regular/info.json index 34120a1663..37de426024 100644 --- a/keyboards/doro67/regular/info.json +++ b/keyboards/doro67/regular/info.json @@ -1,5 +1,12 @@ { + "keyboard_name": "Doro67", + "manufacturer": "Backprop Studio", "maintainer": "qmk", + "usb": { + "vid": "0x4250", + "pid": "0x5245", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/doro67/rgb/config.h b/keyboards/doro67/rgb/config.h index b2d26b29ae..6a1710da87 100644 --- a/keyboards/doro67/rgb/config.h +++ b/keyboards/doro67/rgb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4250 // BP for Backprop -#define PRODUCT_ID 0x5247 // RG for RGB -#define DEVICE_VER 0x0001 -#define MANUFACTURER Backprop Studio -#define PRODUCT Doro67 RGB PCB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/doro67/rgb/info.json b/keyboards/doro67/rgb/info.json index f7895ce55b..7f4e0252a0 100644 --- a/keyboards/doro67/rgb/info.json +++ b/keyboards/doro67/rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Doro 67 RGB", + "keyboard_name": "Doro67 RGB", + "manufacturer": "Backprop Studio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4250", + "pid": "0x5247", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h index f4a44206f4..ff7eb6f6d4 100644 --- a/keyboards/dp60/config.h +++ b/keyboards/dp60/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x60BE -#define PRODUCT_ID 0x00BE -#define DEVICE_VER 0x0001 -#define MANUFACTURER astro -#define PRODUCT DP60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/dp60/info.json b/keyboards/dp60/info.json index e5c7bbfeed..783999f8ed 100644 --- a/keyboards/dp60/info.json +++ b/keyboards/dp60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "rgb60", + "keyboard_name": "DP60", + "manufacturer": "astro", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x60BE", + "pid": "0x00BE", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_60_wkl": "LAYOUT_60_ansi_tsangan_split_rshift", "LAYOUT_60_wkl_split_bs": "LAYOUT_60_tsangan_hhkb" diff --git a/keyboards/draculad/config.h b/keyboards/draculad/config.h index 3060f801c6..5c42a927e6 100644 --- a/keyboards/draculad/config.h +++ b/keyboards/draculad/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1B1E -#define DEVICE_VER 0x0001 -#define MANUFACTURER mangoiv -#define PRODUCT draculad - #define MATRIX_ROWS 8 #define MATRIX_COLS 5 diff --git a/keyboards/draculad/info.json b/keyboards/draculad/info.json index 351ebb58fc..177092d5a3 100644 --- a/keyboards/draculad/info.json +++ b/keyboards/draculad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "DracuLad", + "manufacturer": "MangoIV", "url": "", "maintainer": "MangoIV", + "usb": { + "vid": "0xFEED", + "pid": "0x1B1E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/draculad/keymaps/manna-harbour_miryoku/config.h b/keyboards/draculad/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..0a8de54ae5 --- /dev/null +++ b/keyboards/draculad/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,22 @@ +// Copyright 2022 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + XXX, XXX, \ + K32, K33, K34, K35, K36, K37 \ +) diff --git a/keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/draytronics/daisy/config.h b/keyboards/draytronics/daisy/config.h index fa04b0d41c..2c51c2862a 100644 --- a/keyboards/draytronics/daisy/config.h +++ b/keyboards/draytronics/daisy/config.h @@ -20,12 +20,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x4454 //DT for DrayTronics -#define PRODUCT_ID 0x4441 //DA for Daisy -#define DEVICE_VER 0x0100 //Version 1 -#define MANUFACTURER Draytronics -#define PRODUCT DAISY - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/draytronics/daisy/info.json b/keyboards/draytronics/daisy/info.json index bb20b0c9bf..80f9da0e59 100644 --- a/keyboards/draytronics/daisy/info.json +++ b/keyboards/draytronics/daisy/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Draytronics DAISY", + "keyboard_name": "DAISY", + "manufacturer": "Draytronics", "url": "https://www.draytronics.co.uk/daisy", "maintainer": "ghostseven", + "usb": { + "vid": "0x4454", + "pid": "0x4441", + "device_version": "1.0.0" + }, "layout_aliases": { "LAYOUT_daisy": "LAYOUT" }, diff --git a/keyboards/draytronics/elise/config.h b/keyboards/draytronics/elise/config.h index f5fde6987e..0f8b307f6d 100644 --- a/keyboards/draytronics/elise/config.h +++ b/keyboards/draytronics/elise/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4454 //DT for DrayTronics -#define PRODUCT_ID 0x454C //EL for Elise -#define DEVICE_VER 0x0100 //Version 1 -#define MANUFACTURER Draytronics -#define PRODUCT ELISE - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/draytronics/elise/info.json b/keyboards/draytronics/elise/info.json index 6393dbfab5..2ff8a98db8 100644 --- a/keyboards/draytronics/elise/info.json +++ b/keyboards/draytronics/elise/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Draytronics ELISE", + "keyboard_name": "ELISE", + "manufacturer": "Draytronics", "url": "https://www.draytronics.co.uk/elise", "maintainer": "ghostseven", + "usb": { + "vid": "0x4454", + "pid": "0x454C", + "device_version": "1.0.0" + }, "layout_aliases": { "LAYOUT_65_ansi_right_lrg": "LAYOUT_65_ansi_rwkl", "LAYOUT_65_ansi_left_lrg": "LAYOUT_65_ansi_lwkl", diff --git a/keyboards/draytronics/elise_v2/config.h b/keyboards/draytronics/elise_v2/config.h index 931125e117..cd971248a7 100644 --- a/keyboards/draytronics/elise_v2/config.h +++ b/keyboards/draytronics/elise_v2/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4454 //DT for DrayTronics -#define PRODUCT_ID 0x454C //EL for Elise -#define DEVICE_VER 0x0200 //Version 2 -#define MANUFACTURER Draytronics -#define PRODUCT ELISE - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/draytronics/elise_v2/info.json b/keyboards/draytronics/elise_v2/info.json index 9e391ad1db..f4477680d1 100644 --- a/keyboards/draytronics/elise_v2/info.json +++ b/keyboards/draytronics/elise_v2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Draytronics ELISE V2", + "keyboard_name": "ELISE", + "manufacturer": "Draytronics", "url": "https://www.draytronics.co.uk/elisev2", "maintainer": "ghostseven", + "usb": { + "vid": "0x4454", + "pid": "0x454C", + "device_version": "2.0.0" + }, "layout_aliases": { "LAYOUT_65_ansi_right_lrg": "LAYOUT_65_ansi_rwkl", "LAYOUT_65_ansi_left_lrg": "LAYOUT_65_ansi_lwkl", diff --git a/keyboards/draytronics/scarlet/config.h b/keyboards/draytronics/scarlet/config.h index 9c4db29ac6..fbfcbf33ff 100644 --- a/keyboards/draytronics/scarlet/config.h +++ b/keyboards/draytronics/scarlet/config.h @@ -20,11 +20,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x4454 //DT for DrayTronics -#define PRODUCT_ID 0x5343 //SC for Scarlet -#define DEVICE_VER 0x0001 //Version 1 -#define MANUFACTURER Draytronics -#define PRODUCT SCARLET /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/draytronics/scarlet/info.json b/keyboards/draytronics/scarlet/info.json index 2e3f4f4b88..95b225f614 100644 --- a/keyboards/draytronics/scarlet/info.json +++ b/keyboards/draytronics/scarlet/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Draytronics SCARLET", + "keyboard_name": "SCARLET", + "manufacturer": "Draytronics", "url": "https://www.draytronics.co.uk/scarlet", "maintainer": "ghostseven", + "usb": { + "vid": "0x4454", + "pid": "0x5343", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/drewkeys/iskar/config.h b/keyboards/drewkeys/iskar/config.h index 956456201f..aa5485f05b 100644 --- a/keyboards/drewkeys/iskar/config.h +++ b/keyboards/drewkeys/iskar/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xDE43 -#define PRODUCT_ID 0x1284 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Drewkeys -#define PRODUCT Iskar - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/drewkeys/iskar/info.json b/keyboards/drewkeys/iskar/info.json index 0505fece10..431b38b345 100644 --- a/keyboards/drewkeys/iskar/info.json +++ b/keyboards/drewkeys/iskar/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Iskar", + "manufacturer": "Drewkeys", "url": "https://bitmapstudio.xyz/collections/iskar", "maintainer": "Drewkeys", + "usb": { + "vid": "0xDE43", + "pid": "0x1284", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/drhigsby/bkf/config.h b/keyboards/drhigsby/bkf/config.h index af1b2be747..4803db9fb6 100644 --- a/keyboards/drhigsby/bkf/config.h +++ b/keyboards/drhigsby/bkf/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER DrHigsby -#define PRODUCT BKF - Base Kit Forty -#define VENDOR_ID 0x0007 -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/drhigsby/bkf/info.json b/keyboards/drhigsby/bkf/info.json index c7b109d651..920877f28d 100644 --- a/keyboards/drhigsby/bkf/info.json +++ b/keyboards/drhigsby/bkf/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BKF - Base Kit Forty", + "manufacturer": "DrHigsby", "url": "http://www.keyboard-layout-editor.com/#/gists/8a9ebae3a5f3f601bb928f7265db0e2e", "maintainer": "drhigsby", + "usb": { + "vid": "0x0007", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_625uC": { "layout": [{"label":"Tab", "x":0, "y":0, "w":1.5}, {"label":"Q", "x":1.5, "y":0}, {"label":"W", "x":2.5, "y":0}, {"label":"E", "x":3.5, "y":0}, {"label":"R", "x":4.5, "y":0}, {"label":"T", "x":5.5, "y":0}, {"label":"Y", "x":6.5, "y":0}, {"label":"U", "x":7.5, "y":0}, {"label":"I", "x":8.5, "y":0}, {"label":"O", "x":9.5, "y":0}, {"label":"P", "x":10.5, "y":0}, {"label":"{", "x":11.5, "y":0}, {"label":"}", "x":12.5, "y":0}, {"label":"Caps Lock", "x":0, "y":1, "w":1.75}, {"label":"A", "x":1.75, "y":1}, {"label":"S", "x":2.75, "y":1}, {"label":"D", "x":3.75, "y":1}, {"label":"F", "x":4.75, "y":1}, {"label":"G", "x":5.75, "y":1}, {"label":"H", "x":6.75, "y":1}, {"label":"J", "x":7.75, "y":1}, {"label":"K", "x":8.75, "y":1}, {"label":"L", "x":9.75, "y":1}, {"label":":", "x":10.75, "y":1}, {"label":"Control", "x":11.75, "y":1, "w":1.75}, {"label":"Shift", "x":0, "y":2, "w":2.25}, {"label":"Z", "x":2.25, "y":2}, {"label":"X", "x":3.25, "y":2}, {"label":"C", "x":4.25, "y":2}, {"label":"V", "x":5.25, "y":2}, {"label":"B", "x":6.25, "y":2}, {"label":"N", "x":7.25, "y":2}, {"label":"M", "x":8.25, "y":2}, {"label":"<", "x":9.25, "y":2}, {"label":">", "x":10.25, "y":2}, {"label":"?", "x":11.25, "y":2}, {"label":"Shift", "x":12.25, "y":2, "w":1.25}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Win", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"label":"", "x":3.75, "y":3, "w":6.25}, {"label":"Alt", "x":10, "y":3, "w":1.25}, {"label":"Win", "x":11.25, "y":3}, {"label":"Menu", "x":12.25, "y":3, "w":1.25}] diff --git a/keyboards/drhigsby/dubba175/config.h b/keyboards/drhigsby/dubba175/config.h index 2eab0e2693..27ecd3b5ae 100644 --- a/keyboards/drhigsby/dubba175/config.h +++ b/keyboards/drhigsby/dubba175/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER DrHigsby -#define PRODUCT Dubba175 -#define VENDOR_ID 0x0420 -#define PRODUCT_ID 0x0420 -#define DEVICE_VER 0x0420 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/drhigsby/dubba175/info.json b/keyboards/drhigsby/dubba175/info.json index e2830ff4c2..af62239030 100644 --- a/keyboards/drhigsby/dubba175/info.json +++ b/keyboards/drhigsby/dubba175/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "dubba175", + "keyboard_name": "Dubba175", + "manufacturer": "DrHigsby", "url": "http://www.keyboard-layout-editor.com/#/gists/3185de74dfb973bf6d42e785994cfd4e", "maintainer": "drhigsby", + "usb": { + "vid": "0x0420", + "pid": "0x0420", + "device_version": "4.2.0" + }, "layouts": { "LAYOUT": { "layout": [{"label":"", "x":0, "y":0}, {"label":"", "x":1, "y":0}, {"label":"", "x":2, "y":0}, {"label":"", "x":3, "y":0}, {"label":"", "x":4, "y":0}, {"label":"", "x":5, "y":0}, {"label":"", "x":6, "y":0}, {"label":"", "x":7, "y":0}, {"label":"", "x":8, "y":0}, {"label":"", "x":9, "y":0}, {"label":"", "x":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":0, "y":2}, {"label":"", "x":1, "y":2}, {"label":"", "x":2, "y":2}, {"label":"", "x":3, "y":2}, {"label":"", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"", "x":6, "y":2}, {"label":"<", "x":7, "y":2}, {"label":">", "x":8, "y":2}, {"label":"", "x":9, "y":2}, {"label":"", "x":1.25, "y":3}, {"label":"", "x":2.25, "y":3}, {"label":"", "x":3.25, "y":3, "w":1.75}, {"x":5, "y":3, "w":1.75}, {"label":"", "x":6.75, "y":3}, {"label":"", "x":7.75, "y":3}] diff --git a/keyboards/drhigsby/ogurec/config.h b/keyboards/drhigsby/ogurec/config.h index c5605ca645..05ef0cdf6c 100644 --- a/keyboards/drhigsby/ogurec/config.h +++ b/keyboards/drhigsby/ogurec/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER DrHigsby -#define PRODUCT ogurec -#define VENDOR_ID 0x0007 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 12 diff --git a/keyboards/drhigsby/ogurec/info.json b/keyboards/drhigsby/ogurec/info.json index 1cb6823f95..f6cda513fb 100644 --- a/keyboards/drhigsby/ogurec/info.json +++ b/keyboards/drhigsby/ogurec/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ogurec", + "manufacturer": "DrHigsby", "url": "http://www.keyboard-layout-editor.com/#/gists/f1bda3a87822868599cf6e3c4340f594", "maintainer": "drhigsby", + "usb": { + "vid": "0x0007", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_3x12": { "layout": [ diff --git a/keyboards/drhigsby/packrat/config.h b/keyboards/drhigsby/packrat/config.h index c69ecdafcb..0b05e6a86a 100644 --- a/keyboards/drhigsby/packrat/config.h +++ b/keyboards/drhigsby/packrat/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER DrHigsby -#define PRODUCT Packrat -#define VENDOR_ID 0x0007 -#define PRODUCT_ID 0x0004 -#define DEVICE_VER 0x0001 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/drhigsby/packrat/info.json b/keyboards/drhigsby/packrat/info.json index e4e3d869f1..43ed4e432c 100644 --- a/keyboards/drhigsby/packrat/info.json +++ b/keyboards/drhigsby/packrat/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "packrat", + "manufacturer": "DrHigsby", "url": "http://www.keyboard-layout-editor.com/#/gists/43d838a3b2e0344d75dd67abfc508038", "maintainer": "drhigsby", + "usb": { + "vid": "0x0007", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_3uc": { "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3, "w":1.25}, {"label":"Alt", "x":1.75, "y":3, "w":1.25}, {"label":"Raise", "x":3, "y":3}, {"label":"", "x":4, "y":3, "w":3}, {"label":"Lower", "x":7, "y":3}, {"label":"Win", "x":8, "y":3, "w":1.25}, {"label":"Fn", "x":9.25, "y":3, "w":1.25}] diff --git a/keyboards/dtisaac/cg108/config.h b/keyboards/dtisaac/cg108/config.h index 7ce2de42b8..ec4dce5f54 100644 --- a/keyboards/dtisaac/cg108/config.h +++ b/keyboards/dtisaac/cg108/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4454 // DT -#define PRODUCT_ID 0x4973 // Is -#define DEVICE_VER 0x0002 -#define MANUFACTURER DTIsaac -#define PRODUCT CG108 - /* key matrix size */ #define MATRIX_ROWS 11 #define MATRIX_COLS 11 diff --git a/keyboards/dtisaac/cg108/info.json b/keyboards/dtisaac/cg108/info.json index 0ecc1764f6..eb6189088c 100644 --- a/keyboards/dtisaac/cg108/info.json +++ b/keyboards/dtisaac/cg108/info.json @@ -1,9 +1,13 @@ { "keyboard_name": "CG108", + "manufacturer": "DTIsaac", "url": "", "maintainer": "daotakisaac", - "width": 22.5, - "height": 6.5, + "usb": { + "vid": "0x4454", + "pid": "0x4973", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dtisaac/dosa40rgb/config.h b/keyboards/dtisaac/dosa40rgb/config.h index 8d61f61128..ccb3f74867 100644 --- a/keyboards/dtisaac/dosa40rgb/config.h +++ b/keyboards/dtisaac/dosa40rgb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4454 // DT -#define PRODUCT_ID 0x4973 // Is -#define DEVICE_VER 0x0004 -#define MANUFACTURER DTIsaac -#define PRODUCT >_Dosa40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/dtisaac/dosa40rgb/info.json b/keyboards/dtisaac/dosa40rgb/info.json index 2feed40d42..d24975ca8b 100644 --- a/keyboards/dtisaac/dosa40rgb/info.json +++ b/keyboards/dtisaac/dosa40rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": ">_Dosa40rgb", + "keyboard_name": ">_Dosa40", + "manufacturer": "DTIsaac", "url": "", "maintainer": "DTIsaac", + "usb": { + "vid": "0x4454", + "pid": "0x4973", + "device_version": "0.0.4" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dtisaac/dtisaac01/config.h b/keyboards/dtisaac/dtisaac01/config.h index eb1ff71536..71b5baa093 100644 --- a/keyboards/dtisaac/dtisaac01/config.h +++ b/keyboards/dtisaac/dtisaac01/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4454 -#define PRODUCT_ID 0x4973 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DTIsaac -#define PRODUCT dtisaac01 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/dtisaac/dtisaac01/info.json b/keyboards/dtisaac/dtisaac01/info.json index eac22cda30..790648d64b 100644 --- a/keyboards/dtisaac/dtisaac01/info.json +++ b/keyboards/dtisaac/dtisaac01/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "dtisaac01", + "manufacturer": "DTIsaac", "url": "", "maintainer": "DTIsaac", + "usb": { + "vid": "0x4454", + "pid": "0x4973", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/duck/eagle_viper/v2/config.h b/keyboards/duck/eagle_viper/v2/config.h index 4153f2963d..122eeb4b4a 100644 --- a/keyboards/duck/eagle_viper/v2/config.h +++ b/keyboards/duck/eagle_viper/v2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x444B // Duck ("DK") -#define PRODUCT_ID 0x4556 // Eagle/Viper ("EV") -#define DEVICE_VER 0x0002 -#define MANUFACTURER Duck -#define PRODUCT Eagle/Viper V2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/duck/eagle_viper/v2/info.json b/keyboards/duck/eagle_viper/v2/info.json index 57d6af4fa8..e21ca68209 100644 --- a/keyboards/duck/eagle_viper/v2/info.json +++ b/keyboards/duck/eagle_viper/v2/info.json @@ -1,5 +1,11 @@ { "keyboard_name": "Eagle/Viper V2", + "manufacturer": "Duck", + "usb": { + "vid": "0x444B", + "pid": "0x4556", + "device_version": "0.0.2" + }, "layout_aliases": { "LAYOUT_eagle": "LAYOUT_60_ansi", "LAYOUT_viper": "LAYOUT_60_hhkb", diff --git a/keyboards/duck/jetfire/config.h b/keyboards/duck/jetfire/config.h index 0512d4a1f4..16fbe3bda2 100644 --- a/keyboards/duck/jetfire/config.h +++ b/keyboards/duck/jetfire/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x444B // Duck ("DK") -#define PRODUCT_ID 0x4A46 // Jetfire ("JF") -#define DEVICE_VER 0x0001 -#define MANUFACTURER Duck -#define PRODUCT Jetfire - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 20 diff --git a/keyboards/duck/jetfire/info.json b/keyboards/duck/jetfire/info.json index 9325fffb77..3205556d8e 100644 --- a/keyboards/duck/jetfire/info.json +++ b/keyboards/duck/jetfire/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Jetfire", + "manufacturer": "Duck", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x444B", + "pid": "0x4A46", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"x":15.25, "y":0}, {"label":"PrtSc", "x":16.5, "y":0}, {"label":"Scroll Lock", "x":17.5, "y":0}, {"label":"Pause", "x":18.5, "y":0}, {"x":19.5, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Back Space", "x":13, "y":1.25}, {"x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Num Lock", "x":16.5, "y":1.25}, {"label":"/", "x":17.5, "y":1.25}, {"label":"*", "x":18.5, "y":1.25}, {"label":"-", "x":19.5, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"7", "x":16.5, "y":2.25}, {"label":"8", "x":17.5, "y":2.25}, {"label":"9", "x":18.5, "y":2.25}, {"label":"+", "x":19.5, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"4", "x":16.5, "y":3.25}, {"label":"5", "x":17.5, "y":3.25}, {"label":"6", "x":18.5, "y":3.25}, {"x":19.5, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"label":"ISO \\", "x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"label":"\u2191", "x":15.25, "y":4.5}, {"label":"1", "x":16.5, "y":4.25}, {"label":"2", "x":17.5, "y":4.25}, {"label":"3", "x":18.5, "y":4.25}, {"label":"Enter", "x":19.5, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Win", "x":1.5, "y":5.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":6.25}, {"label":"Alt", "x":10.25, "y":5.25, "w":1.25}, {"x":11.5, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":12.75, "y":5.25, "w":1.25}, {"label":"\u2190", "x":14.25, "y":5.5}, {"label":"\u2193", "x":15.25, "y":5.5}, {"label":"\u2192", "x":16.25, "y":5.5}, {"label":"0", "x":17.5, "y":5.25}, {"label":".", "x":18.5, "y":5.25}, {"x":19.5, "y":5.25}] diff --git a/keyboards/duck/lightsaver/config.h b/keyboards/duck/lightsaver/config.h index e2aa78d14b..053e85428c 100644 --- a/keyboards/duck/lightsaver/config.h +++ b/keyboards/duck/lightsaver/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x444B // Duck ("DK") -#define PRODUCT_ID 0x4C53 // Lightsaver ("LS") -#define DEVICE_VER 0x0003 -#define MANUFACTURER Duck -#define PRODUCT Lightsaver V3 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 19 diff --git a/keyboards/duck/lightsaver/info.json b/keyboards/duck/lightsaver/info.json index 92ffbf1c9d..39f62f0fe1 100644 --- a/keyboards/duck/lightsaver/info.json +++ b/keyboards/duck/lightsaver/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Duck Lightsaver V3", + "keyboard_name": "Lightsaver V3", + "manufacturer": "Duck", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x444B", + "pid": "0x4C53", + "device_version": "0.0.3" + }, "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":"Num
Lock", "x":14, "y":0}, {"label":"Insert", "x":15, "y":0}, {"label":"Home", "x":16, "y":0}, {"label":"PgUp", "x":17, "y":0}, {"label":"/", "x":18, "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":"Bkspc", "x":13, "y":1, "w":2}, {"label":"Delete", "x":15, "y":1}, {"label":"End", "x":16, "y":1}, {"label":"PgDn", "x":17, "y":1}, {"label":"*", "x":18, "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":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"-", "x":18, "y":2}, {"label":"CapsLock", "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":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "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":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"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}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}] diff --git a/keyboards/duck/lightsaver/keymaps/rasmus/keymap.c b/keyboards/duck/lightsaver/keymaps/rasmus/keymap.c index 65f128a26b..70dc17bb13 100644 --- a/keyboards/duck/lightsaver/keymaps/rasmus/keymap.c +++ b/keyboards/duck/lightsaver/keymaps/rasmus/keymap.c @@ -34,8 +34,8 @@ enum { //Tap Dance Definitions qk_tap_dance_action_t tap_dance_actions[] = { - [TD_F1_GAME] = ACTION_TAP_DANCE_LAYER_MOVE(KC_F1, GAME), - [TD_CAPS_FN] = ACTION_TAP_DANCE_LAYER_MOVE(KC_CAPS, 5) + [TD_F1_GAME] = ACTION_TAP_DANCE_DUAL_ROLE(KC_F1, GAME), + [TD_CAPS_FN] = ACTION_TAP_DANCE_DUAL_ROLE(KC_CAPS, 5) }; enum macro_id { diff --git a/keyboards/duck/tcv3/config.h b/keyboards/duck/tcv3/config.h index 9a75ff77f7..a295d33614 100644 --- a/keyboards/duck/tcv3/config.h +++ b/keyboards/duck/tcv3/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x444B // Duck ("DK") -#define PRODUCT_ID 0x5443 // TC-V3 ("TC") -#define DEVICE_VER 0x0001 -#define MANUFACTURER Duck -#define PRODUCT TC-V3 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 20 diff --git a/keyboards/duck/tcv3/info.json b/keyboards/duck/tcv3/info.json index 169ed18a74..f90d994cd0 100644 --- a/keyboards/duck/tcv3/info.json +++ b/keyboards/duck/tcv3/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "TCV3", + "keyboard_name": "TC-V3", + "manufacturer": "Duck", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x444B", + "pid": "0x5443", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.75, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.5, "y":0}, {"x":18.5, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2.25, "y":1.25}, {"x":3.25, "y":1.25}, {"x":4.25, "y":1.25}, {"x":5.25, "y":1.25}, {"x":6.25, "y":1.25}, {"x":7.25, "y":1.25}, {"x":8.25, "y":1.25}, {"x":9.25, "y":1.25}, {"x":10.25, "y":1.25}, {"x":11.25, "y":1.25}, {"x":12.25, "y":1.25}, {"x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.5, "y":1.25}, {"x":18.5, "y":1.25}, {"x":0, "y":2.25}, {"x":1, "y":2.25}, {"x":2.25, "y":2.25, "w":1.5}, {"x":3.75, "y":2.25}, {"x":4.75, "y":2.25}, {"x":5.75, "y":2.25}, {"x":6.75, "y":2.25}, {"x":7.75, "y":2.25}, {"x":8.75, "y":2.25}, {"x":9.75, "y":2.25}, {"x":10.75, "y":2.25}, {"x":11.75, "y":2.25}, {"x":12.75, "y":2.25}, {"x":13.75, "y":2.25}, {"x":14.75, "y":2.25}, {"x":15.75, "y":2.25, "w":1.5}, {"x":17.5, "y":2.25}, {"x":18.5, "y":2.25}, {"x":0, "y":3.25}, {"x":1, "y":3.25}, {"x":2.25, "y":3.25, "w":1.75}, {"x":4, "y":3.25}, {"x":5, "y":3.25}, {"x":6, "y":3.25}, {"x":7, "y":3.25}, {"x":8, "y":3.25}, {"x":9, "y":3.25}, {"x":10, "y":3.25}, {"x":11, "y":3.25}, {"x":12, "y":3.25}, {"x":13, "y":3.25}, {"x":14, "y":3.25}, {"x":15, "y":3.25}, {"x":16, "y":3.25, "w":1.25}, {"x":17.5, "y":3.25}, {"x":18.5, "y":3.25}, {"x":0, "y":4.25}, {"x":1, "y":4.25}, {"x":2.25, "y":4.25, "w":1.25}, {"x":3.5, "y":4.25}, {"x":4.5, "y":4.25}, {"x":5.5, "y":4.25}, {"x":6.5, "y":4.25}, {"x":7.5, "y":4.25}, {"x":8.5, "y":4.25}, {"x":9.5, "y":4.25}, {"x":10.5, "y":4.25}, {"x":11.5, "y":4.25}, {"x":12.5, "y":4.25}, {"x":13.5, "y":4.25}, {"x":14.5, "y":4.25, "w":1.75}, {"x":16.25, "y":4.25}, {"x":17.5, "y":4.5}, {"x":0, "y":5.25}, {"x":1, "y":5.25}, {"x":2.25, "y":5.25, "w":1.5}, {"x":3.75, "y":5.25}, {"x":4.75, "y":5.25, "w":1.5}, {"x":6.25, "y":5.25, "w":6}, {"x":12.25, "y":5.25, "w":1.5}, {"x":13.75, "y":5.25}, {"x":14.75, "y":5.25, "w":1.5}, {"x":16.5, "y":5.5}, {"x":17.5, "y":5.5}, {"x":18.5, "y":5.5}] diff --git a/keyboards/ducky/one2mini/1861st/config.h b/keyboards/ducky/one2mini/1861st/config.h index 3f5676280c..f1fcb4faa1 100644 --- a/keyboards/ducky/one2mini/1861st/config.h +++ b/keyboards/ducky/one2mini/1861st/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0416 -#define PRODUCT_ID 0x0123 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ducky -#define PRODUCT One2mini - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/ducky/one2mini/1861st/info.json b/keyboards/ducky/one2mini/1861st/info.json index 9e121fbf4b..364d803718 100644 --- a/keyboards/ducky/one2mini/1861st/info.json +++ b/keyboards/ducky/one2mini/1861st/info.json @@ -1,5 +1,11 @@ { - "keyboard_name": "Ducky One 2 Mini", + "keyboard_name": "One 2 Mini", + "manufacturer": "Ducky", + "usb": { + "vid": "0x0416", + "pid": "0x0123", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_iso": "LAYOUT_60_iso" }, diff --git a/keyboards/ducky/one2sf/1967st/1967st.h b/keyboards/ducky/one2sf/1967st/1967st.h new file mode 100644 index 0000000000..e413721831 --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/1967st.h @@ -0,0 +1,42 @@ +/* Copyright 2019 /u/KeepItUnder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d, k4e, k4f \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \ +} diff --git a/keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.c b/keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.c new file mode 100644 index 0000000000..a10223603e --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.c @@ -0,0 +1,57 @@ +/* + ChibiOS Driver element - Copyright (C) 2019 /u/KeepItUnder + + 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. +*/ + +#include "hal.h" + +#if HAL_USE_PAL || defined(__DOXYGEN__) +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +const PALConfig pal_default_config = { +# if NUC123_HAS_GPIOA + {VAL_GPIOA_PMD, VAL_GPIOA_OFFD, VAL_GPIOA_DMASK, VAL_GPIOA_DBEN, VAL_GPIOA_IMD, VAL_GPIOA_IEN, VAL_GPIOA_ISRC, VAL_GPIOA_DOUT}, +# endif +# if NUC123_HAS_GPIOB + {VAL_GPIOB_PMD, VAL_GPIOB_OFFD, VAL_GPIOB_DMASK, VAL_GPIOB_DBEN, VAL_GPIOB_IMD, VAL_GPIOB_IEN, VAL_GPIOB_ISRC, VAL_GPIOB_DOUT}, +# endif +# if NUC123_HAS_GPIOC + {VAL_GPIOC_PMD, VAL_GPIOC_OFFD, VAL_GPIOC_DMASK, VAL_GPIOC_DBEN, VAL_GPIOC_IMD, VAL_GPIOC_IEN, VAL_GPIOC_ISRC, VAL_GPIOC_DOUT}, +# endif +# if NUC123_HAS_GPIOD + {VAL_GPIOD_PMD, VAL_GPIOD_OFFD, VAL_GPIOD_DMASK, VAL_GPIOD_DBEN, VAL_GPIOD_IMD, VAL_GPIOD_IEN, VAL_GPIOD_ISRC, VAL_GPIOD_DOUT}, +# endif +# if NUC123_HAS_GPIOF + {VAL_GPIOF_PMD, VAL_GPIOF_OFFD, VAL_GPIOF_DMASK, VAL_GPIOF_DBEN, VAL_GPIOF_IMD, VAL_GPIOF_IEN, VAL_GPIOF_ISRC, VAL_GPIOF_DOUT}, +# endif +}; +#endif + +/** + * @brief Early initialization code. + * @details This initialization must be performed just after stack setup + * and before any other initialization. + */ +void __early_init(void) { + NUC123_clock_init(); +} + +/** + * @brief Board-specific initialization code. + * @todo Add your board-specific code, if any. + */ +void boardInit(void) {} diff --git a/keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.h b/keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.h new file mode 100644 index 0000000000..c43b2ce422 --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.h @@ -0,0 +1,961 @@ +/* + ChibiOS Driver element - Copyright (C) 2019 /u/KeepItUnder + + 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 BOARD_H +#define BOARD_H + +/* + * Setup for Generic NUC123 board. + */ + +/* + * Board identifier. + */ +#define BOARD_NUC123SD4AN0 +#define BOARD_NAME "Nuvoton NUC123SD4AN0 MCU" + +/* + * Board oscillators-related settings. + * NOTE: LSE not fitted. + * NOTE: HSE is fitted. + */ +#if !defined(NUC123_LSECLK) +#define NUC123_LSECLK 0U +#endif + +#define NUC123_LSEDRV (3U << 3U) + +#if !defined(NUC123_HSECLK) +#define NUC123_HSECLK 12000000U +#endif + +//#define NUC123_HSE_BYPASS + +/* + * MCU type as defined in the NUC123 header. + */ +#define NUC123SD4AN0 + +/* + * GPIO Multi Function Pin USB Setup + * Requires Some GPIO pins to be disabled/set to USB + */ + +/* + * IO pins assignments. + */ +#define GPIOA_PIN0 0U +#define GPIOA_PIN1 1U +#define GPIOA_PIN2 2U +#define GPIOA_PIN3 3U +#define GPIOA_PIN4 4U +#define GPIOA_PIN5 5U +#define GPIOA_PIN6 6U +#define GPIOA_PIN7 7U +#define GPIOA_PIN8 8U +#define GPIOA_PIN9 9U +#define GPIOA_SPI1_MISO0 10U +#define GPIOA_SPI1_CLK 11U +#define GPIOA_PWM0 12U +#define GPIOA_PWM1 13U +#define GPIOA_PWM2 14U +#define GPIOA_PWM3 15U + +#define GPIOB_UART0_RXD 0U +#define GPIOB_UART0_TXD 1U +#define GPIOB_UART0_RTS 2U +#define GPIOB_UART0_CTS 3U +#define GPIOB_UART1_RXD 4U +#define GPIOB_UART1_TXD 5U +#define GPIOB_UART1_RTS 6U +#define GPIOB_UART1_CTS 7U +#define GPIOB_TM0 8U +#define GPIOB_TM1 9U +#define GPIOB_TM2 10U +#define GPIOB_PIN11 11U +#define GPIOB_CLK0 12U +#define GPIOB_PIN13 13U +#define GPIOB_INT0 14U +#define GPIOB_INT1 15U + +#define GPIOC_PIN0 0U +#define GPIOC_PIN1 1U +#define GPIOC_PIN2 2U +#define GPIOC_PIN3 3U +#define GPIOC_PIN4 4U +#define GPIOC_PIN5 5U +#define GPIOC_PIN6 6U +#define GPIOC_PIN7 7U +#define GPIOC_PIN8 8U +#define GPIOC_PIN9 9U +#define GPIOC_PIN10 10U +#define GPIOC_PIN11 11U +#define GPIOC_PIN12 12U +#define GPIOC_PIN13 13U +#define GPIOC_PIN14 14U +#define GPIOC_PIN15 15U + +#define GPIOD_ADC0 0U +#define GPIOD_ADC1 1U +#define GPIOD_ADC2 2U +#define GPIOD_ADC3 3U +#define GPIOD_ADC4 4U +#define GPIOD_ADC5 5U +#define GPIOD_PIN6 6U +#define GPIOD_PIN7 7U +#define GPIOD_PIN8 8U +#define GPIOD_PIN9 9U +#define GPIOD_PIN10 10U +#define GPIOD_PIN11 11U +#define GPIOD_PIN12 12U +#define GPIOD_PIN13 13U +#define GPIOD_PIN14 14U +#define GPIOD_PIN15 15U + +#define GPIOE_PIN0 0U +#define GPIOE_PIN1 1U +#define GPIOE_PIN2 2U +#define GPIOE_PIN3 3U +#define GPIOE_PIN4 4U +#define GPIOE_PIN5 5U +#define GPIOE_PIN6 6U +#define GPIOE_PIN7 7U +#define GPIOE_PIN8 8U +#define GPIOE_PIN9 9U +#define GPIOE_PIN10 10U +#define GPIOE_PIN11 11U +#define GPIOE_PIN12 12U +#define GPIOE_PIN13 13U +#define GPIOE_PIN14 14U +#define GPIOE_PIN15 15U + +#define GPIOF_OSC_OUT 0U +#define GPIOF_OSC_IN 1U +#define GPIOF_I2C0_SDA 2U +#define GPIOF_I2C0_SCL 3U +#define GPIOF_PIN4 4U +#define GPIOF_PIN5 5U +#define GPIOF_PIN6 6U +#define GPIOF_PIN7 7U +#define GPIOF_PIN8 8U +#define GPIOF_PIN9 9U +#define GPIOF_PIN10 10U +#define GPIOF_PIN11 11U +#define GPIOF_PIN12 12U +#define GPIOF_PIN13 13U +#define GPIOF_PIN14 14U +#define GPIOF_PIN15 15U + +/* + * IO lines assignments. + */ +#define LINE_USB_DM PAL_LINE(GPIOA, 11U) +#define LINE_USB_DP PAL_LINE(GPIOA, 12U) +#define LINE_SWDIO PAL_LINE(GPIOA, 13U) +#define LINE_SWCLK PAL_LINE(GPIOA, 14U) + +// #define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U) +// #define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U) +// #define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U) + +#define LINE_OSC_IN PAL_LINE(GPIOF, 0U) +#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U) + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * Please refer to the NUC123 Reference Manual for details. + */ +#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) +#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) +#define PIN_MODE_OPENDRAIN(n) (2U << ((n) * 2U)) +#define PIN_MODE_QUASI(n) (3U << ((n) * 2U)) +#define PIN_DIGITAL_EN(n) (0U << (n)) +#define PIN_DIGITAL_DIS(n) (1U << (n)) +#define PIN_DMASK_DIS(n) (0U << (n)) +#define PIN_DMASK_EN(n) (1U << (n)) +#define PIN_DBNCE_DIS(n) (0U << (n)) +#define PIN_DBNCE_EN(n) (1U << (n)) +#define PIN_IMD_EDGE(n) (0U << (n)) +#define PIN_IMD_LVL(n) (1U << (n)) +#define PIN_IEN_FELL_DIS(n) (0U << (n)) +#define PIN_IEN_FELL_EN(n) (1U << (n)) +#define PIN_IEN_REHL_DIS(n) ((0U << (n)) << 16) +#define PIN_IEN_REHL_EN(n) ((1U << (n)) << 16) +#define PIN_ISRC_EN(n) (1U << (n)) +#define PIN_ISRC_DIS(n) (0U << (n)) +#define PIN_ISRC_CLR(n) (1U << (n)) +#define PIN_DATA_LOW(n) (0U << (n)) +#define PIN_DATA_HIGH(n) (1U << (n)) + +/* + * GPIOA setup: + * + * PA0 - PIN0 (input pullup). + * PA1 - PIN1 (input pullup). + * PA2 - PIN2 (input pullup). + * PA3 - PIN3 (input pullup). + * PA4 - PIN4 (input pullup). + * PA5 - PIN5 (input pullup). + * PA6 - PIN6 (input pullup). + * PA7 - PIN7 (input pullup). + * PA8 - PIN8 (input pullup). + * PA9 - PIN9 (input pullup). + * PA10 - SPI1_MISO0 (input pullup). + * PA11 - SPI1_CLK (input floating). + * PA12 - PWM0 (input floating). + * PA13 - PWM1 (input pullup). + * PA14 - PWM2 (input pullup). + * PA15 - PWM3 (input pullup). + */ + +#define VAL_GPIOA_PMD (PIN_MODE_INPUT(GPIOA_PIN0) | \ + PIN_MODE_INPUT(GPIOA_PIN1) | \ + PIN_MODE_INPUT(GPIOA_PIN2) | \ + PIN_MODE_INPUT(GPIOA_PIN3) | \ + PIN_MODE_INPUT(GPIOA_PIN4) | \ + PIN_MODE_INPUT(GPIOA_PIN5) | \ + PIN_MODE_INPUT(GPIOA_PIN6) | \ + PIN_MODE_INPUT(GPIOA_PIN7) | \ + PIN_MODE_INPUT(GPIOA_PIN8) | \ + PIN_MODE_INPUT(GPIOA_PIN9) | \ + PIN_MODE_INPUT(GPIOA_SPI1_MISO0) | \ + PIN_MODE_INPUT(GPIOA_SPI1_CLK) | \ + PIN_MODE_INPUT(GPIOA_PWM0) | \ + PIN_MODE_INPUT(GPIOA_PWM1) | \ + PIN_MODE_INPUT(GPIOA_PWM2) | \ + PIN_MODE_INPUT(GPIOA_PWM3)) +#define VAL_GPIOA_OFFD (PIN_DIGITAL_EN(GPIOA_PIN0) | \ + PIN_DIGITAL_EN(GPIOA_PIN1) | \ + PIN_DIGITAL_EN(GPIOA_PIN2) | \ + PIN_DIGITAL_EN(GPIOA_PIN3) | \ + PIN_DIGITAL_EN(GPIOA_PIN4) | \ + PIN_DIGITAL_EN(GPIOA_PIN5) | \ + PIN_DIGITAL_EN(GPIOA_PIN6) | \ + PIN_DIGITAL_EN(GPIOA_PIN7) | \ + PIN_DIGITAL_EN(GPIOA_PIN8) | \ + PIN_DIGITAL_EN(GPIOA_PIN9) | \ + PIN_DIGITAL_EN(GPIOA_SPI1_MISO0) | \ + PIN_DIGITAL_EN(GPIOA_SPI1_CLK) | \ + PIN_DIGITAL_EN(GPIOA_PWM0) | \ + PIN_DIGITAL_EN(GPIOA_PWM1) | \ + PIN_DIGITAL_EN(GPIOA_PWM2) | \ + PIN_DIGITAL_EN(GPIOA_PWM3)) +#define VAL_GPIOA_DMASK (PIN_DMASK_EN(GPIOA_PIN0) | \ + PIN_DMASK_EN(GPIOA_PIN1) | \ + PIN_DMASK_EN(GPIOA_PIN2) | \ + PIN_DMASK_EN(GPIOA_PIN3) | \ + PIN_DMASK_EN(GPIOA_PIN4) | \ + PIN_DMASK_EN(GPIOA_PIN5) | \ + PIN_DMASK_EN(GPIOA_PIN6) | \ + PIN_DMASK_EN(GPIOA_PIN7) | \ + PIN_DMASK_EN(GPIOA_PIN8) | \ + PIN_DMASK_EN(GPIOA_PIN9) | \ + PIN_DMASK_EN(GPIOA_SPI1_MISO0) | \ + PIN_DMASK_EN(GPIOA_SPI1_CLK) | \ + PIN_DMASK_EN(GPIOA_PWM0) | \ + PIN_DMASK_EN(GPIOA_PWM1) | \ + PIN_DMASK_EN(GPIOA_PWM2) | \ + PIN_DMASK_EN(GPIOA_PWM3)) +#define VAL_GPIOA_DBEN (PIN_DBNCE_EN(GPIOA_PIN0) | \ + PIN_DBNCE_EN(GPIOA_PIN1) | \ + PIN_DBNCE_EN(GPIOA_PIN2) | \ + PIN_DBNCE_EN(GPIOA_PIN3) | \ + PIN_DBNCE_EN(GPIOA_PIN4) | \ + PIN_DBNCE_EN(GPIOA_PIN5) | \ + PIN_DBNCE_EN(GPIOA_PIN6) | \ + PIN_DBNCE_EN(GPIOA_PIN7) | \ + PIN_DBNCE_EN(GPIOA_PIN8) | \ + PIN_DBNCE_EN(GPIOA_PIN9) | \ + PIN_DBNCE_EN(GPIOA_SPI1_MISO0) | \ + PIN_DBNCE_EN(GPIOA_SPI1_CLK) | \ + PIN_DBNCE_EN(GPIOA_PWM0) | \ + PIN_DBNCE_EN(GPIOA_PWM1) | \ + PIN_DBNCE_EN(GPIOA_PWM2) | \ + PIN_DBNCE_EN(GPIOA_PWM3)) +#define VAL_GPIOA_IMD (PIN_IMD_EDGE(GPIOA_PIN0) | \ + PIN_IMD_EDGE(GPIOA_PIN1) | \ + PIN_IMD_EDGE(GPIOA_PIN2) | \ + PIN_IMD_EDGE(GPIOA_PIN3) | \ + PIN_IMD_EDGE(GPIOA_PIN4) | \ + PIN_IMD_EDGE(GPIOA_PIN5) | \ + PIN_IMD_EDGE(GPIOA_PIN6) | \ + PIN_IMD_EDGE(GPIOA_PIN7) | \ + PIN_IMD_EDGE(GPIOA_PIN8) | \ + PIN_IMD_EDGE(GPIOA_PIN9) | \ + PIN_IMD_EDGE(GPIOA_SPI1_MISO0) | \ + PIN_IMD_EDGE(GPIOA_SPI1_CLK) | \ + PIN_IMD_EDGE(GPIOA_PWM0) | \ + PIN_IMD_EDGE(GPIOA_PWM1) | \ + PIN_IMD_EDGE(GPIOA_PWM2) | \ + PIN_IMD_EDGE(GPIOA_PWM3)) +#define VAL_GPIOA_IEN (PIN_IEN_FELL_DIS(GPIOA_PIN0) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN1) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN2) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN3) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN4) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN5) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN6) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN7) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN8) | \ + PIN_IEN_FELL_DIS(GPIOA_PIN9) | \ + PIN_IEN_FELL_DIS(GPIOA_SPI1_MISO0) | \ + PIN_IEN_FELL_DIS(GPIOA_SPI1_CLK) | \ + PIN_IEN_FELL_DIS(GPIOA_PWM0) | \ + PIN_IEN_FELL_DIS(GPIOA_PWM1) | \ + PIN_IEN_FELL_DIS(GPIOA_PWM2) | \ + PIN_IEN_FELL_DIS(GPIOA_PWM3)) +#define VAL_GPIOA_ISRC (PIN_ISRC_DIS(GPIOA_PIN0) | \ + PIN_ISRC_DIS(GPIOA_PIN1) | \ + PIN_ISRC_DIS(GPIOA_PIN2) | \ + PIN_ISRC_DIS(GPIOA_PIN3) | \ + PIN_ISRC_DIS(GPIOA_PIN4) | \ + PIN_ISRC_DIS(GPIOA_PIN5) | \ + PIN_ISRC_DIS(GPIOA_PIN6) | \ + PIN_ISRC_DIS(GPIOA_PIN7) | \ + PIN_ISRC_DIS(GPIOA_PIN8) | \ + PIN_ISRC_DIS(GPIOA_PIN9) | \ + PIN_ISRC_DIS(GPIOA_SPI1_MISO0) | \ + PIN_ISRC_DIS(GPIOA_SPI1_CLK) | \ + PIN_ISRC_DIS(GPIOA_PWM0) | \ + PIN_ISRC_DIS(GPIOA_PWM1) | \ + PIN_ISRC_DIS(GPIOA_PWM2) | \ + PIN_ISRC_DIS(GPIOA_PWM3)) +#define VAL_GPIOA_DOUT (PIN_DATA_LOW(GPIOA_PIN0) | \ + PIN_DATA_LOW(GPIOA_PIN1) | \ + PIN_DATA_LOW(GPIOA_PIN2) | \ + PIN_DATA_LOW(GPIOA_PIN3) | \ + PIN_DATA_LOW(GPIOA_PIN4) | \ + PIN_DATA_LOW(GPIOA_PIN5) | \ + PIN_DATA_LOW(GPIOA_PIN6) | \ + PIN_DATA_LOW(GPIOA_PIN7) | \ + PIN_DATA_LOW(GPIOA_PIN8) | \ + PIN_DATA_LOW(GPIOA_PIN9) | \ + PIN_DATA_LOW(GPIOA_SPI1_MISO0) | \ + PIN_DATA_LOW(GPIOA_SPI1_CLK) | \ + PIN_DATA_LOW(GPIOA_PWM0) | \ + PIN_DATA_LOW(GPIOA_PWM1) | \ + PIN_DATA_LOW(GPIOA_PWM2) | \ + PIN_DATA_LOW(GPIOA_PWM3)) + +/* + * GPIOB setup: + * + * PB0 - UART0_RXD (input pullup). + * PB1 - UART0_TXD (output). + * PB2 - UART0_RTS (output). + * PB3 - UART0_CTS (output). + * PB4 - UART1_RXD (output). + * PB5 - UART1_TXD (output). + * PB6 - UART1_RTS (output). + * PB7 - UART1_CTS (output). + * PB8 - TM0 (input pullup). + * PB9 - TM1 (input pullup). + * PB10 - TM2 (input pullup). + * PB11 - PIN11 (input pullup). + * PB12 - CLK0 (output). + * PB13 - PIN13 (output). + * PB14 - INT0 (debug output). + * PB15 - INT1 (input pullup). + */ +#define VAL_GPIOB_PMD (PIN_MODE_INPUT(GPIOB_UART0_RXD) | \ + PIN_MODE_OUTPUT(GPIOB_UART0_TXD) | \ + PIN_MODE_OUTPUT(GPIOB_UART0_RTS) | \ + PIN_MODE_OUTPUT(GPIOB_UART0_CTS) | \ + PIN_MODE_OUTPUT(GPIOB_UART1_RXD) | \ + PIN_MODE_OUTPUT(GPIOB_UART1_TXD) | \ + PIN_MODE_OUTPUT(GPIOB_UART1_RTS) | \ + PIN_MODE_OUTPUT(GPIOB_UART1_CTS) | \ + PIN_MODE_INPUT(GPIOB_TM0) | \ + PIN_MODE_INPUT(GPIOB_TM1) | \ + PIN_MODE_INPUT(GPIOB_TM2) | \ + PIN_MODE_INPUT(GPIOB_PIN11) | \ + PIN_MODE_OUTPUT(GPIOB_CLK0) | \ + PIN_MODE_OUTPUT(GPIOB_PIN13) | \ + PIN_MODE_OUTPUT(GPIOB_INT0) | \ + PIN_MODE_INPUT(GPIOB_INT1)) +#define VAL_GPIOB_OFFD (PIN_DIGITAL_EN(GPIOB_UART0_RXD) | \ + PIN_DIGITAL_DIS(GPIOB_UART0_TXD) | \ + PIN_DIGITAL_DIS(GPIOB_UART0_RTS) | \ + PIN_DIGITAL_DIS(GPIOB_UART0_CTS) | \ + PIN_DIGITAL_DIS(GPIOB_UART1_RXD) | \ + PIN_DIGITAL_DIS(GPIOB_UART1_TXD) | \ + PIN_DIGITAL_DIS(GPIOB_UART1_RTS) | \ + PIN_DIGITAL_DIS(GPIOB_UART1_CTS) | \ + PIN_DIGITAL_DIS(GPIOB_TM0) | \ + PIN_DIGITAL_EN(GPIOB_TM1) | \ + PIN_DIGITAL_EN(GPIOB_TM2) | \ + PIN_DIGITAL_EN(GPIOB_PIN11) | \ + PIN_DIGITAL_DIS(GPIOB_CLK0) | \ + PIN_DIGITAL_DIS(GPIOB_PIN13) | \ + PIN_DIGITAL_DIS(GPIOB_INT0) | \ + PIN_DIGITAL_EN(GPIOB_INT1)) +#define VAL_GPIOB_DMASK (PIN_DMASK_EN(GPIOB_UART0_RXD) | \ + PIN_DMASK_DIS(GPIOB_UART0_TXD) | \ + PIN_DMASK_DIS(GPIOB_UART0_RTS) | \ + PIN_DMASK_DIS(GPIOB_UART0_CTS) | \ + PIN_DMASK_DIS(GPIOB_UART1_RXD) | \ + PIN_DMASK_DIS(GPIOB_UART1_TXD) | \ + PIN_DMASK_DIS(GPIOB_UART1_RTS) | \ + PIN_DMASK_DIS(GPIOB_UART1_CTS) | \ + PIN_DMASK_EN(GPIOB_TM0) | \ + PIN_DMASK_EN(GPIOB_TM1) | \ + PIN_DMASK_EN(GPIOB_TM2) | \ + PIN_DMASK_EN(GPIOB_PIN11) | \ + PIN_DMASK_DIS(GPIOB_CLK0) | \ + PIN_DMASK_DIS(GPIOB_PIN13) | \ + PIN_DMASK_DIS(GPIOB_INT0) | \ + PIN_DMASK_EN(GPIOB_INT1)) +#define VAL_GPIOB_DBEN (PIN_DBNCE_EN(GPIOB_UART0_RXD) | \ + PIN_DBNCE_DIS(GPIOB_UART0_TXD) | \ + PIN_DBNCE_DIS(GPIOB_UART0_RTS) | \ + PIN_DBNCE_DIS(GPIOB_UART0_CTS) | \ + PIN_DBNCE_DIS(GPIOB_UART1_RXD) | \ + PIN_DBNCE_DIS(GPIOB_UART1_TXD) | \ + PIN_DBNCE_DIS(GPIOB_UART1_RTS) | \ + PIN_DBNCE_DIS(GPIOB_UART1_CTS) | \ + PIN_DBNCE_EN(GPIOB_TM0) | \ + PIN_DBNCE_EN(GPIOB_TM1) | \ + PIN_DBNCE_EN(GPIOB_TM2) | \ + PIN_DBNCE_EN(GPIOB_PIN11) | \ + PIN_DBNCE_DIS(GPIOB_CLK0) | \ + PIN_DBNCE_DIS(GPIOB_PIN13) | \ + PIN_DBNCE_DIS(GPIOB_INT0) | \ + PIN_DBNCE_EN(GPIOB_INT1)) +#define VAL_GPIOB_IMD (PIN_IMD_EDGE(GPIOB_UART0_RXD) | \ + PIN_IMD_EDGE(GPIOB_UART0_TXD) | \ + PIN_IMD_EDGE(GPIOB_UART0_RTS) | \ + PIN_IMD_EDGE(GPIOB_UART0_CTS) | \ + PIN_IMD_EDGE(GPIOB_UART1_RXD) | \ + PIN_IMD_EDGE(GPIOB_UART1_TXD) | \ + PIN_IMD_EDGE(GPIOB_UART1_RTS) | \ + PIN_IMD_EDGE(GPIOB_UART1_CTS) | \ + PIN_IMD_EDGE(GPIOB_TM0) | \ + PIN_IMD_EDGE(GPIOB_TM1) | \ + PIN_IMD_EDGE(GPIOB_TM2) | \ + PIN_IMD_EDGE(GPIOB_PIN11) | \ + PIN_IMD_EDGE(GPIOB_CLK0) | \ + PIN_IMD_EDGE(GPIOB_PIN13) | \ + PIN_IMD_EDGE(GPIOB_INT0) | \ + PIN_IMD_EDGE(GPIOB_INT1)) +#define VAL_GPIOB_IEN (PIN_IEN_FELL_DIS(GPIOB_UART0_RXD) | \ + PIN_IEN_FELL_DIS(GPIOB_UART0_TXD) | \ + PIN_IEN_FELL_DIS(GPIOB_UART0_RTS) | \ + PIN_IEN_FELL_DIS(GPIOB_UART0_CTS) | \ + PIN_IEN_FELL_DIS(GPIOB_UART1_RXD) | \ + PIN_IEN_FELL_DIS(GPIOB_UART1_TXD) | \ + PIN_IEN_FELL_DIS(GPIOB_UART1_RTS) | \ + PIN_IEN_FELL_DIS(GPIOB_UART1_CTS) | \ + PIN_IEN_FELL_DIS(GPIOB_TM0) | \ + PIN_IEN_FELL_DIS(GPIOB_TM1) | \ + PIN_IEN_FELL_DIS(GPIOB_TM2) | \ + PIN_IEN_FELL_DIS(GPIOB_PIN11) | \ + PIN_IEN_FELL_DIS(GPIOB_CLK0) | \ + PIN_IEN_FELL_DIS(GPIOB_PIN13) | \ + PIN_IEN_FELL_DIS(GPIOB_INT0) | \ + PIN_IEN_FELL_DIS(GPIOB_INT1)) +#define VAL_GPIOB_ISRC (PIN_ISRC_DIS(GPIOB_UART0_RXD) | \ + PIN_ISRC_DIS(GPIOB_UART0_TXD) | \ + PIN_ISRC_DIS(GPIOB_UART0_RTS) | \ + PIN_ISRC_DIS(GPIOB_UART0_CTS) | \ + PIN_ISRC_DIS(GPIOB_UART1_RXD) | \ + PIN_ISRC_DIS(GPIOB_UART1_TXD) | \ + PIN_ISRC_DIS(GPIOB_UART1_RTS) | \ + PIN_ISRC_DIS(GPIOB_UART1_CTS) | \ + PIN_ISRC_DIS(GPIOB_TM0) | \ + PIN_ISRC_DIS(GPIOB_TM1) | \ + PIN_ISRC_DIS(GPIOB_TM2) | \ + PIN_ISRC_DIS(GPIOB_PIN11) | \ + PIN_ISRC_DIS(GPIOB_CLK0) | \ + PIN_ISRC_DIS(GPIOB_PIN13) | \ + PIN_ISRC_DIS(GPIOB_INT0) | \ + PIN_ISRC_DIS(GPIOB_INT1)) +#define VAL_GPIOB_DOUT (PIN_DATA_LOW(GPIOB_UART0_RXD) | \ + PIN_DATA_LOW(GPIOB_UART0_TXD) | \ + PIN_DATA_LOW(GPIOB_UART0_RTS) | \ + PIN_DATA_LOW(GPIOB_UART0_CTS) | \ + PIN_DATA_LOW(GPIOB_UART1_RXD) | \ + PIN_DATA_LOW(GPIOB_UART1_TXD) | \ + PIN_DATA_LOW(GPIOB_UART1_RTS) | \ + PIN_DATA_LOW(GPIOB_UART1_CTS) | \ + PIN_DATA_LOW(GPIOB_TM0) | \ + PIN_DATA_LOW(GPIOB_TM1) | \ + PIN_DATA_LOW(GPIOB_TM2) | \ + PIN_DATA_LOW(GPIOB_PIN11) | \ + PIN_DATA_LOW(GPIOB_CLK0) | \ + PIN_DATA_LOW(GPIOB_PIN13) | \ + PIN_DATA_LOW(GPIOB_INT0) | \ + PIN_DATA_LOW(GPIOB_INT1)) + +/* + * GPIOC setup: + * + * PC0 - PIN0 (input pullup). + * PC1 - PIN1 (input pullup). + * PC2 - PIN2 (input pullup). + * PC3 - PIN3 (input pullup). + * PC4 - PIN4 (output). + * PC5 - PIN5 (output). + * PC6 - PIN6 (input pullup). + * PC7 - PIN7 (input pullup). + * PC8 - PIN8 (input pullup). + * PC9 - PIN9 (input pullup). + * PC10 - PIN10 (input pullup). + * PC11 - PIN11 (input pullup). + * PC12 - PIN12 (input pullup). + * PC13 - PIN13 (input pullup). + * PC14 - PIN14 (input pullup). + * PC15 - PIN15 (input pullup). + */ +#define VAL_GPIOC_PMD (PIN_MODE_INPUT(GPIOC_PIN0) | \ + PIN_MODE_INPUT(GPIOC_PIN1) | \ + PIN_MODE_INPUT(GPIOC_PIN2) | \ + PIN_MODE_INPUT(GPIOC_PIN3) | \ + PIN_MODE_OUTPUT(GPIOC_PIN4) | \ + PIN_MODE_OUTPUT(GPIOC_PIN5) | \ + PIN_MODE_INPUT(GPIOC_PIN6) | \ + PIN_MODE_INPUT(GPIOC_PIN7) | \ + PIN_MODE_INPUT(GPIOC_PIN8) | \ + PIN_MODE_INPUT(GPIOC_PIN9) | \ + PIN_MODE_INPUT(GPIOC_PIN10) | \ + PIN_MODE_INPUT(GPIOC_PIN11) | \ + PIN_MODE_INPUT(GPIOC_PIN12) | \ + PIN_MODE_INPUT(GPIOC_PIN13) | \ + PIN_MODE_INPUT(GPIOC_PIN14) | \ + PIN_MODE_INPUT(GPIOC_PIN15)) +#define VAL_GPIOC_OFFD (PIN_DIGITAL_EN(GPIOC_PIN0) | \ + PIN_DIGITAL_EN(GPIOC_PIN1) | \ + PIN_DIGITAL_EN(GPIOC_PIN2) | \ + PIN_DIGITAL_EN(GPIOC_PIN3) | \ + PIN_DIGITAL_DIS(GPIOC_PIN4) | \ + PIN_DIGITAL_DIS(GPIOC_PIN5) | \ + PIN_DIGITAL_EN(GPIOC_PIN6) | \ + PIN_DIGITAL_EN(GPIOC_PIN7) | \ + PIN_DIGITAL_EN(GPIOC_PIN8) | \ + PIN_DIGITAL_EN(GPIOC_PIN9) | \ + PIN_DIGITAL_EN(GPIOC_PIN10) | \ + PIN_DIGITAL_EN(GPIOC_PIN11) | \ + PIN_DIGITAL_EN(GPIOC_PIN12) | \ + PIN_DIGITAL_EN(GPIOC_PIN13) | \ + PIN_DIGITAL_EN(GPIOC_PIN14) | \ + PIN_DIGITAL_EN(GPIOC_PIN15)) +#define VAL_GPIOC_DMASK (PIN_DMASK_EN(GPIOC_PIN0) | \ + PIN_DMASK_EN(GPIOC_PIN1) | \ + PIN_DMASK_EN(GPIOC_PIN2) | \ + PIN_DMASK_EN(GPIOC_PIN3) | \ + PIN_DMASK_DIS(GPIOC_PIN4) | \ + PIN_DMASK_DIS(GPIOC_PIN5) | \ + PIN_DMASK_EN(GPIOC_PIN6) | \ + PIN_DMASK_EN(GPIOC_PIN7) | \ + PIN_DMASK_EN(GPIOC_PIN8) | \ + PIN_DMASK_EN(GPIOC_PIN9) | \ + PIN_DMASK_EN(GPIOC_PIN10) | \ + PIN_DMASK_EN(GPIOC_PIN11) | \ + PIN_DMASK_EN(GPIOC_PIN12) | \ + PIN_DMASK_EN(GPIOC_PIN13) | \ + PIN_DMASK_EN(GPIOC_PIN14) | \ + PIN_DMASK_EN(GPIOC_PIN15)) +#define VAL_GPIOC_DBEN (PIN_DBNCE_EN(GPIOC_PIN0) | \ + PIN_DBNCE_EN(GPIOC_PIN1) | \ + PIN_DBNCE_EN(GPIOC_PIN2) | \ + PIN_DBNCE_EN(GPIOC_PIN3) | \ + PIN_DBNCE_DIS(GPIOC_PIN4) | \ + PIN_DBNCE_DIS(GPIOC_PIN5) | \ + PIN_DBNCE_EN(GPIOC_PIN6) | \ + PIN_DBNCE_EN(GPIOC_PIN7) | \ + PIN_DBNCE_EN(GPIOC_PIN8) | \ + PIN_DBNCE_EN(GPIOC_PIN9) | \ + PIN_DBNCE_EN(GPIOC_PIN10) | \ + PIN_DBNCE_EN(GPIOC_PIN11) | \ + PIN_DBNCE_EN(GPIOC_PIN12) | \ + PIN_DBNCE_EN(GPIOC_PIN13) | \ + PIN_DBNCE_EN(GPIOC_PIN14) | \ + PIN_DBNCE_EN(GPIOC_PIN15)) +#define VAL_GPIOC_IMD (PIN_IMD_EDGE(GPIOC_PIN0) | \ + PIN_IMD_EDGE(GPIOC_PIN1) | \ + PIN_IMD_EDGE(GPIOC_PIN2) | \ + PIN_IMD_EDGE(GPIOC_PIN3) | \ + PIN_IMD_EDGE(GPIOC_PIN4) | \ + PIN_IMD_EDGE(GPIOC_PIN5) | \ + PIN_IMD_EDGE(GPIOC_PIN6) | \ + PIN_IMD_EDGE(GPIOC_PIN7) | \ + PIN_IMD_EDGE(GPIOC_PIN8) | \ + PIN_IMD_EDGE(GPIOC_PIN9) | \ + PIN_IMD_EDGE(GPIOC_PIN10) | \ + PIN_IMD_EDGE(GPIOC_PIN11) | \ + PIN_IMD_EDGE(GPIOC_PIN12) | \ + PIN_IMD_EDGE(GPIOC_PIN13) | \ + PIN_IMD_EDGE(GPIOC_PIN14) | \ + PIN_IMD_EDGE(GPIOC_PIN15)) +#define VAL_GPIOC_IEN (PIN_IEN_FELL_DIS(GPIOC_PIN0) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN1) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN2) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN3) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN4) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN5) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN6) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN7) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN8) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN9) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN10) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN11) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN12) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN13) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN14) | \ + PIN_IEN_FELL_DIS(GPIOC_PIN15)) +#define VAL_GPIOC_ISRC (PIN_ISRC_DIS(GPIOC_PIN0) | \ + PIN_ISRC_DIS(GPIOC_PIN1) | \ + PIN_ISRC_DIS(GPIOC_PIN2) | \ + PIN_ISRC_DIS(GPIOC_PIN3) | \ + PIN_ISRC_DIS(GPIOC_PIN4) | \ + PIN_ISRC_DIS(GPIOC_PIN5) | \ + PIN_ISRC_DIS(GPIOC_PIN6) | \ + PIN_ISRC_DIS(GPIOC_PIN7) | \ + PIN_ISRC_DIS(GPIOC_PIN8) | \ + PIN_ISRC_DIS(GPIOC_PIN9) | \ + PIN_ISRC_DIS(GPIOC_PIN10) | \ + PIN_ISRC_DIS(GPIOC_PIN11) | \ + PIN_ISRC_DIS(GPIOC_PIN12) | \ + PIN_ISRC_DIS(GPIOC_PIN13) | \ + PIN_ISRC_DIS(GPIOC_PIN14) | \ + PIN_ISRC_DIS(GPIOC_PIN15)) +#define VAL_GPIOC_DOUT (PIN_DATA_LOW(GPIOC_PIN0) | \ + PIN_DATA_LOW(GPIOC_PIN1) | \ + PIN_DATA_LOW(GPIOC_PIN2) | \ + PIN_DATA_LOW(GPIOC_PIN3) | \ + PIN_DATA_LOW(GPIOC_PIN4) | \ + PIN_DATA_LOW(GPIOC_PIN5) | \ + PIN_DATA_LOW(GPIOC_PIN6) | \ + PIN_DATA_LOW(GPIOC_PIN7) | \ + PIN_DATA_LOW(GPIOC_PIN8) | \ + PIN_DATA_LOW(GPIOC_PIN9) | \ + PIN_DATA_LOW(GPIOC_PIN10) | \ + PIN_DATA_LOW(GPIOC_PIN11) | \ + PIN_DATA_LOW(GPIOC_PIN12) | \ + PIN_DATA_LOW(GPIOC_PIN13) | \ + PIN_DATA_LOW(GPIOC_PIN14) | \ + PIN_DATA_LOW(GPIOC_PIN15)) + +/* + * GPIOD setup: + * + * PD0 - ADC0 (input pullup). + * PD1 - ADC1 (input pullup). + * PD2 - ADC2 (input pullup). + * PD3 - ADC3 (output). + * PD4 - ADC4 (output). + * PD5 - ADC5 (output). + * PD6 - PIN6 (input pullup). + * PD7 - PIN7 (input pullup). + * PD8 - PIN8 (input pullup). + * PD9 - PIN9 (output). + * PD10 - PIN10 (debug output). + * PD11 - PIN11 (output). + * PD12 - PIN12 (input pullup). + * PD13 - PIN13 (input pullup). + * PD14 - PIN14 (input pullup). + * PD15 - PIN15 (input pullup). + */ +#define VAL_GPIOD_PMD (PIN_MODE_INPUT(GPIOD_ADC0) | \ + PIN_MODE_INPUT(GPIOD_ADC1) | \ + PIN_MODE_INPUT(GPIOD_ADC2) | \ + PIN_MODE_OUTPUT(GPIOD_ADC3) | \ + PIN_MODE_OUTPUT(GPIOD_ADC4) | \ + PIN_MODE_OUTPUT(GPIOD_ADC5) | \ + PIN_MODE_INPUT(GPIOD_PIN6) | \ + PIN_MODE_INPUT(GPIOD_PIN7) | \ + PIN_MODE_INPUT(GPIOD_PIN8) | \ + PIN_MODE_OUTPUT(GPIOD_PIN9) | \ + PIN_MODE_OUTPUT(GPIOD_PIN10) | \ + PIN_MODE_OUTPUT(GPIOD_PIN11) | \ + PIN_MODE_INPUT(GPIOD_PIN12) | \ + PIN_MODE_INPUT(GPIOD_PIN13) | \ + PIN_MODE_INPUT(GPIOD_PIN14) | \ + PIN_MODE_INPUT(GPIOD_PIN15)) +#define VAL_GPIOD_OFFD (PIN_DIGITAL_EN(GPIOD_ADC0) | \ + PIN_DIGITAL_EN(GPIOD_ADC1) | \ + PIN_DIGITAL_EN(GPIOD_ADC2) | \ + PIN_DIGITAL_DIS(GPIOD_ADC3) | \ + PIN_DIGITAL_DIS(GPIOD_ADC4) | \ + PIN_DIGITAL_DIS(GPIOD_ADC5) | \ + PIN_DIGITAL_EN(GPIOD_PIN6) | \ + PIN_DIGITAL_EN(GPIOD_PIN7) | \ + PIN_DIGITAL_EN(GPIOD_PIN8) | \ + PIN_DIGITAL_DIS(GPIOD_PIN9) | \ + PIN_DIGITAL_DIS(GPIOD_PIN10) | \ + PIN_DIGITAL_DIS(GPIOD_PIN11) | \ + PIN_DIGITAL_EN(GPIOD_PIN12) | \ + PIN_DIGITAL_EN(GPIOD_PIN13) | \ + PIN_DIGITAL_EN(GPIOD_PIN14) | \ + PIN_DIGITAL_EN(GPIOD_PIN15)) +#define VAL_GPIOD_DMASK (PIN_DMASK_EN(GPIOD_ADC0) | \ + PIN_DMASK_EN(GPIOD_ADC1) | \ + PIN_DMASK_EN(GPIOD_ADC2) | \ + PIN_DMASK_DIS(GPIOD_ADC3) | \ + PIN_DMASK_DIS(GPIOD_ADC4) | \ + PIN_DMASK_DIS(GPIOD_ADC5) | \ + PIN_DMASK_EN(GPIOD_PIN6) | \ + PIN_DMASK_EN(GPIOD_PIN7) | \ + PIN_DMASK_EN(GPIOD_PIN8) | \ + PIN_DMASK_DIS(GPIOD_PIN9) | \ + PIN_DMASK_DIS(GPIOD_PIN10) | \ + PIN_DMASK_DIS(GPIOD_PIN11) | \ + PIN_DMASK_EN(GPIOD_PIN12) | \ + PIN_DMASK_EN(GPIOD_PIN13) | \ + PIN_DMASK_EN(GPIOD_PIN14) | \ + PIN_DMASK_EN(GPIOD_PIN15)) +#define VAL_GPIOD_DBEN (PIN_DBNCE_EN(GPIOD_ADC0) | \ + PIN_DBNCE_EN(GPIOD_ADC1) | \ + PIN_DBNCE_EN(GPIOD_ADC2) | \ + PIN_DBNCE_DIS(GPIOD_ADC3) | \ + PIN_DBNCE_DIS(GPIOD_ADC4) | \ + PIN_DBNCE_DIS(GPIOD_ADC5) | \ + PIN_DBNCE_EN(GPIOD_PIN6) | \ + PIN_DBNCE_EN(GPIOD_PIN7) | \ + PIN_DBNCE_EN(GPIOD_PIN8) | \ + PIN_DBNCE_DIS(GPIOD_PIN9) | \ + PIN_DBNCE_DIS(GPIOD_PIN10) | \ + PIN_DBNCE_DIS(GPIOD_PIN11) | \ + PIN_DBNCE_EN(GPIOD_PIN12) | \ + PIN_DBNCE_EN(GPIOD_PIN13) | \ + PIN_DBNCE_EN(GPIOD_PIN14) | \ + PIN_DBNCE_EN(GPIOD_PIN15)) +#define VAL_GPIOD_IMD (PIN_IMD_EDGE(GPIOD_ADC0) | \ + PIN_IMD_EDGE(GPIOD_ADC1) | \ + PIN_IMD_EDGE(GPIOD_ADC2) | \ + PIN_IMD_EDGE(GPIOD_ADC3) | \ + PIN_IMD_EDGE(GPIOD_ADC4) | \ + PIN_IMD_EDGE(GPIOD_ADC5) | \ + PIN_IMD_EDGE(GPIOD_PIN6) | \ + PIN_IMD_EDGE(GPIOD_PIN7) | \ + PIN_IMD_EDGE(GPIOD_PIN8) | \ + PIN_IMD_EDGE(GPIOD_PIN9) | \ + PIN_IMD_EDGE(GPIOD_PIN10) | \ + PIN_IMD_EDGE(GPIOD_PIN11) | \ + PIN_IMD_EDGE(GPIOD_PIN12) | \ + PIN_IMD_EDGE(GPIOD_PIN13) | \ + PIN_IMD_EDGE(GPIOD_PIN14) | \ + PIN_IMD_EDGE(GPIOD_PIN15)) +#define VAL_GPIOD_IEN (PIN_IEN_FELL_DIS(GPIOD_ADC0) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC1) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC2) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC3) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC4) | \ + PIN_IEN_FELL_DIS(GPIOD_ADC5) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN6) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN7) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN8) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN9) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN10) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN11) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN12) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN13) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN14) | \ + PIN_IEN_FELL_DIS(GPIOD_PIN15)) +#define VAL_GPIOD_ISRC (PIN_ISRC_DIS(GPIOD_ADC0) | \ + PIN_ISRC_DIS(GPIOD_ADC1) | \ + PIN_ISRC_DIS(GPIOD_ADC2) | \ + PIN_ISRC_DIS(GPIOD_ADC3) | \ + PIN_ISRC_DIS(GPIOD_ADC4) | \ + PIN_ISRC_DIS(GPIOD_ADC5) | \ + PIN_ISRC_DIS(GPIOD_PIN6) | \ + PIN_ISRC_DIS(GPIOD_PIN7) | \ + PIN_ISRC_DIS(GPIOD_PIN8) | \ + PIN_ISRC_DIS(GPIOD_PIN9) | \ + PIN_ISRC_DIS(GPIOD_PIN10) | \ + PIN_ISRC_DIS(GPIOD_PIN11) | \ + PIN_ISRC_DIS(GPIOD_PIN12) | \ + PIN_ISRC_DIS(GPIOD_PIN13) | \ + PIN_ISRC_DIS(GPIOD_PIN14) | \ + PIN_ISRC_DIS(GPIOD_PIN15)) +#define VAL_GPIOD_DOUT (PIN_DATA_LOW(GPIOD_ADC0) | \ + PIN_DATA_LOW(GPIOD_ADC1) | \ + PIN_DATA_LOW(GPIOD_ADC2) | \ + PIN_DATA_LOW(GPIOD_ADC3) | \ + PIN_DATA_LOW(GPIOD_ADC4) | \ + PIN_DATA_LOW(GPIOD_ADC5) | \ + PIN_DATA_LOW(GPIOD_PIN6) | \ + PIN_DATA_LOW(GPIOD_PIN7) | \ + PIN_DATA_LOW(GPIOD_PIN8) | \ + PIN_DATA_LOW(GPIOD_PIN9) | \ + PIN_DATA_LOW(GPIOD_PIN10) | \ + PIN_DATA_LOW(GPIOD_PIN11) | \ + PIN_DATA_LOW(GPIOD_PIN12) | \ + PIN_DATA_LOW(GPIOD_PIN13) | \ + PIN_DATA_LOW(GPIOD_PIN14) | \ + PIN_DATA_LOW(GPIOD_PIN15)) + +/* + * GPIOF setup: + * + * PF0 - OSC_IN (input floating). + * PF1 - OSC_OUT (input floating). + * PF2 - I2C0_SDA (input pullup). + * PF3 - I2C0_SCL (input pullup). + * PF4 - PIN4 (input pullup). + * PF5 - PIN5 (input pullup). + * PF6 - PIN6 (input pullup). + * PF7 - PIN7 (input pullup). + * PF8 - PIN8 (input pullup). + * PF9 - PIN9 (input pullup). + * PF10 - PIN10 (input pullup). + * PF11 - PIN11 (input pullup). + * PF12 - PIN12 (input pullup). + * PF13 - PIN13 (input pullup). + * PF14 - PIN14 (input pullup). + * PF15 - PIN15 (input pullup). + */ +#define VAL_GPIOF_PMD (PIN_MODE_QUASI(GPIOF_OSC_IN) | \ + PIN_MODE_QUASI(GPIOF_OSC_OUT) | \ + PIN_MODE_INPUT(GPIOF_I2C0_SDA) | \ + PIN_MODE_INPUT(GPIOF_I2C0_SCL) | \ + PIN_MODE_INPUT(GPIOF_PIN4) | \ + PIN_MODE_INPUT(GPIOF_PIN5) | \ + PIN_MODE_INPUT(GPIOF_PIN6) | \ + PIN_MODE_INPUT(GPIOF_PIN7) | \ + PIN_MODE_INPUT(GPIOF_PIN8) | \ + PIN_MODE_INPUT(GPIOF_PIN9) | \ + PIN_MODE_INPUT(GPIOF_PIN10) | \ + PIN_MODE_INPUT(GPIOF_PIN11) | \ + PIN_MODE_INPUT(GPIOF_PIN12) | \ + PIN_MODE_INPUT(GPIOF_PIN13) | \ + PIN_MODE_INPUT(GPIOF_PIN14) | \ + PIN_MODE_INPUT(GPIOF_PIN15)) +#define VAL_GPIOF_OFFD (PIN_DIGITAL_DIS(GPIOF_OSC_IN) | \ + PIN_DIGITAL_DIS(GPIOF_OSC_OUT) | \ + PIN_DIGITAL_EN(GPIOF_I2C0_SDA) | \ + PIN_DIGITAL_EN(GPIOF_I2C0_SCL) | \ + PIN_DIGITAL_EN(GPIOF_PIN4) | \ + PIN_DIGITAL_EN(GPIOF_PIN5) | \ + PIN_DIGITAL_EN(GPIOF_PIN6) | \ + PIN_DIGITAL_EN(GPIOF_PIN7) | \ + PIN_DIGITAL_EN(GPIOF_PIN8) | \ + PIN_DIGITAL_EN(GPIOF_PIN9) | \ + PIN_DIGITAL_EN(GPIOF_PIN10) | \ + PIN_DIGITAL_EN(GPIOF_PIN11) | \ + PIN_DIGITAL_EN(GPIOF_PIN12) | \ + PIN_DIGITAL_EN(GPIOF_PIN13) | \ + PIN_DIGITAL_EN(GPIOF_PIN14) | \ + PIN_DIGITAL_EN(GPIOF_PIN15)) +#define VAL_GPIOF_DMASK (PIN_DMASK_DIS(GPIOF_OSC_IN) | \ + PIN_DMASK_DIS(GPIOF_OSC_OUT) | \ + PIN_DMASK_EN(GPIOF_I2C0_SDA) | \ + PIN_DMASK_EN(GPIOF_I2C0_SCL) | \ + PIN_DMASK_EN(GPIOF_PIN4) | \ + PIN_DMASK_EN(GPIOF_PIN5) | \ + PIN_DMASK_EN(GPIOF_PIN6) | \ + PIN_DMASK_EN(GPIOF_PIN7) | \ + PIN_DMASK_EN(GPIOF_PIN8) | \ + PIN_DMASK_EN(GPIOF_PIN9) | \ + PIN_DMASK_EN(GPIOF_PIN10) | \ + PIN_DMASK_EN(GPIOF_PIN11) | \ + PIN_DMASK_EN(GPIOF_PIN12) | \ + PIN_DMASK_EN(GPIOF_PIN13) | \ + PIN_DMASK_EN(GPIOF_PIN14) | \ + PIN_DMASK_EN(GPIOF_PIN15)) +#define VAL_GPIOF_DBEN (PIN_DBNCE_DIS(GPIOF_OSC_IN) | \ + PIN_DBNCE_DIS(GPIOF_OSC_OUT) | \ + PIN_DBNCE_EN(GPIOF_I2C0_SDA) | \ + PIN_DBNCE_EN(GPIOF_I2C0_SCL) | \ + PIN_DBNCE_EN(GPIOF_PIN4) | \ + PIN_DBNCE_EN(GPIOF_PIN5) | \ + PIN_DBNCE_EN(GPIOF_PIN6) | \ + PIN_DBNCE_EN(GPIOF_PIN7) | \ + PIN_DBNCE_EN(GPIOF_PIN8) | \ + PIN_DBNCE_EN(GPIOF_PIN9) | \ + PIN_DBNCE_EN(GPIOF_PIN10) | \ + PIN_DBNCE_EN(GPIOF_PIN11) | \ + PIN_DBNCE_EN(GPIOF_PIN12) | \ + PIN_DBNCE_EN(GPIOF_PIN13) | \ + PIN_DBNCE_EN(GPIOF_PIN14) | \ + PIN_DBNCE_EN(GPIOF_PIN15)) +#define VAL_GPIOF_IMD (PIN_IMD_LVL(GPIOF_OSC_IN) | \ + PIN_IMD_LVL(GPIOF_OSC_OUT) | \ + PIN_IMD_EDGE(GPIOF_I2C0_SDA) | \ + PIN_IMD_EDGE(GPIOF_I2C0_SCL) | \ + PIN_IMD_EDGE(GPIOF_PIN4) | \ + PIN_IMD_EDGE(GPIOF_PIN5) | \ + PIN_IMD_EDGE(GPIOF_PIN6) | \ + PIN_IMD_EDGE(GPIOF_PIN7) | \ + PIN_IMD_EDGE(GPIOF_PIN8) | \ + PIN_IMD_EDGE(GPIOF_PIN9) | \ + PIN_IMD_EDGE(GPIOF_PIN10) | \ + PIN_IMD_EDGE(GPIOF_PIN11) | \ + PIN_IMD_EDGE(GPIOF_PIN12) | \ + PIN_IMD_EDGE(GPIOF_PIN13) | \ + PIN_IMD_EDGE(GPIOF_PIN14) | \ + PIN_IMD_EDGE(GPIOF_PIN15)) +#define VAL_GPIOF_IEN (PIN_IEN_FELL_DIS(GPIOF_OSC_IN) | \ + PIN_IEN_FELL_DIS(GPIOF_OSC_OUT) | \ + PIN_IEN_FELL_DIS(GPIOF_I2C0_SDA) | \ + PIN_IEN_FELL_DIS(GPIOF_I2C0_SCL) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN4) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN5) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN6) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN7) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN8) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN9) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN10) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN11) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN12) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN13) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN14) | \ + PIN_IEN_FELL_DIS(GPIOF_PIN15)) +#define VAL_GPIOF_ISRC (PIN_ISRC_DIS(GPIOF_OSC_IN) | \ + PIN_ISRC_DIS(GPIOF_OSC_OUT) | \ + PIN_ISRC_DIS(GPIOF_I2C0_SDA) | \ + PIN_ISRC_DIS(GPIOF_I2C0_SCL) | \ + PIN_ISRC_DIS(GPIOF_PIN4) | \ + PIN_ISRC_DIS(GPIOF_PIN5) | \ + PIN_ISRC_DIS(GPIOF_PIN6) | \ + PIN_ISRC_DIS(GPIOF_PIN7) | \ + PIN_ISRC_DIS(GPIOF_PIN8) | \ + PIN_ISRC_DIS(GPIOF_PIN9) | \ + PIN_ISRC_DIS(GPIOF_PIN10) | \ + PIN_ISRC_DIS(GPIOF_PIN11) | \ + PIN_ISRC_DIS(GPIOF_PIN12) | \ + PIN_ISRC_DIS(GPIOF_PIN13) | \ + PIN_ISRC_DIS(GPIOF_PIN14) | \ + PIN_ISRC_DIS(GPIOF_PIN15)) +#define VAL_GPIOF_DOUT (PIN_DATA_LOW(GPIOF_OSC_IN) | \ + PIN_DATA_LOW(GPIOF_OSC_OUT) | \ + PIN_DATA_LOW(GPIOF_I2C0_SDA) | \ + PIN_DATA_LOW(GPIOF_I2C0_SCL) | \ + PIN_DATA_LOW(GPIOF_PIN4) | \ + PIN_DATA_LOW(GPIOF_PIN5) | \ + PIN_DATA_LOW(GPIOF_PIN6) | \ + PIN_DATA_LOW(GPIOF_PIN7) | \ + PIN_DATA_LOW(GPIOF_PIN8) | \ + PIN_DATA_LOW(GPIOF_PIN9) | \ + PIN_DATA_LOW(GPIOF_PIN10) | \ + PIN_DATA_LOW(GPIOF_PIN11) | \ + PIN_DATA_LOW(GPIOF_PIN12) | \ + PIN_DATA_LOW(GPIOF_PIN13) | \ + PIN_DATA_LOW(GPIOF_PIN14) | \ + PIN_DATA_LOW(GPIOF_PIN15)) + + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* BOARD_H */ diff --git a/keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.mk b/keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.mk new file mode 100644 index 0000000000..dd9917fc6a --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/boards/NUC123SD4AN0/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = $(BOARD_PATH)/boards/NUC123SD4AN0/board.c + +# Required include directories +BOARDINC = $(BOARD_PATH)/boards/NUC123SD4AN0 diff --git a/keyboards/ducky/one2sf/1967st/chconf.h b/keyboards/ducky/one2sf/1967st/chconf.h new file mode 100644 index 0000000000..617be40dd9 --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/chconf.h @@ -0,0 +1,23 @@ +/* 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 CH_CFG_ST_FREQUENCY 10000 +#define CH_CFG_ST_TIMEDELTA 0 +#define CH_CFG_USE_WAITEXIT TRUE + +#include_next diff --git a/keyboards/ducky/one2sf/1967st/config.h b/keyboards/ducky/one2sf/1967st/config.h new file mode 100644 index 0000000000..f5d1904d8a --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/config.h @@ -0,0 +1,49 @@ +/* +Copyright 2019 /u/KeepItUnder + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D11, B4, B5, B6, B7 } +#define MATRIX_COL_PINS { B10, B9, C13, C12, C11, C10, C9, C8, A15, A14, A13, D0, D1, D2,B15,B8 } +#define DIP_SWITCH_MATRIX_GRID { {0,14}, {1,14}, {2,14}, {3,14} } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define FORCE_NKRO + +#define GPIO_INPUT_PIN_DELAY (NUC123_HCLK / 6 / 1000000L) diff --git a/keyboards/ducky/one2sf/1967st/info.json b/keyboards/ducky/one2sf/1967st/info.json new file mode 100644 index 0000000000..5361dbd4a0 --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/info.json @@ -0,0 +1,89 @@ +{ + "keyboard_name": "One 2 SF", + "manufacturer": "Ducky", + "maintainer": "f7urry", + "usb": { + "vid": "0x445B", + "pid": "0x07AF", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "x": 0, "y": 0, "w": 1, "label": "ESC" }, + { "x": 1, "y": 0, "w": 1, "label": "1" }, + { "x": 2, "y": 0, "w": 1, "label": "2" }, + { "x": 3, "y": 0, "w": 1, "label": "3" }, + { "x": 4, "y": 0, "w": 1, "label": "4" }, + { "x": 5, "y": 0, "w": 1, "label": "5" }, + { "x": 6, "y": 0, "w": 1, "label": "6" }, + { "x": 7, "y": 0, "w": 1, "label": "7" }, + { "x": 8, "y": 0, "w": 1, "label": "8" }, + { "x": 9, "y": 0, "w": 1, "label": "9" }, + { "x": 10, "y": 0, "w": 1, "label": "0" }, + { "x": 11, "y": 0, "w": 1, "label": "DASH" }, + { "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" }, + { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" }, + { "x": 15.25, "y": 0, "w": 1, "label": "DEL" }, + + { "x": 0, "y": 1, "w": 1.5, "label": "TAB" }, + { "x": 1.5, "y": 1, "w": 1, "label": "Q" }, + { "x": 2.5, "y": 1, "w": 1, "label": "W" }, + { "x": 3.5, "y": 1, "w": 1, "label": "E" }, + { "x": 4.5, "y": 1, "w": 1, "label": "R" }, + { "x": 5.5, "y": 1, "w": 1, "label": "T" }, + { "x": 6.5, "y": 1, "w": 1, "label": "Y" }, + { "x": 7.5, "y": 1, "w": 1, "label": "U" }, + { "x": 8.5, "y": 1, "w": 1, "label": "I" }, + { "x": 9.5, "y": 1, "w": 1, "label": "O" }, + { "x": 10.5, "y": 1, "w": 1, "label": "P" }, + { "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" }, + { "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" }, + { "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" }, + { "x": 15.25, "y": 1, "w": 1, "label": "PAGEUP" }, + + { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" }, + { "x": 1.75, "y": 2, "w": 1, "label": "A" }, + { "x": 2.75, "y": 2, "w": 1, "label": "S" }, + { "x": 3.75, "y": 2, "w": 1, "label": "D" }, + { "x": 4.75, "y": 2, "w": 1, "label": "F" }, + { "x": 5.75, "y": 2, "w": 1, "label": "G" }, + { "x": 6.75, "y": 2, "w": 1, "label": "H" }, + { "x": 7.75, "y": 2, "w": 1, "label": "J" }, + { "x": 8.75, "y": 2, "w": 1, "label": "K" }, + { "x": 9.75, "y": 2, "w": 1, "label": "L" }, + { "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" }, + { "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" }, + { "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" }, + { "x": 13.75, "y": 2, "w": 1.25, "label": "ENTER" }, + { "x": 15.25, "y": 2, "w": 1, "label": "PAGEDOWN" }, + + { "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" }, + { "x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH" }, + { "x": 2.25, "y": 3, "w": 1, "label": "Z" }, + { "x": 3.25, "y": 3, "w": 1, "label": "X" }, + { "x": 4.25, "y": 3, "w": 1, "label": "C" }, + { "x": 5.25, "y": 3, "w": 1, "label": "V" }, + { "x": 6.25, "y": 3, "w": 1, "label": "B" }, + { "x": 7.25, "y": 3, "w": 1, "label": "N" }, + { "x": 8.25, "y": 3, "w": 1, "label": "M" }, + { "x": 9.25, "y": 3, "w": 1, "label": "COMMA" }, + { "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" }, + { "x": 11.25, "y": 3, "w": 1, "label": "SLASH" }, + { "x": 12.25, "y": 3, "w": 2, "label": "RSHIFT" }, + { "x": 14.25, "y": 3, "w": 1, "label": "UP" }, + + { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" }, + { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" }, + { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" }, + { "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" }, + { "x": 10, "y": 4, "w": 1, "label": "RALT" }, + { "x": 11, "y": 4, "w": 1, "label": "FN" }, + { "x": 12, "y": 4, "w": 1.25, "label": "RCTRL" }, + { "x": 13.25, "y": 4, "w": 1, "label": "LEFT" }, + { "x": 14.25, "y": 4, "w": 1, "label": "DOWN" }, + { "x": 15.25, "y": 4, "w": 1, "label": "RIGHT" } + ] + } + } +} diff --git a/keyboards/ducky/one2sf/1967st/mcuconf.h b/keyboards/ducky/one2sf/1967st/mcuconf.h new file mode 100644 index 0000000000..12e9d2a82d --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/mcuconf.h @@ -0,0 +1,51 @@ +/* + ChibiOS - Copyright (C) 2020 Alex Lewontin + + 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_ + +/* + * Board setting + * 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: + * 3...0 Lowest...Highest. + * + * DMA priorities: + * 5...0 Lowest...Highest. + */ + +/* + * HAL driver system settings. + */ +#define NUC123_HSE_ENABLED TRUE +#define NUC123_PLL_ENABLED TRUE +#define NUC123_PLLSRC NUC123_PLLSRC_HSE +#define NUC123_HCLKSRC NUC123_HCLKSRC_PLL +#define NUC123_HCLKDIV 2 +#define NUC123_PLL_NF 144 +#define NUC123_USB_USE_USB0 TRUE +#define NUC123_USB_USE_USB1 TRUE + +#define NUC123_SERIAL_USE_UART0 TRUE +#define NUC123_SERIAL_CLKSRC NUC123_SERIAL_CLKSRC_HSI + +#define NUC123_MCUCONF + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/ducky/one2sf/1967st/readme.md b/keyboards/ducky/one2sf/1967st/readme.md new file mode 100644 index 0000000000..be96a8db71 --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/readme.md @@ -0,0 +1,32 @@ +# One 2 SF (DKON1967ST) + +A 65% keyboard by Ducky. + +This firmware was tested on the Ducky One 2 SF 1967ST version. + +* Keyboard Maintainer: [f7urry](https://github.com/f7urry) +* Hardware Supported: Ducky One 2 SF RGB (DKON1967ST), NUC123SD4AN0 + MBI5043GP + * Only ANSI layout is supported at this time (ISO & VIA still WIP). + * RGB LEDs are currently disabled until the driver is merged. + +## Compiling the Firmware: + + make ducky/one2sf/1967st:default + +## Accessing Bootloader Mode + +To enter the 1967ST bootloader to flash, boot the keyboard while holding D+L. + +## Flashing the Firmware: + +There are then two ways to flash the keyboard: + + pip install --user nuvoton-isp + nuvoisp -f ducky_one2sf_ansi.bin + +Alternatively you can use elfmimi's [nu-isp-cli](https://lib.rs/crates/nu-isp-cli) which is more complete than nuvoisp and allows flashing .hex files as well. + + cargo install nu-isp-cli + nu-isp-cli flash ducky_one2sf_ansi.bin + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/ducky/one2sf/1967st/rules.mk b/keyboards/ducky/one2sf/1967st/rules.mk new file mode 100644 index 0000000000..a5b4708b26 --- /dev/null +++ b/keyboards/ducky/one2sf/1967st/rules.mk @@ -0,0 +1,34 @@ +MCU_FAMILY = NUMICRO +MCU_SERIES = NUC123 + +# Bootloader selection +BOOTLOADER = custom + +# linker script to use +MCU_LDSCRIPT = NUC123xD4xx0 + +# startup code to use +MCU_STARTUP = NUC123 +BOARD = NUC123SD4AN0 + +# NUC123 series is Cortex M0 +MCU = cortex-m0 +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +ARMV = 6 + +# 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 +DIP_SWITCH_ENABLE = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ducky/one2sf/keymaps/default/config.h b/keyboards/ducky/one2sf/keymaps/default/config.h new file mode 100644 index 0000000000..b052c604f5 --- /dev/null +++ b/keyboards/ducky/one2sf/keymaps/default/config.h @@ -0,0 +1,25 @@ +/* Copyright 2019 /u/KeepItUnder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// place overrides here +#define GRAVE_ESC_GUI_OVERRIDE +#define MK_3_SPEED +#define MK_C_OFFSET_UNMOD 400 /* Cursor offset per movement (unmodified) */ +#define MK_C_INTERVAL_UNMOD 5 /* Time between cursor movements (unmodified) */ +#define MK_W_OFFSET_UNMOD 100 /* Scroll steps per scroll action (unmodified) */ +#define MK_W_INTERVAL_UNMOD 10 /* Time between scroll steps (unmodified) */ diff --git a/keyboards/ducky/one2sf/keymaps/default/keymap.c b/keyboards/ducky/one2sf/keymaps/default/keymap.c new file mode 100644 index 0000000000..e78667c9ad --- /dev/null +++ b/keyboards/ducky/one2sf/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2019 /u/KeepItUnder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// LAYERS +enum Layer { + _QWERTY = 0, // Standard QWERTY layer + _FUNCTION, // Function key layer + _COLOUR // RGB key layer +}; +#define _QW _QWERTY +#define _FN _FUNCTION +#define _CLR _COLOUR + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT_all( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FUNCTION] = 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_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, KC_PGDN, + _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD, KC_VOLU, MO(2), _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + + [_COLOUR] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/ducky/one2sf/keymaps/default/readme.md b/keyboards/ducky/one2sf/keymaps/default/readme.md new file mode 100644 index 0000000000..4b29f4aef2 --- /dev/null +++ b/keyboards/ducky/one2sf/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for one2sf diff --git a/keyboards/ducky/one2sf/readme.md b/keyboards/ducky/one2sf/readme.md new file mode 100644 index 0000000000..fb37adb7e9 --- /dev/null +++ b/keyboards/ducky/one2sf/readme.md @@ -0,0 +1,8 @@ +# One 2 SF + +A 65% keyboard by Ducky. + +The only supported keyboard version at this time is the DKON1967ST. + +* Hardware Supported: + * [DKON1967ST](1967st/), NUC123SD4AN0 + MBI5043GP diff --git a/keyboards/ducky/one2sf/rules.mk b/keyboards/ducky/one2sf/rules.mk new file mode 100644 index 0000000000..0c9ddb957f --- /dev/null +++ b/keyboards/ducky/one2sf/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ducky/one2sf/1967st diff --git a/keyboards/dumbo/config.h b/keyboards/dumbo/config.h index 07b67d06d3..ab99c291bd 100644 --- a/keyboards/dumbo/config.h +++ b/keyboards/dumbo/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x25E3 -#define DEVICE_VER 0x0001 -#define MANUFACTURER trip_trap -#define PRODUCT Dumbo - /* key matrix size */ /* Rows are doubled up */ #define MATRIX_ROWS 8 diff --git a/keyboards/dumbo/info.json b/keyboards/dumbo/info.json index 885ea08e29..caf466509a 100644 --- a/keyboards/dumbo/info.json +++ b/keyboards/dumbo/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Dumbo", + "manufacturer": "trip_trap", "url": "", "maintainer": "adamnaldal", + "usb": { + "vid": "0xFEED", + "pid": "0x25E3", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x6_4": { "layout": [ diff --git a/keyboards/dyz/dyz40/config.h b/keyboards/dyz/dyz40/config.h index 581f925165..b13ed808a9 100644 --- a/keyboards/dyz/dyz40/config.h +++ b/keyboards/dyz/dyz40/config.h @@ -19,10 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER dyz -#define PRODUCT dyz40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/dyz/dyz40/info.json b/keyboards/dyz/dyz40/info.json index db525a4707..e63b0d4f10 100644 --- a/keyboards/dyz/dyz40/info.json +++ b/keyboards/dyz/dyz40/info.json @@ -1,5 +1,6 @@ { "keyboard_name": "dyz40", + "manufacturer": "dyz", "url": "https://github.com/dayatz/mechanical-keyboards/tree/master/dyz40", "maintainer": "dayatz", "diode_direction": "COL2ROW", diff --git a/keyboards/dyz/dyz60/config.h b/keyboards/dyz/dyz60/config.h index a40d2de47e..5dc95c63cd 100644 --- a/keyboards/dyz/dyz60/config.h +++ b/keyboards/dyz/dyz60/config.h @@ -19,10 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER dyz -#define PRODUCT dyz60 - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/dyz/dyz60/info.json b/keyboards/dyz/dyz60/info.json index d946f9b97b..2717dbb6a5 100644 --- a/keyboards/dyz/dyz60/info.json +++ b/keyboards/dyz/dyz60/info.json @@ -1,5 +1,6 @@ { "keyboard_name": "dyz60", + "manufacturer": "dyz", "url": "https://github.com/dayatz/mechanical-keyboards/tree/master/dyz60", "maintainer": "dayatz", "diode_direction": "COL2ROW", diff --git a/keyboards/dyz/dyz60_hs/config.h b/keyboards/dyz/dyz60_hs/config.h new file mode 100644 index 0000000000..3f67156638 --- /dev/null +++ b/keyboards/dyz/dyz60_hs/config.h @@ -0,0 +1,30 @@ +/* +Copyright 2021 dayatz + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +#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/dyz60_hs.c b/keyboards/dyz/dyz60_hs/dyz60_hs.c new file mode 100644 index 0000000000..c6ec0f20d8 --- /dev/null +++ b/keyboards/dyz/dyz60_hs/dyz60_hs.c @@ -0,0 +1,16 @@ +/* Copyright 2021 dayatz + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "dyz60_hs.h" diff --git a/keyboards/dyz/dyz60_hs/dyz60_hs.h b/keyboards/dyz/dyz60_hs/dyz60_hs.h new file mode 100644 index 0000000000..ea416ef389 --- /dev/null +++ b/keyboards/dyz/dyz60_hs/dyz60_hs.h @@ -0,0 +1,33 @@ +/* Copyright 2021 dayatz + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 _X_ KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K45, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, _X_, _X_, K45, K46, _X_, _X_, _X_, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/dyz/dyz60_hs/info.json b/keyboards/dyz/dyz60_hs/info.json new file mode 100644 index 0000000000..214d6b9ded --- /dev/null +++ b/keyboards/dyz/dyz60_hs/info.json @@ -0,0 +1,104 @@ +{ + "keyboard_name": "dyz60-hs", + "manufacturer": "dyz", + "url": "https://github.com/dayatz/mechanical-keyboards/tree/master/dyz60_hs", + "maintainer": "dayatz", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["F4", "F5", "B3", "B2", "B1", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1" ], + "rows": ["E6", "B0", "F0", "F6", "F7"] + }, + "rgblight": { + "led_count": 16, + "pin": "B7", + "hue_steps": 10, + "saturation_steps": 10, + "brightness_steps": 10, + "animations": { + "all": true + } + }, + "indicators": { + "caps_lock": "F1" + }, + "usb": { + "vid": "0xD772", + "pid": "0x001A", + "device_ver": "0x0001" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"`~", "x":13, "y":0}, + {"label":"\\|", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "w":1.25}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + } + } +} diff --git a/keyboards/dyz/dyz60_hs/keymaps/default/keymap.c b/keyboards/dyz/dyz60_hs/keymaps/default/keymap.c new file mode 100644 index 0000000000..5e858f21aa --- /dev/null +++ b/keyboards/dyz/dyz60_hs/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2021 dayatz + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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, + _FN, + _FN2 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( /* 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_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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(_FN), + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, KC_MENU, KC_RCTL + ), + [_FN] = LAYOUT_all( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/dyz/dyz60_hs/keymaps/via/keymap.c b/keyboards/dyz/dyz60_hs/keymaps/via/keymap.c new file mode 100644 index 0000000000..5e858f21aa --- /dev/null +++ b/keyboards/dyz/dyz60_hs/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2021 dayatz + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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, + _FN, + _FN2 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( /* 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_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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(_FN), + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, KC_MENU, KC_RCTL + ), + [_FN] = LAYOUT_all( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/dyz/dyz60_hs/keymaps/via/rules.mk b/keyboards/dyz/dyz60_hs/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/dyz/dyz60_hs/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/dyz/dyz60_hs/readme.md b/keyboards/dyz/dyz60_hs/readme.md new file mode 100644 index 0000000000..bf94db30da --- /dev/null +++ b/keyboards/dyz/dyz60_hs/readme.md @@ -0,0 +1,29 @@ +# dyz60 + +![dyz60 pcb](https://i.imgur.com/l9z5KuJh.jpg) + +60% layout has flexcut with multiple layout and mounting support. + +* Keyboard Maintainer: [dayatz](https://github.com/dayatz) +* Hardware Supported: dyz60, ATmega32U4 +* Hardware Availability: Local Indonesia GB. + +#### Enter Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the Esc key and plug in the keyboard +* **Physical reset pins**: Briefly short the reset pins on the bottom of Space key + + +#### Flashing + +Make example for this keyboard (after setting up your build environment): + + make dyz/dyz60:default + +Flashing example for this keyboard: + + make dyz/dyz60: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/dyz/dyz60_hs/rules.mk b/keyboards/dyz/dyz60_hs/rules.mk new file mode 100644 index 0000000000..dfe72bbfb7 --- /dev/null +++ b/keyboards/dyz/dyz60_hs/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = no diff --git a/keyboards/dyz/dyz_tkl/config.h b/keyboards/dyz/dyz_tkl/config.h index c872680e64..72388d517e 100644 --- a/keyboards/dyz/dyz_tkl/config.h +++ b/keyboards/dyz/dyz_tkl/config.h @@ -19,10 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER dyz -#define PRODUCT dyz_TKL - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/dyz/dyz_tkl/info.json b/keyboards/dyz/dyz_tkl/info.json index 07a1a7cb7b..7628b43c94 100644 --- a/keyboards/dyz/dyz_tkl/info.json +++ b/keyboards/dyz/dyz_tkl/info.json @@ -1,5 +1,6 @@ { "keyboard_name": "dyz_TKL", + "manufacturer": "dyz", "url": "https://github.com/dayatz/mechanical-keyboards/tree/master/dyz_tkl", "maintainer": "dayatz", "diode_direction": "COL2ROW", diff --git a/keyboards/dyz/selka40/config.h b/keyboards/dyz/selka40/config.h index 1871fd2cb6..f62eab5c1b 100644 --- a/keyboards/dyz/selka40/config.h +++ b/keyboards/dyz/selka40/config.h @@ -19,10 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER dyz -#define PRODUCT selka40 - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/dyz/selka40/info.json b/keyboards/dyz/selka40/info.json index 740eb0d5f1..e8fae95b26 100644 --- a/keyboards/dyz/selka40/info.json +++ b/keyboards/dyz/selka40/info.json @@ -1,5 +1,6 @@ { "keyboard_name": "selka40", + "manufacturer": "dyz", "url": "https://github.com/dayatz/mechanical-keyboards/tree/master/selka40", "maintainer": "dayatz", "diode_direction": "COL2ROW", diff --git a/keyboards/dyz/synthesis60/config.h b/keyboards/dyz/synthesis60/config.h index 8b14dd4fe6..61dbd41420 100644 --- a/keyboards/dyz/synthesis60/config.h +++ b/keyboards/dyz/synthesis60/config.h @@ -19,10 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER dyz -#define PRODUCT Synthesis60 v2.1 - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/dyz/synthesis60/info.json b/keyboards/dyz/synthesis60/info.json index c0d9baf560..07f3e9a768 100644 --- a/keyboards/dyz/synthesis60/info.json +++ b/keyboards/dyz/synthesis60/info.json @@ -1,5 +1,6 @@ { - "keyboard_name": "synthesis60", + "keyboard_name": "Synthesis60 v2.1", + "manufacturer": "dyz", "url": "https://github.com/dayatz/mechanical-keyboards/tree/master/synthesis60", "maintainer": "dayatz", "diode_direction": "COL2ROW", diff --git a/keyboards/dz60/config.h b/keyboards/dz60/config.h index 24fd63836d..753e7c5612 100644 --- a/keyboards/dz60/config.h +++ b/keyboards/dz60/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x445A // "DZ" -#define PRODUCT_ID 0x2260 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFans -#define PRODUCT DZ60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/dz60/info.json b/keyboards/dz60/info.json index 9673315168..048d9df2b8 100644 --- a/keyboards/dz60/info.json +++ b/keyboards/dz60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "DZ60", + "manufacturer": "KBDFans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x445A", + "pid": "0x2260", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dz60/keymaps/iso_split-spacebar/keymap.c b/keyboards/dz60/keymaps/iso_split-spacebar/keymap.c index d3956ce3f0..a9e811f9a4 100644 --- a/keyboards/dz60/keymaps/iso_split-spacebar/keymap.c +++ b/keyboards/dz60/keymaps/iso_split-spacebar/keymap.c @@ -4,12 +4,12 @@ // thanks to atlacat, hailbreno, itsaferbie and weeheavy... // and special thanks to AGausmann and drashna for the layer-activated RGB underglow -// https://www.reddit.com/r/olkb/comments/6t1vdu/update_layeractivated_rgb_underglow/ +// https://www.reddit.com/r/olkb/comments/6t1vdu/update_layeractivated_rgb_underglow/ // https://github.com/AGausmann/qmk_firmware/blob/agausmann-v3.x/keyboards/nyquist/keymaps/agausmann/keymap.c #include QMK_KEYBOARD_H -/* +/* * Each layer gets a name for readability. * The underscores don't mean anything - you can * have a layer called STUFF or any other name. @@ -23,8 +23,8 @@ #define NL 2 // Numpad Layer #define RL 3 // RGB Layer -/* -* Let's give an easier name to the RGB modes +/* +* Let's give an easier name to the RGB modes * and assign the ones we want to the different layer * these will then be used by the function below * @@ -49,10 +49,10 @@ // #define RGB_RL_MODE rgblight_mode_noeeprom(22) //rgb mode for RL layer #define RGB_RL_LIGHT rgblight_sethsv_noeeprom_red() //rgb light for RL layer - + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - + /* Keymap BL: Base Layer (Default Layer) * * ,-----------------------------------------------------------. @@ -140,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_STA, RGB_BRE, RGB_RAI, RGB_SWI, _______, _______, RGB_SNA, RGB_KNI, RGB_GRA, RGB_XMS, _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(FL), _______, _______, _______, TO(BL), _______), - + }; @@ -175,25 +175,25 @@ void matrix_scan_user(void) { #ifdef RGBLIGHT_ENABLE static uint8_t old_layer = 1; - uint8_t new_layer = get_highest_layer(layer_state); + uint8_t new_layer = biton32(layer_state); if (old_layer != new_layer) { switch (new_layer) { case BL: RGB_BL_MODE; - RGB_BL_LIGHT; + RGB_BL_LIGHT; break; case FL: RGB_FL_MODE; - RGB_FL_LIGHT; + RGB_FL_LIGHT; break; case NL: - RGB_NL_MODE; - RGB_NL_LIGHT; + RGB_NL_MODE; + RGB_NL_LIGHT; break; case RL: - RGB_RL_MODE; - RGB_RL_LIGHT; + RGB_RL_MODE; + RGB_RL_LIGHT; break; } diff --git a/keyboards/dz60/keymaps/marianas/customLogic.c b/keyboards/dz60/keymaps/marianas/customLogic.c index 03ba92fe92..f22bd882e9 100644 --- a/keyboards/dz60/keymaps/marianas/customLogic.c +++ b/keyboards/dz60/keymaps/marianas/customLogic.c @@ -11,7 +11,7 @@ static int16_t fnTimer = 0; layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) + switch (biton32(state)) { case QWERTY: rgblight_mode(9); diff --git a/keyboards/dz60/keymaps/muralisc/keymap.c b/keyboards/dz60/keymaps/muralisc/keymap.c new file mode 100644 index 0000000000..d6c7bb40cb --- /dev/null +++ b/keyboards/dz60/keymaps/muralisc/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2022 Murali Suresh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// Copied from keyboards/dz60/keymaps/60_ansi/keymap.c + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,------------------------------------------------------------------------------------------. + * | ` ~ | 1! | 2@ | 3# | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | - | = | Bkspc | + * |------------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |------------------------------------------------------------------------------------------+ + * | Ctl_T(C) | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | + * |------------------------------------------------------------------------------------------+ + * | MO1 | Cmd | Alt | Space | RAlt | Cmd | MO2 | RCTL | + * `------------------------------------------------------------------------------------------' + */ + + LAYOUT_60_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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(2), KC_RCTL), + + /* Qwerty + * ,------------------------------------------------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | 5% | 6^ | 7& | 8* | 9( | 0) | - | = | Bkspc | + * |------------------------------------------------------------------------------------------+ + * | Tab | Q | W | End | R | T | Y | U | I | O | PsCr| SlCk| Paus| \ | + * |------------------------------------------------------------------------------------------+ + * | Ctl_T(C) | Home| S | D | Pgdn| G | Left| Down| Up | Rght| Home| PgUp| Enter | + * |------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | PgUp| N | M | , | End | PgDn| RShift | + * |------------------------------------------------------------------------------------------+ + * | MO1 | Cmd | Alt | Space | RAlt | Cmd | MO2 | RCTL | + * `------------------------------------------------------------------------------------------' + */ + + + LAYOUT_60_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_TRNS, KC_TRNS, KC_TRNS, KC_END , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + LAYOUT_60_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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/dz60/keymaps/xtonhasvim/keymap.c b/keyboards/dz60/keymaps/xtonhasvim/keymap.c index 49bc20b576..9a482686d8 100644 --- a/keyboards/dz60/keymaps/xtonhasvim/keymap.c +++ b/keyboards/dz60/keymaps/xtonhasvim/keymap.c @@ -73,7 +73,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { static uint32_t last_state = 0; if(last_state != state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _CMD: user_led_on(); break; @@ -85,3 +85,5 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; } + + diff --git a/keyboards/dztech/bocc/config.h b/keyboards/dztech/bocc/config.h index 95362b01fc..3e68abba52 100644 --- a/keyboards/dztech/bocc/config.h +++ b/keyboards/dztech/bocc/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x445A // "DZ" -#define PRODUCT_ID 0x1010 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DZtech -#define PRODUCT BOCC - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/dztech/bocc/info.json b/keyboards/dztech/bocc/info.json index e06f83f277..aca74e0405 100644 --- a/keyboards/dztech/bocc/info.json +++ b/keyboards/dztech/bocc/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BOCC", + "manufacturer": "DZTECH", "url": "", "maintainer": "DZTECH", + "usb": { + "vid": "0x445A", + "pid": "0x1010", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"label":"~", "x":2.5, "y":0}, {"label":"!", "x":3.5, "y":0}, {"label":"@", "x":4.5, "y":0}, {"label":"#", "x":5.5, "y":0}, {"label":"$", "x":6.5, "y":0}, {"label":"%", "x":7.5, "y":0}, {"label":"^", "x":8.5, "y":0}, {"label":"&", "x":9.5, "y":0}, {"label":"*", "x":10.5, "y":0}, {"label":"(", "x":11.5, "y":0}, {"label":")", "x":12.5, "y":0}, {"label":"_", "x":13.5, "y":0}, {"label":"+", "x":14.5, "y":0}, {"label":"Backspace", "x":15.5, "y":0}, {"x":16.5, "y":0}, {"label":"Home", "x":17.5, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"label":"Tab", "x":2.5, "y":1, "w":1.5}, {"label":"Q", "x":4, "y":1}, {"label":"W", "x":5, "y":1}, {"label":"E", "x":6, "y":1}, {"label":"R", "x":7, "y":1}, {"label":"T", "x":8, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15, "y":1}, {"label":"|", "x":16, "y":1, "w":1.5}, {"label":"Page Up", "x":17.5, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"label":"Caps Lock", "x":2.5, "y":2, "w":1.75}, {"label":"A", "x":4.25, "y":2}, {"label":"S", "x":5.25, "y":2}, {"label":"D", "x":6.25, "y":2}, {"label":"F", "x":7.25, "y":2}, {"label":"G", "x":8.25, "y":2}, {"label":"H", "x":9.25, "y":2}, {"label":"J", "x":10.25, "y":2}, {"label":"K", "x":11.25, "y":2}, {"label":"L", "x":12.25, "y":2}, {"label":":", "x":13.25, "y":2}, {"label":"\"", "x":14.25, "y":2}, {"label":"Enter", "x":15.25, "y":2, "w":2.25}, {"label":"Page Down", "x":17.5, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2.5, "y":3, "w":1.25}, {"label":"Shift", "x":3.75, "y":3}, {"label":"Z", "x":4.75, "y":3}, {"label":"X", "x":5.75, "y":3}, {"label":"C", "x":6.75, "y":3}, {"label":"V", "x":7.75, "y":3}, {"label":"B", "x":8.75, "y":3}, {"label":"N", "x":9.75, "y":3}, {"label":"M", "x":10.75, "y":3}, {"label":"<", "x":11.75, "y":3}, {"label":">", "x":12.75, "y":3}, {"label":"?", "x":13.75, "y":3}, {"label":"Shift", "x":14.75, "y":3, "w":1.75}, {"label":"\u2191", "x":16.5, "y":3}, {"label":"End", "x":17.5, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"label":"Ctrl", "x":2.5, "y":4, "w":1.25}, {"label":"Win", "x":3.75, "y":4, "w":1.25}, {"label":"Alt", "x":5, "y":4, "w":1.25}, {"x":6.25, "y":4, "w":6.25}, {"label":"Alt", "x":12.5, "y":4, "w":1.25}, {"label":"Fn", "x":13.75, "y":4, "w":1.25}, {"label":"\u2190", "x":15.5, "y":4}, {"label":"\u2193", "x":16.5, "y":4}, {"label":"\u2192", "x":17.5, "y":4}] diff --git a/keyboards/dztech/duo_s/config.h b/keyboards/dztech/duo_s/config.h index a108fa665e..ef46b2a207 100644 --- a/keyboards/dztech/duo_s/config.h +++ b/keyboards/dztech/duo_s/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x445A -#define PRODUCT_ID 0X1012 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DZTECH -#define PRODUCT DUO-S - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/dztech/duo_s/info.json b/keyboards/dztech/duo_s/info.json index 6adac04ae6..dc1ccd2788 100644 --- a/keyboards/dztech/duo_s/info.json +++ b/keyboards/dztech/duo_s/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "duo_s", + "keyboard_name": "DUO-S", + "manufacturer": "DZTECH", "url": "", "maintainer": "moyi4681", + "usb": { + "vid": "0x445A", + "pid": "0x1012", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c b/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c index 287496e17f..a12358c8d9 100644 --- a/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c @@ -96,7 +96,7 @@ void rgb_matrix_indicators_user(void) uint8_t this_led = host_keyboard_leds(); if (!g_suspend_state && rgb_matrix_config.enable) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _NAV: if (this_led & (1 << USB_LED_NUM_LOCK)) { rgb_matrix_set_color(13, 0xFF, 0x00, 0x00); diff --git a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c index 6af35cf779..a7c6360568 100644 --- a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c @@ -62,7 +62,7 @@ void rgb_matrix_indicators_user(void) uint8_t this_led = host_keyboard_leds(); if (!g_suspend_state && rgb_matrix_config.enable) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _LAYER1: rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break; @@ -78,7 +78,7 @@ void rgb_matrix_indicators_user(void) rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); } - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _LAYER3: if (this_led & (1 << USB_LED_NUM_LOCK)) { rgb_matrix_set_color(13, 0xFF, 0x00, 0x00); diff --git a/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c b/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c index daef7b271d..c13fcc1d35 100644 --- a/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c @@ -37,7 +37,7 @@ void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { void rgb_matrix_indicators_user(void) { if (!g_suspend_state) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _QWERTY: rgb_matrix_layer_helper(0x00, 0x0F, 0xFF); break; @@ -46,7 +46,7 @@ void rgb_matrix_indicators_user(void) } } - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _FNM: rgb_matrix_set_color(0, 0x00, 0xFF, 0x00); rgb_matrix_set_color(1, 0x00, 0x00, 0x00); diff --git a/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c b/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c new file mode 100644 index 0000000000..9bbf99128e --- /dev/null +++ b/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c @@ -0,0 +1,100 @@ +/* Copyright 2022 Murali Suresh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, LT(2,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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_60_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_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, NK_TOGG, _______, _______, KC_END, KC_PGDN, KC_MNXT, + _______, _______, _______, TO(3) , _______, _______, _______, _______ + ), + [2] = 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, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_60_ansi( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, LT(4,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, + MO(4) , KC_LGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI, MO(2), KC_RCTL + ), + [4] = LAYOUT_60_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_END, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + _______, KC_HOME, _______, _______, KC_PGDN, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, KC_PGUP, NK_TOGG, _______, _______, _______, _______, _______, + _______, _______, _______, TO(0) , _______, _______, _______, _______ + ), +}; + +void highlight_layer3(void){ + // F9-F12 + rgb_matrix_set_color(4, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(3, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(2, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(1, 0xFF, 0xFF, 0xFF); + // F1-F4 + rgb_matrix_set_color(9, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(10, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(11, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(12, 0xFF, 0xFF, 0xFF); + // Reset + rgb_matrix_set_color(14, 0x99, 0x99, 0xFF); + // Pause + Slck + PrScr + rgb_matrix_set_color(15, 0xFF, 0x99, 0x00); + rgb_matrix_set_color(16, 0xFF, 0x99, 0x00); + rgb_matrix_set_color(17, 0xFF, 0x99, 0x00); + // Pgup, Home + rgb_matrix_set_color(39, 0x00, 0x99, 0x00); + rgb_matrix_set_color(24, 0x00, 0x99, 0x00); + // hjkl + rgb_matrix_set_color(31, 0x00, 0x00, 0xFF); + rgb_matrix_set_color(32, 0x00, 0x00, 0xFF); + rgb_matrix_set_color(33, 0x00, 0x00, 0xFF); + rgb_matrix_set_color(34, 0x00, 0x00, 0xFF); + // PgDwn, End + rgb_matrix_set_color(36, 0x00, 0x99, 0x00); + rgb_matrix_set_color(46, 0x00, 0x99, 0x00); +} + +void rgb_matrix_indicators_user(void) { + uint8_t this_led = host_keyboard_leds(); + if (!g_suspend_state) { + switch (get_highest_layer(layer_state)) { + case 3: + highlight_layer3(); break; + default: + break; + } + } + if ( this_led & (1<. + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Qwerty + * ,------------------------------------------------------------------------------------------. + * | ` ~ | 1! | 2@ | 3# | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | - | = | Bkspc | + * |------------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |------------------------------------------------------------------------------------------+ + * | Ctl_T(C) | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | + * |------------------------------------------------------------------------------------------+ + * | MO1 | Cmd | Alt | Space | RAlt | Cmd | MO2 | RCTL | + * `------------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_60_ansi( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, LT(1,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, + MO(1) , KC_LGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI, MO(2), KC_RCTL + ), + /* Layer1 + * ,------------------------------------------------------------------------------------------. + * | ` ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del | + * |------------------------------------------------------------------------------------------+ + * | | | | | | | Y | | I | | PScr| Slck| Paus| Reset | + * |------------------------------------------------------------------------------------------+ + * | | | | | | | Left| Down| Up | Rght| Home| Pgup| | + * |------------------------------------------------------------------------------------------+ + * | Shift | V- | V+ | C | | | | | | End | PgDn| | + * |------------------------------------------------------------------------------------------+ + * | | | | TO3 | | | | | + * `------------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_60_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_END, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + _______, KC_HOME, _______, _______, KC_PGDN, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, KC_PGUP, NK_TOGG, _______, _______, _______, _______, _______, + _______, _______, _______, TO(3) , _______, _______, _______, _______ + ), + [2] = LAYOUT_60_ansi( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_60_ansi( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, TO(0), + _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, + _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, KC_P1, KC_P2, KC_P3, _______, KC_UP, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), +}; + +void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { + rgb_matrix_set_color( i, red, green, blue ); + } + } +} + +void highlight_layer1(void){ + // F9-F12 + rgb_matrix_set_color(4, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(3, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(2, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(1, 0xFF, 0xFF, 0xFF); + // F1-F4 + rgb_matrix_set_color(9, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(10, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(11, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(12, 0xFF, 0xFF, 0xFF); + // Reset + rgb_matrix_set_color(14, 0x99, 0x99, 0xFF); + // Pause + Slck + PrScr + rgb_matrix_set_color(15, 0xFF, 0x99, 0x00); + rgb_matrix_set_color(16, 0xFF, 0x99, 0x00); + rgb_matrix_set_color(17, 0xFF, 0x99, 0x00); + // Pgup, Home + rgb_matrix_set_color(39, 0x00, 0x99, 0x00); + rgb_matrix_set_color(24, 0x00, 0x99, 0x00); + // hjkl + rgb_matrix_set_color(31, 0x00, 0x00, 0xFF); + rgb_matrix_set_color(32, 0x00, 0x00, 0xFF); + rgb_matrix_set_color(33, 0x00, 0x00, 0xFF); + rgb_matrix_set_color(34, 0x00, 0x00, 0xFF); + // PgDwn, End + rgb_matrix_set_color(36, 0x00, 0x99, 0x00); + rgb_matrix_set_color(46, 0x00, 0x99, 0x00); +} + +void highlight_layer2(void){ + // Mode + rgb_matrix_set_color(18, 0xFF, 0xFF, 0xFF); + // Value + rgb_matrix_set_color(19, 0x4C, 0x00, 0x99); + rgb_matrix_set_color(20, 0x4C, 0x00, 0x99); + // Sat + rgb_matrix_set_color(21, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(22, 0xFF, 0xFF, 0xFF); + // Hue + rgb_matrix_set_color(23, 0x99, 0x99, 0x00); + rgb_matrix_set_color(24, 0x99, 0x99, 0x00); + // Toggle + rgb_matrix_set_color(26, 0xFF, 0xFF, 0xFF); + // Speed + rgb_matrix_set_color(31, 0xFF, 0x99, 0x00); + rgb_matrix_set_color(32, 0xFF, 0x99, 0x00); +} + +void highlight_layer3(void) { + int ins_key_block[9] = {25, 24, 23, 38, 37, 36, 50, 49, 48}; + for(int i = 0; i < 9; i++) { + rgb_matrix_set_color(ins_key_block[i], 0x00, 0x99, 0x00); + } + int num_key_block[9] = {20, 19, 18, 33, 32, 31, 45, 44, 43}; + for(int i = 0; i < 9; i++) { + rgb_matrix_set_color(num_key_block[i], 0x00, 0x09, 0x09); + } + int easy_arrow_keys[4] = {41, 55, 54, 53}; + for(int i = 0; i < 4; i++) { + rgb_matrix_set_color(easy_arrow_keys[i], 0x09, 0x00, 0x09); + } +} + +void rgb_matrix_indicators_user(void) { + uint8_t this_led = host_keyboard_leds(); + if (!g_suspend_state) { + switch (get_highest_layer(layer_state)) { + case 1: + highlight_layer1(); break; + case 2: + highlight_layer2(); break; + case 3: + /* rgb_matrix_layer_helper(0x03, 0x03, 0x00); */ + highlight_layer3(); + break; + default: + break; + } + } + if ( this_led & (1<event.pressed; if (pressed) { @@ -202,12 +202,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { onMac = true; break; case TO(_MAIN): - onMac = false; + onMac = false; break; } } return true; -} +} //**************** LEADER *********************// @@ -244,7 +244,7 @@ const uint8_t french_accent_index[3] = { [_ACUTE] = 2 }; -/* +/* This represent unicode decimal values Each index will be mapped to numpad keycode to out put the correct sequence All codes in this array should be of size 3 @@ -272,8 +272,8 @@ const uint8_t french_decimal_unicodes[5][3][2] = { /*[Letter][Accent][Case]*/ } },{ { - 140, // î - 206 // Î + 140, // î + 206 // Î } },{ { @@ -306,7 +306,7 @@ This is designed and work on an English language keyboard setting on both Window => accept french_letter and french_accent enum's as argument */ void send_french_accent(uint8_t letter, uint8_t accent) { - + bool isCaps; uint8_t decimal_unicode_in; uint8_t decimal_unicode_size = 3; @@ -330,7 +330,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) { }; /* - Function to tap the correct keycodes in sequence for the + Function to tap the correct keycodes in sequence for the "Windows Alt Code" requested, aka Decimal Unicodes */ void tap_win_alt_code(void) { @@ -341,7 +341,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) { tap_code(numpad_key_map[decimal_unicode_out[i]]); } } - + isCaps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? true : false; if (onMac) { @@ -372,7 +372,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) { /*Couple functions used to output the same macro on two different sequences*/ -/* (|) */ +/* (|) */ void ldrkey_send_paranthesis_wrap_ini(void) { SEND_STRING("()" SS_TAP(X_LEFT)); } @@ -382,7 +382,7 @@ void ldrkey_send_paranthesis_wrap_word(void) { onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "(" SS_LALT(SS_TAP(X_RIGHT)) ")") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "(" SS_LCTL(SS_TAP(X_RIGHT)) ")"); } -/* (selection) */ +/* (selection) */ void ldrkey_send_paranthesis_wrap_selection(void) { onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LGUI(SS_TAP(X_V)) SS_TAP(X_RIGHT)) : SEND_STRING(SS_LCTL(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_V)) SS_TAP(X_RIGHT)); } @@ -419,9 +419,9 @@ void ldrkey_send_curlybrace_wrap_selection(void) { LEADER_EXTERNS(); -void matrix_scan_user(void) +void matrix_scan_user(void) { - LEADER_DICTIONARY() + LEADER_DICTIONARY() { leading = false; leader_end(); @@ -476,49 +476,49 @@ void matrix_scan_user(void) tap_code(KC_CAPS); } /* ± => LdrKey > = > - */ - SEQ_TWO_KEYS(KC_EQL, KC_MINS) { - onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_EQL)))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P1) SS_UP(X_LALT)); + SEQ_TWO_KEYS(KC_EQL, KC_MINS) { + onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_EQL)))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P1) SS_UP(X_LALT)); } /* ≤ => LdrKey > - > = */ - SEQ_TWO_KEYS(KC_MINS, KC_EQL) { - onMac ? SEND_STRING(SS_LALT(SS_TAP(X_COMM))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P3) SS_UP(X_LALT)); + SEQ_TWO_KEYS(KC_MINS, KC_EQL) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_COMM))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P3) SS_UP(X_LALT)); } /* ≥ => LdrKey > = > = */ - SEQ_TWO_KEYS(KC_EQL, KC_EQL) { - onMac ? SEND_STRING(SS_LALT(SS_TAP(X_DOT))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P2) SS_UP(X_LALT)); + SEQ_TWO_KEYS(KC_EQL, KC_EQL) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_DOT))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P2) SS_UP(X_LALT)); } /* <= => LdrKey > , > , */ - SEQ_TWO_KEYS(KC_COMM, KC_COMM) { - SEND_STRING(SS_LSFT(SS_TAP(X_COMM)) SS_TAP(X_SPC) SS_TAP(X_EQL) SS_TAP(X_LEFT) SS_TAP(X_BSPC) SS_TAP(X_RIGHT)); + SEQ_TWO_KEYS(KC_COMM, KC_COMM) { + SEND_STRING(SS_LSFT(SS_TAP(X_COMM)) SS_TAP(X_SPC) SS_TAP(X_EQL) SS_TAP(X_LEFT) SS_TAP(X_BSPC) SS_TAP(X_RIGHT)); } /* => => LdrKey > . > . */ - SEQ_TWO_KEYS(KC_DOT, KC_DOT) { - SEND_STRING("=>"); + SEQ_TWO_KEYS(KC_DOT, KC_DOT) { + SEND_STRING("=>"); } /* ", " => LdrKey > " " */ - SEQ_ONE_KEY(KC_SPC) { - SEND_STRING(", "); + SEQ_ONE_KEY(KC_SPC) { + SEND_STRING(", "); } /* ". " => LdrKey > " " > " " */ - SEQ_TWO_KEYS(KC_SPC, KC_SPC) { - SEND_STRING(". "); + SEQ_TWO_KEYS(KC_SPC, KC_SPC) { + SEND_STRING(". "); } /* Backward delete current word (on cursor) */ - SEQ_TWO_KEYS(KC_BSPC, KC_BSPC) { - onMac ? SEND_STRING(SS_LALT(SS_TAP(X_RIGHT)) SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT)) SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); + SEQ_TWO_KEYS(KC_BSPC, KC_BSPC) { + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_RIGHT)) SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT)) SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); } /* Previous word delete */ - SEQ_ONE_KEY(KC_BSPC) { - onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); + SEQ_ONE_KEY(KC_BSPC) { + onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); } /* Forward delete current word (on cursor) */ - SEQ_TWO_KEYS(KC_DEL, KC_DEL) { + SEQ_TWO_KEYS(KC_DEL, KC_DEL) { - onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)) : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); + onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)) : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); } /* Next word delete */ - SEQ_ONE_KEY(KC_DEL) { - onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)): SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); + SEQ_ONE_KEY(KC_DEL) { + onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)): SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); } /* ` => LdrKey > Escape */ SEQ_ONE_KEY(KC_GESC) { @@ -548,7 +548,7 @@ void matrix_scan_user(void) SEQ_ONE_KEY(KC_Q) { onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_Q))) : SEND_STRING(SS_LALT(SS_TAP(X_F4))); } - /* " => LdrKey > ' */ + /* " => LdrKey > ' */ SEQ_ONE_KEY(KC_QUOT) { SEND_STRING("\""); } @@ -657,48 +657,48 @@ void matrix_scan_user(void) ldrkey_send_curlybrace_wrap_selection(); } /* Select everything on this line before cursor => LdrKey > Left */ - SEQ_ONE_KEY(KC_LEFT) { + SEQ_ONE_KEY(KC_LEFT) { onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_LEFT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_HOME))); } /* Select everything on this line after cursor => LdrKey > Right */ - SEQ_ONE_KEY(KC_RIGHT) { + SEQ_ONE_KEY(KC_RIGHT) { onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_END))); } /* Select everything on this line before cursor and bring on previous line => LdrKey > Left > Left */ - SEQ_TWO_KEYS(KC_LEFT, KC_LEFT) { - onMac ? SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_TAP(X_END))); + SEQ_TWO_KEYS(KC_LEFT, KC_LEFT) { + onMac ? SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_TAP(X_END))); } /* Select everything on this line => LdrKey > Right > Left */ - SEQ_TWO_KEYS(KC_RIGHT, KC_LEFT) { - onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_RIGHT) SS_LSFT(SS_LGUI(SS_TAP(X_LEFT))))) : SEND_STRING(SS_TAP(X_END) SS_LSFT(SS_TAP(X_HOME))); + SEQ_TWO_KEYS(KC_RIGHT, KC_LEFT) { + onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_RIGHT) SS_LSFT(SS_LGUI(SS_TAP(X_LEFT))))) : SEND_STRING(SS_TAP(X_END) SS_LSFT(SS_TAP(X_HOME))); } /* Select 1x Page Up on the page before the cursor => LdrKey > Up */ - SEQ_ONE_KEY(KC_UP) { + SEQ_ONE_KEY(KC_UP) { SEND_STRING(SS_LSFT(SS_TAP(X_PGUP))); } /* Select 1x Page Down on the page after the cursor => LdrKey > Down */ - SEQ_ONE_KEY(KC_DOWN) { - SEND_STRING(SS_LSFT(SS_TAP(X_PGDN))); + SEQ_ONE_KEY(KC_DOWN) { + SEND_STRING(SS_LSFT(SS_TAP(X_PGDN))); } /* Select everything on the page before the cursor => LdrKey > Up > Up */ - SEQ_TWO_KEYS(KC_UP, KC_UP) { + SEQ_TWO_KEYS(KC_UP, KC_UP) { onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_UP)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_HOME)))); } /* Select everything on the page after the cursor => LdrKey > Down > Down */ - SEQ_TWO_KEYS(KC_DOWN, KC_DOWN) { + SEQ_TWO_KEYS(KC_DOWN, KC_DOWN) { onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_DOWN)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_END)))); } /* HELPER => spit out the url of the layout description page on github */ - SEQ_FIVE_KEYS(KC_GESC, KC_GESC, KC_GESC, KC_GESC, KC_GESC) { + SEQ_FIVE_KEYS(KC_GESC, KC_GESC, KC_GESC, KC_GESC, KC_GESC) { SEND_STRING("https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz65rgb/keymaps/drootz"); } /* google.ca => LdrKey > G > G */ - SEQ_TWO_KEYS(KC_G, KC_G) { - SEND_STRING("https://google.ca" SS_TAP(X_ENT)); + SEQ_TWO_KEYS(KC_G, KC_G) { + SEND_STRING("https://google.ca" SS_TAP(X_ENT)); } /* @gmail => LdrKey > M > L > T */ - SEQ_THREE_KEYS(KC_M, KC_L, KC_T) { - SEND_STRING("mailto." SS_TAP(X_D) SS_TAP(X_A) SS_TAP(X_N) SS_TAP(X_I) SS_TAP(X_E) SS_TAP(X_L) SS_TAP(X_R) SS_TAP(X_A) SS_TAP(X_C) SS_TAP(X_I) SS_TAP(X_N) SS_TAP(X_E) "@gmail.com"); + SEQ_THREE_KEYS(KC_M, KC_L, KC_T) { + SEND_STRING("mailto." SS_TAP(X_D) SS_TAP(X_A) SS_TAP(X_N) SS_TAP(X_I) SS_TAP(X_E) SS_TAP(X_L) SS_TAP(X_R) SS_TAP(X_A) SS_TAP(X_C) SS_TAP(X_I) SS_TAP(X_N) SS_TAP(X_E) "@gmail.com"); } /* Show Desktop => LdrKey > D */ SEQ_ONE_KEY(KC_D) { diff --git a/keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c b/keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c index 0c7bfbbb48..00915a9b4f 100644 --- a/keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c +++ b/keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c @@ -91,7 +91,7 @@ void rgb_matrix_indicators_user(void) uint8_t this_led = host_keyboard_leds(); if (!g_suspend_state && rgb_matrix_config.enable) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _NAV: if (IS_LED_ON(this_led, USB_LED_NUM_LOCK)) { rgb_matrix_set_color(17, 0xFF, 0x00, 0x00); diff --git a/keyboards/dztech/dz65rgb/keymaps/sbennett13/config.h b/keyboards/dztech/dz65rgb/keymaps/sbennett13/config.h new file mode 100644 index 0000000000..2d4559fadd --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/sbennett13/config.h @@ -0,0 +1,43 @@ +// Copyright 2021 Scott Bennett (@SBennett13) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define NO_MUSIC_MODE +#define FORCE_NKRO + +// I don't use a bunch of layers +#define LAYER_STATE_8BIT + +// Disable the RGB Light (underglow) stuff +#undef RBGLIGHT_ANIMATIONS +#undef RBGLIGHT_EFFECT_BREATHING +#undef RBGLIGHT_EFFECT_RAINBOW_MOOD +#undef RBGLIGHT_EFFECT_RAINBOW_SWIRL +#undef RBGLIGHT_EFFECT_SNAKE +#undef RBGLIGHT_EFFECT_KNIGHT +#undef RBGLIGHT_EFFECT_CHRISTMAS +#undef RBGLIGHT_EFFECT_STATIC_GRADIENT +#undef RBGLIGHT_EFFECT_RGB_TEST +#undef RBGLIGHT_EFFECT_ALTERNATING +#undef RBGLIGHT_EFFECT_TWINKLE + +// No Cherry MX Lock switch +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +// No oneshot (Active until another key hit) +#define NO_ACTION_ONESHOT + +// Remove some RGB +#undef ENABLE_RGB_MATRIX_ALPHAS_MODS +#undef ENABLE_RGB_MATRIX_BREATHING +#undef ENABLE_RGB_MATRIX_BAND_VAL +#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#undef ENABLE_RGB_MATRIX_PIXEL_FLOW +#undef ENABLE_RGB_MATRIX_PIXEL_RAIN +#undef ENABLE_RGB_MATRIX_RAINDROPS +#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#undef ENABLE_RGB_MATRIX_SOLID_SPLASH diff --git a/keyboards/dztech/dz65rgb/keymaps/sbennett13/keymap.c b/keyboards/dztech/dz65rgb/keymaps/sbennett13/keymap.c new file mode 100644 index 0000000000..511193e2b6 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/sbennett13/keymap.c @@ -0,0 +1,20 @@ +// Copyright 2021 Scott Bennett (@SBennett13) +// 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( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + 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_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_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, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_SLCK, KC_PAUS, QK_BOOT, KC_PGUP, + CTL_T(KC_CAPS), RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, KC_PGDN, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/dztech/dz65rgb/keymaps/sbennett13/readme.md b/keyboards/dztech/dz65rgb/keymaps/sbennett13/readme.md new file mode 100644 index 0000000000..e5535e9ffc --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/sbennett13/readme.md @@ -0,0 +1,50 @@ +# sbennett13 DZ65RGB v2 layout + +Copyright 2022 Scott Bennett scottbennett027@gmail @SBennett13 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +```text + Keymap Default Layer + ,-----------------------------------------------------------------------------. + |Esc ~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backsp|Home| + |-----------------------------------------------------------------------------| + |Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |PgUp| + |-----------------------------------------------------------------------------| + |FN | A | S | D | F | G | H | J | K | L | ; | ' |Return |PgDn| + |-----------------------------------------------------------------------------| + |Shift | Z | X | C | V | B | N | M | , | . | / |Shift | Up | End| + |-----------------------------------------------------------------------------| + |Ctrl |Win |Alt | Space |Alt | FN |Ctrl |Lef |Dow |Rig | + `-----------------------------------------------------------------------------' +``` + +```text + Keymap Function Layer + ,-----------------------------------------------------------------------------. + | `~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 |F10 |F11 |F12 |DEL |PNTS| + |-----------------------------------------------------------------------------| + | |RgbT|RgbM|Hue+|Hue-|Sat+|Sat-|BR+ |BR- | | |SLCK|Paus|RST | | + |-----------------------------------------------------------------------------| + | |Eff+|Eff-| | | | | | | | | |EEP RST | | + |-----------------------------------------------------------------------------| + | | | | | | | | | | | | |Vol+|MUTE| + |-----------------------------------------------------------------------------| + | | | | | | | |LAST|Vol-|NEXT| + `-----------------------------------------------------------------------------' +``` + +### Build layout + +```qmk compile -kb dztech/dz65rgb/v2 -km sbennett13``` diff --git a/keyboards/dztech/dz65rgb/keymaps/sbennett13/rules.mk b/keyboards/dztech/dz65rgb/keymaps/sbennett13/rules.mk new file mode 100644 index 0000000000..ed0a53416b --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/sbennett13/rules.mk @@ -0,0 +1,23 @@ +# Load Time Optimization +LTO_ENABLE = yes + +# Space Cadet (Shift/Ctrl/Alt tapping for parenthesis) +SPACE_CADET_ENABLE = no + +# Mouse keys bindable to keyboard +MOUSEKEY_ENABLE = no + +# Console +CONSOLE_ENABLE = no + +# Command (Change keyboard behavior without having to flash) +COMMAND_ENABLE = no + +# Magic QMK keycodes +MAGIC_ENABLE = no + +# No audio stuff +MUSIC_ENABLE = no + +# No WPM +WPM_ENABLE = no \ No newline at end of file diff --git a/keyboards/dztech/dz65rgb/keymaps/yuannan/config.h b/keyboards/dztech/dz65rgb/keymaps/yuannan/config.h new file mode 100644 index 0000000000..0a005cbca3 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/yuannan/config.h @@ -0,0 +1,43 @@ +/* Copyright 2021 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 . + */ + +#pragma once + +#undef ENABLE_RGB_MATRIX_PIXEL_FLOW +#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#undef ENABLE_RGB_MATRIX_PIXEL_RAIN +#undef ENABLE_RGB_MATRIX_RAINDROPS +#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + +#undef RGB_MATRIX_STARTUP_MODE +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_OUT_IN_DUAL + +#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 QMK_KEYS_PER_SCAN 12nn + +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_INTERVAL 1 +#define MOUSEKEY_MOVE_DELTA 1 +#define MOUSEKEY_MAX_SPEED 25 +#define MOUSEKEY_TIME_TO_MAX 255 +#define MOUSEKEY_WHEEL_DELAY 0 +#define MOUSEKEY_WHEEL_INTERVAL 100 +#define MOUSEKEY_WHEEL_MAX_SPEED 100 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 100 diff --git a/keyboards/dztech/dz65rgb/keymaps/yuannan/keymap.c b/keyboards/dztech/dz65rgb/keymaps/yuannan/keymap.c new file mode 100644 index 0000000000..5baf32a7e4 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/yuannan/keymap.c @@ -0,0 +1,210 @@ +/* Copyright 2021 Yuannan (https://github.com/yuannan) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + AUTOCLICK_TOGGLE = SAFE_RANGE, + AUTO_BURST, + RAPID_BURST, + INC_CLICK_SPEED, + DEC_CLICK_SPEED, + DEL_LINE, + DEL_HOME, + DEL_END +}; + +enum my_layers { + _ALPHA_LAYER, + _VIM_EDITING_LAYER, + _MOUSE_LAYER, + _HYPER_LAYER +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_ALPHA_LAYER] = LAYOUT_65_ansi( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPACE, 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_LBRACKET,KC_RBRACKET, KC_BSLASH, KC_PGUP, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENTER, KC_PGDOWN, + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_UP, KC_END, + KC_CAPSLOCK,KC_LGUI,FN_MO13, KC_SPACE, FN_MO23, KC_LALT, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_VIM_EDITING_LAYER] = LAYOUT_65_ansi( + KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DELETE, KC_INSERT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DEL_HOME, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCROLLLOCK, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DEL_LINE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_MPLY, KC_PAUSE, + KC_TRNS, AUTOCLICK_TOGGLE, KC_TRNS, AUTO_BURST,RAPID_BURST, KC_TRNS, DEL_END, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_PSCREEN, + DEC_CLICK_SPEED,INC_CLICK_SPEED, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + [_MOUSE_LAYER] = LAYOUT_65_ansi( + KC_GRAVE, KC_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_ACL0, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ACL1, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ACL2, AUTOCLICK_TOGGLE, KC_BTN3, AUTO_BURST, RAPID_BURST, KC_TRNS, KC_TRNS, KC_BTN5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + DEC_CLICK_SPEED,INC_CLICK_SPEED,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_HYPER_LAYER] = LAYOUT_65_ansi( + DYN_REC_STOP, DYN_REC_START1, DYN_REC_START2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, 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_NO, KC_NO, 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_LSHIFT, KC_NO, KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#define CLICKSPEEDS 5 +const uint16_t clickspeed_sets[CLICKSPEEDS] = {1000, 100, 50, 20, 1}; +uint16_t clickspeed_set = CLICKSPEEDS - 1; +deferred_token autoclick_token = INVALID_DEFERRED_TOKEN; +bool rapid = false; + +void decrement_click_speed(void){ + clickspeed_set += CLICKSPEEDS - 1; + clickspeed_set %= CLICKSPEEDS; +} + +void increment_click_speed(void){ + clickspeed_set ++; + clickspeed_set %= CLICKSPEEDS; +} + +uint32_t autoclick_callback(uint32_t trigger_time, void *cb_arg){ + tap_code(KC_BTN1); + + return rapid ? 1 : clickspeed_sets[clickspeed_set]; +} + +void start_autoclicker(void){ + autoclick_token = defer_exec(1, autoclick_callback, NULL); +} + +void stop_autoclicker(void){ + cancel_deferred_exec(autoclick_token); + autoclick_token = INVALID_DEFERRED_TOKEN; +} + +// Custom process key to allow for custom keycodes +bool process_record_user(uint16_t keycode, keyrecord_t *record){ + switch (keycode) { + case AUTOCLICK_TOGGLE: + if (record->event.pressed) { + if (autoclick_token == INVALID_DEFERRED_TOKEN){ + start_autoclicker(); + } else{ + stop_autoclicker(); + } + } + break; + case AUTO_BURST: + if (record->event.pressed && (autoclick_token == INVALID_DEFERRED_TOKEN)) { + start_autoclicker(); + } else if (autoclick_token != INVALID_DEFERRED_TOKEN){ + stop_autoclicker(); + } + break; + case RAPID_BURST: + if (record->event.pressed){ + rapid = true; + start_autoclicker(); + } else{ + rapid = false; + stop_autoclicker(); + } + break; + case INC_CLICK_SPEED: + if (record->event.pressed){ + if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){ + decrement_click_speed(); + } else{ + increment_click_speed(); + } + } + break; + case DEC_CLICK_SPEED: + if (record->event.pressed){ + if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){ + increment_click_speed(); + } else{ + decrement_click_speed(); + } + } + break; + case DEL_LINE: + if(record->event.pressed){ + SEND_STRING(SS_TAP(X_HOME) SS_LSFT(SS_TAP(X_END)) SS_TAP(X_DELETE)); + } + break; + case DEL_HOME: + if(record->event.pressed){ + SEND_STRING(SS_LSFT(SS_TAP(X_HOME)) SS_TAP(X_DELETE)); + } + break; + case DEL_END: + if(record->event.pressed){ + SEND_STRING(SS_LSFT(SS_TAP(X_END)) SS_TAP(X_DELETE)); + } + break; + case RGB_TOG: + if(record->event.pressed){ + if (!(get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT))){ + if(rgb_matrix_get_val() < 128){ + rgb_matrix_sethsv(rgb_matrix_get_hue(), rgb_matrix_get_sat(), 255); + } else{ + rgb_matrix_sethsv(rgb_matrix_get_hue(), rgb_matrix_get_sat(), 0); + } + return false; + } + } + break; + } + + return true; +}; + +RGB get_inverted_RGB(void){ + HSV current_HSV = rgb_matrix_get_hsv(); + current_HSV.h = 255 - current_HSV.h; + current_HSV.s = 255; + current_HSV.v = 255; + + return hsv_to_rgb(current_HSV); +} + +// Move Caps indicator to the ctrl key where it belongs +void rgb_matrix_indicators_user(void){ + RGB inverted_RGB = get_inverted_RGB(); + if (host_keyboard_led_state().caps_lock){ + rgb_matrix_set_color(58, inverted_RGB.r, inverted_RGB.g, inverted_RGB.b); + } +} + +// show coloured indicator for layers with a keybind +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max){ + uint8_t layer = get_highest_layer(layer_state); + if (layer > 0) { + RGB inverted_RGB = get_inverted_RGB(); + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + for (uint8_t col = 0; col < MATRIX_COLS; ++col) { + uint8_t index = g_led_config.matrix_co[row][col]; + + if (index >= led_min && index <= led_max && index != NO_LED && + keymap_key_to_keycode(layer, (keypos_t){col,row}) > KC_TRNS) { + rgb_matrix_set_color(index, inverted_RGB.r, inverted_RGB.g, inverted_RGB.b); + } + } + } + } +} diff --git a/keyboards/dztech/dz65rgb/keymaps/yuannan/readme.md b/keyboards/dztech/dz65rgb/keymaps/yuannan/readme.md new file mode 100644 index 0000000000..c6768aceec --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/yuannan/readme.md @@ -0,0 +1,88 @@ +[DZ65RGB/v3 Yuannan's Layout Imgur Album](https://imgur.com/a/BI2RjgE) + +![Alpha](https://i.imgur.com/ikqvrtF.png) +![Vim Editing Layer](https://i.imgur.com/hoBvSRR.png) +![Mouse and Autoclicker](https://i.imgur.com/QWmWaWY.png) +![Hyper functions and RGB Layer](https://i.imgur.com/Zm6Tf6p.png) + +# Yuannan's DZ65 Custom Profile. Autoclicker, Vim, and more! + +## Features + +1. Much better mouse support. Now able to: + - Move mouse around with 3 levels of acceleration + - Click and nav using mouse buttons 1-5 + - Mouse scroll in all 4 directions, autoclick with 5 different levels of speed! + - Increase or Decrease the autoclick speed from the preset array of {500, 50, 20, 10, 1} clicks per second \*(Read Notes). Press Shift while using the Increase or Decrease button to do the opposite. Designed to work with other keymaps and keyboards! +2. Ctrl and Caps swapped. The new indicator is dynamically colored and has been moved to the CTRL key to reflect the keymap. +3. Improved navigation via Vim like keys. +4. Dynamic Macros now enabled! +5. Custom Editing Macros such as: + - Deleting entire line + - Deleting from cursor to start of line + - Deleting form cursor to end of line +6. VIA support. +7. Improved granularity of the RGB Matrix. Now with steps of 8/256, which is 32 steps! +8. The default toggle for RGB now sets the matrix to be on low brightness. Why? If the matrix is completely toggled off then the indicators for Caps Locks and FN are also completely off. You can completely turn it off by pressing shift while processing the "RGB_TOG" keycode. (It is {FN1+FN2+Shift+Space} on this keymap.) +9. Disabled some effects to free up more space. + +### Notes + +#### Note Autoclicker Speed + +The click events are now programmed with the new Deferred Execution API (https://docs.qmk.fm/#/custom_quantum_functions?id=deferred-execution). + +While it's programmed to input with a delay of 1ms (500CPS), the result will vary depending on your board and host. This is a massive improvment compared to timer based events. This new API is much faster and will work with less interference from other tasks on the board. + +#### Note Autoclick Linux libinput (Linux autoclicker not working) + +Linux's input driver (libinput) has a debounce feature. This is useful in normal usage as a person cannot feasibly click more than 20CPS. However when the keyboard tries to input 50+CPS and sometimes up to ~500CPS this is a problem. + +Create a file at "/etc/libinput/local-overrides.quirks" with the contents: + + [Never Debounce] + MatchUdevType=mouse + ModelBouncingKeys=1 + +This disables the debounce feature for libnput. This maybe be different if you use evdev, On Arch Linux the driver packages are {"libinput", "xf86-input-libinput"} compared to {"libevdev", "xf86-input-evdev"}. I have {"libinput", "xf86-input-libinput"} installed. In addition I have {"libevdev"} installed as a dependency of other packages. You maybe need to change the driver for your device if you have both installed. For me it was working just fine. Check what driver your xsession currently is utilizing with: + + $cat /var/log/Xorg.0.log | grep libinput + +If it is using libinput then it will show contents. Otherwise search for "evdev". + +#### Still not working? (Linux) + +Check if the events are reaching your OS with either: + + $evtest /dev/input/by-id/YOUR_KEYBOARD + +or + + $cat /dev/input/by-id/YOUR_KEYBOARD + +It should end in `event-mouse`. In my case it was `/dev/input/by-id/usb-DZTECH_DZ65RGBV3-if02-event-mouse` which was a symlink to `/dev/input/event12`. It **WILL** vary on your setup. + +The output will appear "garbled" as it's trying to interoperate the data stream into text. The underlying data is actually a struct of the form: + + struct input_event { + struct timeval time; + unsigned short type; + unsigned short code; + unsigned int value; + }; + +You can read more about it here (https://www.kernel.org/doc/Documentation/input/input.txt) + +If it has an output when you autoclick but do not receive it in your desktop then it's a driver issue. + +View libinput with: + + $libinput debug-events --device /dev/input/by-id/usb-DZTECH_DZ65RGBV3-if02-event-mouse --verbose + +If you experience "DEBOUNCE" events then it's a driver issue and should be able to be disabled with the above method, restart your display manager or just reboot afterwards. + +If you have any issues feel free to make bug report or pull request to me, QMK, or libinput. Please send logs along with any steps you have tried. + +#### ALT Position + +The physical Right_Alt is mapped as a Left_Alt. This is to ensure compatibility in legacy and programs which treat them differently. A key example would be the TTY system in Linux. diff --git a/keyboards/dztech/dz65rgb/keymaps/yuannan/rules.mk b/keyboards/dztech/dz65rgb/keymaps/yuannan/rules.mk new file mode 100644 index 0000000000..e98ba61c3a --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/yuannan/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +DYNAMIC_MACRO_ENABLE = yes +MOUSEKEY_ENABLE = yes +DEFERRED_EXEC_ENABLE = yes diff --git a/keyboards/dztech/dz96/config.h b/keyboards/dztech/dz96/config.h index 351b394263..189edb4e73 100644 --- a/keyboards/dztech/dz96/config.h +++ b/keyboards/dztech/dz96/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x445A -#define PRODUCT_ID 0xDB96 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DZTECH -#define PRODUCT DZ96 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 13 diff --git a/keyboards/dztech/dz96/info.json b/keyboards/dztech/dz96/info.json index 25c4d2265d..1ce43d6d18 100644 --- a/keyboards/dztech/dz96/info.json +++ b/keyboards/dztech/dz96/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "DZ96", + "manufacturer": "DZTECH", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0x445A", + "pid": "0xDB96", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/dztech/endless80/config.h b/keyboards/dztech/endless80/config.h index 9874ea99a8..197dc46172 100644 --- a/keyboards/dztech/endless80/config.h +++ b/keyboards/dztech/endless80/config.h @@ -15,11 +15,6 @@ */ #pragma once #include "config_common.h" -#define VENDOR_ID 0x445A -#define PRODUCT_ID 0X1015 -#define DEVICE_VER 0x0001 -#define MANUFACTURER dztech -#define PRODUCT endless80 #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/dztech/endless80/info.json b/keyboards/dztech/endless80/info.json index 219d7ec0fe..5a21c6aedc 100644 --- a/keyboards/dztech/endless80/info.json +++ b/keyboards/dztech/endless80/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "endless80", + "manufacturer": "dztech", "url": "", "maintainer": "moyi4681", + "usb": { + "vid": "0x445A", + "pid": "0x1015", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/e88/config.h b/keyboards/e88/config.h index e83dfb9b06..89bbbd1d60 100644 --- a/keyboards/e88/config.h +++ b/keyboards/e88/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x0187 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Pink Labs -#define PRODUCT e88 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/e88/info.json b/keyboards/e88/info.json index ed240910ea..3f2bd18f29 100644 --- a/keyboards/e88/info.json +++ b/keyboards/e88/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "e88", + "manufacturer": "Pink Labs", "url": "", "maintainer": "2-n", + "usb": { + "vid": "0x4705", + "pid": "0x0187", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ealdin/quadrant/config.h b/keyboards/ealdin/quadrant/config.h index b37af15ea6..f78db423ea 100644 --- a/keyboards/ealdin/quadrant/config.h +++ b/keyboards/ealdin/quadrant/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0192 // Ealdin Keyboards "ƒ" -#define PRODUCT_ID 0x5154 // Quadrant "QT" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ealdin -#define PRODUCT Quadrant E-C /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/ealdin/quadrant/info.json b/keyboards/ealdin/quadrant/info.json index e9e02e3d67..09a258a601 100644 --- a/keyboards/ealdin/quadrant/info.json +++ b/keyboards/ealdin/quadrant/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Quadrant E-C", + "manufacturer": "Ealdin", "url": "https://github.com/Ealdin/keyboards/tree/master/Quadrant", "maintainer": "Ealdin Keyboards", + "usb": { + "vid": "0x0192", + "pid": "0x5154", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x14": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}] diff --git a/keyboards/earth_rover/config.h b/keyboards/earth_rover/config.h index 2e7ceda4e1..9fbc8c13da 100644 --- a/keyboards/earth_rover/config.h +++ b/keyboards/earth_rover/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xEE11 -#define DEVICE_VER 0x0001 -#define MANUFACTURER k.bigwheel -#define PRODUCT earth_rover - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/earth_rover/info.json b/keyboards/earth_rover/info.json index 59249b819e..8a6ab27b35 100644 --- a/keyboards/earth_rover/info.json +++ b/keyboards/earth_rover/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "earth_rover", + "manufacturer": "k.bigwheel", "url": "https://github.com/bigwheel/earth_rover", "maintainer": "k.bigwheel", + "usb": { + "vid": "0xFEED", + "pid": "0xEE11", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/eason/capsule65/config.h b/keyboards/eason/capsule65/config.h index 34efb3f2a5..fb65c421f1 100644 --- a/keyboards/eason/capsule65/config.h +++ b/keyboards/eason/capsule65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF21E -#define PRODUCT_ID 0x6E6E -#define DEVICE_VER 0x0001 -#define MANUFACTURER eason -#define PRODUCT capsule65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/eason/capsule65/info.json b/keyboards/eason/capsule65/info.json index cd091b550f..9af7b49778 100644 --- a/keyboards/eason/capsule65/info.json +++ b/keyboards/eason/capsule65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "CAPSULE65", + "keyboard_name": "capsule65", + "manufacturer": "eason", "url": "", "maintainer": "EasonQian1", + "usb": { + "vid": "0xF21E", + "pid": "0x6E6E", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/ebastler/e80_1800/config.h b/keyboards/ebastler/e80_1800/config.h index 968c7a1fc7..c21285483c 100644 --- a/keyboards/ebastler/e80_1800/config.h +++ b/keyboards/ebastler/e80_1800/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6562 // "eb" -#define PRODUCT_ID 0x1338 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ebastler -#define PRODUCT E80-1800 - /* Limit layer count to fit in storage with VIA enabled */ #define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/ebastler/e80_1800/info.json b/keyboards/ebastler/e80_1800/info.json index 503cafaa3d..8680f212d5 100644 --- a/keyboards/ebastler/e80_1800/info.json +++ b/keyboards/ebastler/e80_1800/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "E80_1800", + "manufacturer": "ebastler", "url": "https://github.com/ebastler/E80-1800", "maintainer": "ebastler", + "usb": { + "vid": "0x6562", + "pid": "0x1338", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_1800_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"PrtSc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"\u00ac", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"\"", "x":2, "y":2}, {"label":"\u00a7", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"&", "x":6, "y":2}, {"label":"/", "x":7, "y":2}, {"label":"(", "x":8, "y":2}, {"label":")", "x":9, "y":2}, {"label":"=", "x":10, "y":2}, {"label":"?", "x":11, "y":2}, {"label":"`", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2, "w":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"@", "x":11.75, "y":4}, {"label":"~", "x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":3, "w":1.25, "h":2}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":1.25}, {"label":"|", "x":1.25, "y":5}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"up", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6}, {"label":"Win", "x":1, "y":6}, {"label":"Alt", "x":2, "y":6}, {"x":3, "y":6, "w":6}, {"label":"AltGr", "x":9, "y":6}, {"label":"Win", "x":10, "y":6}, {"label":"Menu", "x":11, "y":6}, {"label":"Ctrl", "x":12, "y":6}, {"label":"left", "x":13.25, "y":6.25}, {"label":"down", "x":14.25, "y":6.25}, {"label":"right", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}] diff --git a/keyboards/ebastler/isometria_75/rev1/config.h b/keyboards/ebastler/isometria_75/rev1/config.h index 038fa18ac1..787d33e16d 100644 --- a/keyboards/ebastler/isometria_75/rev1/config.h +++ b/keyboards/ebastler/isometria_75/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6562 // "eb" -#define PRODUCT_ID 0x1337 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ebastler -#define PRODUCT isometria 75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/ebastler/isometria_75/rev1/info.json b/keyboards/ebastler/isometria_75/rev1/info.json index cbca4c40ff..ffc847a1d4 100644 --- a/keyboards/ebastler/isometria_75/rev1/info.json +++ b/keyboards/ebastler/isometria_75/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "isometria_75", + "keyboard_name": "isometria 75", + "manufacturer": "ebastler", "url": "https://github.com/ebastler/isometria-75", "maintainer": "ebastler", + "usb": { + "vid": "0x6562", + "pid": "0x1337", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_iso": { "layout": [ diff --git a/keyboards/edc40/config.h b/keyboards/edc40/config.h index be6cba5138..8e47136e6b 100644 --- a/keyboards/edc40/config.h +++ b/keyboards/edc40/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4F4A // "OJ" -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER OJ -#define PRODUCT edc40 - #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/edc40/info.json b/keyboards/edc40/info.json index ae66ec2297..43b79f6a90 100644 --- a/keyboards/edc40/info.json +++ b/keyboards/edc40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "edc40", + "manufacturer": "OJ", "url": "", "maintainer": "ojthetiny", + "usb": { + "vid": "0x4F4A", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/edda/config.h b/keyboards/edda/config.h index bd9a0ab77d..33030c2fb6 100644 --- a/keyboards/edda/config.h +++ b/keyboards/edda/config.h @@ -15,13 +15,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D45 -#define PRODUCT_ID 0x4544 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mekanisk -#define PRODUCT Edda PCB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/edda/info.json b/keyboards/edda/info.json index 2945b2b22d..c9cdd45dbe 100644 --- a/keyboards/edda/info.json +++ b/keyboards/edda/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Edda", + "manufacturer": "Mekanisk", "url": "https://mekanisk.com", "maintainer": "qmk", + "usb": { + "vid": "0x4D45", + "pid": "0x4544", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/edi/standaside/config.h b/keyboards/edi/standaside/config.h index c72c915d82..83cc9f3eef 100644 --- a/keyboards/edi/standaside/config.h +++ b/keyboards/edi/standaside/config.h @@ -4,13 +4,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF7E0 -#define PRODUCT_ID 0x0412 -#define DEVICE_VER 0x0003 -#define MANUFACTURER Fate Everywhere -#define PRODUCT Stand Aside - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/edi/standaside/info.json b/keyboards/edi/standaside/info.json index 797a3419b7..464b5b1c84 100644 --- a/keyboards/edi/standaside/info.json +++ b/keyboards/edi/standaside/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Stand Aside", + "manufacturer": "Fate Everywhere", "url": "", "maintainer": "fateeverywhere", + "usb": { + "vid": "0xF7E0", + "pid": "0x0412", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_ortho_4x16": { "layout": [ diff --git a/keyboards/eek/config.h b/keyboards/eek/config.h index 919c112722..a9d3d5e75b 100644 --- a/keyboards/eek/config.h +++ b/keyboards/eek/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4A53 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0004 -#define MANUFACTURER klackygears -#define PRODUCT eek! - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/eek/info.json b/keyboards/eek/info.json index b6934c2a39..2566cd6fef 100644 --- a/keyboards/eek/info.json +++ b/keyboards/eek/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "eek!", + "manufacturer": "klackygears", "url": "http://www.keyboard-layout-editor.com/#/gists/3e4d0cd1534dd4e4b9f25cf2b36d0d63", "maintainer": "klackygears", + "usb": { + "vid": "0x4A53", + "pid": "0x0002", + "device_version": "0.0.4" + }, "layouts": { "LAYOUT_split_3x5_3": { "layout": [ diff --git a/keyboards/efreet/config.h b/keyboards/efreet/config.h index 90e76d9c5a..6370544c2b 100644 --- a/keyboards/efreet/config.h +++ b/keyboards/efreet/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x534F // "SO" -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Soran -#define PRODUCT Efreet - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 6 diff --git a/keyboards/efreet/info.json b/keyboards/efreet/info.json index 0b34c4c6f1..2ef2e59a0d 100644 --- a/keyboards/efreet/info.json +++ b/keyboards/efreet/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "efreet", + "keyboard_name": "Efreet", + "manufacturer": "Soran", "url": "", "maintainer": "amberstarlight", + "usb": { + "vid": "0x534F", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_planck_mit": { "layout": [ diff --git a/keyboards/ein_60/config.h b/keyboards/ein_60/config.h index c701f1f6d6..91311dea37 100644 --- a/keyboards/ein_60/config.h +++ b/keyboards/ein_60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4A53 -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER klackygears -#define PRODUCT EIN_60 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/ein_60/info.json b/keyboards/ein_60/info.json index c1cd5c7f77..d7b2c529e1 100644 --- a/keyboards/ein_60/info.json +++ b/keyboards/ein_60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ein_60", + "manufacturer": "klackygears", "url": "", "maintainer": "klackygears", + "usb": { + "vid": "0x4A53", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ekow/akira/config.h b/keyboards/ekow/akira/config.h index 678827543f..7d6df19f50 100644 --- a/keyboards/ekow/akira/config.h +++ b/keyboards/ekow/akira/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B59 // KY -#define PRODUCT_ID 0x414B // AK -#define DEVICE_VER 0x0000 -#define MANUFACTURER Keeboyzlab -#define PRODUCT AKIRA - // key matrix size #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/ekow/akira/info.json b/keyboards/ekow/akira/info.json index b6ebf9b8a2..1beb48e899 100644 --- a/keyboards/ekow/akira/info.json +++ b/keyboards/ekow/akira/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KEYBOYZLAB:AKIRA", + "keyboard_name": "AKIRA", + "manufacturer": "Keeboyzlab", "maintainer": "eugenepy", "url": "http://github.com/EugenePY", + "usb": { + "vid": "0x4B59", + "pid": "0x414B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_hhkb": { "layout": [ diff --git a/keyboards/elephant42/config.h b/keyboards/elephant42/config.h new file mode 100644 index 0000000000..92f1303480 --- /dev/null +++ b/keyboards/elephant42/config.h @@ -0,0 +1,86 @@ +/* +Copyright 2021 illness072 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS \ + { D4, C6, D7, E6 } +#define MATRIX_COL_PINS \ + { F4, F5, F6, F7, B1, B3 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define SOFT_SERIAL_PIN D2 + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN +# 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_LIMIT_VAL 170 /* The maximum brightness level */ +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_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 + +#ifdef RGB_MATRIX_ENABLE +# define SPLIT_TRANSPORT_MIRROR +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS RGBLIGHT_LIMIT_VAL +# 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 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +#ifndef OLED_FONT_H +# define OLED_FONT_H "keyboards/elephant42/lib/glcdfont.c" +#endif diff --git a/keyboards/elephant42/elephant42.c b/keyboards/elephant42/elephant42.c new file mode 100644 index 0000000000..a459442231 --- /dev/null +++ b/keyboards/elephant42/elephant42.c @@ -0,0 +1,66 @@ +/* Copyright 2021 illness072 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "elephant42.h" + +#if defined(RGB_MATRIX_ENABLE) +led_config_t g_led_config = { + { // keymap to LED number + // left + { 19, 18, 13, 12, 7, 6}, // R3 + { 20, 17, 14, 11, 8, 5}, // R2 + {NO_LED, 16, 15, 10, 9, 4}, // R1 + {NO_LED, NO_LED, 0, 1, 2, 3}, // R0 + // right + { 46, 45, 40, 39, 34, 33}, // R3 + { 47, 44, 41, 38, 35, 32}, // R2 + {NO_LED, 43, 42, 37, 36, 31}, // R1 + {NO_LED, NO_LED, 27, 28, 29, 30}, // R0 + }, + {// phisical LED position, {x, y} : x = 0..224, y = 0..64 + // left-bg [LED_01-21] + {56, 65}, {77, 68}, {95, 79}, {109, 91}, + {87, 46}, {87, 29}, {87, 12}, { 69, 43}, { 69, 26}, { 69, 8}, + {52, 35}, {52, 17}, {52, 0}, { 35, 4}, { 35, 21}, { 35, 38}, + {17, 54}, {17, 36}, {17, 19}, { 0, 26}, { 0, 43}, + // left-ug [LED_22-27] + {25, 49}, {26, 19}, {60, 14}, {106, 33}, {107, 72}, { 70, 66}, + // right-bg [LED_28-48] + {199, 65}, {179, 68}, {160, 79}, {146, 91}, + {168, 46}, {168, 29}, {168, 12}, {186, 43}, {186, 26}, {186, 8}, + {203, 35}, {203, 17}, {203, 0}, {220, 4}, {220, 21}, {220, 38}, + {238, 54}, {238, 36}, {238, 19}, {255, 26}, {255, 43}, + // right-ug [LED_49-54] + {230, 49}, {230, 19}, {195, 14}, {149, 33}, {148, 72}, {185, 66}, + }, + {// LED Index to Flag + // Left-bg [LED_01-21] + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + // left-ug [LED_22-27] + LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, + // right-bg [LED_28-48] + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + // right-ug [LED_49-54] + LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW + } +}; +#endif diff --git a/keyboards/boardsource/technik_o/technik_o.h b/keyboards/elephant42/elephant42.h similarity index 50% rename from keyboards/boardsource/technik_o/technik_o.h rename to keyboards/elephant42/elephant42.h index e2af9f834a..ad79c1e1fc 100644 --- a/keyboards/boardsource/technik_o/technik_o.h +++ b/keyboards/elephant42/elephant42.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2021 illness072 * * This 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,15 +17,19 @@ #pragma once #include "quantum.h" -#define LAYOUT_ortho_4x12( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ - K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ - K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ - K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ - ) { \ - {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ - {K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ - {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ - {K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47} \ - } +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, \ + L30, L31, L32, L33, R30, R31, R32, R33 \ +) { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { KC_NO, L21, L22, L23, L24, L25 }, \ + { KC_NO, KC_NO, L30, L31, L32, L33 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { KC_NO, R24, R23, R22, R21, R20 }, \ + { KC_NO, KC_NO, R33, R32, R31, R30 } \ +} diff --git a/keyboards/elephant42/info.json b/keyboards/elephant42/info.json new file mode 100644 index 0000000000..cbc7b78378 --- /dev/null +++ b/keyboards/elephant42/info.json @@ -0,0 +1,66 @@ +{ + "keyboard_name": "elephant42", + "manufacturer": "illness072", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/elephant42", + "maintainer": "illness072", + "usb": { + "vid": "0x4649", + "pid": "0x0721", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Tab", "x":0, "y":1.6}, + {"label":"Q", "x":1, "y":1.1}, + {"label":"W", "x":2, "y":0.3}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0.6}, + {"label":"T", "x":5, "y":0.8}, + + {"label":"Y", "x":10.5, "y":0.8}, + {"label":"U", "x":11.5, "y":0.6}, + {"label":"I", "x":12.5, "y":0}, + {"label":"O", "x":13.5, "y":0.3}, + {"label":"P", "x":14.5, "y":1.1}, + {"label":"\\", "x":15.5, "y":1.6}, + + {"label":"Ctrl", "x":0, "y":2.6}, + {"label":"A", "x":1, "y":2.1}, + {"label":"S", "x":2, "y":1.3}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1.6}, + {"label":"G", "x":5, "y":1.8}, + + {"label":"H", "x":10.5, "y":1.8}, + {"label":"J", "x":11.5, "y":1.6}, + {"label":"K", "x":12.5, "y":1}, + {"label":"L", "x":13.5, "y":1.3}, + {"label":":", "x":14.5, "y":2.1}, + {"label":"\"", "x":15.5, "y":2.6}, + + {"label":"Z", "x":1, "y":3.1}, + {"label":"X", "x":2, "y":2.3}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2.6}, + {"label":"B", "x":5, "y":2.8}, + + {"label":"N", "x":10.5, "y":2.8}, + {"label":"M", "x":11.5, "y":2.6}, + {"label":"<", "x":12.5, "y":2}, + {"label":">", "x":13.5, "y":2.3}, + {"label":"?", "x":14.5, "y":3.1}, + + {"label":"Alt", "x":3.5, "y":4.0}, + {"label":"Cmd", "x":4.5, "y":4.0}, + {"label":"Lower", "x":5.5, "y":4.0}, + {"label":"Shift", "x":6.5, "y":4.0}, + + {"label":"Del", "x":9.25, "y":4.0}, + {"label":"Raise", "x":10.25, "y":4.0}, + {"label":"Enter", "x":11.25, "y":4.0}, + {"label":"Backspace", "x":12.25, "y":4.0} + ] + } + } +} diff --git a/keyboards/elephant42/keymaps/default/keymap.c b/keyboards/elephant42/keymaps/default/keymap.c new file mode 100644 index 0000000000..e0235d75bb --- /dev/null +++ b/keyboards/elephant42/keymaps/default/keymap.c @@ -0,0 +1,114 @@ +/* Copyright 2021 illness072 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define KC_VU KC_AUDIO_VOL_UP +#define KC_VD KC_AUDIO_VOL_DOWN +#define KC_MU KC_AUDIO_MUTE +#define KC_LSPC LT(_LOWER, KC_SPC) +#define KC_RSPC LT(_RAISE, KC_SPC) + +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + + NUMBER_OF_LAYERS +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_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_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_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH, + // `-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------' + KC_LALT,KC_LCMD,KC_LSPC,KC_LSFT, KC_DEL ,KC_RSPC,KC_ENT ,KC_BSPC + // `-------+-------+-------+-------' `-------+-------+-------+-------' + ), + + [_LOWER] = LAYOUT( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_TILD, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_LCTL,KC_EXLM,KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_MINS,KC_PLUS,KC_GRV, + //`-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + XXXXXXX,XXXXXXX,KC_LCBR,KC_LBRC,KC_LPRN, KC_RPRN,KC_RBRC,KC_RCBR,KC_UNDS,KC_EQL , + // `-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------' + KC_LALT,KC_LCMD,KC_LSPC,KC_LSFT, KC_DEL ,KC_RSPC,KC_ENT ,KC_BSPC + // `-------+-------+-------+-------' `-------+-------+-------+-------' + ), + + [_RAISE] = 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_LCTL, KC_VD , KC_VU , KC_MU ,RGB_HUI,RGB_VAI, KC_LEFT,KC_DOWN, KC_UP ,KC_RGHT,XXXXXXX,KC_F12 , + //`-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------' + KC_BRMD,KC_BRMU,RGB_TOG,RGB_MOD,RGB_VAD, KC_HOME,KC_PGDN,KC_PGUP,KC_END ,XXXXXXX, + // `-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------' + KC_LALT,KC_LCMD,KC_LSPC,KC_LSFT, KC_DEL ,KC_RSPC,KC_ENT ,KC_BSPC + // `-------+-------+-------+-------' `-------+-------+-------+-------' + ) +}; + + +#ifdef OLED_ENABLE +# define STEPS 32 + +uint8_t keypresses = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + keypresses = (keypresses + 1) % STEPS; + } + return true; +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + static char layer_names[NUMBER_OF_LAYERS][10] = {"Default", "Lower", "Raise"}; + static char l1[] = " \x94\x95\x96\x97"; + static char l2[] = " \xB4\xB5\xB6\xB7"; + static char r1[] = " \x98\x99\x9A\x9B"; + static char r2[] = " \xB8\xB9\xBA\xBB"; + int iconShift = keypresses % STEPS; + if (iconShift > STEPS / 2) { + iconShift = STEPS - iconShift; + } + bool goingLeft = keypresses < STEPS / 2; + + oled_write_P(PSTR("Layer: "), false); + oled_write_ln(layer_names[get_highest_layer(layer_state)], false); + oled_advance_page(true); + oled_write_ln((goingLeft ? l1 : r1) + iconShift, false); + oled_write_ln((goingLeft ? l2 : r2) + iconShift, false); + } else { + oled_advance_page(true); + static const char PROGMEM logo[] = { + 0x8f,0x90,0x91,0x92,0x93,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x0a, + 0xaf,0xb0,0xb1,0xb2,0xb3,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0x0a, + 0xcf,0xd0,0xd1,0xd2,0xd3,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0 + }; + + oled_write_ln_P(logo, false); + } + + return false; +} +#endif diff --git a/keyboards/elephant42/keymaps/default/readme.md b/keyboards/elephant42/keymaps/default/readme.md new file mode 100644 index 0000000000..632fe222b0 --- /dev/null +++ b/keyboards/elephant42/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for elephant42 diff --git a/keyboards/elephant42/keymaps/via/keymap.c b/keyboards/elephant42/keymaps/via/keymap.c new file mode 100644 index 0000000000..4ecf5d86ab --- /dev/null +++ b/keyboards/elephant42/keymaps/via/keymap.c @@ -0,0 +1,127 @@ +/* Copyright 2021 illness072 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define KC_VU KC_AUDIO_VOL_UP +#define KC_VD KC_AUDIO_VOL_DOWN +#define KC_MU KC_AUDIO_MUTE +#define KC_LSPC LT(_LOWER, KC_SPC) +#define KC_RSPC LT(_RAISE, KC_SPC) + +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, + + NUMBER_OF_LAYERS +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_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_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_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH, + // `-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------' + KC_LALT,KC_LCMD,KC_LSPC,KC_LSFT, KC_DEL ,KC_RSPC,KC_ENT ,KC_BSPC + // `-------+-------+-------+-------' `-------+-------+-------+-------' + ), + + [_LOWER] = LAYOUT( + //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_TILD, + //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + KC_LCTL,KC_EXLM,KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_MINS,KC_PLUS,KC_GRV, + //`-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + XXXXXXX,XXXXXXX,KC_LCBR,KC_LBRC,KC_LPRN, KC_RPRN,KC_RBRC,KC_RCBR,KC_UNDS,KC_EQL , + // `-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------' + KC_LALT,KC_LCMD,KC_LSPC,KC_LSFT, KC_DEL ,KC_RSPC,KC_ENT ,KC_BSPC + // `-------+-------+-------+-------' `-------+-------+-------+-------' + ), + + [_RAISE] = 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_LCTL, KC_VD , KC_VU , KC_MU ,RGB_HUI,RGB_VAI, KC_LEFT,KC_DOWN, KC_UP ,KC_RGHT,XXXXXXX,KC_F12 , + //`-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------' + KC_BRMD,KC_BRMU,RGB_TOG,RGB_MOD,RGB_VAD, KC_HOME,KC_PGDN,KC_PGUP,KC_END ,XXXXXXX, + // `-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------' + KC_LALT,KC_LCMD,KC_LSPC,KC_LSFT, KC_DEL ,KC_RSPC,KC_ENT ,KC_BSPC + // `-------+-------+-------+-------' `-------+-------+-------+-------' + ), + + [_ADJUST] = 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 + // `-------+-------+-------+-------' `-------+-------+-------+-------' + ) +}; + + +#ifdef OLED_ENABLE +# define STEPS 32 + +uint8_t keypresses = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + keypresses = (keypresses + 1) % STEPS; + } + return true; +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + static char layer_names[NUMBER_OF_LAYERS][10] = {"Default", "Lower", "Raise", "Adjust"}; + static char l1[] = " \x94\x95\x96\x97"; + static char l2[] = " \xB4\xB5\xB6\xB7"; + static char r1[] = " \x98\x99\x9A\x9B"; + static char r2[] = " \xB8\xB9\xBA\xBB"; + int iconShift = keypresses % STEPS; + if (iconShift > STEPS / 2) { + iconShift = STEPS - iconShift; + } + bool goingLeft = keypresses < STEPS / 2; + + oled_write_P(PSTR("Layer: "), false); + oled_write_ln(layer_names[get_highest_layer(layer_state)], false); + oled_advance_page(true); + oled_write_ln((goingLeft ? l1 : r1) + iconShift, false); + oled_write_ln((goingLeft ? l2 : r2) + iconShift, false); + } else { + oled_advance_page(true); + static const char PROGMEM logo[] = { + 0x8f,0x90,0x91,0x92,0x93,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x0a, + 0xaf,0xb0,0xb1,0xb2,0xb3,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0x0a, + 0xcf,0xd0,0xd1,0xd2,0xd3,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0 + }; + + oled_write_ln_P(logo, false); + } + + return false; +} +#endif diff --git a/keyboards/elephant42/keymaps/via/readme.md b/keyboards/elephant42/keymaps/via/readme.md new file mode 100644 index 0000000000..4457bf9f46 --- /dev/null +++ b/keyboards/elephant42/keymaps/via/readme.md @@ -0,0 +1 @@ +# The keymap with VIA support for elephant42 diff --git a/keyboards/elephant42/keymaps/via/rules.mk b/keyboards/elephant42/keymaps/via/rules.mk new file mode 100644 index 0000000000..237172cc8b --- /dev/null +++ b/keyboards/elephant42/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +RGBLIGHT_ENABLE = yes +RGB_MATRIX_ENABLE = no diff --git a/keyboards/elephant42/lib/glcdfont.c b/keyboards/elephant42/lib/glcdfont.c new file mode 100755 index 0000000000..31372e85d7 --- /dev/null +++ b/keyboards/elephant42/lib/glcdfont.c @@ -0,0 +1,233 @@ +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. + +#pragma once + +#include "progmem.h" + +static 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, 0xA4, 0xA4, 0x9C, 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, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 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, + 0xE0, 0xE0, 0xE0, 0xE0, 0xE1, 0xE0, + 0xE0, 0xE0, 0xE0, 0xE1, 0xE0, 0xE0, + 0xE0, 0xE0, 0x01, 0xF0, 0xF0, 0xF0, + 0xF0, 0xF1, 0x00, 0x00, 0x00, 0xC0, + 0xF1, 0xF0, 0xF0, 0xE0, 0x60, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xC0, 0xC0, 0xE0, + 0xE0, 0xE1, 0x00, 0x00, 0x00, 0x00, + 0xF1, 0xF0, 0xF0, 0xF0, 0xF0, 0x01, + 0xE0, 0xE0, 0xE0, 0xE0, 0xE1, 0xE0, + 0xE0, 0xE0, 0xE0, 0xE1, 0xE0, 0xE0, + 0xE0, 0xE0, 0x01, 0xF0, 0xF0, 0xF0, + 0xF0, 0xF1, 0x00, 0x00, 0x00, 0xE0, + 0xE1, 0xE0, 0xE0, 0xE0, 0x00, 0x01, + 0x80, 0x80, 0xFC, 0xF8, 0xB0, 0xE0, + 0xC0, 0x80, 0x00, 0x00, 0x00, 0x03, + 0x03, 0x03, 0x07, 0x07, 0x0F, 0x9E, + 0xFE, 0xFE, 0xFC, 0xFC, 0xF8, 0x70, + 0x60, 0xC0, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x80, 0xE0, 0xF0, 0xF8, 0xFC, + 0xFE, 0xFE, 0xF3, 0xFF, 0xFF, 0x87, + 0x7F, 0x7F, 0xBE, 0xDD, 0xE3, 0xFF, + 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0xC0, + 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, + 0xFF, 0xE3, 0xDD, 0xBE, 0x7F, 0x7F, + 0x87, 0xFF, 0xFF, 0xF3, 0xFE, 0xFE, + 0xFC, 0xF8, 0xF0, 0xE0, 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, + 0x07, 0x07, 0x07, 0x07, 0xE7, 0xFF, + 0xFF, 0xFF, 0xFF, 0x3F, 0x07, 0x07, + 0x07, 0x07, 0x00, 0x0F, 0xFF, 0xFF, + 0xFF, 0xFF, 0xF8, 0x80, 0x1C, 0x1F, + 0x3F, 0x3F, 0x3F, 0x03, 0x00, 0x00, + 0x0E, 0x1E, 0x3F, 0x3F, 0x7C, 0x78, + 0x78, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x0F, 0x3F, 0xFF, + 0xFF, 0xFF, 0xFC, 0xF0, 0xC0, 0xC0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, + 0xE7, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x00, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7E, 0x7E, 0x7E, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0xFD, 0xF9, 0x77, 0xE7, 0xC1, 0x8D, + 0xDD, 0xF9, 0x71, 0x00, 0x00, 0x6C, + 0x6C, 0xEC, 0xFC, 0xFC, 0xFE, 0xFF, + 0xFF, 0xE7, 0xDB, 0xBB, 0x7B, 0x7B, + 0x7F, 0xBF, 0xDF, 0x00, 0x00, 0x00, + 0xFC, 0xFF, 0x1F, 0x07, 0x03, 0x01, + 0x01, 0x03, 0x03, 0x07, 0xFF, 0xFF, + 0x1F, 0xFF, 0xFF, 0x3F, 0x1F, 0x1F, + 0x3F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, + 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x3F, + 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0x1F, + 0xFF, 0xFF, 0x07, 0x03, 0x03, 0x01, + 0x01, 0x03, 0x07, 0x1F, 0xFF, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x87, 0x07, + 0x07, 0x07, 0x01, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x07, + 0x0F, 0x8F, 0x0F, 0x0F, 0x0C, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x87, 0x07, + 0x07, 0x0F, 0x0F, 0x8F, 0x0F, 0x0F, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x01, 0x83, 0x07, 0x0F, 0x0F, 0x0F, + 0x8F, 0x0F, 0x0F, 0x0F, 0x0F, 0x80, + 0x00, 0x00, 0x03, 0x0F, 0x8F, 0x0F, + 0x0F, 0x0F, 0x0C, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x0F, 0x0F, 0x0F, + 0x0F, 0x8F, 0x00, 0x00, 0x00, 0x07, + 0x87, 0x07, 0x07, 0x07, 0x00, 0x80, + 0x7D, 0x55, 0x28, 0x28, 0x29, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0xD8, + 0xD8, 0xDC, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0x7F, 0x3F, 0x1F, + 0x0F, 0x07, 0x01, 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, 0x00, 0x00, 0x00, 0x00, +}; diff --git a/keyboards/elephant42/readme.md b/keyboards/elephant42/readme.md new file mode 100644 index 0000000000..855ccda1e0 --- /dev/null +++ b/keyboards/elephant42/readme.md @@ -0,0 +1,27 @@ +# elephant42 + +[![elephant42](https://i.imgur.com/rgvNteb.jpg)](https://i.imgur.com/rgvNteb.jpg) + +A split keyboard with 3x5+2 vertically staggered keys and 4 thumb keys. + +* Keyboard Maintainer: [illness072](https://github.com/illness072), [Twitter](https://twitter.com/illness072) +* Hardware Supported: elephant42 PCB, ProMicro +* Hardware Availability: [https://illness072.booth.pm/](https://illness072.booth.pm/) + +Make example for this keyboard (after setting up your build environment): + + make elephant42:default + +Flashing example for this keyboard: + + make elephant42:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/elephant42/rules.mk b/keyboards/elephant42/rules.mk new file mode 100644 index 0000000000..642314b9c2 --- /dev/null +++ b/keyboards/elephant42/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes +OLED_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/emajesty/eiri/config.h b/keyboards/emajesty/eiri/config.h index 99b606770d..748558719f 100644 --- a/keyboards/emajesty/eiri/config.h +++ b/keyboards/emajesty/eiri/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x9372 -#define DEVICE_VER 0x0001 -#define MANUFACTURER EMajesty -#define PRODUCT eiri - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/emajesty/eiri/info.json b/keyboards/emajesty/eiri/info.json index 2816dba4c7..b271741880 100644 --- a/keyboards/emajesty/eiri/info.json +++ b/keyboards/emajesty/eiri/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "eiri", + "manufacturer": "EMajesty", "url": "https://github.com/EMajesty/eiri", "maintainer": "EMajesty", + "usb": { + "vid": "0xFEED", + "pid": "0x9372", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/emery65/config.h b/keyboards/emery65/config.h index cbe31b75da..2e547604d1 100644 --- a/keyboards/emery65/config.h +++ b/keyboards/emery65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4536 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT Emery65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/emery65/info.json b/keyboards/emery65/info.json index 9d8058e831..aba9820928 100644 --- a/keyboards/emery65/info.json +++ b/keyboards/emery65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Emery65", + "manufacturer": "Yiancar-Designs", "url": "https://yiancar-designs.com", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x4536", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/emi20/config.h b/keyboards/emi20/config.h index 98eefdc6ad..5bd1775659 100644 --- a/keyboards/emi20/config.h +++ b/keyboards/emi20/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Aquacylinder -#define PRODUCT emi20 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/emi20/info.json b/keyboards/emi20/info.json index 408c30d04b..79f5359e01 100644 --- a/keyboards/emi20/info.json +++ b/keyboards/emi20/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Emi20", + "manufacturer": "Aquacylinder", "url": "", "maintainer": "Aquacylinder", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x4": { "layout": [ diff --git a/keyboards/emptystring/NQG/config.h b/keyboards/emptystring/NQG/config.h index 9598707240..66abf55834 100644 --- a/keyboards/emptystring/NQG/config.h +++ b/keyboards/emptystring/NQG/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0076 -#define PRODUCT_ID 0x0037 -#define DEVICE_VER 0x0100 -#define MANUFACTURER emptystring -#define PRODUCT NQG - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/emptystring/NQG/info.json b/keyboards/emptystring/NQG/info.json index 14191209d6..6ccbc01370 100644 --- a/keyboards/emptystring/NQG/info.json +++ b/keyboards/emptystring/NQG/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "NQG (Not Quite Gherkin)", + "keyboard_name": "NQG", + "manufacturer": "emptystring", "url": "", "maintainer": "culturalsnow", + "usb": { + "vid": "0x0076", + "pid": "0x0037", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/eniigmakeyboards/ek60/config.h b/keyboards/eniigmakeyboards/ek60/config.h index 2565375010..b9bd26b39b 100644 --- a/keyboards/eniigmakeyboards/ek60/config.h +++ b/keyboards/eniigmakeyboards/ek60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x454B -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Eniigma Keyboards -#define PRODUCT ek60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/eniigmakeyboards/ek60/info.json b/keyboards/eniigmakeyboards/ek60/info.json index 37bb01b0be..d2875196ba 100644 --- a/keyboards/eniigmakeyboards/ek60/info.json +++ b/keyboards/eniigmakeyboards/ek60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ek60", + "keyboard_name": "EK60", + "manufacturer": "Eniigma Keyboards", "url": "", "maintainer": "adamws", + "usb": { + "vid": "0x454B", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout":[ diff --git a/keyboards/eniigmakeyboards/ek65/config.h b/keyboards/eniigmakeyboards/ek65/config.h index 7a272c1491..35a38fdbdc 100644 --- a/keyboards/eniigmakeyboards/ek65/config.h +++ b/keyboards/eniigmakeyboards/ek65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x454B -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Eniigma Keyboards -#define PRODUCT ek65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/eniigmakeyboards/ek65/info.json b/keyboards/eniigmakeyboards/ek65/info.json index 361a444128..a957ae1512 100644 --- a/keyboards/eniigmakeyboards/ek65/info.json +++ b/keyboards/eniigmakeyboards/ek65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ek65", + "keyboard_name": "EK65", + "manufacturer": "Eniigma Keyboards", "url": "", "maintainer": "adamws", + "usb": { + "vid": "0x454B", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout":[ diff --git a/keyboards/eniigmakeyboards/ek87/config.h b/keyboards/eniigmakeyboards/ek87/config.h index 838f46f844..a15994b7f9 100644 --- a/keyboards/eniigmakeyboards/ek87/config.h +++ b/keyboards/eniigmakeyboards/ek87/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x454B -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Eniigma Keyboards -#define PRODUCT Eniigma Keyboards ek87 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/eniigmakeyboards/ek87/info.json b/keyboards/eniigmakeyboards/ek87/info.json index 6f934e75a8..c05ca3bcd9 100644 --- a/keyboards/eniigmakeyboards/ek87/info.json +++ b/keyboards/eniigmakeyboards/ek87/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ek87", + "keyboard_name": "EK87", + "manufacturer": "Eniigma Keyboards", "url": "", "maintainer": "adamws", + "usb": { + "vid": "0x454B", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout":[ diff --git a/keyboards/ep/40/config.h b/keyboards/ep/40/config.h index 780d64fd69..fb67f5509c 100644 --- a/keyboards/ep/40/config.h +++ b/keyboards/ep/40/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4040 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Elliot Powell -#define PRODUCT ep40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/ep/40/info.json b/keyboards/ep/40/info.json index 58e76c608c..3c482198d5 100644 --- a/keyboards/ep/40/info.json +++ b/keyboards/ep/40/info.json @@ -1,6 +1,12 @@ { "keyboard_name":"ep40", + "manufacturer": "Elliot Powell", "maintainer":"e11i0t23", + "usb": { + "vid": "0xFEED", + "pid": "0x4040", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "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":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1, "w":1.75}, {"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, "w":1.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3, "w":2.25}, {"x":5.25, "y":3, "w":2.75}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] diff --git a/keyboards/ep/96/config.h b/keyboards/ep/96/config.h index bcb1074867..d057e05c35 100644 --- a/keyboards/ep/96/config.h +++ b/keyboards/ep/96/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x9696 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Elliot Powell -#define PRODUCT ep96 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 19 diff --git a/keyboards/ep/96/info.json b/keyboards/ep/96/info.json index 6f216064eb..8f964f670c 100644 --- a/keyboards/ep/96/info.json +++ b/keyboards/ep/96/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "ep96", + "manufacturer": "Elliot Powell", "maintainer": "e11i0t23", + "usb": { + "vid": "0xFEED", + "pid": "0x9696", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ep/comsn/hs68/config.h b/keyboards/ep/comsn/hs68/config.h index e26f07044c..1a7e681bd2 100644 --- a/keyboards/ep/comsn/hs68/config.h +++ b/keyboards/ep/comsn/hs68/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6868 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Elliot Powell -#define PRODUCT ephs68 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/ep/comsn/hs68/info.json b/keyboards/ep/comsn/hs68/info.json index 8463ce491b..631afb029b 100644 --- a/keyboards/ep/comsn/hs68/info.json +++ b/keyboards/ep/comsn/hs68/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "EPHS68", + "manufacturer": "Elliot Powell", "maintainer": "Elliot Powell (u/e11i0t23)", + "usb": { + "vid": "0xFEED", + "pid": "0x6868", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ep/comsn/mollydooker/config.h b/keyboards/ep/comsn/mollydooker/config.h index def201cd8b..879c4405f4 100644 --- a/keyboards/ep/comsn/mollydooker/config.h +++ b/keyboards/ep/comsn/mollydooker/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x9696 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Elliot Powell -#define PRODUCT mollydooker - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 19 diff --git a/keyboards/ep/comsn/mollydooker/info.json b/keyboards/ep/comsn/mollydooker/info.json index 611efe6c64..58d7bb288c 100644 --- a/keyboards/ep/comsn/mollydooker/info.json +++ b/keyboards/ep/comsn/mollydooker/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "mollydooker", + "manufacturer": "Elliot Powell", "maintainer": "Elliot Powell (u/e11i0t23)", + "usb": { + "vid": "0xFEED", + "pid": "0x9696", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ep/comsn/tf_longeboye/config.h b/keyboards/ep/comsn/tf_longeboye/config.h index f02d560330..73ec20acfb 100644 --- a/keyboards/ep/comsn/tf_longeboye/config.h +++ b/keyboards/ep/comsn/tf_longeboye/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x9696 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Elliot Powell -#define PRODUCT TF Longeboye - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/ep/comsn/tf_longeboye/info.json b/keyboards/ep/comsn/tf_longeboye/info.json index e6992f4481..3fa58d61c1 100644 --- a/keyboards/ep/comsn/tf_longeboye/info.json +++ b/keyboards/ep/comsn/tf_longeboye/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "tf_longeboye", + "keyboard_name": "TF Longeboye", + "manufacturer": "Elliot Powell", "maintainer": "Elliot Powell (u/e11i0t23)", + "usb": { + "vid": "0xFEED", + "pid": "0x9696", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/epoch80/config.h b/keyboards/epoch80/config.h index ba79c4c26c..f960058d74 100644 --- a/keyboards/epoch80/config.h +++ b/keyboards/epoch80/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6463 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER caryworks -#define PRODUCT epoch80 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/epoch80/info.json b/keyboards/epoch80/info.json index 97a23cac6d..f3e74171c0 100644 --- a/keyboards/epoch80/info.json +++ b/keyboards/epoch80/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "epoch80", + "manufacturer": "caryworks", "url": "https://kbdfans.com/collections/80-diy-kit/products/coming-soon-epoch-80-mechanical-keyboard", "maintainer": "kb-elmo", + "usb": { + "vid": "0x6463", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c b/keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c index 91798ab188..a5b107baae 100755 --- a/keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c +++ b/keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c @@ -190,7 +190,7 @@ static bool is_macro1_recording = false; // The current set of active layers (as a bitmask). // There is a global 'layer_state' variable but it is set after the call // to layer_state_set_user(). -static layer_state_t current_layer_state = 0; +static uint32_t current_layer_state = 0; layer_state_t layer_state_set_user(layer_state_t state); // Method called at the end of the tap dance on the TAP_MACRO key. That key is diff --git a/keyboards/ergodox_ez/keymaps/blakedietz/keymap.c b/keyboards/ergodox_ez/keymaps/blakedietz/keymap.c index 67c50eb129..5c08d30727 100644 --- a/keyboards/ergodox_ez/keymaps/blakedietz/keymap.c +++ b/keyboards/ergodox_ez/keymaps/blakedietz/keymap.c @@ -200,7 +200,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); @@ -262,3 +262,4 @@ void matrix_scan_user(void) { // } // return true; //} + diff --git a/keyboards/ergodox_ez/keymaps/bpruitt-goddard/keymap.c b/keyboards/ergodox_ez/keymaps/bpruitt-goddard/keymap.c index eff7f111b4..229ece0d74 100644 --- a/keyboards/ergodox_ez/keymaps/bpruitt-goddard/keymap.c +++ b/keyboards/ergodox_ez/keymaps/bpruitt-goddard/keymap.c @@ -98,7 +98,7 @@ static bool is_macro1_recording = false; // The current set of active layers (as a bitmask). // There is a global 'layer_state' variable but it is set after the call // to layer_state_set_user(). -static layer_state_t current_layer_state = 0; +static uint32_t current_layer_state = 0; layer_state_t layer_state_set_user(layer_state_t state); // Method called at the end of the tap dance on the TAP_MACRO key. That key is diff --git a/keyboards/ergodox_ez/keymaps/default_osx/keymap.c b/keyboards/ergodox_ez/keymaps/default_osx/keymap.c index 3ab66078fe..73b1077b83 100644 --- a/keyboards/ergodox_ez/keymaps/default_osx/keymap.c +++ b/keyboards/ergodox_ez/keymaps/default_osx/keymap.c @@ -141,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c index ff9ae77bdd..fab2977356 100644 --- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c +++ b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c @@ -725,7 +725,7 @@ void led_set_user(uint8_t usb_led) { void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_2_off(); diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h index c35963d842..da20820787 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h @@ -7,7 +7,6 @@ #undef TAPPING_TERM #define TAPPING_TERM 175 -#define TAPPING_TERM_PER_KEY #undef DEBOUNCE #define DEBOUNCE 15 diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c index 1d5e1cee00..59e3e2b0dc 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c @@ -13,32 +13,14 @@ qk_tap_dance_action_t tap_dance_actions[] = { [RPRN_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC), [LCBR_LABK] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_LABK), [RCBR_RABK] = ACTION_TAP_DANCE_DOUBLE(KC_RCBR, KC_RABK), - [SCLN_COLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, scln_coln_finished, scln_coln_reset), - [QUOT_DQUO] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, quot_dquot_finished, quot_dquot_reset), - [DOT_COMM] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dot_comm_finished, dot_comm_reset), - [NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, none_lead_finished, none_lead_reset), - [U_ARR_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, u_arrows_gui_finished, u_arrows_gui_reset), - [H_MOU_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, h_mouse_gui_finished, h_mouse_gui_reset), - [J_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, j_media_meh_finished, j_media_meh_reset), - [W_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, w_media_meh_finished, w_media_meh_reset), - [K_NUM_HYP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, k_numpad_hyper_finished, k_numpad_hyper_reset), - [M_CHO_HYP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, m_chords_hyper_finished, m_chords_hyper_reset), + [SCLN_COLN] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, scln_coln_finished, scln_coln_reset, DANCING_TERM), + [QUOT_DQUO] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, quot_dquot_finished, quot_dquot_reset, DANCING_TERM), + [DOT_COMM] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, dot_comm_finished, dot_comm_reset, DANCING_TERM), + [NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, none_lead_finished, none_lead_reset, DANCING_TERM), + [U_ARR_GUI] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, u_arrows_gui_finished, u_arrows_gui_reset, DANCING_TERM), + [H_MOU_GUI] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, h_mouse_gui_finished, h_mouse_gui_reset, DANCING_TERM), + [J_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, j_media_meh_finished, j_media_meh_reset, DANCING_TERM), + [W_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, w_media_meh_finished, w_media_meh_reset, DANCING_TERM), + [K_NUM_HYP] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, k_numpad_hyper_finished, k_numpad_hyper_reset, DANCING_TERM), + [M_CHO_HYP] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, m_chords_hyper_finished, m_chords_hyper_reset, DANCING_TERM), }; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(SCLN_COLN): - case TD(QUOT_DQUO): - case TD(DOT_COMM): - case TD(NONE_LEAD): - case TD(U_ARR_GUI): - case TD(H_MOU_GUI): - case TD(J_MED_MEH): - case TD(W_MED_MEH): - case TD(K_NUM_HYP): - case TD(M_CHO_HYP): - return DANCING_TERM; - default: - return TAPPING_TERM; - } -} diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c index ed407def79..fd022681b0 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c @@ -1,6 +1,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { - uint8_t layer = get_highest_layer(state); + uint8_t layer = biton32(state); switch (layer) { case DVORAK: diff --git a/keyboards/ergodox_ez/keymaps/heartrobotninja/keymap.c b/keyboards/ergodox_ez/keymaps/heartrobotninja/keymap.c index 91884c8e76..b6edc17532 100644 --- a/keyboards/ergodox_ez/keymaps/heartrobotninja/keymap.c +++ b/keyboards/ergodox_ez/keymaps/heartrobotninja/keymap.c @@ -370,7 +370,7 @@ LEADER_EXTERNS(); void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); if (keyboard_report->mods & MOD_BIT(KC_LSFT) || ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && @@ -677,4 +677,4 @@ void matrix_init_user(void) wait_ms(1000); rgblight_effect_knight(50); -} +} \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/ifohancroft/config.h b/keyboards/ergodox_ez/keymaps/ifohancroft/config.h index 9a0d0e54f7..b279371a0b 100644 --- a/keyboards/ergodox_ez/keymaps/ifohancroft/config.h +++ b/keyboards/ergodox_ez/keymaps/ifohancroft/config.h @@ -1,4 +1,4 @@ -/* Copyright 2021 IFo Hancroft +/* Copyright 2022 IFo Hancroft * * This 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,9 @@ #pragma once // place overrides here -#define USB_POLLING_INTERVAL_MS 1 #define FORCE_NKRO +#ifdef TAPPING_TOGGLE +# undef TAPPING_TOGGLE +#endif +#define TAPPING_TOGGLE 3 + diff --git a/keyboards/ergodox_ez/keymaps/ifohancroft/keymap.c b/keyboards/ergodox_ez/keymaps/ifohancroft/keymap.c index 56c1ff28a7..58c3beaeaa 100644 --- a/keyboards/ergodox_ez/keymaps/ifohancroft/keymap.c +++ b/keyboards/ergodox_ez/keymaps/ifohancroft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 IFo Hancroft +/* Copyright 2022 IFo Hancroft * * This 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,19 +24,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | * |---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| - * | ESC | A | S | D | F | G | Del | | | H | J | K | L | ; | ' | + * | Esc | A | S | D | F | G | | | | H | J | K | L | ; | ' | * |---------+---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------+---------| * | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | * |---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------| - * | Ctrl | Super | Alt | MO(4) | MO(3) | | MO(3) | Left | Down | Up | Right | + * | Ctrl | Super | Alt | | OSL(1) | | TT(1) | | Alt | Super | Ctrl | * *-------------------------------------------------* *-------------------------------------------------* * * *-------------------* *-------------------* - * | MO(2) | | | | | + * | | | | | | * *---------+---------+---------| |---------+---------+---------* * | | | | | | | | * | Bckspc | Enter |---------| |---------| Enter | Space | - * | | | Space | | | | | + * | | | SH_OS | | | | | * *---------+---------+---------* *---------+---------+---------* */ @@ -44,88 +44,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_DEL, 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_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_DEL, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, MO(4), MO(3), MO(3), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_NO, OSL(1), TT(1), KC_NO, KC_RALT, KC_RGUI, KC_RCTL, - MO(2), KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_BSPC, KC_ENT, KC_SPC, KC_NO, KC_ENT, KC_SPC + KC_BSPC, KC_ENT, SH_OS, KC_NO, KC_ENT, KC_SPC ), - - - /* Gaming Layer - * *---------------------------------------------------------------------* *---------------------------------------------------------------------* - * | | | | | | | 6 | | | | | | | | | - * |---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | | | | | - * |---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | | | | | - * |---------+---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | | | - * |---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | - * *-------------------------------------------------* *-------------------------------------------------* - * - * *-------------------* *-------------------* - * | | | | | | - * *---------+---------+---------| |---------+---------+---------* - * | | | | | | | | - * | Space | |---------| |---------| | | - * | | | | | | | | - * *---------+---------+---------* *---------+---------+---------* - */ - - LAYOUT_ergodox_pretty( - _______, _______, _______, _______, _______, _______, KC_6, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, - _______, _______, - KC_SPC, _______, _______, _______, _______, _______ - ), - - - - /* Left Hand Layer - * *---------------------------------------------------------------------* *---------------------------------------------------------------------* - * | | 6 | 7 | 8 | 9 | 0 | = | | | | | | | | | - * |---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| - * | \ | Y | U | I | O | P | ] | | | | | | | | | - * |---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| - * | ' | H | J | K | L | ; | | | | | | | | | | - * |---------+---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------+---------| - * | | N | M | , | . | / | | | | | | | | - * |---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | - * *-------------------------------------------------* *-------------------------------------------------* - * - * *-------------------* *-------------------* - * | | | | | | - * *---------+---------+---------| |---------+---------+---------* - * | | | | | | | | - * | | |---------| |---------| | | - * | | | | | | | | - * *---------+---------+---------* *---------+---------+---------* - */ - - LAYOUT_ergodox_pretty( - _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, _______, _______, _______, _______, _______, _______, _______, - KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, - KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______, _______, _______, _______, _______, _______, - _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, - _______, _______, - _______, _______, _______, _______, _______, _______ - ), - - - /* Function Keys Layer * *---------------------------------------------------------------------* *---------------------------------------------------------------------* * | NumLock | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | @@ -134,9 +60,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| * | | - | 4 | 5 | 6 | / | | | | Left | Down | Up | Right | | | * |---------+---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------+---------| - * | | 0 | 1 | 2 | 3 | . | | | | | | | | + * | | 0 | 1 | 2 | 3 | . | | NK_TOGG | | | | | | * |---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | + * | | | | | | | | Left | Down | Up | Right | * *-------------------------------------------------* *-------------------------------------------------* * * *-------------------* *-------------------* @@ -152,40 +78,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NUM, 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_PPLS, KC_P7, KC_P8, KC_P9, KC_PAST, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PMNS, KC_P4, KC_P5, KC_P6, KC_PSLS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, - _______, KC_P0, KC_P1, KC_P2, KC_P3, KC_PDOT, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_P0, KC_P1, KC_P2, KC_P3, KC_PDOT, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_PENT, KC_PGUP, KC_PGDN, _______, _______ ), - - - /* Layers Layer - * *---------------------------------------------------------------------* *---------------------------------------------------------------------* - * | | TO(0) | TO(1) | | | | | | | | | | | | | - * |---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | | | | | - * |---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | | | | | - * |---------+---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | | | - * |---------+---------+---------+---------+---------+---------* *---------+---------+---------+---------+---------+---------| - * | | | | | | | | | | | | - * *-------------------------------------------------* *-------------------------------------------------* - * - * *-------------------* *-------------------* - * | | | | | | - * *---------+---------+---------| |---------+---------+---------* - * | | | | | | | | - * | | |---------| |---------| | | - * | | | | | | | | - * *---------+---------+---------* *---------+---------+---------* - */ - + /* Empty Layer */ LAYOUT_ergodox_pretty( - _______, TO(0), TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ + ), + + /* Empty Layer */ + LAYOUT_ergodox_pretty( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -195,5 +111,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______ ) - }; + + /* Swap Hands + * *-------------------------------------------------* + * | Del | \ | ' | | | + * |---------+---------+---------+---------+---------+---------* + * | 6 | Y | H | N | | | + * |---------+---------+---------+---------+---------+---------| + * | 7 | U | J | M | | | + * |---------+---------+---------+---------+---------+---------| + * | 8 | I | K | , | | Space | + * |---------+---------+---------+---------+---------+---------| + * | 9 | O | L | . | | | + * |---------+---------+---------+---------+---------+---------| + * | 0 | P | ; | / | | | + * |---------+---------+---------+---------| |---------| + * | = | ] | | | | | + * *---------------------------------------* *---------* + */ + +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{0, 13}, {1, 13}, {2, 13}, {3, 0}, {4, 0}}, + {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 1}, {5, 1}}, + {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 2}, {5, 2}}, + {{0, 10}, {1, 10}, {2, 10}, {3, 10}, {4, 3}, {5, 10}}, + {{0, 11}, {1, 11}, {2, 11}, {3, 11}, {4, 4}, {5, 9}}, + {{0, 12}, {1, 12}, {2, 12}, {3, 12}, {0, 0}, {5, 8}}, + {{0, 7}, {1, 7}, {0, 0}, {3, 7}, {0, 0}, {5, 7}}, + + {{0, 7}, {1, 7}, {0, 0}, {3, 7}, {0, 0}, {5, 7}}, + {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {0, 0}, {5, 8}}, + {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}}, + {{0, 10}, {1, 10}, {2, 10}, {3, 10}, {4, 10}, {5, 10}}, + {{0, 11}, {1, 11}, {2, 11}, {3, 11}, {4, 11}, {5, 11}}, + {{0, 12}, {1, 12}, {2, 12}, {3, 12}, {4, 12}, {5, 12}}, + {{0, 13}, {1, 13}, {2, 13}, {3, 13}, {4, 13}} +}; + diff --git a/keyboards/ergodox_ez/keymaps/ifohancroft/readme.md b/keyboards/ergodox_ez/keymaps/ifohancroft/readme.md index daa581062c..7a94a05eae 100644 --- a/keyboards/ergodox_ez/keymaps/ifohancroft/readme.md +++ b/keyboards/ergodox_ez/keymaps/ifohancroft/readme.md @@ -1,20 +1,18 @@ -![IFo Hancroft ErgoDox EZ Layout Image](https://i.imgur.com/BlH0ZdE.png) +![IFo Hancroft ErgoDox EZ Layout Image](https://i.imgur.com/bSWyBCV.png) # IFo Hancroft's ErgoDox EZ Layout -- Layer 0: A Standard ANSI QWERTY Layer. It adds some additional keys from the right half in-order to avoid having to lift your right hand of the mouse. -- Layer 1: A Gaming Layer. It replaces the Backspace with a Space, and the Dash with a 6, so you can play CS:GO without needing to lift your right hand of the mouse. -- Layer 2: A Left Hand Layer. It is basically a left hand version of the right half, so you can have access to a full-sized keyboard without needing to lift your right hand from the the mouse. -- Layer 3: A Function Layer. It contains the F1-F12 keys, PgUp, PgDn, Numpad, and arrows on HJKL. -- Layer 4: A Layer Switching Layer. The keys in this layer turn on a specific layer while disabling the rest. Basically, you come here to switch between the QWERTY and Gaming layers. - +- Layer 0: A QWERTY Layer. +- Layer 1: A Function Layer. +- Layer 2: Empty Layer. +- Layer 3: Empty Layer. This keymap also does the following: -- Sets the polling rate of the keyboard to 1ms - Forces NKRO on - Enables: - - Command + - Via + - The Swap Hands feature - Disables: - Mouse Key - Extra Key diff --git a/keyboards/ergodox_ez/keymaps/ifohancroft/rules.mk b/keyboards/ergodox_ez/keymaps/ifohancroft/rules.mk index 775ecbd12b..3b18c2b9d2 100644 --- a/keyboards/ergodox_ez/keymaps/ifohancroft/rules.mk +++ b/keyboards/ergodox_ez/keymaps/ifohancroft/rules.mk @@ -1,3 +1,4 @@ MOUSEKEY_ENABLE = no EXTRAKEY_ENABLE = no -COMMAND_ENABLE = yes +SWAP_HANDS_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/ergodox_ez/keymaps/kou/keymap.c b/keyboards/ergodox_ez/keymaps/kou/keymap.c index 01427c2d2d..c8d0a6b5dd 100644 --- a/keyboards/ergodox_ez/keymaps/kou/keymap.c +++ b/keyboards/ergodox_ez/keymaps/kou/keymap.c @@ -284,7 +284,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/keymaps/lukaus/keymap.c b/keyboards/ergodox_ez/keymaps/lukaus/keymap.c index 542e123db3..5d797beb18 100644 --- a/keyboards/ergodox_ez/keymaps/lukaus/keymap.c +++ b/keyboards/ergodox_ez/keymaps/lukaus/keymap.c @@ -813,7 +813,7 @@ case RU_7: layer_state_t layer_state_set_user(layer_state_t state) { - uint8_t layer = get_highest_layer(state); + uint8_t layer = biton32(state); // ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/keymaps/matrixman/keymap.c b/keyboards/ergodox_ez/keymaps/matrixman/keymap.c index bb6ba5ae34..10b6567cdb 100644 --- a/keyboards/ergodox_ez/keymaps/matrixman/keymap.c +++ b/keyboards/ergodox_ez/keymaps/matrixman/keymap.c @@ -165,7 +165,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c b/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c index a3c2176951..e31391a674 100644 --- a/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c +++ b/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c @@ -218,7 +218,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; layer_state_t layer_state_set_user(layer_state_t state) { - uint8_t layer = get_highest_layer(state); + uint8_t layer = biton32(state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); @@ -431,3 +431,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } + diff --git a/keyboards/ergodox_ez/keymaps/nfriend/keymap.c b/keyboards/ergodox_ez/keymaps/nfriend/keymap.c index ba578dd1c5..1d12093bab 100644 --- a/keyboards/ergodox_ez/keymaps/nfriend/keymap.c +++ b/keyboards/ergodox_ez/keymaps/nfriend/keymap.c @@ -1057,7 +1057,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } layer_state_t layer_state_set_user(layer_state_t state) { - uint8_t layer = get_highest_layer(state); + uint8_t layer = biton32(state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/keymaps/profet_80/keymap.c b/keyboards/ergodox_ez/keymaps/profet_80/keymap.c index 6f602e828e..85455fa9d9 100644 --- a/keyboards/ergodox_ez/keymaps/profet_80/keymap.c +++ b/keyboards/ergodox_ez/keymaps/profet_80/keymap.c @@ -157,7 +157,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c index c69621ab98..024cefd270 100644 --- a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c @@ -245,11 +245,11 @@ void keyboard_post_init_user_keymap(void) { } // light up leds based on the layer -layer_state_t layer_state_set_user_keymap(layer_state_t state) { +uint32_t layer_state_set_user_keymap(uint32_t state) { ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); - switch (get_highest_layer(state)) { + switch (biton32(state)) { case LR_SYSCTL: ergodox_right_led_3_on(); // blue break; @@ -306,7 +306,7 @@ layer_state_t layer_state_set_user_keymap(layer_state_t state) { // SYSCTL on first tap, MOUSE ON second tap // void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) { -// uint8_t layer = get_highest_layer(layer_state); +// uint8_t layer = biton32(layer_state); // switch(state->count) { // case 1: diff --git a/keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c b/keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c index 595f3b4ee1..3e607edb39 100644 --- a/keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c +++ b/keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c @@ -228,7 +228,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); - switch (get_highest_layer(state)) { + switch (biton32(state)) { case SYMB: ergodox_right_led_1_on(); if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_red(); rgblight_mode_noeeprom(1); } @@ -268,3 +268,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; } + diff --git a/keyboards/ergodox_ez/keymaps/rishka/keymap.c b/keyboards/ergodox_ez/keymaps/rishka/keymap.c index 0d6ac9fe95..102803e512 100644 --- a/keyboards/ergodox_ez/keymaps/rishka/keymap.c +++ b/keyboards/ergodox_ez/keymaps/rishka/keymap.c @@ -138,7 +138,7 @@ void keyboard_post_init_user(void) { }; // Runs whenever there is a layer state change. -layer_state_t layer_state_set_user(layer_state_t state) { +uint32_t layer_state_set_user(layer_state_t state) { ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); diff --git a/keyboards/ergodox_ez/keymaps/skug/keymap.c b/keyboards/ergodox_ez/keymaps/skug/keymap.c index 04aa6a99fd..1446ea7466 100644 --- a/keyboards/ergodox_ez/keymaps/skug/keymap.c +++ b/keyboards/ergodox_ez/keymaps/skug/keymap.c @@ -228,7 +228,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/keymaps/smurmann/keymap.c b/keyboards/ergodox_ez/keymaps/smurmann/keymap.c index c8ddc23a8b..42ac13775f 100644 --- a/keyboards/ergodox_ez/keymaps/smurmann/keymap.c +++ b/keyboards/ergodox_ez/keymaps/smurmann/keymap.c @@ -139,7 +139,7 @@ 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); + uint8_t layer = biton32(layer_state); if(layer == 1) { @@ -157,7 +157,7 @@ void matrix_scan_user(void) { } if(keyboard_report->mods & MOD_BIT(KC_LSFT)) - { + { ergodox_right_led_1_set (LED_BRIGHTNESS_HI); ergodox_right_led_1_on (); } else { @@ -182,7 +182,7 @@ void matrix_scan_user(void) { } if(keyboard_report->mods & MOD_BIT(KC_LCTRL)) - { + { ergodox_right_led_3_set (LED_BRIGHTNESS_HI); ergodox_right_led_3_on (); } else { @@ -195,7 +195,7 @@ void matrix_scan_user(void) { }; void led_set_user(uint8_t usb_led){ - if (usb_led & (1 << USB_LED_CAPS_LOCK)) + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { capsOn = true; }else { diff --git a/keyboards/ergodox_ez/keymaps/steno/keymap.c b/keyboards/ergodox_ez/keymaps/steno/keymap.c index 96218bbe99..080d3f6cef 100644 --- a/keyboards/ergodox_ez/keymaps/steno/keymap.c +++ b/keyboards/ergodox_ez/keymaps/steno/keymap.c @@ -228,7 +228,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/keymaps/testing/keymap.c b/keyboards/ergodox_ez/keymaps/testing/keymap.c index 3aee63ddf1..5c1fc4af28 100644 --- a/keyboards/ergodox_ez/keymaps/testing/keymap.c +++ b/keyboards/ergodox_ez/keymaps/testing/keymap.c @@ -62,7 +62,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_state_t layer_state_set_user(layer_state_t state) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/keymaps/vim/keymap.c b/keyboards/ergodox_ez/keymaps/vim/keymap.c index c1c037ef23..948f2b4794 100644 --- a/keyboards/ergodox_ez/keymaps/vim/keymap.c +++ b/keyboards/ergodox_ez/keymaps/vim/keymap.c @@ -330,7 +330,7 @@ void matrix_init_user(void) { }; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ergodox_ez/util/compile_keymap.py b/keyboards/ergodox_ez/util/compile_keymap.py index 310512c920..b447ecaf5c 100755 --- a/keyboards/ergodox_ez/util/compile_keymap.py +++ b/keyboards/ergodox_ez/util/compile_keymap.py @@ -27,34 +27,29 @@ PY2 = sys.version_info.major == 2 if PY2: chr = unichr + KEYBOARD_LAYOUTS = { # These map positions in the parsed layout to # positions in the KEYMAP MATRIX 'ergodox_ez': [ - [0, 1, 2, 3, 4, 5, 6], - [38, 39, 40, 41, 42, 43, 44], - [7, 8, 9, 10, 11, 12, 13], - [45, 46, 47, 48, 49, 50, 51], - [14, 15, 16, 17, 18, 19], - [52, 53, 54, 55, 56, 57], - [20, 21, 22, 23, 24, 25, 26], - [58, 59, 60, 61, 62, 63, 64], - [27, 28, 29, 30, 31], - [65, 66, 67, 68, 69], - [32, 33], - [70, 71], - [34], - [72], - [35, 36, 37], - [73, 74, 75], + [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], + [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], + [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], + [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], + [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], + [ 32, 33], [70, 71 ], + [ 34], [72 ], + [ 35, 36, 37], [73, 74, 75 ], ] } -ROW_INDENTS = {'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0]} +ROW_INDENTS = { + 'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0] +} BLANK_LAYOUTS = [ - # Compact Layout - """ +# Compact Layout +""" .------------------------------------.------------------------------------. | | | | | | | | | | | | | | | !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! @@ -75,8 +70,8 @@ BLANK_LAYOUTS = [ '-----------------' '-----------------' """, - # Wide Layout - """ +# Wide Layout +""" .---------------------------------------------. .---------------------------------------------. | | | | | | | | ! | | | | | | | !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! @@ -98,22 +93,26 @@ BLANK_LAYOUTS = [ """, ] + DEFAULT_CONFIG = { - "keymaps_includes": ["keymap_common.h",], + "keymaps_includes": [ + "keymap_common.h", + ], 'filler': "-+.'!:x", 'separator': "|", 'default_key_prefix': ["KC_"], } + SECTIONS = [ 'layout_config', 'layers', ] + # Markdown Parsing -ONELINE_COMMENT_RE = re.compile( - r""" +ONELINE_COMMENT_RE = re.compile(r""" ^ # comment must be at the start of the line \s* # arbitrary whitespace // # start of the comment @@ -122,26 +121,22 @@ ONELINE_COMMENT_RE = re.compile( """, re.MULTILINE | re.VERBOSE ) -INLINE_COMMENT_RE = re.compile( - r""" +INLINE_COMMENT_RE = re.compile(r""" ([\,\"\[\]\{\}\d]) # anythig that might end a expression \s+ # comment must be preceded by whitespace // # start of the comment \s # and succeded by whitespace (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) $ # until the end of line -""", re.MULTILINE | re.VERBOSE -) +""", re.MULTILINE | re.VERBOSE) -TRAILING_COMMA_RE = re.compile( - r""" +TRAILING_COMMA_RE = re.compile(r""" , # the comma (?:\s*) # arbitrary whitespace $ # only works if the trailing comma is followed by newline (\s*) # arbitrary whitespace ([\]\}]) # end of an array or object -""", re.MULTILINE | re.VERBOSE -) +""", re.MULTILINE | re.VERBOSE) def loads(raw_data): @@ -183,7 +178,9 @@ def parse_config(path): def end_section(): if section['start_line'] >= 0: if section['name'] == 'layout_config': - config.update(loads("\n".join(section['code_lines']))) + config.update(loads("\n".join( + section['code_lines'] + ))) elif section['sub_name'].startswith('layer'): layer_name = section['sub_name'] config['layer_lines'][layer_name] = section['code_lines'] @@ -218,7 +215,6 @@ def parse_config(path): assert 'layout' in config return config - # header file parsing IF0_RE = re.compile(r""" @@ -228,6 +224,7 @@ IF0_RE = re.compile(r""" #endif """, re.MULTILINE | re.DOTALL | re.VERBOSE) + COMMENT_RE = re.compile(r""" /\* .*? @@ -247,7 +244,6 @@ def regex_partial(re_str_fmt, flags): def partial(*args, **kwargs): re_str = re_str_fmt.format(*args, **kwargs) return re.compile(re_str, flags) - return partial @@ -260,6 +256,7 @@ KEYDEF_REP = regex_partial(r""" ) # capture group end """, re.MULTILINE | re.DOTALL | re.VERBOSE) + ENUM_RE = re.compile(r""" ( enum @@ -271,6 +268,7 @@ ENUM_RE = re.compile(r""" ) # capture group end """, re.MULTILINE | re.DOTALL | re.VERBOSE) + ENUM_KEY_REP = regex_partial(r""" ( {} # the prefixes @@ -311,13 +309,14 @@ def parse_valid_keys(config, out_path): include_path = os.path.join(dirpath, include) if os.path.exists(include_path): header_data = read_header_file(include_path) - valid_keycodes.update(parse_keydefs(config, header_data)) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) return valid_keycodes # Keymap Parsing - def iter_raw_codes(layer_lines, filler, separator): filler_re = re.compile("[" + filler + " ]") for line in layer_lines: @@ -347,21 +346,28 @@ LAYER_CHANGE_RE = re.compile(r""" (DF|TG|MO)\(\d+\) """, re.VERBOSE) + MACRO_RE = re.compile(r""" M\(\w+\) """, re.VERBOSE) + UNICODE_RE = re.compile(r""" U[0-9A-F]{4} """, re.VERBOSE) + NON_CODE = re.compile(r""" ^[^A-Z0-9_]$ """, re.VERBOSE) def parse_uni_code(raw_code): - macro_id = "UC_" + (unicodedata.name(raw_code).replace(" ", "_").replace("-", "_")) + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) code = "M({})".format(macro_id) uc_hex = "{:04X}".format(ord(raw_code)) return code, macro_id, uc_hex @@ -401,13 +407,19 @@ def parse_code(raw_code, key_prefixes, valid_keycodes): def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): keymap = {} - raw_codes = list(iter_raw_codes(layer_lines, config['filler'], config['separator'])) + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) indexed_codes = iter_indexed_codes(raw_codes, key_indexes) key_prefixes = config['key_prefixes'] for raw_code, key_index, row_index in indexed_codes: - code, macro_id, uc_hex = parse_code(raw_code, key_prefixes, valid_keycodes) + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) # TODO: line numbers for invalid codes - err_msg = "Could not parse key '{}' on row {}".format(raw_code, row_index) + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) assert code is not None, err_msg # print(repr(raw_code), repr(code), macro_id, uc_hex) if macro_id: @@ -420,14 +432,17 @@ def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): def parse_keymaps(config, valid_keycodes): keymaps = collections.OrderedDict() - key_indexes = config.get('key_indexes', KEYBOARD_LAYOUTS[config['layout']]) + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) # TODO: maybe validate key_indexes for layer_name, layer_lines, in config['layer_lines'].items(): - keymaps[layer_name] = parse_keymap(config, key_indexes, layer_lines, valid_keycodes) + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) return keymaps - # keymap.c output USERCODE = """ @@ -438,7 +453,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); @@ -557,6 +572,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ }}; """ + UNICODE_MACRO_TEMPLATE = """ case {macro_id}: unicode_action_function(0x{hi:02x}, 0x{lo:02x}); @@ -568,7 +584,9 @@ def unicode_macro_cases(config): for macro_id, uc_hex in config['unicode_macros'].items(): hi = int(uc_hex, 16) >> 8 lo = int(uc_hex, 16) & 0xFF - yield UNICODE_MACRO_TEMPLATE.format(macro_id=macro_id, hi=hi, lo=lo) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) def iter_keymap_lines(keymap, row_indents=None): diff --git a/keyboards/ergodox_stm32/config.h b/keyboards/ergodox_stm32/config.h index b627f44ebb..46514eaeb7 100644 --- a/keyboards/ergodox_stm32/config.h +++ b/keyboards/ergodox_stm32/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1308 -#define DEVICE_VER 0x0101 -#define MANUFACTURER ErgoDox -#define PRODUCT ErgoDox STM - #define MATRIX_ROWS 14 #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) #define MATRIX_COLS 6 diff --git a/keyboards/ergodox_stm32/info.json b/keyboards/ergodox_stm32/info.json index ee406e4743..e93c71e29c 100644 --- a/keyboards/ergodox_stm32/info.json +++ b/keyboards/ergodox_stm32/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ErgoDox STM32", + "manufacturer": "ErgoDox", "url": "github.com/codetector1374", "maintainer": "codetector1374", + "usb": { + "vid": "0xFEED", + "pid": "0x1308", + "device_version": "1.0.1" + }, "layouts": { "LAYOUT_ergodox": { "layout": [ diff --git a/keyboards/ergoslab/keymaps/default/keymap.c b/keyboards/ergoslab/keymaps/default/keymap.c index 093d586eba..59415618a8 100644 --- a/keyboards/ergoslab/keymaps/default/keymap.c +++ b/keyboards/ergoslab/keymaps/default/keymap.c @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef RGBLIGHT_ENABLE layer_state_t layer_state_set_user(layer_state_t state) { - uint8_t layer = get_highest_layer(state); + uint8_t layer = biton32(state); switch (layer) { case BASE: rgblight_sethsv(HSV_ERGOSLAB_ORANGE); diff --git a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h index a246476ddc..40cf1e3752 100644 --- a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/esca/getawayvan/config.h b/keyboards/esca/getawayvan/config.h index 34498cc3fb..a3ccbc7f30 100644 --- a/keyboards/esca/getawayvan/config.h +++ b/keyboards/esca/getawayvan/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xE5CA -#define PRODUCT_ID 0x0401 -#define DEVICE_VER 0x0001 -#define MANUFACTURER esca -#define PRODUCT GetawayVan - - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/esca/getawayvan/info.json b/keyboards/esca/getawayvan/info.json index e49d4a8e47..2d793203f3 100644 --- a/keyboards/esca/getawayvan/info.json +++ b/keyboards/esca/getawayvan/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GetawayVan", + "manufacturer": "esca", "url": "", "maintainer": "esca", + "usb": { + "vid": "0xE5CA", + "pid": "0x0401", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"NoNo Key", "x":11, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":"\"", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Win", "x":1, "y":3, "w":1.25}, {"label":"Alt", "x":2.25, "y":3}, {"label":"", "x":3.25, "y":3, "w":2.75}, {"label":"", "x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}] diff --git a/keyboards/esca/getawayvan_f042/config.h b/keyboards/esca/getawayvan_f042/config.h index 6812d4e52b..a3ccbc7f30 100644 --- a/keyboards/esca/getawayvan_f042/config.h +++ b/keyboards/esca/getawayvan_f042/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xE5CA -#define PRODUCT_ID 0x0401 -#define DEVICE_VER 0x0001 -#define MANUFACTURER esca -#define PRODUCT GetawayVan - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/esca/getawayvan_f042/info.json b/keyboards/esca/getawayvan_f042/info.json index e49d4a8e47..2d793203f3 100644 --- a/keyboards/esca/getawayvan_f042/info.json +++ b/keyboards/esca/getawayvan_f042/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GetawayVan", + "manufacturer": "esca", "url": "", "maintainer": "esca", + "usb": { + "vid": "0xE5CA", + "pid": "0x0401", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"NoNo Key", "x":11, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":"\"", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Win", "x":1, "y":3, "w":1.25}, {"label":"Alt", "x":2.25, "y":3}, {"label":"", "x":3.25, "y":3, "w":2.75}, {"label":"", "x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}] diff --git a/keyboards/eternal_keypad/config.h b/keyboards/eternal_keypad/config.h index 5b5ad02f44..d98af99960 100644 --- a/keyboards/eternal_keypad/config.h +++ b/keyboards/eternal_keypad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xDB00 -#define DEVICE_VER 0x0001 -#define MANUFACTURER duckyb -#define PRODUCT eternal_keypad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 8 @@ -62,6 +55,11 @@ along with this program. If not, see . //#define BACKLIGHT_LEVELS 3 //#define BACKLIGHT_BREATHING +#define RGB_DI_PIN D3 +#define RGBLED_NUM 8 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_ANIMATIONS + //#define RGB_DI_PIN E2 //#ifdef RGB_DI_PIN //# define RGBLED_NUM 16 diff --git a/keyboards/eternal_keypad/info.json b/keyboards/eternal_keypad/info.json index 2bdf9624ce..55c4d67bed 100644 --- a/keyboards/eternal_keypad/info.json +++ b/keyboards/eternal_keypad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "eternal_keypad", + "manufacturer": "duckyb", "url": "https://github.com/duckyb/eternal-keypad", "maintainer": "duckyb", + "usb": { + "vid": "0x1209", + "pid": "0xDB00", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/eternal_keypad/keymaps/default/keymap.c b/keyboards/eternal_keypad/keymaps/default/keymap.c index f4d06bc1ff..6bc94c0a76 100644 --- a/keyboards/eternal_keypad/keymaps/default/keymap.c +++ b/keyboards/eternal_keypad/keymaps/default/keymap.c @@ -44,24 +44,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F15, KC_LCTL, OSL(_FN), KC_LALT, KC_SPC, LT(_ARROW, KC_0) ), /* Arrows Layer - * ,-----------------------------------------. - * | | | | | | | | | - * | |-------+----+----+-----+---+---+---| - * | | | | UP| | | | | - * |----||-------+----+----+-----+---+---+---| - * | || |LEFT|DOWN|RIGHT| | | | - * |----||-------+----+----+-----+---+---+---| - * | || | | | | | | | - * |----||-----------------------------------| - * | RST|| | | | | | - * `----'`-----------------------------------' + * ,--------------------------------------------------. + * | | | | | | | | | + * | |-------+----+----+-----+----+-------+-------| + * | | | | UP| |RGB?| HUE+ | HUE- | + * |----||-------+----+----+-----+----+-------+-------| + * | || |LEFT|DOWN|RIGHT| |BRIGHT+|BRIGHT-| + * |----||-------+----+----+-----+----+-------+-------| + * | || | | | | | MODE+ | MODE- | + * |----||--------------------------------------------| + * | RST|| | | | | | + * `----'`--------------------------------------------' */ [_ARROW] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______ + _______, _______, KC_UP, _______, RGB_TOG, RGB_HUI, RGB_HUD, + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, RGB_VAI, RGB_VAD, + _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_RMOD, + RESET, _______, _______, _______, _______, _______ ), /* Function Layer * ,-------------------------------------. diff --git a/keyboards/eternal_keypad/keymaps/kyek/keymap.c b/keyboards/eternal_keypad/keymaps/kyek/keymap.c index 592e73bc74..7a7e121508 100644 --- a/keyboards/eternal_keypad/keymaps/kyek/keymap.c +++ b/keyboards/eternal_keypad/keymaps/kyek/keymap.c @@ -57,10 +57,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----'`-----------------------------------' */ [_ARROW] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, - _______, KC_DEL , KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_MODE_RGBTEST, RGB_TOG, RGB_HUI, + _______, _______, KC_UP, _______, _______, RGB_MODE_PLAIN, RGB_HUD, + _______, KC_DEL , KC_LEFT, KC_DOWN, KC_RIGHT, _______, RGB_MODE_BREATHE, RGB_VAI, + _______, _______, _______, _______, _______, _______, RGB_MODE_SWIRL, RGB_VAD, RESET, _______, _______, _______, _______, _______ ), /* Function Layer diff --git a/keyboards/eternal_keypad/keymaps/lefty/keymap.c b/keyboards/eternal_keypad/keymaps/lefty/keymap.c index 886ac25ccd..2fa6e6f7e5 100644 --- a/keyboards/eternal_keypad/keymaps/lefty/keymap.c +++ b/keyboards/eternal_keypad/keymaps/lefty/keymap.c @@ -44,23 +44,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F15, KC_LCTL, OSL(_FN), KC_LALT, KC_SPC, LT(_ARROW, KC_0) ), /* Arrows Layer - * ,-----------------------------------------. - * | | | | | | | | | - * | |-------+----+----+-----+---+---+---| - * | | | | UP| | | | | - * |----||-------+----+----+-----+---+---+---| - * | || |RIGHT|DOWN|LEFT| | | | - * |----||-------+----+----+-----+---+---+---| - * | || | | | | | | | - * |----||-----------------------------------| - * | RST|| | | | | | - * `----'`-----------------------------------' + * ,--------------------------------------------------. + * | | | | | | | | | + * | |-------+----+----+-----+----+-------+-------| + * | | | | UP| |RGB?| HUE+ | HUE- | + * |----||-------+----+----+-----+----+-------+-------| + * | || |LEFT|DOWN|RIGHT| |BRIGHT+|BRIGHT-| + * |----||-------+----+----+-----+----+-------+-------| + * | || | | | | | MODE+ | MODE- | + * |----||--------------------------------------------| + * | RST|| | | | | | + * `----'`--------------------------------------------' */ [_ARROW] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, - _______, _______, KC_RIGHT,KC_DOWN, KC_LEFT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, RGB_TOG, RGB_HUI, RGB_HUD, + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, RGB_VAI, RGB_VAD, + _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_RMOD, RESET, _______, _______, _______, _______, _______ ), /* Function Layer diff --git a/keyboards/eternal_keypad/rules.mk b/keyboards/eternal_keypad/rules.mk index e0403a960b..4d1d6e2d05 100644 --- a/keyboards/eternal_keypad/rules.mk +++ b/keyboards/eternal_keypad/rules.mk @@ -14,5 +14,5 @@ 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 +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output diff --git a/keyboards/eu_isolation/config.h b/keyboards/eu_isolation/config.h index e1564b8d6b..49355bfec8 100644 --- a/keyboards/eu_isolation/config.h +++ b/keyboards/eu_isolation/config.h @@ -16,13 +16,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4373 -#define DEVICE_VER 0x0001 -#define MANUFACTURER TuckTuckFloof -#define PRODUCT EU ISOlation - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 14 diff --git a/keyboards/eu_isolation/info.json b/keyboards/eu_isolation/info.json index 03de853c42..5713a2ddb8 100644 --- a/keyboards/eu_isolation/info.json +++ b/keyboards/eu_isolation/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "EUISOlation", + "keyboard_name": "EU ISOlation", + "manufacturer": "TuckTuckFloof", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x4373", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_euiso_ortho": { "layout": [ diff --git a/keyboards/evancookaudio/sleepingdinosaur/config.h b/keyboards/evancookaudio/sleepingdinosaur/config.h index ca1bdbf1c2..c6818085e1 100644 --- a/keyboards/evancookaudio/sleepingdinosaur/config.h +++ b/keyboards/evancookaudio/sleepingdinosaur/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x636F -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0000 -#define MANUFACTURER evancook.audio -#define PRODUCT sleepingdinosaur - /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/evancookaudio/sleepingdinosaur/info.json b/keyboards/evancookaudio/sleepingdinosaur/info.json index 2c21777d49..de5cab5eb4 100644 --- a/keyboards/evancookaudio/sleepingdinosaur/info.json +++ b/keyboards/evancookaudio/sleepingdinosaur/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "evancook.audio sleepingdinosaur", + "keyboard_name": "sleepingdinosaur", + "manufacturer": "evancook.audio", "url": "https://evancook.audio/", "maintainer": "evanmcook", + "usb": { + "vid": "0x636F", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/evancookaudio/tenpad/config.h b/keyboards/evancookaudio/tenpad/config.h index c9d7d05251..e49d8e9b1a 100644 --- a/keyboards/evancookaudio/tenpad/config.h +++ b/keyboards/evancookaudio/tenpad/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x636F -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0000 -#define MANUFACTURER evancook.audio -#define PRODUCT tenpad - /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/evancookaudio/tenpad/info.json b/keyboards/evancookaudio/tenpad/info.json index 52c62775dc..02ba27ccf3 100644 --- a/keyboards/evancookaudio/tenpad/info.json +++ b/keyboards/evancookaudio/tenpad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "evancook.audio tenpad", + "keyboard_name": "tenpad", + "manufacturer": "evancook.audio", "url": "https://evancook.audio/", "maintainer": "evanmcook", + "usb": { + "vid": "0x636F", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x5": { diff --git a/keyboards/eve/meteor/config.h b/keyboards/eve/meteor/config.h index a6b2c9b69d..4947167645 100644 --- a/keyboards/eve/meteor/config.h +++ b/keyboards/eve/meteor/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x4556 // "EV" -#define PRODUCT_ID 0x4D54 // "MT" -#define DEVICE_VER 0x0200 -#define MANUFACTURER EVE -#define PRODUCT Meteor - #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/eve/meteor/info.json b/keyboards/eve/meteor/info.json index 4c86d09bfd..4ec8488889 100644 --- a/keyboards/eve/meteor/info.json +++ b/keyboards/eve/meteor/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "EVE Meteor", + "keyboard_name": "Meteor", + "manufacturer": "EVE", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4556", + "pid": "0x4D54", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_all": { "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":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5, "w":1.25}, {"x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"x":10, "y":5.5}, {"x":11, "y":5.5}, {"x":12, "y":5.5}, {"x":13, "y":5.5}, {"x":14, "y":5.5}] diff --git a/keyboards/evil80/config.h b/keyboards/evil80/config.h index 6876c0e086..25fb7d4a0b 100644 --- a/keyboards/evil80/config.h +++ b/keyboards/evil80/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evil -#define PRODUCT Evil80 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/evil80/info.json b/keyboards/evil80/info.json index b37086c1a7..25d0dea712 100644 --- a/keyboards/evil80/info.json +++ b/keyboards/evil80/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Evil80", + "manufacturer": "Evil", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/evolv/config.h b/keyboards/evolv/config.h index 3a3ff3be35..babc1d88c1 100644 --- a/keyboards/evolv/config.h +++ b/keyboards/evolv/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7865 // NA for NathanAlpha -#define PRODUCT_ID 0x0E75 // For Evolv75 -#define DEVICE_VER 0x0001 // Revision pre-Alpha -#define MANUFACTURER NathanAlpha -#define PRODUCT Evolv75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/evolv/info.json b/keyboards/evolv/info.json index baa7b9c843..2eaf92e7d4 100644 --- a/keyboards/evolv/info.json +++ b/keyboards/evolv/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Evolv75", + "manufacturer": "NathanAlpha", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x7865", + "pid": "0x0E75", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_evolv_ansi": { "layout": [ diff --git a/keyboards/evyd13/atom47/rev2/config.h b/keyboards/evyd13/atom47/rev2/config.h index 42661c3311..cba27459cd 100644 --- a/keyboards/evyd13/atom47/rev2/config.h +++ b/keyboards/evyd13/atom47/rev2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x8E66 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Atom47 rev2 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/evyd13/atom47/rev2/info.json b/keyboards/evyd13/atom47/rev2/info.json index 5603c0e247..6a57c77d64 100644 --- a/keyboards/evyd13/atom47/rev2/info.json +++ b/keyboards/evyd13/atom47/rev2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Atom47 rev2", + "manufacturer": "Evyd13", "url": "", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x8E66", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_space": { "layout": [ diff --git a/keyboards/evyd13/atom47/rev3/config.h b/keyboards/evyd13/atom47/rev3/config.h index 90cb4a1952..a00f5177fe 100644 --- a/keyboards/evyd13/atom47/rev3/config.h +++ b/keyboards/evyd13/atom47/rev3/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x0E6D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Atom47 rev3 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/evyd13/atom47/rev3/info.json b/keyboards/evyd13/atom47/rev3/info.json index fc602f699b..bbeaea667e 100644 --- a/keyboards/evyd13/atom47/rev3/info.json +++ b/keyboards/evyd13/atom47/rev3/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Atom47 rev3", + "manufacturer": "Evyd13", "url": "", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x0E6D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_space": { "layout": [ diff --git a/keyboards/evyd13/atom47/rev4/config.h b/keyboards/evyd13/atom47/rev4/config.h index a88c538716..19add7be46 100644 --- a/keyboards/evyd13/atom47/rev4/config.h +++ b/keyboards/evyd13/atom47/rev4/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x8446 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Atom47 rev4 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/evyd13/atom47/rev4/info.json b/keyboards/evyd13/atom47/rev4/info.json index d0fbf98742..8e117850cb 100644 --- a/keyboards/evyd13/atom47/rev4/info.json +++ b/keyboards/evyd13/atom47/rev4/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Atom47 rev4", + "manufacturer": "Evyd13", "url": "", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x8446", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_space": { "layout": [ diff --git a/keyboards/evyd13/atom47/rev5/config.h b/keyboards/evyd13/atom47/rev5/config.h index 25c419b4cd..4ab41e9567 100644 --- a/keyboards/evyd13/atom47/rev5/config.h +++ b/keyboards/evyd13/atom47/rev5/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x92EA -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Atom47 rev5 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/evyd13/atom47/rev5/info.json b/keyboards/evyd13/atom47/rev5/info.json index eae42fe746..4ecc240182 100644 --- a/keyboards/evyd13/atom47/rev5/info.json +++ b/keyboards/evyd13/atom47/rev5/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Atom47 rev5", + "manufacturer": "Evyd13", "url": "", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x92EA", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_space": { "layout": [ diff --git a/keyboards/evyd13/eon40/config.h b/keyboards/evyd13/eon40/config.h index 14cbe42099..a10c3924fc 100644 --- a/keyboards/evyd13/eon40/config.h +++ b/keyboards/evyd13/eon40/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x0140 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Eon40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/evyd13/eon40/info.json b/keyboards/evyd13/eon40/info.json index 38348b49b9..e255caf9fc 100644 --- a/keyboards/evyd13/eon40/info.json +++ b/keyboards/evyd13/eon40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Eon40", + "manufacturer": "Evyd13", "url": "https://maartenwut.com/product/eon40/", "maintainer": "qmk", + "usb": { + "vid": "0x4705", + "pid": "0x0140", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] diff --git a/keyboards/evyd13/eon65/config.h b/keyboards/evyd13/eon65/config.h index 08922a2d4c..02d8e96474 100644 --- a/keyboards/evyd13/eon65/config.h +++ b/keyboards/evyd13/eon65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0xAEB4 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Eon65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/evyd13/eon65/info.json b/keyboards/evyd13/eon65/info.json index 41b1b056ee..26f70f5a52 100644 --- a/keyboards/evyd13/eon65/info.json +++ b/keyboards/evyd13/eon65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Eon65", + "manufacturer": "Evyd13", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4705", + "pid": "0xAEB4", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/eon75/config.h b/keyboards/evyd13/eon75/config.h index 203cfe8a7d..4cc5d89300 100644 --- a/keyboards/evyd13/eon75/config.h +++ b/keyboards/evyd13/eon75/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x5C62 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Eon75 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 8 diff --git a/keyboards/evyd13/eon75/info.json b/keyboards/evyd13/eon75/info.json index 9730b069e8..4fe35a9090 100644 --- a/keyboards/evyd13/eon75/info.json +++ b/keyboards/evyd13/eon75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Eon75", + "manufacturer": "Evyd13", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4705", + "pid": "0x5C62", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/eon87/config.h b/keyboards/evyd13/eon87/config.h index bfa593db51..8b23338406 100644 --- a/keyboards/evyd13/eon87/config.h +++ b/keyboards/evyd13/eon87/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0xAA6B -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Eon87 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/evyd13/eon87/info.json b/keyboards/evyd13/eon87/info.json index 1020ccd06e..d3bde7565e 100644 --- a/keyboards/evyd13/eon87/info.json +++ b/keyboards/evyd13/eon87/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Eon87", + "manufacturer": "Evyd13", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4705", + "pid": "0xAA6B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/eon95/config.h b/keyboards/evyd13/eon95/config.h index 6a6b329c29..c10eab2fcf 100644 --- a/keyboards/evyd13/eon95/config.h +++ b/keyboards/evyd13/eon95/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x8A18 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Eon95 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 10 diff --git a/keyboards/evyd13/eon95/info.json b/keyboards/evyd13/eon95/info.json index 18cb38ad2f..c165088997 100644 --- a/keyboards/evyd13/eon95/info.json +++ b/keyboards/evyd13/eon95/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Eon95", + "manufacturer": "Evyd13", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4705", + "pid": "0x8A18", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/fin_pad/config.h b/keyboards/evyd13/fin_pad/config.h new file mode 100644 index 0000000000..2155d337a8 --- /dev/null +++ b/keyboards/evyd13/fin_pad/config.h @@ -0,0 +1,20 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// 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 diff --git a/keyboards/evyd13/fin_pad/info.json b/keyboards/evyd13/fin_pad/info.json new file mode 100644 index 0000000000..f2fb0b90a7 --- /dev/null +++ b/keyboards/evyd13/fin_pad/info.json @@ -0,0 +1,88 @@ +{ + "manufacturer": "Evelien Dekkers", + "keyboard_name": "Fin Pad", + "maintainer": "evyd13", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C4", "C5", "D0", "C2"], + "rows": ["C6", "C7", "B7", "B6", "B5", "B4"] + }, + "community_layouts": [ + "numpad_6x4", + "ortho_6x4" + ], + "processor": "atmega32u2", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xA6E2", + "vid": "0x4705" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_ortho_6x4" + }, + "layouts": { + "LAYOUT_ortho_6x4": { + "layout": [ + {"matrix": [0, 0], "label":"ESC", "x":0, "y":0}, + {"matrix": [0, 1], "label":"TAB", "x":1, "y":0}, + {"matrix": [0, 2], "label":"PEQL", "x":2, "y":0}, + {"matrix": [0, 3], "label":"BSPC", "x":3, "y":0}, + {"matrix": [1, 0], "label":"NUM", "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": [2, 0], "label":"P7", "x":0, "y":2.25}, + {"matrix": [2, 1], "label":"P8", "x":1, "y":2.25}, + {"matrix": [2, 2], "label":"P9", "x":2, "y":2.25}, + {"matrix": [2, 3], "label":"PPLS", "x":3, "y":2.25}, + {"matrix": [3, 0], "label":"P4", "x":0, "y":3.25}, + {"matrix": [3, 1], "label":"P5", "x":1, "y":3.25}, + {"matrix": [3, 2], "label":"P6", "x":2, "y":3.25}, + {"matrix": [3, 3], "label":"PPLS", "x":3, "y":3.25}, + {"matrix": [4, 0], "label":"P1", "x":0, "y":4.25}, + {"matrix": [4, 1], "label":"P2", "x":1, "y":4.25}, + {"matrix": [4, 2], "label":"P3", "x":2, "y":4.25}, + {"matrix": [4, 3], "label":"PENT", "x":3, "y":4.25}, + {"matrix": [5, 0], "label":"P0", "x":0, "y":5.25}, + {"matrix": [5, 1], "label":"P0", "x":1, "y":5.25}, + {"matrix": [5, 2], "label":"PDOT", "x":2, "y":5.25}, + {"matrix": [5, 3], "label":"PENT", "x":3, "y":5.25} + ] + }, + "LAYOUT_numpad_6x4": { + "layout": [ + {"matrix": [0, 0], "label":"ESC", "x":0, "y":0}, + {"matrix": [0, 1], "label":"TAB", "x":1, "y":0}, + {"matrix": [0, 2], "label":"PEQL", "x":2, "y":0}, + {"matrix": [0, 3], "label":"BSPC", "x":3, "y":0}, + {"matrix": [1, 0], "label":"NUM", "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": [2, 0], "label":"P7", "x":0, "y":2.25}, + {"matrix": [2, 1], "label":"P8", "x":1, "y":2.25}, + {"matrix": [2, 2], "label":"P9", "x":2, "y":2.25}, + {"matrix": [3, 0], "label":"P4", "x":0, "y":3.25}, + {"matrix": [3, 1], "label":"P5", "x":1, "y":3.25}, + {"matrix": [3, 2], "label":"P6", "x":2, "y":3.25}, + {"matrix": [3, 3], "label":"PPLS", "x":3, "y":2.25, "h":2}, + {"matrix": [4, 0], "label":"P1", "x":0, "y":4.25}, + {"matrix": [4, 1], "label":"P2", "x":1, "y":4.25}, + {"matrix": [4, 2], "label":"P3", "x":2, "y":4.25}, + {"matrix": [5, 0], "label":"P0", "x":0, "y":5.25}, + {"matrix": [5, 2], "label":"PDOT", "x":2, "y":5.25}, + {"matrix": [5, 3], "label":"PENT", "x":3, "y":4.25, "h":2} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/evyd13/fin_pad/keymaps/default/keymap.c b/keyboards/evyd13/fin_pad/keymaps/default/keymap.c new file mode 100644 index 0000000000..2e59bc05b7 --- /dev/null +++ b/keyboards/evyd13/fin_pad/keymaps/default/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_6x4( + KC_ESC, KC_TAB, KC_EQL, KC_BSPC, + KC_NUM, 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 + ) +}; diff --git a/keyboards/evyd13/fin_pad/keymaps/via/keymap.c b/keyboards/evyd13/fin_pad/keymaps/via/keymap.c new file mode 100644 index 0000000000..f199e27981 --- /dev/null +++ b/keyboards/evyd13/fin_pad/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// 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_TAB, KC_EQL, KC_BSPC, + KC_NUM, 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 + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______ + ) +}; + diff --git a/keyboards/evyd13/fin_pad/keymaps/via/rules.mk b/keyboards/evyd13/fin_pad/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/evyd13/fin_pad/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/evyd13/fin_pad/readme.md b/keyboards/evyd13/fin_pad/readme.md new file mode 100644 index 0000000000..4802caadec --- /dev/null +++ b/keyboards/evyd13/fin_pad/readme.md @@ -0,0 +1,27 @@ +# Fin Pad + +![Fin Pad](https://i.imgur.com/OC5O2SZ.png) + +A replacement PCB for the Lin Dolphin Pad + +* Keyboard Maintainer: [Evelien Dekkers](https://github.com/evyd13) +* Hardware Supported: Fin Pad PCB +* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/fin-pad) + +Make example for this keyboard (after setting up your build environment): + + make evyd13/fin_pad:default + +Flashing example for this keyboard: + + make evyd13/fin_pad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/evyd13/fin_pad/rules.mk b/keyboards/evyd13/fin_pad/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/evyd13/fin_pad/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/evyd13/gh80_1800/config.h b/keyboards/evyd13/gh80_1800/config.h index d2fa370c0d..2be1840b77 100644 --- a/keyboards/evyd13/gh80_1800/config.h +++ b/keyboards/evyd13/gh80_1800/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x8B23 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT GH80 1800 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 11 diff --git a/keyboards/evyd13/gh80_1800/info.json b/keyboards/evyd13/gh80_1800/info.json index 5019157c06..d85a412c99 100644 --- a/keyboards/evyd13/gh80_1800/info.json +++ b/keyboards/evyd13/gh80_1800/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GH80-1800", + "manufacturer": "Evyd13", "url": "https://github.com/evyd13/gh80-series/tree/master/GH80-1800", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x8B23", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/gh80_3700/config.h b/keyboards/evyd13/gh80_3700/config.h index d05ca87958..fdc4b7968c 100644 --- a/keyboards/evyd13/gh80_3700/config.h +++ b/keyboards/evyd13/gh80_3700/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x633A -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT GH80 3700 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/evyd13/gh80_3700/info.json b/keyboards/evyd13/gh80_3700/info.json index 8f6402a45e..a5c128d29b 100644 --- a/keyboards/evyd13/gh80_3700/info.json +++ b/keyboards/evyd13/gh80_3700/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GH80-3700", + "manufacturer": "Evyd13", "url": "https://github.com/evyd13/gh80-series/tree/master/GH80-3700", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x633A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_6x4": { "layout": [ diff --git a/keyboards/evyd13/gud70/config.h b/keyboards/evyd13/gud70/config.h index 395d1c303e..f942e47164 100644 --- a/keyboards/evyd13/gud70/config.h +++ b/keyboards/evyd13/gud70/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x198B -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Gud70 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/evyd13/gud70/info.json b/keyboards/evyd13/gud70/info.json index bf0ac9df4e..c7d94c93a8 100644 --- a/keyboards/evyd13/gud70/info.json +++ b/keyboards/evyd13/gud70/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Gud70", + "manufacturer": "Evyd13", "url": "https://github.com/evyd13/gud70-pcb", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x198B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/minitomic/config.h b/keyboards/evyd13/minitomic/config.h index 01af62d69d..118ea3693b 100644 --- a/keyboards/evyd13/minitomic/config.h +++ b/keyboards/evyd13/minitomic/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x0145 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Minitomic - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/evyd13/minitomic/info.json b/keyboards/evyd13/minitomic/info.json index 388569fac8..650442a736 100644 --- a/keyboards/evyd13/minitomic/info.json +++ b/keyboards/evyd13/minitomic/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Minitomic", + "manufacturer": "Evyd13", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4705", + "pid": "0x0145", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_space": { "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":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.75}, {"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, "w":1.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3, "w":1.75}, {"x":6.25, "y":3, "w":2}, {"x":8.25, "y":3}, {"x":9.25, "y":3, "w":1.25}, {"x":10.5, "y":3, "w":1.25}, {"x":11.75, "y":3, "w":1.25}] diff --git a/keyboards/evyd13/mx5160/config.h b/keyboards/evyd13/mx5160/config.h index 3d25e1704f..caa88da9a5 100644 --- a/keyboards/evyd13/mx5160/config.h +++ b/keyboards/evyd13/mx5160/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x5160 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT MX-5160 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/evyd13/mx5160/info.json b/keyboards/evyd13/mx5160/info.json index 7c1a0bb396..c1d7068048 100644 --- a/keyboards/evyd13/mx5160/info.json +++ b/keyboards/evyd13/mx5160/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "mx5160", + "keyboard_name": "MX-5160", + "manufacturer": "Evyd13", "url": "https://github.com/evyd13/mx-5160", "maintainer": "qmk", + "usb": { + "vid": "0x4705", + "pid": "0x5160", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":18, "y":0}, {"x":19, "y":0}, {"x":20, "y":0}, {"x":21, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2.5, "y":1, "w":1.5}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1, "w":1.5}, {"x":18, "y":1}, {"x":19, "y":1}, {"x":20, "y":1}, {"x":21, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2.5, "y":2, "w":1.75}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"x":11.25, "y":2}, {"x":12.25, "y":2}, {"x":13.25, "y":2}, {"x":14.25, "y":2}, {"x":15.25, "y":2}, {"x":16.25, "y":2, "w":1.25}, {"x":18, "y":2}, {"x":19, "y":2}, {"x":20, "y":2}, {"x":21, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3}, {"x":14.75, "y":3, "w":1.75}, {"x":16.5, "y":3}, {"x":18, "y":3}, {"x":19, "y":3}, {"x":20, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":5, "y":4, "w":1.5}, {"x":6.5, "y":4, "w":7}, {"x":13.5, "y":4, "w":1.5}, {"x":16, "y":4, "w":1.5}, {"x":18, "y":4}, {"x":19, "y":4}, {"x":20, "y":4}, {"x":21, "y":3, "h":2}] diff --git a/keyboards/evyd13/nt650/config.h b/keyboards/evyd13/nt650/config.h new file mode 100644 index 0000000000..91cf8ceccb --- /dev/null +++ b/keyboards/evyd13/nt650/config.h @@ -0,0 +1,22 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define LED_PIN_ON_STATE 0 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/evyd13/nt650/info.json b/keyboards/evyd13/nt650/info.json new file mode 100644 index 0000000000..ca134daa2b --- /dev/null +++ b/keyboards/evyd13/nt650/info.json @@ -0,0 +1,104 @@ +{ + "manufacturer": "Evelien Dekkers", + "keyboard_name": "nt650", + "maintainer": "evyd13", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "E6", + "scroll_lock": "E2" + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "C7", "C6", "B3", "B1", "B2", "B7", "D7", "B5", "B4", "D0", "B6", "D1"], + "rows": ["F7", "D6", "D4", "F1", "D5", "F0", "D3", "D2"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xD5DF", + "vid": "0x4705" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_ansi_split_space" + }, + "layouts": { + "LAYOUT_ansi_split_space": { + "layout": [ + {"matrix": [0, 0], "label":"ESC", "x":0, "y":0}, + {"matrix": [1, 0], "label":"1", "x":1, "y":0}, + {"matrix": [1, 1], "label":"2", "x":2, "y":0}, + {"matrix": [1, 2], "label":"3", "x":3, "y":0}, + {"matrix": [1, 3], "label":"4", "x":4, "y":0}, + {"matrix": [2, 3], "label":"5", "x":5, "y":0}, + {"matrix": [2, 4], "label":"6", "x":6, "y":0}, + {"matrix": [1, 4], "label":"7", "x":7, "y":0}, + {"matrix": [1, 5], "label":"8", "x":8, "y":0}, + {"matrix": [1, 6], "label":"9", "x":9, "y":0}, + {"matrix": [1, 7], "label":"0", "x":10, "y":0}, + {"matrix": [2, 7], "label":"MINS", "x":11, "y":0}, + {"matrix": [2, 5], "label":"EQL", "x":12, "y":0}, + {"matrix": [3, 8], "label":"BSPC", "x":13, "y":0, "w":2}, + {"matrix": [3, 0], "label":"TAB", "x":0, "y":1, "w":1.5}, + {"matrix": [5, 0], "label":"Q", "x":1.5, "y":1}, + {"matrix": [5, 1], "label":"W", "x":2.5, "y":1}, + {"matrix": [5, 2], "label":"E", "x":3.5, "y":1}, + {"matrix": [5, 3], "label":"R", "x":4.5, "y":1}, + {"matrix": [3, 3], "label":"T", "x":5.5, "y":1}, + {"matrix": [3, 4], "label":"Y", "x":6.5, "y":1}, + {"matrix": [5, 4], "label":"U", "x":7.5, "y":1}, + {"matrix": [5, 5], "label":"I", "x":8.5, "y":1}, + {"matrix": [5, 6], "label":"O", "x":9.5, "y":1}, + {"matrix": [5, 7], "label":"P", "x":10.5, "y":1}, + {"matrix": [3, 7], "label":"LBRC", "x":11.5, "y":1}, + {"matrix": [3, 5], "label":"RBRC", "x":12.5, "y":1}, + {"matrix": [4, 8], "label":"BSLS", "x":13.5, "y":1, "w":1.5}, + {"matrix": [3, 1], "label":"CAPS", "x":0, "y":2, "w":1.75}, + {"matrix": [4, 0], "label":"A", "x":1.75, "y":2}, + {"matrix": [4, 1], "label":"S", "x":2.75, "y":2}, + {"matrix": [4, 2], "label":"D", "x":3.75, "y":2}, + {"matrix": [4, 3], "label":"F", "x":4.75, "y":2}, + {"matrix": [0, 3], "label":"G", "x":5.75, "y":2}, + {"matrix": [0, 4], "label":"H", "x":6.75, "y":2}, + {"matrix": [4, 4], "label":"J", "x":7.75, "y":2}, + {"matrix": [4, 5], "label":"K", "x":8.75, "y":2}, + {"matrix": [4, 6], "label":"L", "x":9.75, "y":2}, + {"matrix": [4, 7], "label":"SCLN", "x":10.75, "y":2}, + {"matrix": [0, 7], "label":"QUOT", "x":11.75, "y":2}, + {"matrix": [6, 8], "label":"ENT", "x":12.75, "y":2, "w":2.25}, + {"matrix": [3, 10], "label":"LSFT", "x":0, "y":3, "w":2.25}, + {"matrix": [6, 0], "label":"Z", "x":2.25, "y":3}, + {"matrix": [6, 1], "label":"X", "x":3.25, "y":3}, + {"matrix": [6, 2], "label":"C", "x":4.25, "y":3}, + {"matrix": [6, 3], "label":"V", "x":5.25, "y":3}, + {"matrix": [7, 3], "label":"B", "x":6.25, "y":3}, + {"matrix": [7, 4], "label":"N", "x":7.25, "y":3}, + {"matrix": [6, 4], "label":"M", "x":8.25, "y":3}, + {"matrix": [6, 5], "label":"COMM", "x":9.25, "y":3}, + {"matrix": [6, 6], "label":"DOT", "x":10.25, "y":3}, + {"matrix": [7, 7], "label":"SLSH", "x":11.25, "y":3}, + {"matrix": [4, 10], "label":"RSFT", "x":12.25, "y":3, "w":1.75}, + {"matrix": [3, 9], "label":"APP", "x":14, "y":3}, + {"matrix": [2, 11], "label":"LCTL", "x":0, "y":4, "w":1.25}, + {"matrix": [3, 11], "label":"LGUI", "x":1.25, "y":4}, + {"matrix": [0, 9], "label":"LALT", "x":2.25, "y":4, "w":1.25}, + {"matrix": [0, 13], "label":"SPC", "x":3.5, "y":4, "w":3}, + {"matrix": [6, 9], "label":"SPC", "x":6.5, "y":4, "w":3}, + {"matrix": [7, 9], "label":"RALT", "x":9.5, "y":4, "w":1.25}, + {"matrix": [6, 11], "label":"RCTL", "x":10.75, "y":4}, + {"matrix": [0, 12], "label":"UP", "x":13, "y":4}, + {"matrix": [7, 12], "label":"LEFT", "x":12, "y":5}, + {"matrix": [7, 13], "label":"DOWN", "x":13, "y":5}, + {"matrix": [7, 14], "label":"RGHT", "x":14, "y":5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/evyd13/nt650/keymaps/default/keymap.c b/keyboards/evyd13/nt650/keymaps/default/keymap.c new file mode 100644 index 0000000000..e9978376d0 --- /dev/null +++ b/keyboards/evyd13/nt650/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability. +// 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, and you can also skip them entirely +// and just use numbers. +enum layer_names { + _BASE, + _FUNC, + _LOCK, + _XTRA +}; + +#define LOCK_LED_PIN B0 +#define GRV_TG TG(_LOCK) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_ansi_split_space( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FUNC), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_UP, + KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FUNC] = LAYOUT_ansi_split_space( + 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, _______, + _______, GRV_TG, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_APP, _______, + _______, _______, _______ + ), + [_LOCK] = LAYOUT_ansi_split_space( + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ), + [_XTRA] = LAYOUT_ansi_split_space( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + setPinOutput(LOCK_LED_PIN); + switch (get_highest_layer(state)) { + case _LOCK: + writePin(LOCK_LED_PIN, 0); + break; + default: // for any other layers, or the default layer + writePin(LOCK_LED_PIN, 1); + break; + } + return state; +} diff --git a/keyboards/evyd13/nt650/keymaps/via/config.h b/keyboards/evyd13/nt650/keymaps/via/config.h new file mode 100644 index 0000000000..fe36d02575 --- /dev/null +++ b/keyboards/evyd13/nt650/keymaps/via/config.h @@ -0,0 +1,6 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file diff --git a/keyboards/evyd13/nt650/keymaps/via/keymap.c b/keyboards/evyd13/nt650/keymaps/via/keymap.c new file mode 100644 index 0000000000..cc48f380eb --- /dev/null +++ b/keyboards/evyd13/nt650/keymaps/via/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2022 Evelien Dekkers (@evyd13) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ansi_split_space( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_UP, + KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi_split_space( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_APP, _______, + _______, _______, _______ + ), + [2] = LAYOUT_ansi_split_space( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ) +}; diff --git a/keyboards/evyd13/nt650/keymaps/via/rules.mk b/keyboards/evyd13/nt650/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/evyd13/nt650/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/evyd13/nt650/readme.md b/keyboards/evyd13/nt650/readme.md new file mode 100644 index 0000000000..b4684a94b6 --- /dev/null +++ b/keyboards/evyd13/nt650/readme.md @@ -0,0 +1,27 @@ +# nt650 + +![nt650](https://i.imgur.com/z0Xi6qoh.png) + +A replacement controller PCB for the Leopold FC650M. + +* Keyboard Maintainer: [Evelien Dekkers](https://github.com/evyd13) +* Hardware Supported: nt-650 PCB +* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/nt-series/tree/main/nt-650) + +Make example for this keyboard (after setting up your build environment): + + make evyd13/nt650:default + +Flashing example for this keyboard: + + make evyd13/nt650:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/evyd13/nt650/rules.mk b/keyboards/evyd13/nt650/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/evyd13/nt650/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/evyd13/nt660/config.h b/keyboards/evyd13/nt660/config.h index f633a4206e..716c910911 100644 --- a/keyboards/evyd13/nt660/config.h +++ b/keyboards/evyd13/nt660/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x1F02 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT nt660 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/evyd13/nt660/info.json b/keyboards/evyd13/nt660/info.json index 8f087c68c3..fb7f694e95 100644 --- a/keyboards/evyd13/nt660/info.json +++ b/keyboards/evyd13/nt660/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "nt660", + "manufacturer": "Evyd13", "url": "", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x1F02", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/nt750/config.h b/keyboards/evyd13/nt750/config.h index 076bb344a5..68d7603202 100644 --- a/keyboards/evyd13/nt750/config.h +++ b/keyboards/evyd13/nt750/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x3320 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT nt750 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/evyd13/nt750/info.json b/keyboards/evyd13/nt750/info.json index 5342807d65..414d1f8ba1 100644 --- a/keyboards/evyd13/nt750/info.json +++ b/keyboards/evyd13/nt750/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "nt750", + "manufacturer": "Evyd13", "url": "https://github.com/evyd13/nt-series/tree/main/nt-750", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x3320", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/nt980/config.h b/keyboards/evyd13/nt980/config.h index e483ab46c9..785507d0c8 100644 --- a/keyboards/evyd13/nt980/config.h +++ b/keyboards/evyd13/nt980/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0xAAF8 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT nt980 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/evyd13/nt980/info.json b/keyboards/evyd13/nt980/info.json index 8b1b32449e..c8c1060d42 100644 --- a/keyboards/evyd13/nt980/info.json +++ b/keyboards/evyd13/nt980/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "nt980", + "manufacturer": "Evyd13", "url": "", - "maintainer": "maartenwut", + "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0xAAF8", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/omrontkl/config.h b/keyboards/evyd13/omrontkl/config.h index 40f8384831..40ba73dfe9 100644 --- a/keyboards/evyd13/omrontkl/config.h +++ b/keyboards/evyd13/omrontkl/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0xEA78 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT OmronTKL - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/evyd13/omrontkl/info.json b/keyboards/evyd13/omrontkl/info.json index 3f0dfb9bc3..6e9b2423f6 100644 --- a/keyboards/evyd13/omrontkl/info.json +++ b/keyboards/evyd13/omrontkl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "OmronTKL", + "manufacturer": "Evyd13", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4705", + "pid": "0xEA78", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/plain60/config.h b/keyboards/evyd13/plain60/config.h index 987081a9f1..2cb4ad565c 100644 --- a/keyboards/evyd13/plain60/config.h +++ b/keyboards/evyd13/plain60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x0160 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Plain60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/evyd13/plain60/info.json b/keyboards/evyd13/plain60/info.json index 64eb305464..3b08a935dc 100644 --- a/keyboards/evyd13/plain60/info.json +++ b/keyboards/evyd13/plain60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Plain60", + "manufacturer": "Evyd13", "url": "", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x0160", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/evyd13/pockettype/config.h b/keyboards/evyd13/pockettype/config.h index b62c3549f8..f4755a1b42 100644 --- a/keyboards/evyd13/pockettype/config.h +++ b/keyboards/evyd13/pockettype/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0xFA7D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT PocketType - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/evyd13/pockettype/info.json b/keyboards/evyd13/pockettype/info.json index f81dbec539..f54e382e6a 100644 --- a/keyboards/evyd13/pockettype/info.json +++ b/keyboards/evyd13/pockettype/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "PocketType", + "manufacturer": "Evyd13", "url": "https://mechboards.co.uk/shop/kits/pockettype/", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0xFA7D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] diff --git a/keyboards/evyd13/quackfire/config.h b/keyboards/evyd13/quackfire/config.h index 4df2abd5a8..60d1164551 100644 --- a/keyboards/evyd13/quackfire/config.h +++ b/keyboards/evyd13/quackfire/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x87C9 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Quackfire - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 15 diff --git a/keyboards/evyd13/quackfire/info.json b/keyboards/evyd13/quackfire/info.json index 68a0767c94..88b168aa63 100644 --- a/keyboards/evyd13/quackfire/info.json +++ b/keyboards/evyd13/quackfire/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Quackfire", + "manufacturer": "Evyd13", "url": "https://github.com/evyd13/quackfire-controller", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x87C9", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/evyd13/solheim68/config.h b/keyboards/evyd13/solheim68/config.h index ef449ab7d4..d5d8d4fc24 100644 --- a/keyboards/evyd13/solheim68/config.h +++ b/keyboards/evyd13/solheim68/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x7BFF -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Solheim68 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/evyd13/solheim68/info.json b/keyboards/evyd13/solheim68/info.json index b0776223b6..1cadeeb9fa 100644 --- a/keyboards/evyd13/solheim68/info.json +++ b/keyboards/evyd13/solheim68/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Solheim68", + "manufacturer": "Evyd13", "url": "https://github.com/evyd13/solheim68", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0x7BFF", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/ta65/config.h b/keyboards/evyd13/ta65/config.h index 518c854d9b..4ea54f6a2a 100644 --- a/keyboards/evyd13/ta65/config.h +++ b/keyboards/evyd13/ta65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x7465 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT ta-65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/evyd13/ta65/info.json b/keyboards/evyd13/ta65/info.json index 5d390c9f6e..f24f599df1 100644 --- a/keyboards/evyd13/ta65/info.json +++ b/keyboards/evyd13/ta65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ta65", + "keyboard_name": "ta-65", + "manufacturer": "Evyd13", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4705", + "pid": "0x7465", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/evyd13/wasdat_code/config.h b/keyboards/evyd13/wasdat_code/config.h index a8b5c032ca..84c2614c39 100644 --- a/keyboards/evyd13/wasdat_code/config.h +++ b/keyboards/evyd13/wasdat_code/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0xB00E -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Wasdat Code - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 16 diff --git a/keyboards/evyd13/wasdat_code/info.json b/keyboards/evyd13/wasdat_code/info.json index 1c0f14ed3d..4ebbc5aa15 100644 --- a/keyboards/evyd13/wasdat_code/info.json +++ b/keyboards/evyd13/wasdat_code/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Wasdat Code", + "manufacturer": "Evyd13", "url": "https://maartenwut.com/product/wasdat-code/", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0xB00E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_fullsize_ansi": { "layout": [ diff --git a/keyboards/evyd13/wonderland/config.h b/keyboards/evyd13/wonderland/config.h index c5c7a8b6c6..538c1ef889 100644 --- a/keyboards/evyd13/wonderland/config.h +++ b/keyboards/evyd13/wonderland/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0xA71C -#define DEVICE_VER 0x0003 -#define MANUFACTURER Evyd13 -#define PRODUCT Wonderland - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/evyd13/wonderland/info.json b/keyboards/evyd13/wonderland/info.json index fd91f32dc1..8e94e2fe20 100644 --- a/keyboards/evyd13/wonderland/info.json +++ b/keyboards/evyd13/wonderland/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Wonderland", + "manufacturer": "Evyd13", "url": "", "maintainer": "evyd13", + "usb": { + "vid": "0x4705", + "pid": "0xA71C", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/exclusive/e65/config.h b/keyboards/exclusive/e65/config.h index 1d43011b80..49f4e916d9 100644 --- a/keyboards/exclusive/e65/config.h +++ b/keyboards/exclusive/e65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4558 // "EX" -#define PRODUCT_ID 0xE605 // E6.5 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Exclusive / E-Team -#define PRODUCT E6.5 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/exclusive/e65/info.json b/keyboards/exclusive/e65/info.json index 409f110a09..6b7aa9b069 100644 --- a/keyboards/exclusive/e65/info.json +++ b/keyboards/exclusive/e65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "E6.5", + "manufacturer": "Exclusive / E-Team", "url": "", "maintainer": "masterzen", + "usb": { + "vid": "0x4558", + "pid": "0xE605", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Ins", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Page up", "x":15, "y":1}, {"label":"Ctrl", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Page down", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"↑", "x":14, "y":3}, {"label":"Del", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"x":12, "y":4}, {"label":"←", "x":13, "y":4}, {"label":"↓", "x":14, "y":4}, {"label":"→", "x":15, "y":4}] diff --git a/keyboards/exclusive/e65/keymaps/masterzen/keymap.c b/keyboards/exclusive/e65/keymaps/masterzen/keymap.c index 898a294f7e..156832de4e 100644 --- a/keyboards/exclusive/e65/keymaps/masterzen/keymap.c +++ b/keyboards/exclusive/e65/keymaps/masterzen/keymap.c @@ -102,7 +102,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { edit = false; } - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _ADJUST: temp_config.mode = rgblight_get_mode(); rgblight_mode_noeeprom(1); diff --git a/keyboards/exclusive/e6_rgb/config.h b/keyboards/exclusive/e6_rgb/config.h index fd221f1765..d00a6ac715 100644 --- a/keyboards/exclusive/e6_rgb/config.h +++ b/keyboards/exclusive/e6_rgb/config.h @@ -6,13 +6,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4154 //AT -#define PRODUCT_ID 0x4536 //E6 -#define DEVICE_VER 0x0062 -#define MANUFACTURER astro -#define PRODUCT e6rgb - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/exclusive/e6_rgb/info.json b/keyboards/exclusive/e6_rgb/info.json index c08cd12ae6..46c90a7163 100644 --- a/keyboards/exclusive/e6_rgb/info.json +++ b/keyboards/exclusive/e6_rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "e6_rgb", + "keyboard_name": "E6 RGB", + "manufacturer": "astro", "url": "", "maintainer": "yulei", + "usb": { + "vid": "0x4154", + "pid": "0x4536", + "device_version": "0.6.2" + }, "layout_aliases": { "LAYOUT_60_wkl_split_bs": "LAYOUT_60_tsangan_hhkb" }, diff --git a/keyboards/exclusive/e6v2/le/config.h b/keyboards/exclusive/e6v2/le/config.h index f9295145ec..0999d13bf1 100644 --- a/keyboards/exclusive/e6v2/le/config.h +++ b/keyboards/exclusive/e6v2/le/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Exclusive / E-Team -#define PRODUCT E6-V2 LE - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/exclusive/e6v2/le/info.json b/keyboards/exclusive/e6v2/le/info.json index 095fe66a02..bec33b8216 100644 --- a/keyboards/exclusive/e6v2/le/info.json +++ b/keyboards/exclusive/e6v2/le/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "E6-V2 LE", + "manufacturer": "Exclusive / E-Team", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.75}, {"label":"Ctrl", "x":1.75, "y":4, "w":1.25}, {"label":"Win", "x":3, "y":4, "w":1.25}, {"label":"Alt", "x":4.25, "y":4, "w":1.25}, {"x":5.5, "y":4, "w":2.75}, {"x":8.25, "y":4, "w":1.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] diff --git a/keyboards/exclusive/e6v2/le_bmc/config.h b/keyboards/exclusive/e6v2/le_bmc/config.h index 8115f4ae12..9e7b65d565 100644 --- a/keyboards/exclusive/e6v2/le_bmc/config.h +++ b/keyboards/exclusive/e6v2/le_bmc/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4558 -#define PRODUCT_ID 0xE62D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Exclusive / E-Team -#define PRODUCT E6-V2 LE BMC - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 11 diff --git a/keyboards/exclusive/e6v2/le_bmc/info.json b/keyboards/exclusive/e6v2/le_bmc/info.json index e6a8a0ccbf..2d493afad3 100644 --- a/keyboards/exclusive/e6v2/le_bmc/info.json +++ b/keyboards/exclusive/e6v2/le_bmc/info.json @@ -1,5 +1,12 @@ { + "keyboard_name": "E6-V2 LE BMC", + "manufacturer": "Exclusive / E-Team", "maintainer": "qmk", + "usb": { + "vid": "0x4558", + "pid": "0xE62D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10.0, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/exclusive/e6v2/oe/config.h b/keyboards/exclusive/e6v2/oe/config.h index d9362cfc03..213fb34947 100644 --- a/keyboards/exclusive/e6v2/oe/config.h +++ b/keyboards/exclusive/e6v2/oe/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Exclusive / E-Team -#define PRODUCT E6-V2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/exclusive/e6v2/oe/info.json b/keyboards/exclusive/e6v2/oe/info.json index 16cf613d30..46281fbbd2 100644 --- a/keyboards/exclusive/e6v2/oe/info.json +++ b/keyboards/exclusive/e6v2/oe/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "E6-V2 OE", + "manufacturer": "Exclusive / E-Team", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/exclusive/e6v2/oe_bmc/config.h b/keyboards/exclusive/e6v2/oe_bmc/config.h index 3f2a50cdef..9e7b65d565 100644 --- a/keyboards/exclusive/e6v2/oe_bmc/config.h +++ b/keyboards/exclusive/e6v2/oe_bmc/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4558 -#define PRODUCT_ID 0xE62B -#define DEVICE_VER 0x0001 -#define MANUFACTURER Exclusive / E-Team -#define PRODUCT E6-V2 OE BMC - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 11 diff --git a/keyboards/exclusive/e6v2/oe_bmc/info.json b/keyboards/exclusive/e6v2/oe_bmc/info.json index e6a8a0ccbf..6dadde916a 100644 --- a/keyboards/exclusive/e6v2/oe_bmc/info.json +++ b/keyboards/exclusive/e6v2/oe_bmc/info.json @@ -1,5 +1,12 @@ { + "keyboard_name": "E6-V2 OE BMC", + "manufacturer": "Exclusive / E-Team", "maintainer": "qmk", + "usb": { + "vid": "0x4558", + "pid": "0xE62B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10.0, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/exclusive/e7v1/config.h b/keyboards/exclusive/e7v1/config.h index 5809144ba3..217885e44f 100644 --- a/keyboards/exclusive/e7v1/config.h +++ b/keyboards/exclusive/e7v1/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4558 // EX -#define PRODUCT_ID 0xE701 // E7-V1 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Exclusive / E-Team -#define PRODUCT E7-V1 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/exclusive/e7v1/info.json b/keyboards/exclusive/e7v1/info.json index 0d341e7af4..2d1f6a19d0 100644 --- a/keyboards/exclusive/e7v1/info.json +++ b/keyboards/exclusive/e7v1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "E7-V1", + "manufacturer": "Exclusive / E-Team", "url": "", "maintainer": "masterzen", + "usb": { + "vid": "0x4558", + "pid": "0xE701", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Home", "x":14, "y":0}, {"label":"End", "x":15.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"label":"Backspace", "x":14, "y":1.5}, {"label":"Page Up", "x":15.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, {"label":"Page down", "x":15.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"Z", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5}, {"label":"Win", "x":11, "y":5.5}, {"x":12, "y":5.5}, {"label":"\u2190", "x":13.25, "y":5.75}, {"label":"\u2193", "x":14.25, "y":5.75}, {"label":"\u2192", "x":15.25, "y":5.75}] diff --git a/keyboards/exclusive/e7v1/keymaps/masterzen/keymap.c b/keyboards/exclusive/e7v1/keymaps/masterzen/keymap.c index 2793cffe93..6987e84021 100644 --- a/keyboards/exclusive/e7v1/keymaps/masterzen/keymap.c +++ b/keyboards/exclusive/e7v1/keymaps/masterzen/keymap.c @@ -121,7 +121,7 @@ layer_state_t layer_state_set_user(layer_state_t state) edit = false; } - switch (get_highest_layer(state)) + switch (biton32(state)) { case _ADJUST: mode = rgblight_get_mode(); diff --git a/keyboards/exclusive/e7v1se/config.h b/keyboards/exclusive/e7v1se/config.h index cce08878eb..2eee4ef01f 100644 --- a/keyboards/exclusive/e7v1se/config.h +++ b/keyboards/exclusive/e7v1se/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x7051 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Exclusive / E-Team -#define PRODUCT E7-V1 SE - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/exclusive/e7v1se/info.json b/keyboards/exclusive/e7v1se/info.json index f72eaebb68..43a8cba0fe 100644 --- a/keyboards/exclusive/e7v1se/info.json +++ b/keyboards/exclusive/e7v1se/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "e7v1se", + "keyboard_name": "E7-V1 SE", + "manufacturer": "Exclusive / E-Team", "url": "https://geekhack.org/index.php?topic=101363", "maintainer": "Bart Riemens", + "usb": { + "vid": "0xFEED", + "pid": "0x7051", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/exent/config.h b/keyboards/exent/config.h index e9dc026867..6f51688db7 100644 --- a/keyboards/exent/config.h +++ b/keyboards/exent/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5143 // "QC" -#define PRODUCT_ID 0x4558 // "EX" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Quadcube -#define PRODUCT Exent - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 14 diff --git a/keyboards/exent/info.json b/keyboards/exent/info.json index c783086ff8..d69c6163ae 100644 --- a/keyboards/exent/info.json +++ b/keyboards/exent/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Exent", + "manufacturer": "Quadcube", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5143", + "pid": "0x4558", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/eyeohdesigns/babyv/config.h b/keyboards/eyeohdesigns/babyv/config.h index f90d68e2e5..75b5e19384 100644 --- a/keyboards/eyeohdesigns/babyv/config.h +++ b/keyboards/eyeohdesigns/babyv/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Eye Oh Designs -#define PRODUCT babyv - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/eyeohdesigns/babyv/info.json b/keyboards/eyeohdesigns/babyv/info.json index 79ae8b23f5..65453ffaf6 100644 --- a/keyboards/eyeohdesigns/babyv/info.json +++ b/keyboards/eyeohdesigns/babyv/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "babyv", + "manufacturer": "Eye Oh Designs", "url": "", "maintainer": "eye oh designs", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_2u": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"Return", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"/", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"label":"Ctl", "x":0, "y":3}, {"label":"Alt", "x":3, "y":3}, {"x":4, "y":3, "w":2}, {"x":7, "y":3, "w":2}, {"label":"Fn", "x":9, "y":3}, {"label":"OS", "x":12, "y":3}] diff --git a/keyboards/eyeohdesigns/sprh/config.h b/keyboards/eyeohdesigns/sprh/config.h index 45a3158536..319fd17ad6 100644 --- a/keyboards/eyeohdesigns/sprh/config.h +++ b/keyboards/eyeohdesigns/sprh/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Eye Oh Designs -#define PRODUCT sprh - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/eyeohdesigns/sprh/info.json b/keyboards/eyeohdesigns/sprh/info.json index 7e79dd821e..ed26433daf 100644 --- a/keyboards/eyeohdesigns/sprh/info.json +++ b/keyboards/eyeohdesigns/sprh/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "sprh", + "manufacturer": "Eye Oh Designs", "url": "https://github.com/joedinkle/eyeohdesigns/tree/main/keyboards/sprh", "maintainer": "joedinkle", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ac5": { "layout": [ diff --git a/keyboards/eyeohdesigns/theboulevard/config.h b/keyboards/eyeohdesigns/theboulevard/config.h index db734bbb6c..ad3d630f4f 100644 --- a/keyboards/eyeohdesigns/theboulevard/config.h +++ b/keyboards/eyeohdesigns/theboulevard/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER eye oh designs -#define PRODUCT theboulevard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/eyeohdesigns/theboulevard/info.json b/keyboards/eyeohdesigns/theboulevard/info.json index ca2b888648..439cf7ed1d 100644 --- a/keyboards/eyeohdesigns/theboulevard/info.json +++ b/keyboards/eyeohdesigns/theboulevard/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "the boulevard", + "manufacturer": "eye oh designs", "url": "", "maintainer": "eye oh designs", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho1": { "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5}, {"label":"A", "x":2.5, "y":2.5}, {"label":"S", "x":3.5, "y":2.5}, {"label":"D", "x":4.5, "y":2.5}, {"label":"F", "x":5.5, "y":2.5}, {"label":"G", "x":6.5, "y":2.5}, {"label":"H", "x":7.5, "y":2.5}, {"label":"J", "x":8.5, "y":2.5}, {"label":"K", "x":9.5, "y":2.5}, {"label":"L", "x":10.5, "y":2.5}, {"label":";", "x":11.5, "y":2.5}, {"label":"ENTER", "x":12.5, "y":2.5}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5}, {"label":"Z", "x":2.5, "y":3.5}, {"label":"X", "x":3.5, "y":3.5}, {"label":"C", "x":4.5, "y":3.5}, {"label":"V", "x":5.5, "y":3.5}, {"label":"B", "x":6.5, "y":3.5}, {"label":"N", "x":7.5, "y":3.5}, {"label":"M", "x":8.5, "y":3.5}, {"label":",", "x":9.5, "y":3.5}, {"label":".", "x":10.5, "y":3.5}, {"label":"/", "x":11.5, "y":3.5}, {"label":"SHIFT", "x":12.5, "y":3.5}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5}, {"x":2.5, "y":4.5}, {"x":3.5, "y":4.5}, {"x":4.5, "y":4.5}, {"x":5.5, "y":4.5}, {"x":6.5, "y":4.5, "w":2}, {"x":8.5, "y":4.5}, {"x":9.5, "y":4.5}, {"x":10.5, "y":4.5}, {"x":11.5, "y":4.5}, {"x":12.5, "y":4.5}] diff --git a/keyboards/facew/config.h b/keyboards/facew/config.h index 14583dc831..3a38df9130 100644 --- a/keyboards/facew/config.h +++ b/keyboards/facew/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0200 -#define MANUFACTURER SPRiT -#define PRODUCT FaceW - #define RGBLED_NUM 16 #define MATRIX_ROWS 8 diff --git a/keyboards/facew/info.json b/keyboards/facew/info.json index b8b817970d..fc9b024c2f 100644 --- a/keyboards/facew/info.json +++ b/keyboards/facew/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "FaceW", + "manufacturer": "SPRiT", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x20A0", + "pid": "0x422D", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h index c99653f2c5..3bd00eebae 100755 --- a/keyboards/fallacy/config.h +++ b/keyboards/fallacy/config.h @@ -17,14 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter - */ -#define VENDOR_ID 0xBF00 -#define PRODUCT_ID 0xBFFA -#define DEVICE_VER 0x0001 -#define MANUFACTURER SheuBox -#define PRODUCT Fallacy - /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/fallacy/info.json b/keyboards/fallacy/info.json index c1ec9328c0..c0a9293267 100644 --- a/keyboards/fallacy/info.json +++ b/keyboards/fallacy/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Fallacy", + "manufacturer": "SheuBox", "maintainer": "Toraifu", + "usb": { + "vid": "0xBF00", + "pid": "0xBFFA", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/fc660c/config.h b/keyboards/fc660c/config.h index 7df5811f42..82cbfe4c29 100644 --- a/keyboards/fc660c/config.h +++ b/keyboards/fc660c/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4853 /* HS */ -#define PRODUCT_ID 0x660C -#define DEVICE_VER 0x0100 -#define MANUFACTURER Hasu -#define PRODUCT FC660C - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/fc660c/info.json b/keyboards/fc660c/info.json index 2259156d0f..a7f95eea1b 100644 --- a/keyboards/fc660c/info.json +++ b/keyboards/fc660c/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "fc660c", + "keyboard_name": "FC660C", + "manufacturer": "Hasu", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4853", + "pid": "0x660C", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Win", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] diff --git a/keyboards/fc980c/config.h b/keyboards/fc980c/config.h index 250e7336a9..99089e9e0a 100644 --- a/keyboards/fc980c/config.h +++ b/keyboards/fc980c/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4853 -#define PRODUCT_ID 0x980C -#define DEVICE_VER 0x0100 -#define MANUFACTURER Hasu -#define PRODUCT FC980C - /* Maximum dynamic keymap layers (constrained by EEPROM space) */ #define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/fc980c/info.json b/keyboards/fc980c/info.json index 681b2c1503..043df7a944 100644 --- a/keyboards/fc980c/info.json +++ b/keyboards/fc980c/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "fc980c", + "keyboard_name": "FC980C", + "manufacturer": "Hasu", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4853", + "pid": "0x980C", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/feels/feels65/config.h b/keyboards/feels/feels65/config.h index f311a44834..13ce5c6afd 100644 --- a/keyboards/feels/feels65/config.h +++ b/keyboards/feels/feels65/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE965 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Feels65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/feels/feels65/info.json b/keyboards/feels/feels65/info.json index 2d00880d81..b295bf9042 100644 --- a/keyboards/feels/feels65/info.json +++ b/keyboards/feels/feels65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Feels65", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "Swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE965", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ferris/keymaps/bruun-baer/config.h b/keyboards/ferris/keymaps/bruun-baer/config.h new file mode 100644 index 0000000000..4f63ee544f --- /dev/null +++ b/keyboards/ferris/keymaps/bruun-baer/config.h @@ -0,0 +1,39 @@ +/* +Copyright 2022 Alexander Bruun + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once +// Set 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 + +// Pick good defaults for enabling homerow modifiers +#define TAPPING_TERM 200 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD diff --git a/keyboards/ferris/keymaps/bruun-baer/keymap.json b/keyboards/ferris/keymaps/bruun-baer/keymap.json new file mode 100644 index 0000000000..ee966ab1b5 --- /dev/null +++ b/keyboards/ferris/keymaps/bruun-baer/keymap.json @@ -0,0 +1,71 @@ +{ + "version": 1, + "notes": "Personal 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": "ferris/sweep", + "keymap": "bruun-baer", + "layout": "LAYOUT_split_3x5_2", + "layers": [ + ["KC_Q" , "KC_D" , "KC_R" , "KC_W" , "KC_B", + "KC_J" , "KC_F" , "KC_U" , "KC_P" , "KC_QUOT", + + "LGUI_T(KC_A)", "LALT_T(KC_S)", "LSFT_T(KC_H)", "LCTL_T(KC_T)" , "KC_G", + "KC_Y" , "LCTL_T(KC_N)", "LSFT_T(KC_E)", "LALT_T(KC_O)" , "LGUI_T(KC_I)", + + "KC_Z" , "RALT_T(KC_X)", "KC_M" , "KC_C" , "KC_V", + "KC_K" , "KC_L" , "KC_COMM" , "RALT_T(KC_DOT)", "KC_SLSH", + + "LT(3,KC_SPC)", "LT(4,KC_TAB)", + "LT(2,KC_ENT)", "LT(1,KC_BSPC)" + ], + ["KC_LBRC" , "KC_7" , "KC_8" , "KC_9" , "KC_RBRC", + "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO", + + "KC_SCLN" , "KC_4" , "KC_5" , "KC_6" , "KC_EQL", + "KC_NO" , "KC_LCTL" , "KC_LSFT" , "KC_LALT" , "KC_LGUI", + + "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_BSLS", + "KC_NO" , "KC_NO" , "KC_NO" , "KC_RALT" , "KC_NO", + + "KC_0" , "KC_MINS", + "KC_NO" , "KC_NO" + ], + ["KC_LCBR" , "KC_AMPR" , "KC_ASTR" , "KC_LPRN" , "KC_RCBR", + "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO", + + "KC_COLN" , "KC_DLR" , "KC_PERC" , "KC_CIRC" , "KC_PLUS", + "KC_NO" , "KC_LCTL" , "KC_LSFT" , "KC_LALT" , "KC_LGUI", + + "KC_TILD" , "KC_EXLM" , "KC_AT" , "KC_HASH" , "KC_PIPE", + "KC_NO" , "KC_NO" , "KC_NO" , "KC_RALT" , "KC_NO", + + "KC_RPRN" , "KC_UNDS", + "KC_NO" , "KC_NO" + ], + ["KC_F12" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_PSCR", + "KC_AGIN" , "KC_PSTE" , "KC_COPY" , "KC_CUT" , "KC_UNDO", + + "KC_F11" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_SCRL", + "KC_CAPS" , "KC_LEFT" , "KC_DOWN" , "KC_UP" , "KC_RGHT", + + "KC_F10" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_PAUS", + "KC_INS" , "KC_HOME" , "KC_PGDN" , "KC_PGUP" , "KC_END", + + "KC_NO" , "KC_NO", + "KC_ESC" , "KC_DEL" + ], + ["KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO", + "KC_MPLY" , "KC_MPRV" , "KC_VOLD" , "KC_VOLU" , "KC_MNXT", + + "KC_LGUI" , "KC_LALT" , "KC_LSFT" , "KC_LCTL" , "KC_NO", + "KC_MUTE" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R", + + "KC_NO" , "KC_RALT" , "KC_NO" , "KC_NO" , "KC_NO", + "KC_BTN3" , "KC_WH_L" , "KC_WH_D" , "KC_WH_U" , "KC_WH_R", + + "KC_NO" , "KC_NO", + "KC_BTN1" , "KC_BTN2" + ] + ], + "author": "@bruun-baer" +} diff --git a/keyboards/ferris/keymaps/bruun-baer/readme.md b/keyboards/ferris/keymaps/bruun-baer/readme.md new file mode 100644 index 0000000000..7d1d78b5f1 --- /dev/null +++ b/keyboards/ferris/keymaps/bruun-baer/readme.md @@ -0,0 +1,2 @@ +Personal Ferris Sweep Keymap +=============================================== diff --git a/keyboards/ferris/keymaps/manna-harbour_miryoku/config.h b/keyboards/ferris/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..dbbff11bb6 --- /dev/null +++ b/keyboards/ferris/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,19 @@ +// Copyright 2021 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define LAYOUT_miryoku( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K33, K34, K35, K36 \ +) diff --git a/keyboards/ferris/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/ferris/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/ferris/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/ferris/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/ferris/keymaps/manna-harbour_miryoku/rules.mk new file mode 100644 index 0000000000..ef40279cbc --- /dev/null +++ b/keyboards/ferris/keymaps/manna-harbour_miryoku/rules.mk @@ -0,0 +1,4 @@ +# Copyright 2021 Manna Harbour +# https://github.com/manna-harbour/miryoku + +MIRYOKU_KLUDGE_THUMBCOMBOS=yes diff --git a/keyboards/ffkeebs/puca/config.h b/keyboards/ffkeebs/puca/config.h index e8e57c72e8..779c0fc477 100644 --- a/keyboards/ffkeebs/puca/config.h +++ b/keyboards/ffkeebs/puca/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4646 // FF -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER FootFingers -#define PRODUCT Puca - #define MATRIX_ROWS 6 #define MATRIX_COLS 5 // 0 , 1 , 2 , 3 , 4 , 5 diff --git a/keyboards/ffkeebs/puca/info.json b/keyboards/ffkeebs/puca/info.json index 204f0ca497..14f71ffee7 100644 --- a/keyboards/ffkeebs/puca/info.json +++ b/keyboards/ffkeebs/puca/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Puca", + "manufacturer": "FootFingers", "url": "https://ffkeebs.com/collections/puca/", "maintainer": "Sleepdealr", + "usb": { + "vid": "0x4646", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/ffkeebs/siris/config.h b/keyboards/ffkeebs/siris/config.h index 6b7733b361..f57d79b30d 100644 --- a/keyboards/ffkeebs/siris/config.h +++ b/keyboards/ffkeebs/siris/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE96C -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Siris - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/ffkeebs/siris/info.json b/keyboards/ffkeebs/siris/info.json index fe5161779f..fc4d7f7f22 100644 --- a/keyboards/ffkeebs/siris/info.json +++ b/keyboards/ffkeebs/siris/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Siris", + "manufacturer": "Swiftrax", "url": "https: //github.com/swiftrax", "maintainer": "Swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE96C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/fjlabs/7vhotswap/config.h b/keyboards/fjlabs/7vhotswap/config.h index 66ee195a58..bc03d3d79e 100644 --- a/keyboards/fjlabs/7vhotswap/config.h +++ b/keyboards/fjlabs/7vhotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLaboratories -#define PRODUCT_ID 0x0014 // 7V Hotswap -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLaboratories -#define PRODUCT 7V Hotswap - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/fjlabs/7vhotswap/info.json b/keyboards/fjlabs/7vhotswap/info.json index 07404031e3..b577a68bd2 100644 --- a/keyboards/fjlabs/7vhotswap/info.json +++ b/keyboards/fjlabs/7vhotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "7V Hotswap PCBs", + "keyboard_name": "7V Hotswap", + "manufacturer": "FJLaboratories", "url": "http://www.fjlaboratories.com/", "maintainer": "mrnoisytiger", + "usb": { + "vid": "0x7074", + "pid": "0x0014", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_75_all": { "layout": [ diff --git a/keyboards/fjlabs/ad65/config.h b/keyboards/fjlabs/ad65/config.h index 3bbf7a01d1..cbab1ed111 100644 --- a/keyboards/fjlabs/ad65/config.h +++ b/keyboards/fjlabs/ad65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLaboratories -#define PRODUCT_ID 0x0010 // AD65 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Absolute Designs -#define PRODUCT AD65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/fjlabs/ad65/info.json b/keyboards/fjlabs/ad65/info.json index 36ed900b6c..81a65cc262 100644 --- a/keyboards/fjlabs/ad65/info.json +++ b/keyboards/fjlabs/ad65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Absolute Designs 65", + "keyboard_name": "AD65", + "manufacturer": "Absolute Designs", "url": "https://arnoldh93.wixsite.com/website", "maintainer": "FJLaboratories", + "usb": { + "vid": "0x7074", + "pid": "0x0010", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/fjlabs/bks65/config.h b/keyboards/fjlabs/bks65/config.h index b1deccd4e1..7f0fb50e3e 100644 --- a/keyboards/fjlabs/bks65/config.h +++ b/keyboards/fjlabs/bks65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x1001 // BKS65 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT BKS65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/fjlabs/bks65/info.json b/keyboards/fjlabs/bks65/info.json index 8ffc39896f..ba1bd5d961 100644 --- a/keyboards/fjlabs/bks65/info.json +++ b/keyboards/fjlabs/bks65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BKS65", + "manufacturer": "FJLabs", "url": "https://www.bolsakeyboardsupply.com", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x1001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/fjlabs/bks65solder/config.h b/keyboards/fjlabs/bks65solder/config.h index 5dff84a0c1..8d65b22434 100644 --- a/keyboards/fjlabs/bks65solder/config.h +++ b/keyboards/fjlabs/bks65solder/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x0099 // BKS65 Solder -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT BKS65 Solder - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/fjlabs/bks65solder/info.json b/keyboards/fjlabs/bks65solder/info.json index 327c50da20..7528d94dae 100644 --- a/keyboards/fjlabs/bks65solder/info.json +++ b/keyboards/fjlabs/bks65solder/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BKS65 Solder", + "manufacturer": "FJLabs", "url": "https://www.bolsakeyboardsupply.com", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x0099", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/fjlabs/bolsa65/config.h b/keyboards/fjlabs/bolsa65/config.h index bf389ee445..e3280216be 100644 --- a/keyboards/fjlabs/bolsa65/config.h +++ b/keyboards/fjlabs/bolsa65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x0001 // Bolsa65 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT bolsa65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/fjlabs/bolsa65/info.json b/keyboards/fjlabs/bolsa65/info.json index a1baffc056..b9ce0d3507 100644 --- a/keyboards/fjlabs/bolsa65/info.json +++ b/keyboards/fjlabs/bolsa65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bolsa65", + "manufacturer": "FJLabs", "url": "https://www.bolsakeyboardsupply.com", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/fjlabs/kf87/config.h b/keyboards/fjlabs/kf87/config.h index b133e375bb..9f4a3b239b 100644 --- a/keyboards/fjlabs/kf87/config.h +++ b/keyboards/fjlabs/kf87/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLaboratories -#define PRODUCT_ID 0x0006 // KF87 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLaboratories -#define PRODUCT KF87 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/fjlabs/kf87/info.json b/keyboards/fjlabs/kf87/info.json index 41542d166b..736bc2b991 100644 --- a/keyboards/fjlabs/kf87/info.json +++ b/keyboards/fjlabs/kf87/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KF87 Replacement PCB's", + "keyboard_name": "KF87", + "manufacturer": "FJLaboratories", "url": "http://www.fjlaboratories.com/", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x0006", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_all": { "layout": [ diff --git a/keyboards/fjlabs/kyuu/config.h b/keyboards/fjlabs/kyuu/config.h index 75f9643a79..59ce1c61fa 100644 --- a/keyboards/fjlabs/kyuu/config.h +++ b/keyboards/fjlabs/kyuu/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x1012 // Kyuu Hotswap -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT Kyuu Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/fjlabs/kyuu/info.json b/keyboards/fjlabs/kyuu/info.json index 2bb1ebe843..c158157418 100644 --- a/keyboards/fjlabs/kyuu/info.json +++ b/keyboards/fjlabs/kyuu/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BKS65", + "keyboard_name": "Kyuu Hotswap", + "manufacturer": "FJLabs", "url": "https://www.bolsakeyboardsupply.com", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x1012", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker_badge": { "layout": [ diff --git a/keyboards/fjlabs/ldk65/config.h b/keyboards/fjlabs/ldk65/config.h index 15626c0700..b37f371812 100644 --- a/keyboards/fjlabs/ldk65/config.h +++ b/keyboards/fjlabs/ldk65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x0002 // LDK65 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT LDK65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/fjlabs/ldk65/info.json b/keyboards/fjlabs/ldk65/info.json index ae5a0a5924..562b7c5b6b 100644 --- a/keyboards/fjlabs/ldk65/info.json +++ b/keyboards/fjlabs/ldk65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "LDK65", + "manufacturer": "FJLabs", "url": "https://www.bolsakeyboardsupply.com", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/fjlabs/midway60/config.h b/keyboards/fjlabs/midway60/config.h index f70a932a51..9dde640bee 100644 --- a/keyboards/fjlabs/midway60/config.h +++ b/keyboards/fjlabs/midway60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x1002 // Midway60 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT Midway60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/fjlabs/midway60/info.json b/keyboards/fjlabs/midway60/info.json index 251c57dc8e..885b74cc5b 100644 --- a/keyboards/fjlabs/midway60/info.json +++ b/keyboards/fjlabs/midway60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Midway60", + "manufacturer": "FJLabs", "url": "https://www.bolsakeyboardsupply.com", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x1002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/fjlabs/mk61rgbansi/config.h b/keyboards/fjlabs/mk61rgbansi/config.h index fdc8571344..54a787103f 100644 --- a/keyboards/fjlabs/mk61rgbansi/config.h +++ b/keyboards/fjlabs/mk61rgbansi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x1011 // mk61-rgb-ansi -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Mechanical Keyboards LLC -#define PRODUCT MK61-RGB-ANSI - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/fjlabs/mk61rgbansi/info.json b/keyboards/fjlabs/mk61rgbansi/info.json index 84cc8a46ae..67a8ae8860 100644 --- a/keyboards/fjlabs/mk61rgbansi/info.json +++ b/keyboards/fjlabs/mk61rgbansi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MK61-RGB-ANSI", + "manufacturer": "Mechanical Keyboards LLC", "url": "https://www.fjlaboratories.com/", "maintainer": "Mechanical Keyboards, LLC", + "usb": { + "vid": "0x7074", + "pid": "0x1011", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/fjlabs/polaris/config.h b/keyboards/fjlabs/polaris/config.h index 6efae34205..87d8423b9f 100644 --- a/keyboards/fjlabs/polaris/config.h +++ b/keyboards/fjlabs/polaris/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLaboratories -#define PRODUCT_ID 0x9001 // Polaris HS and Solder -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLaboratories -#define PRODUCT Polaris - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/fjlabs/polaris/info.json b/keyboards/fjlabs/polaris/info.json index f2b1213e85..011776dc40 100644 --- a/keyboards/fjlabs/polaris/info.json +++ b/keyboards/fjlabs/polaris/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Polaris Hotswap and Solder", + "keyboard_name": "Polaris", + "manufacturer": "FJLaboratories", "url": "http://www.fjlaboratories.com/projects/", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x9001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/fjlabs/ready100/config.h b/keyboards/fjlabs/ready100/config.h index 31adbd7f4b..8edf1c5d08 100644 --- a/keyboards/fjlabs/ready100/config.h +++ b/keyboards/fjlabs/ready100/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x1003 // Ready100 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT Ready100 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/fjlabs/ready100/info.json b/keyboards/fjlabs/ready100/info.json index 2bc20ad2ff..4f1762470d 100644 --- a/keyboards/fjlabs/ready100/info.json +++ b/keyboards/fjlabs/ready100/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ready100", + "manufacturer": "FJLabs", "url": "https://www.ready100.com", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x1003", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_64key": "LAYOUT_64_ansi" }, diff --git a/keyboards/fjlabs/sinanju/config.h b/keyboards/fjlabs/sinanju/config.h new file mode 100644 index 0000000000..01d81a2f3d --- /dev/null +++ b/keyboards/fjlabs/sinanju/config.h @@ -0,0 +1,96 @@ +/* +Copyright 2022 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F4, F1, F7, F6, F5 } +#define MATRIX_COL_PINS { F0, B1, B2, B3, B7, D0, D1, D2, D3, D5, D7, B4, B5, B6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Define Indicator LED's */ +#define LED_CAPS_LOCK_PIN C7 + +/* Define less important options */ + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/fjlabs/sinanju/info.json b/keyboards/fjlabs/sinanju/info.json new file mode 100644 index 0000000000..c458b9fd79 --- /dev/null +++ b/keyboards/fjlabs/sinanju/info.json @@ -0,0 +1,147 @@ +{ + "keyboard_name": "Sinanju", + "manufacturer": "FJLabs", + "url": "https://www.fjlaboratories.com", + "maintainer": "mrnoisytiger", + "usb": { + "vid": "0x7074", + "pid": "0x1022", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_60_ansi_wkl": { + "layout": [ + {"label":"`~", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"label":"`~", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Delete", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/fjlabs/sinanju/keymaps/default/keymap.c b/keyboards/fjlabs/sinanju/keymaps/default/keymap.c new file mode 100644 index 0000000000..996b5d48d5 --- /dev/null +++ b/keyboards/fjlabs/sinanju/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_60_ansi_wkl_split_bs_rshift( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL + ), + + [_LAYER1] = LAYOUT_60_ansi_wkl_split_bs_rshift( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, 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, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/fjlabs/sinanju/keymaps/default_ansi_wkl/keymap.c b/keyboards/fjlabs/sinanju/keymaps/default_ansi_wkl/keymap.c new file mode 100644 index 0000000000..192bda366f --- /dev/null +++ b/keyboards/fjlabs/sinanju/keymaps/default_ansi_wkl/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_60_ansi_wkl( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL + ), + + [_LAYER1] = LAYOUT_60_ansi_wkl( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, 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, NK_TOGG, 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/sinanju/keymaps/via/keymap.c b/keyboards/fjlabs/sinanju/keymaps/via/keymap.c new file mode 100644 index 0000000000..2fcaab747e --- /dev/null +++ b/keyboards/fjlabs/sinanju/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_60_ansi_wkl_split_bs_rshift( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL + ), + + [_LAYER1] = LAYOUT_60_ansi_wkl_split_bs_rshift( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, 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, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER2] = LAYOUT_60_ansi_wkl_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, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER3] = LAYOUT_60_ansi_wkl_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, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; diff --git a/keyboards/fjlabs/sinanju/keymaps/via/rules.mk b/keyboards/fjlabs/sinanju/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/fjlabs/sinanju/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/fjlabs/sinanju/readme.md b/keyboards/fjlabs/sinanju/readme.md new file mode 100644 index 0000000000..9d3a0f4330 --- /dev/null +++ b/keyboards/fjlabs/sinanju/readme.md @@ -0,0 +1,15 @@ +# Sinanju + +The following is the QMK Firmware for the Windz Sinanju PCB. + + +* Keyboard Maintainer: FJLabs +* Hardware Supported: Sinanju + +Make example for this keyboard (after setting up your build environment): + + make fjlabs/sinanju: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 can be entered by pressing the reset button near the main microcontroller while the board is plugged in. Alternatively, it may be entered by holding the top-left-most switch and plugging in the PCB while held. \ No newline at end of file diff --git a/keyboards/fjlabs/sinanju/rules.mk b/keyboards/fjlabs/sinanju/rules.mk new file mode 100644 index 0000000000..67f00abb1e --- /dev/null +++ b/keyboards/fjlabs/sinanju/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/fjlabs/sinanju/sinanju.c b/keyboards/fjlabs/sinanju/sinanju.c new file mode 100644 index 0000000000..2c84310ea5 --- /dev/null +++ b/keyboards/fjlabs/sinanju/sinanju.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "sinanju.h" diff --git a/keyboards/fjlabs/sinanju/sinanju.h b/keyboards/fjlabs/sinanju/sinanju.h new file mode 100644 index 0000000000..0e4c85ea0a --- /dev/null +++ b/keyboards/fjlabs/sinanju/sinanju.h @@ -0,0 +1,59 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └───────┘ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌──────────┐ + * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3C │ 2.75u RShift + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬────┴┬───┬─┴───┤ └──────────┘ + * │40 │ │42 │47 │4B │ │4D │ WKL + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ + */ + +#define LAYOUT_60_ansi_wkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K47, K4B, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \ + { K40, KC_NO, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, KC_NO, K4D } \ +} + +#define LAYOUT_60_ansi_wkl_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K42, K47, K4B, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, KC_NO, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, KC_NO, K4D } \ +} diff --git a/keyboards/fjlabs/solanis/config.h b/keyboards/fjlabs/solanis/config.h index 50649889fc..40b9ad8525 100644 --- a/keyboards/fjlabs/solanis/config.h +++ b/keyboards/fjlabs/solanis/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLaboratories -#define PRODUCT_ID 0x0017 // Solanis -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLaboratories -#define PRODUCT Solanis - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/fjlabs/solanis/info.json b/keyboards/fjlabs/solanis/info.json index d05857e0a8..6fb66c6574 100644 --- a/keyboards/fjlabs/solanis/info.json +++ b/keyboards/fjlabs/solanis/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Solanis", + "manufacturer": "FJLaboratories", "url": "http://www.fjlaboratories.com/", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x0017", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/fjlabs/solanis/keymaps/default/keymap.c b/keyboards/fjlabs/solanis/keymaps/default/keymap.c index 62c7d01b67..418aa87150 100644 --- a/keyboards/fjlabs/solanis/keymaps/default/keymap.c +++ b/keyboards/fjlabs/solanis/keymaps/default/keymap.c @@ -22,20 +22,20 @@ enum layers { 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_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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_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 + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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_all( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/solanis/keymaps/via/keymap.c b/keyboards/fjlabs/solanis/keymaps/via/keymap.c index 6bff23728f..4e17594aab 100644 --- a/keyboards/fjlabs/solanis/keymaps/via/keymap.c +++ b/keyboards/fjlabs/solanis/keymaps/via/keymap.c @@ -24,38 +24,38 @@ enum layers { 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_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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_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 + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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_all( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, 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/fjlabs/solanis/solanis.h b/keyboards/fjlabs/solanis/solanis.h index 507f087001..697a91ef68 100644 --- a/keyboards/fjlabs/solanis/solanis.h +++ b/keyboards/fjlabs/solanis/solanis.h @@ -16,14 +16,43 @@ along with this program. If not, see . #include "quantum.h" +/* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ + * │00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0A │0B │0C ││0D │ F13 Row + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │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 │3E │ │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 │54 │55 │58 │59 │5A │5B │5D │ │5E │5F │5G │ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘ └───┴───┴───┘ + * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ + * │50 │51 │52 │55 │59 │5A │5B │5D │ Standard Bottom Row + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │50 │51 │52 │55 │5A │5B │5D │ Tsangan/WKL + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + * ┌─────┬───┬─────┬───────────┬───┬───────────┬─────┬───┬─────┐ + * │50 │51 │52 │54 │55 │58 │5A │5B │5D │ Tsangan/WKL with Split Spacebar + * └─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘ + */ + /* === All used matrix spots populated === */ #define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4D, K4F, \ - K50, K51, K52, K54, K55, K58, K59, K5A, K5B, K5D, K5E, K5F, K5G \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4D, K4F, \ + K50, K51, K52, K54, K55, K58, K59, K5A, K5B, K5D, K5E, K5F, K5G \ ) { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ diff --git a/keyboards/fjlabs/swordfish/config.h b/keyboards/fjlabs/swordfish/config.h new file mode 100644 index 0000000000..ad184d17b6 --- /dev/null +++ b/keyboards/fjlabs/swordfish/config.h @@ -0,0 +1,109 @@ +/* +Copyright 2022 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + *å +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { B0, B1, C7, C6, B6 } +#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, B2, B3, B7, B5, B4, D7, D6, D4, D5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Define RGB */ +#define RGB_DI_PIN D3 +#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_LIMIT_VAL 255 +#define RGB_VAL_STEP 12 + +/* Define less important options */ + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/fjlabs/swordfish/info.json b/keyboards/fjlabs/swordfish/info.json new file mode 100644 index 0000000000..bdb2e3a2c3 --- /dev/null +++ b/keyboards/fjlabs/swordfish/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Swordfish", + "manufacturer": "FJLaboratories", + "url": "http://www.fjlaboratories.com/", + "maintainer": "mrnoisytiger", + "usb": { + "vid": "0x7074", + "pid": "0x0024", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_alice_all": { + "layout": [{"x":18.33, "y":0.142}, {"x":2.37, "y":0.27}, {"x":3.37, "y":0.27}, {"x":14.13, "y":0.27}, {"x":15.13, "y":0.27}, {"x":17.13, "y":0.27}, {"x":16.13, "y":0.27}, {"x":18.45, "y":1.142}, {"x":2.24, "y":1.28, "w":1.5}, {"x":3.74, "y":1.28}, {"x":13.75, "y":1.28}, {"x":14.75, "y":1.28}, {"x":15.75, "y":1.28}, {"x":16.75, "y":1.28, "w":1.5}, {"x":18.61, "y":2.142}, {"x":2.1, "y":2.28, "w":1.75}, {"x":3.85, "y":2.28}, {"x":14.16, "y":2.28}, {"x":15.16, "y":2.28}, {"x":16.16, "y":2.28, "w":2.25}, {"x":1.95, "y":3.28, "w":2.25}, {"x":4.2, "y":3.28}, {"x":13.81, "y":3.28}, {"x":14.81, "y":3.28}, {"x":15.81, "y":3.28, "w":1.75}, {"x":17.77, "y":3.48}, {"x":1.95, "y":4.28, "w":1.25}, {"x":3.2, "y":4.28, "w":1.25}, {"x":14.06, "y":4.28, "w":1.25}, {"x":15.31, "y":4.28, "w":1.25}, {"x":16.77, "y":4.475}, {"x":17.77, "y":4.475}, {"x":18.77, "y":4.475}, {"x":0, "y":5.28}, {"x":1, "y":5.28}, {"x":2, "y":5.28}, {"x":3, "y":5.28}, {"x":4, "y":5.28}, {"x":0.5, "y":6.28}, {"x":1.5, "y":6.28}, {"x":2.5, "y":6.28}, {"x":3.5, "y":6.28}, {"x":0.75, "y":7.28}, {"x":1.75, "y":7.28}, {"x":2.75, "y":7.28}, {"x":3.75, "y":7.28}, {"x":1.25, "y":8.28}, {"x":2.25, "y":8.28}, {"x":3.25, "y":8.28}, {"x":4.25, "y":8.28}, {"x":1.25, "y":9.28, "w":1.25}, {"x":2.5, "y":9.28, "w":2.75}, {"x":-4.5, "y":10.08}, {"x":-3.5, "y":10.08}, {"x":-2.5, "y":10.08}, {"x":-1.5, "y":10.08}, {"x":-5.0, "y":11.08}, {"x":-4, "y":11.08}, {"x":-3.0, "y":11.08}, {"x":-2, "y":11.08}, {"x":-4.75, "y":12.08}, {"x":-3.75, "y":12.08}, {"x":-2.75, "y":12.08}, {"x":-1.75, "y":12.08}, {"x":-5.25, "y":13.08}, {"x":-4.25, "y":13.08}, {"x":-3.25, "y":13.08}, {"x":-2.25, "y":13.08}, {"x":-5.25, "y":14.08, "w":2.25}, {"x":-3.0, "y":14.08, "w":1.25}] + } + } +} diff --git a/keyboards/fjlabs/swordfish/keymaps/default/keymap.c b/keyboards/fjlabs/swordfish/keymaps/default/keymap.c new file mode 100644 index 0000000000..ecce4f1a7b --- /dev/null +++ b/keyboards/fjlabs/swordfish/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_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 + ), + + [_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 + ) +}; diff --git a/keyboards/fjlabs/swordfish/keymaps/via/keymap.c b/keyboards/fjlabs/swordfish/keymaps/via/keymap.c new file mode 100644 index 0000000000..50ade4767e --- /dev/null +++ b/keyboards/fjlabs/swordfish/keymaps/via/keymap.c @@ -0,0 +1,57 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_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 + ), + + [_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 + ), + + [_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 + ), + + [_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 + ) +}; diff --git a/keyboards/fjlabs/swordfish/keymaps/via/rules.mk b/keyboards/fjlabs/swordfish/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/fjlabs/swordfish/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/fjlabs/swordfish/readme.md b/keyboards/fjlabs/swordfish/readme.md new file mode 100644 index 0000000000..0f6f847285 --- /dev/null +++ b/keyboards/fjlabs/swordfish/readme.md @@ -0,0 +1,16 @@ +# 7V Hotswap PCB by FJLaboratories + +The following is the QMK Firmware for the 7V Hotswap PCB by [FJLaboratories](https://www.fjlaboratories.com/). + +* Keyboard Maintainer: [FJLaboratories](https://github.com/mrnoisytiger) +* Hardware Supported: 7V Hotswap + +Make example for this keyboard (after setting up your build environment): + + make fjlabs/7vhotswap: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 + +You can enter the bootloader by shorting the RST pads on the back of the PCB while the PCB is plugged into the computer. diff --git a/keyboards/fjlabs/swordfish/rules.mk b/keyboards/fjlabs/swordfish/rules.mk new file mode 100644 index 0000000000..82e9a04fa5 --- /dev/null +++ b/keyboards/fjlabs/swordfish/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/fjlabs/swordfish/swordfish.c b/keyboards/fjlabs/swordfish/swordfish.c new file mode 100644 index 0000000000..a8689fefe8 --- /dev/null +++ b/keyboards/fjlabs/swordfish/swordfish.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "swordfish.h" diff --git a/keyboards/fjlabs/swordfish/swordfish.h b/keyboards/fjlabs/swordfish/swordfish.h new file mode 100644 index 0000000000..0b2e8acc62 --- /dev/null +++ b/keyboards/fjlabs/swordfish/swordfish.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +/* === All used matrix spots populated === */ +#define LAYOUT_alice_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K54, K55, K57, K58, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO }, \ + { K50, K51, K52, KC_NO, K54, K55, KC_NO, K57, K58, KC_NO, K5A, K5B, K5C, K5D, K5E } \ +} diff --git a/keyboards/fjlabs/tf60ansi/config.h b/keyboards/fjlabs/tf60ansi/config.h index 1b19a0e2ec..54a787103f 100644 --- a/keyboards/fjlabs/tf60ansi/config.h +++ b/keyboards/fjlabs/tf60ansi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x1004 // tf60ansi -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT TF60ANSI - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/fjlabs/tf60ansi/info.json b/keyboards/fjlabs/tf60ansi/info.json index 4ed7aa91dc..46c386ca5f 100644 --- a/keyboards/fjlabs/tf60ansi/info.json +++ b/keyboards/fjlabs/tf60ansi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "TF60 ANSI", + "manufacturer": "FJLabs", "url": "https://www.fjlaboratories.com/", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x1004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/fjlabs/tf60v2/config.h b/keyboards/fjlabs/tf60v2/config.h index 0c1a069464..54a787103f 100644 --- a/keyboards/fjlabs/tf60v2/config.h +++ b/keyboards/fjlabs/tf60v2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x1005 // tf60v2 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT TF60v2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/fjlabs/tf60v2/info.json b/keyboards/fjlabs/tf60v2/info.json index c2d6c02872..989f18a001 100644 --- a/keyboards/fjlabs/tf60v2/info.json +++ b/keyboards/fjlabs/tf60v2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "TF60 RGB V2", + "keyboard_name": "TF60 V2", + "manufacturer": "FJLabs", "url": "https://www.fjlaboratories.com/", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x1005", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_arrow": { "layout": [ diff --git a/keyboards/fjlabs/tf65rgbv2/config.h b/keyboards/fjlabs/tf65rgbv2/config.h index 111b2c8928..4a71d1dac7 100644 --- a/keyboards/fjlabs/tf65rgbv2/config.h +++ b/keyboards/fjlabs/tf65rgbv2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7074 // FJLabs -#define PRODUCT_ID 0x1007 // tf60v2 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER FJLabs -#define PRODUCT TF65RGBv2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/fjlabs/tf65rgbv2/info.json b/keyboards/fjlabs/tf65rgbv2/info.json index fe91dcaec5..3da715d5fa 100644 --- a/keyboards/fjlabs/tf65rgbv2/info.json +++ b/keyboards/fjlabs/tf65rgbv2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "TF65 RGB V2", + "manufacturer": "FJLabs", "url": "https://www.fjlaboratories.com/", "maintainer": "FJLabs", + "usb": { + "vid": "0x7074", + "pid": "0x1007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/flehrad/bigswitch/keymaps/333fred/config.h b/keyboards/flehrad/bigswitch/keymaps/333fred/config.h index 6e9219115c..3273cc8db4 100644 --- a/keyboards/flehrad/bigswitch/keymaps/333fred/config.h +++ b/keyboards/flehrad/bigswitch/keymaps/333fred/config.h @@ -24,4 +24,3 @@ // Long tapping term on the big switch, because it takes so long to press #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD diff --git a/keyboards/fleuron/config.h b/keyboards/fleuron/config.h index 24212bfdc1..3e7da10503 100644 --- a/keyboards/fleuron/config.h +++ b/keyboards/fleuron/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER You -#define PRODUCT Fleuron v1 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/fleuron/info.json b/keyboards/fleuron/info.json index 2bb31b852b..106c3eba5e 100644 --- a/keyboards/fleuron/info.json +++ b/keyboards/fleuron/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "Fleuron v1.0", + "keyboard_name": "Fleuron v1", + "manufacturer": "Fleuron", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_6x16": { "layout": [ diff --git a/keyboards/fluorite/config.h b/keyboards/fluorite/config.h index 397fdaaebf..b414389c0b 100644 --- a/keyboards/fluorite/config.h +++ b/keyboards/fluorite/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ihotsuno -#define PRODUCT fluorite - /* key matrix size */ #define MATRIX_ROWS 16 #define MATRIX_COLS 9 diff --git a/keyboards/fluorite/info.json b/keyboards/fluorite/info.json index d816a6b251..04d3fa5c53 100644 --- a/keyboards/fluorite/info.json +++ b/keyboards/fluorite/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "fluorite", + "manufacturer": "ihotsuno", "url": "", "maintainer": "ihotsuno, qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/flx/lodestone/config.h b/keyboards/flx/lodestone/config.h index d4238c8eb8..844e769a6c 100644 --- a/keyboards/flx/lodestone/config.h +++ b/keyboards/flx/lodestone/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4658 //FX -#define PRODUCT_ID 0x4C53 //LS -#define DEVICE_VER 0x0001 -#define MANUFACTURER FLX -#define PRODUCT Lodestone - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/flx/lodestone/info.json b/keyboards/flx/lodestone/info.json index 8053aa36d4..e68241722f 100644 --- a/keyboards/flx/lodestone/info.json +++ b/keyboards/flx/lodestone/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "lodestone", + "keyboard_name": "Lodestone", + "manufacturer": "FLX", "url": "https://prototypist.net/", "maintainer": "Flexerm", + "usb": { + "vid": "0x4658", + "pid": "0x4C53", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/flx/virgo/config.h b/keyboards/flx/virgo/config.h index 8ceb1e4ed1..facc392358 100644 --- a/keyboards/flx/virgo/config.h +++ b/keyboards/flx/virgo/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4658 //FX -#define PRODUCT_ID 0x5647 //VG -#define DEVICE_VER 0x0001 -#define MANUFACTURER FLX -#define PRODUCT Virgo - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/flx/virgo/info.json b/keyboards/flx/virgo/info.json index 5184e4fb15..6ae793eefb 100644 --- a/keyboards/flx/virgo/info.json +++ b/keyboards/flx/virgo/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "FLX Virgo", + "keyboard_name": "Virgo", + "manufacturer": "FLX", "url": "", "maintainer": "mechmerlin", + "usb": { + "vid": "0x4658", + "pid": "0x5647", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/flxlb/zplit/config.h b/keyboards/flxlb/zplit/config.h index 74c7339bdc..c45931fd32 100644 --- a/keyboards/flxlb/zplit/config.h +++ b/keyboards/flxlb/zplit/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7076 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER fluxlab -#define PRODUCT zplit - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/flxlb/zplit/info.json b/keyboards/flxlb/zplit/info.json index e21f740f35..4687f16513 100644 --- a/keyboards/flxlb/zplit/info.json +++ b/keyboards/flxlb/zplit/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "zplit", + "manufacturer": "fluxlab", "url": "https://github.com/cccywj/qmk_firmware", "maintainer": "flxlb", + "usb": { + "vid": "0x7076", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/flygone60/rev3/config.h b/keyboards/flygone60/rev3/config.h index b670def338..e75eb64617 100644 --- a/keyboards/flygone60/rev3/config.h +++ b/keyboards/flygone60/rev3/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7877 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0003 -#define MANUFACTURER ShandonCodes -#define PRODUCT Flygone60 Rev3 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/flygone60/rev3/info.json b/keyboards/flygone60/rev3/info.json index fdae44c6b4..dc446d5efc 100644 --- a/keyboards/flygone60/rev3/info.json +++ b/keyboards/flygone60/rev3/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Flygone60 Rev3", + "manufacturer": "ShandonCodes", "url": "https://qmk.fm/keyboards/", "maintainer": "ShandonCodes", + "usb": { + "vid": "0x7877", + "pid": "0x0001", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_60_ansi_arrow": { "layout": [ diff --git a/keyboards/foostan/cornelius/config.h b/keyboards/foostan/cornelius/config.h index a3e784150f..fa3493e455 100644 --- a/keyboards/foostan/cornelius/config.h +++ b/keyboards/foostan/cornelius/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3265 -#define PRODUCT_ID 0x0005 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yushakobo -#define PRODUCT Cornelius /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/foostan/cornelius/info.json b/keyboards/foostan/cornelius/info.json index adb20ded53..fa7a40b5aa 100644 --- a/keyboards/foostan/cornelius/info.json +++ b/keyboards/foostan/cornelius/info.json @@ -1,7 +1,13 @@ { - "keyboard_name":"cornelius", + "keyboard_name":"Cornelius", + "manufacturer":"Yushakobo", "url":"", "maintainer":"foostan", + "usb": { + "vid": "0x3265", + "pid": "0x0005", + "device_version": "0.0.1" + }, "layouts":{ "LAYOUT":{ "layout":[ diff --git a/keyboards/for_science/config.h b/keyboards/for_science/config.h index 9c2f484dc9..32c335bbb3 100644 --- a/keyboards/for_science/config.h +++ b/keyboards/for_science/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xF22C -#define DEVICE_VER 0x0001 -#define MANUFACTURER Peej -#define PRODUCT For Science - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/for_science/info.json b/keyboards/for_science/info.json index 1dd1f6cd8f..9d2808c9c5 100644 --- a/keyboards/for_science/info.json +++ b/keyboards/for_science/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "For Science", + "manufacturer": "Peej", "url": "https://github.com/peej/for-science-keyboard", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xF22C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_4x5_3": { "layout": [ diff --git a/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h b/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h index 1794ba4fd6..c05e920287 100644 --- a/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h b/keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..e335d5d8b8 --- /dev/null +++ b/keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,22 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku(\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ +)\ +LAYOUT(\ +XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ +XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ +XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ +XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ + XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX\ +) diff --git a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/foxlab/key65/hotswap/config.h b/keyboards/foxlab/key65/hotswap/config.h index 8c0e5a1b9e..6ffaa1b331 100644 --- a/keyboards/foxlab/key65/hotswap/config.h +++ b/keyboards/foxlab/key65/hotswap/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x464C // "FL" -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Fox Lab -#define PRODUCT Key 65 Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/foxlab/key65/hotswap/info.json b/keyboards/foxlab/key65/hotswap/info.json index 4c43f13c80..e6615681ef 100644 --- a/keyboards/foxlab/key65/hotswap/info.json +++ b/keyboards/foxlab/key65/hotswap/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Key 65 Hotswap", + "manufacturer": "Fox Lab", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x464C", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/foxlab/key65/universal/config.h b/keyboards/foxlab/key65/universal/config.h index 44911bed77..b02b60698d 100644 --- a/keyboards/foxlab/key65/universal/config.h +++ b/keyboards/foxlab/key65/universal/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x464C // "FL" -#define PRODUCT_ID 0x0004 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Fox Lab -#define PRODUCT Key 65 Universal - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/foxlab/key65/universal/info.json b/keyboards/foxlab/key65/universal/info.json index d1303b6a47..3aa36fcc62 100644 --- a/keyboards/foxlab/key65/universal/info.json +++ b/keyboards/foxlab/key65/universal/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Key 65 Universal", + "manufacturer": "Fox Lab", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x464C", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker_split_bs": { "layout": [ diff --git a/keyboards/foxlab/leaf60/hotswap/config.h b/keyboards/foxlab/leaf60/hotswap/config.h index f224957c59..a0eb1b93e6 100644 --- a/keyboards/foxlab/leaf60/hotswap/config.h +++ b/keyboards/foxlab/leaf60/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x464C // "FL" -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Fox Lab -#define PRODUCT Leaf 60 Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/foxlab/leaf60/hotswap/info.json b/keyboards/foxlab/leaf60/hotswap/info.json index 1dd5e47b2f..b577d864dd 100644 --- a/keyboards/foxlab/leaf60/hotswap/info.json +++ b/keyboards/foxlab/leaf60/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Fox Lab Hotswap Leaf60", + "keyboard_name": "Leaf 60 Hotswap", + "manufacturer": "Fox Lab", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x464C", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_tsangan_hhkb": { "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.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/foxlab/leaf60/universal/config.h b/keyboards/foxlab/leaf60/universal/config.h index d25e145361..270cf0ad6e 100644 --- a/keyboards/foxlab/leaf60/universal/config.h +++ b/keyboards/foxlab/leaf60/universal/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x464C // "FL" -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Fox Lab -#define PRODUCT Leaf 60 Universal - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/foxlab/leaf60/universal/info.json b/keyboards/foxlab/leaf60/universal/info.json index 25687994a9..2675639455 100644 --- a/keyboards/foxlab/leaf60/universal/info.json +++ b/keyboards/foxlab/leaf60/universal/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Fox Lab Leaf60", + "keyboard_name": "Leaf 60 Universal", + "manufacturer": "Fox Lab", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x464C", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":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":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/foxlab/time80/config.h b/keyboards/foxlab/time80/config.h index 27013c5c67..7e7e521f27 100644 --- a/keyboards/foxlab/time80/config.h +++ b/keyboards/foxlab/time80/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x464C // "FL" -#define PRODUCT_ID 0x0005 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Fox Lab -#define PRODUCT Time80 - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 15 diff --git a/keyboards/foxlab/time80/info.json b/keyboards/foxlab/time80/info.json index b17866391e..5173c152b2 100644 --- a/keyboards/foxlab/time80/info.json +++ b/keyboards/foxlab/time80/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Fox Lab Time 80", + "keyboard_name": "Time80", + "manufacturer": "Fox Lab", "url": "", "maintainer": "lukelex", + "usb": { + "vid": "0x464C", + "pid": "0x0005", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/foxlab/time_re/hotswap/config.h b/keyboards/foxlab/time_re/hotswap/config.h index 8ca58e4341..1b3d814c66 100644 --- a/keyboards/foxlab/time_re/hotswap/config.h +++ b/keyboards/foxlab/time_re/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x464C // "FL" -#define PRODUCT_ID 0x0006 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Fox Lab -#define PRODUCT Time 80 Reforged - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/foxlab/time_re/hotswap/info.json b/keyboards/foxlab/time_re/hotswap/info.json index bf4a81873d..3479c1e33e 100644 --- a/keyboards/foxlab/time_re/hotswap/info.json +++ b/keyboards/foxlab/time_re/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Time RE Hotswap", + "keyboard_name": "Time 80 Reforged", + "manufacturer": "Fox Lab", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x464C", + "pid": "0x0006", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/foxlab/time_re/universal/config.h b/keyboards/foxlab/time_re/universal/config.h index 8ca58e4341..1b3d814c66 100644 --- a/keyboards/foxlab/time_re/universal/config.h +++ b/keyboards/foxlab/time_re/universal/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x464C // "FL" -#define PRODUCT_ID 0x0006 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Fox Lab -#define PRODUCT Time 80 Reforged - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/foxlab/time_re/universal/info.json b/keyboards/foxlab/time_re/universal/info.json index 9161a345aa..3479c1e33e 100644 --- a/keyboards/foxlab/time_re/universal/info.json +++ b/keyboards/foxlab/time_re/universal/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Time RE Universal", + "keyboard_name": "Time 80 Reforged", + "manufacturer": "Fox Lab", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x464C", + "pid": "0x0006", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/fr4/southpaw75/config.h b/keyboards/fr4/southpaw75/config.h index 3dd93ec540..d96d5bc20c 100644 --- a/keyboards/fr4/southpaw75/config.h +++ b/keyboards/fr4/southpaw75/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x350C -#define DEVICE_VER 0x0001 -#define MANUFACTURER kelvinhall05 -#define PRODUCT Southpaw75 - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 9 diff --git a/keyboards/fr4/southpaw75/info.json b/keyboards/fr4/southpaw75/info.json index c5c6123221..11d4031769 100644 --- a/keyboards/fr4/southpaw75/info.json +++ b/keyboards/fr4/southpaw75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Southpaw75", + "manufacturer": "kelvinhall05", "url": "https://github.com/kelvinhall05/southpaw75", "maintainer": "kelvinhall05", + "usb": { + "vid": "0xFEED", + "pid": "0x350C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"~", "x":4, "y":0}, {"label":"!", "x":5, "y":0}, {"label":"@", "x":6, "y":0}, {"label":"#", "x":7, "y":0}, {"label":"$", "x":8, "y":0}, {"label":"%", "x":9, "y":0}, {"label":"^", "x":10, "y":0}, {"label":"&", "x":11, "y":0}, {"label":"*", "x":12, "y":0}, {"label":"(", "x":13, "y":0}, {"label":")", "x":14, "y":0}, {"label":"_", "x":15, "y":0}, {"label":"+", "x":16, "y":0}, {"label":"Backspace", "x":17, "y":0, "w":2}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1, "h":2}, {"label":"Tab", "x":4, "y":1, "w":1.5}, {"label":"Q", "x":5.5, "y":1}, {"label":"W", "x":6.5, "y":1}, {"label":"E", "x":7.5, "y":1}, {"label":"R", "x":8.5, "y":1}, {"label":"T", "x":9.5, "y":1}, {"label":"Y", "x":10.5, "y":1}, {"label":"U", "x":11.5, "y":1}, {"label":"I", "x":12.5, "y":1}, {"label":"O", "x":13.5, "y":1}, {"label":"P", "x":14.5, "y":1}, {"label":"{", "x":15.5, "y":1}, {"label":"}", "x":16.5, "y":1}, {"label":"|", "x":17.5, "y":1, "w":1.5}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"Caps Lock", "x":4, "y":2, "w":1.75}, {"label":"A", "x":5.75, "y":2}, {"label":"S", "x":6.75, "y":2}, {"label":"D", "x":7.75, "y":2}, {"label":"F", "x":8.75, "y":2}, {"label":"G", "x":9.75, "y":2}, {"label":"H", "x":10.75, "y":2}, {"label":"J", "x":11.75, "y":2}, {"label":"K", "x":12.75, "y":2}, {"label":"L", "x":13.75, "y":2}, {"label":":", "x":14.75, "y":2}, {"label":"\"", "x":15.75, "y":2}, {"label":"Enter", "x":16.75, "y":2, "w":2.25}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3, "h":2}, {"label":"Shift", "x":4, "y":3, "w":2.25}, {"label":"Z", "x":6.25, "y":3}, {"label":"X", "x":7.25, "y":3}, {"label":"C", "x":8.25, "y":3}, {"label":"V", "x":9.25, "y":3}, {"label":"B", "x":10.25, "y":3}, {"label":"N", "x":11.25, "y":3}, {"label":"M", "x":12.25, "y":3}, {"label":"<", "x":13.25, "y":3}, {"label":">", "x":14.25, "y":3}, {"label":"?", "x":15.25, "y":3}, {"label":"Shift", "x":16.25, "y":3, "w":2.75}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Ctrl", "x":4, "y":4, "w":1.25}, {"label":"Win", "x":5.25, "y":4, "w":1.25}, {"label":"Alt", "x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":6.25}, {"label":"Alt", "x":14, "y":4, "w":1.25}, {"label":"Win", "x":15.25, "y":4, "w":1.25}, {"label":"Menu", "x":16.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":17.75, "y":4, "w":1.25}] diff --git a/keyboards/fr4/unix60/config.h b/keyboards/fr4/unix60/config.h index 53d2104fdd..03ae2c509d 100644 --- a/keyboards/fr4/unix60/config.h +++ b/keyboards/fr4/unix60/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4652 // "FR" -#define PRODUCT_ID 0x5558 // "UX" -#define DEVICE_VER 0x0001 -#define MANUFACTURER FR4Boards -#define PRODUCT unix60 - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 9 diff --git a/keyboards/fr4/unix60/info.json b/keyboards/fr4/unix60/info.json index 6debabc7aa..19a04e8ced 100644 --- a/keyboards/fr4/unix60/info.json +++ b/keyboards/fr4/unix60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "unix60", + "manufacturer": "FR4Boards", "url": "https://github.com/mkdl/Unix60", "maintainer": "mkdl", + "usb": { + "vid": "0x4652", + "pid": "0x5558", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":0.6}, {"x":13.6, "y":0, "w":0.8}, {"x":14.4, "y":0, "w":0.6}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":2, "w":1.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}] diff --git a/keyboards/fractal/config.h b/keyboards/fractal/config.h index b9aeac3855..c494f6aa77 100755 --- a/keyboards/fractal/config.h +++ b/keyboards/fractal/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KeyPCB -#define PRODUCT Fractal - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/fractal/info.json b/keyboards/fractal/info.json index 7d7a2ba5a4..7d39a296d3 100644 --- a/keyboards/fractal/info.json +++ b/keyboards/fractal/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Fractal", + "manufacturer": "KeyPCB", "url": "https://keypcb.bigcartel.com/product/fractal-keyboard-group-buy", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}] diff --git a/keyboards/fractal/keymaps/default/keymap.c b/keyboards/fractal/keymaps/default/keymap.c index ded4890d8c..6b0a8cc18c 100644 --- a/keyboards/fractal/keymaps/default/keymap.c +++ b/keyboards/fractal/keymaps/default/keymap.c @@ -158,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_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, DEBUG, _______, _______, _______, _______, _______, _______,_______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/free_willy/config.h b/keyboards/free_willy/config.h index cecd2a8211..918821b787 100644 --- a/keyboards/free_willy/config.h +++ b/keyboards/free_willy/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5351 // SQ -#define PRODUCT_ID 0x4657 // FW -#define DEVICE_VER 0x0001 -#define MANUFACTURER squashkb -#define PRODUCT free willy - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/free_willy/info.json b/keyboards/free_willy/info.json index c2bb3b95d9..61a707b245 100644 --- a/keyboards/free_willy/info.json +++ b/keyboards/free_willy/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "free willy", + "manufacturer": "squashkb", "url": "https://www.squashkb.com/product/free-willy", "maintainer": "tsquash", + "usb": { + "vid": "0x5351", + "pid": "0x4657", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/friedrich/config.h b/keyboards/friedrich/config.h index 1e4e36f2e4..5b601cf6c0 100644 --- a/keyboards/friedrich/config.h +++ b/keyboards/friedrich/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6481 -#define PRODUCT_ID 0xB4A2 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb-elmo -#define PRODUCT Friedrich - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/friedrich/info.json b/keyboards/friedrich/info.json index 17492e6faf..ccaaf2753e 100644 --- a/keyboards/friedrich/info.json +++ b/keyboards/friedrich/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Friedrich", + "manufacturer": "kb-elmo", "url": "https://github.com/MarvFPV/Friedrich", "maintainer": "kb-elmo", + "usb": { + "vid": "0x6481", + "pid": "0xB4A2", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, diff --git a/keyboards/frooastboard/nano/config.h b/keyboards/frooastboard/nano/config.h index 48af8e7e9c..f7a025a251 100644 --- a/keyboards/frooastboard/nano/config.h +++ b/keyboards/frooastboard/nano/config.h @@ -18,10 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define MANUFACTURER frooastside -#define PRODUCT Frooastboard Nano - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 2 diff --git a/keyboards/frooastboard/nano/info.json b/keyboards/frooastboard/nano/info.json index ae94705195..a524545a7c 100644 --- a/keyboards/frooastboard/nano/info.json +++ b/keyboards/frooastboard/nano/info.json @@ -1,5 +1,6 @@ { "keyboard_name": "Frooastboard Nano", + "manufacturer": "frooastside", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/frooastboard/nano", "maintainer": "frooastside", "debounce": 5, diff --git a/keyboards/ft/mars80/config.h b/keyboards/ft/mars80/config.h index 1670044315..bf727460c6 100644 --- a/keyboards/ft/mars80/config.h +++ b/keyboards/ft/mars80/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0001 -#define MANUFACTURER FT -#define PRODUCT Mars 8.0 - #define RGBLED_NUM 20 #define MATRIX_ROWS 7 diff --git a/keyboards/ft/mars80/info.json b/keyboards/ft/mars80/info.json index 060e7eee65..091e3a94c0 100644 --- a/keyboards/ft/mars80/info.json +++ b/keyboards/ft/mars80/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mars 8.0", + "manufacturer": "FT", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x20A0", + "pid": "0x422D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "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.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5, "w":1.25}, {"x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"x":10, "y":5.5, "w":1.25}, {"x":11.25, "y":5.5, "w":1.25}, {"x":12.5, "y":5.5, "w":1.25}, {"x":13.75, "y":5.5, "w":1.25}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}] diff --git a/keyboards/function96/v1/config.h b/keyboards/function96/v1/config.h index eaa7183843..9f36f8b5f5 100644 --- a/keyboards/function96/v1/config.h +++ b/keyboards/function96/v1/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x672A -#define DEVICE_VER 0x0001 -#define MANUFACTURER JTM -#define PRODUCT function96v1 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 19 diff --git a/keyboards/function96/v1/info.json b/keyboards/function96/v1/info.json index 45f987a355..92b016c165 100644 --- a/keyboards/function96/v1/info.json +++ b/keyboards/function96/v1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "function96v1", + "manufacturer": "JTM", "url": "jtmkeebdesign@gmail.com", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x672A", + "device_version": "0.0.1" + }, "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":"Print", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"x":15, "y":0}, {"x":16, "y":0}, {"x":17, "y":0}, {"x":18, "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}, {"x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "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":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":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":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "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":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"x":18, "y":4, "h":2}, {"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}, {"x":3.75, "y":5, "w":2.25}, {"x":6, "y":5, "w":1.25}, {"x":7.25, "y":5, "w":2.75}, {"x":10, "y":5, "w":1.25}, {"x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"x":17, "y":5}] diff --git a/keyboards/function96/v2/config.h b/keyboards/function96/v2/config.h index b0e986785a..5c49a16785 100644 --- a/keyboards/function96/v2/config.h +++ b/keyboards/function96/v2/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x2A34 // JT , JTMDesign -#define PRODUCT_ID 0x672B -#define DEVICE_VER 0x0002 -#define MANUFACTURER JTMDesign -#define PRODUCT function96v2 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 19 diff --git a/keyboards/function96/v2/info.json b/keyboards/function96/v2/info.json index d494f617ea..7bb6adfcad 100644 --- a/keyboards/function96/v2/info.json +++ b/keyboards/function96/v2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "function96v2", + "manufacturer": "JTMDesign", "url": "jtmkeebdesign@gmail.com", "maintainer": "qmk", + "usb": { + "vid": "0x2A34", + "pid": "0x672B", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/funky40/config.h b/keyboards/funky40/config.h index c79a8f2da6..2346adef27 100644 --- a/keyboards/funky40/config.h +++ b/keyboards/funky40/config.h @@ -17,14 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xC4B5 -#define DEVICE_VER 0x0001 -#define MANUFACTURER TheFourthCow -#define PRODUCT Funky40 - - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/funky40/info.json b/keyboards/funky40/info.json index ce385b76dd..9faf90c230 100644 --- a/keyboards/funky40/info.json +++ b/keyboards/funky40/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "funky40", + "keyboard_name": "Funky40", + "manufacturer": "TheFourthCow", "url": "", "maintainer": "TheFourthCow", + "usb": { + "vid": "0xFEED", + "pid": "0xC4B5", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back
Space", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"\"", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Shift", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Super", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"x":3, "y":3, "w":2}, {"label":"Del", "x":5, "y":3}, {"x":6, "y":3, "w":2}, {"label":"Left", "x":8, "y":3}, {"label":"Up", "x":9, "y":3}, {"label":"Down", "x":10, "y":3}, {"label":"Right", "x":11, "y":3}] diff --git a/keyboards/gami_studio/lex60/config.h b/keyboards/gami_studio/lex60/config.h index d19ecd78a0..311f355589 100644 --- a/keyboards/gami_studio/lex60/config.h +++ b/keyboards/gami_studio/lex60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7353 -#define PRODUCT_ID 0x0160 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT Lex60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/gami_studio/lex60/info.json b/keyboards/gami_studio/lex60/info.json index b8535c7fd9..7422287bd6 100644 --- a/keyboards/gami_studio/lex60/info.json +++ b/keyboards/gami_studio/lex60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Gami Studio Lex60", + "keyboard_name": "Lex60", + "manufacturer": "Evyd13", "url": "", "maintainer": "GamiStudio", + "usb": { + "vid": "0x7353", + "pid": "0x0160", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gboards/butterstick/config.h b/keyboards/gboards/butterstick/config.h index 69632cd4f7..84e1899081 100644 --- a/keyboards/gboards/butterstick/config.h +++ b/keyboards/gboards/butterstick/config.h @@ -2,12 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1337 -#define DEVICE_VER 0x0001 -#define MANUFACTURER g Heavy Industries -#define PRODUCT Butter Stick #define VERSION "Paula Deen" #define DEBOUNCE 5 diff --git a/keyboards/gboards/butterstick/info.json b/keyboards/gboards/butterstick/info.json index 6bfd58e594..158769dbd1 100644 --- a/keyboards/gboards/butterstick/info.json +++ b/keyboards/gboards/butterstick/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Butter Stick", + "manufacturer": "g Heavy Industries", "url": "", "maintainer": "germ", + "usb": { + "vid": "0xFEED", + "pid": "0x1337", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_butter": { "layout": [ diff --git a/keyboards/gboards/ergotaco/config.h b/keyboards/gboards/ergotaco/config.h index d415e77dc6..21d14144d9 100644 --- a/keyboards/gboards/ergotaco/config.h +++ b/keyboards/gboards/ergotaco/config.h @@ -23,13 +23,6 @@ along with this program. If not, see . #define VERBOSE -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1337 -#define DEVICE_VER 0x0001 -#define MANUFACTURER g Heavy Industries -#define PRODUCT ErgoTaco - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) diff --git a/keyboards/gboards/ergotaco/info.json b/keyboards/gboards/ergotaco/info.json index e7794e6ee3..bd1863288e 100644 --- a/keyboards/gboards/ergotaco/info.json +++ b/keyboards/gboards/ergotaco/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ErgoTaco", + "manufacturer": "g Heavy Industries", "url": "http://gboards.ca", "maintainer": "germ", + "usb": { + "vid": "0xFEED", + "pid": "0x1337", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gboards/georgi/config.h b/keyboards/gboards/georgi/config.h index f2e73da899..e3da59a781 100644 --- a/keyboards/gboards/georgi/config.h +++ b/keyboards/gboards/georgi/config.h @@ -30,13 +30,6 @@ along with this program. If not, see . #define NO_ACTION_ONESHOT #define IGNORE_MOD_TAP_INTERRUPT -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1337 -#define DEVICE_VER 0x0001 -#define MANUFACTURER g Heavy Industries -#define PRODUCT Georgi - /* key matrix size */ #define MATRIX_ROWS 14 #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) diff --git a/keyboards/gboards/georgi/info.json b/keyboards/gboards/georgi/info.json index 89d2cd883f..0bfe2a52aa 100644 --- a/keyboards/gboards/georgi/info.json +++ b/keyboards/gboards/georgi/info.json @@ -1,130 +1,51 @@ { "keyboard_name": "Georgi", + "manufacturer": "g Heavy Industries", "url": "http://gboards.ca", "maintainer": "germ", + "usb": { + "vid": "0xFEED", + "pid": "0x1337", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_georgi": { "layout": [ - { - "x": 0.05, - "y": 0.54 - }, - { - "x": 1.06, - "y": 0.55 - }, - { - "x": 2.06, - "y": 0.29 - }, - { - "x": 3.05, - "y": 0.16 - }, - { - "x": 4.06, - "y": 0.41 - }, - { - "x": 5.06, - "y": 0.54 - }, - { - "x": 7.1899999999999995, - "y": 0.41 - }, - { - "x": 8.2, - "y": 0.3 - }, - { - "x": 9.2, - "y": 0.05 - }, - { - "x": 10.2, - "y": 0.29 - }, - { - "x": 11.2, - "y": 0.43 - }, - { - "x": 12.2, - "y": 0.42 - }, - { - "x": 0.05, - "y": 1.54 - }, - { - "x": 1.06, - "y": 1.54 - }, - { - "x": 2.06, - "y": 1.28 - }, - { - "x": 3.05, - "y": 1.16 - }, - { - "x": 4.06, - "y": 1.4 - }, - { - "x": 5.06, - "y": 1.54 - }, - { - "x": 7.1899999999999995, - "y": 1.4 - }, - { - "x": 8.2, - "y": 1.28 - }, - { - "x": 9.2, - "y": 1.04 - }, - { - "x": 10.2, - "y": 1.28 - }, - { - "x": 11.2, - "y": 1.42 - }, - { - "x": 12.2, - "y": 1.42 - }, - { - "x": 3.05, - "y": 2.67 - }, - { - "x": 4.06, - "y": 2.68 - }, - { - "x": 5.06, - "y": 2.68 - }, - { - "x": 7.19, - "y": 2.67 - }, - { - "x": 8.2, - "y": 2.67 - }, - { - "x": 9.2, - "y": 2.66 - } + {"x": 0, "y": 0.5}, + {"x": 1, "y": 0.5}, + {"x": 2, "y": 0.3}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0.4}, + {"x": 5, "y": 0.5}, + + {"x": 7, "y": 0.5}, + {"x": 8, "y": 0.4}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0.3}, + {"x": 11, "y": 0.5}, + {"x": 12, "y": 0.5}, + + {"x": 0, "y": 1.5}, + {"x": 1, "y": 1.5}, + {"x": 2, "y": 1.3}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1.4}, + {"x": 5, "y": 1.5}, + + {"x": 7, "y": 1.5}, + {"x": 8, "y": 1.4}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1.3}, + {"x": 11, "y": 1.5}, + {"x": 12, "y": 1.5}, + + {"x": 3, "y": 2.75}, + {"x": 4, "y": 2.75}, + {"x": 5, "y": 2.75}, + + {"x": 7, "y": 2.75}, + {"x": 8, "y": 2.75}, + {"x": 9, "y": 2.75} ] } } diff --git a/keyboards/gboards/georgi/keymaps/colemak-dh/rules.mk b/keyboards/gboards/georgi/keymaps/colemak-dh/rules.mk index 07394aef48..ef710269a4 100644 --- a/keyboards/gboards/georgi/keymaps/colemak-dh/rules.mk +++ b/keyboards/gboards/georgi/keymaps/colemak-dh/rules.mk @@ -1,12 +1,6 @@ -#---------------------------------------------------------------------------- -# make georgi:claymager:dfu -# Make sure you have dfu-programmer installed! -#---------------------------------------------------------------------------- - NO_REPEAT = yes VERBOSE = yes KEYBOARD_SHARED_EP = yes -CUSTOM_MATRIX = yes STENO_LAYERS = yes #Firmware reduction options @@ -24,7 +18,6 @@ ONLY_QWERTY = no # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c ifeq ($(strip $(DEBUG_MATRIX)), yes) OPT_DEFS += -DDEBUG_MATRIX endif @@ -43,3 +36,5 @@ endif ifeq ($(strip $(STENO_LAYERS)), yes) OPT_DEFS += -DSTENOLAYERS endif + +SRC += sten.c diff --git a/keyboards/gboards/georgi/keymaps/default-flipped/rules.mk b/keyboards/gboards/georgi/keymaps/default-flipped/rules.mk index 90d8057c32..8f3d0419ab 100644 --- a/keyboards/gboards/georgi/keymaps/default-flipped/rules.mk +++ b/keyboards/gboards/georgi/keymaps/default-flipped/rules.mk @@ -1,12 +1,6 @@ -#---------------------------------------------------------------------------- -# make georgi:default:dfu -# Make sure you have dfu-programmer installed! -#---------------------------------------------------------------------------- - NO_REPEAT = no VERBOSE = yes KEYBOARD_SHARED_EP = yes -CUSTOM_MATRIX = yes #Firmware reduction options MOUSEKEY_ENABLE = yes # 1500 bytes @@ -23,7 +17,6 @@ ONLY_QWERTY = no # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c ifeq ($(strip $(DEBUG_MATRIX)), yes) OPT_DEFS += -DDEBUG_MATRIX endif @@ -39,3 +32,5 @@ endif ifeq ($(strip $(NO_TAPPING)), yes) OPT_DEFS += -DNO_ACTION_TAPPING endif + +SRC += sten.c diff --git a/keyboards/gboards/georgi/keymaps/default/rules.mk b/keyboards/gboards/georgi/keymaps/default/rules.mk index 7bd3d7aa20..242f95fa23 100644 --- a/keyboards/gboards/georgi/keymaps/default/rules.mk +++ b/keyboards/gboards/georgi/keymaps/default/rules.mk @@ -1,12 +1,6 @@ -#---------------------------------------------------------------------------- -# make georgi:default:dfu -# Make sure you have dfu-programmer installed! -#---------------------------------------------------------------------------- - NO_REPEAT = no VERBOSE = yes KEYBOARD_SHARED_EP = yes -CUSTOM_MATRIX = yes STENO_LAYERS = no #Firmware reduction options @@ -24,7 +18,6 @@ ONLY_QWERTY = no # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c ifeq ($(strip $(DEBUG_MATRIX)), yes) OPT_DEFS += -DDEBUG_MATRIX endif @@ -40,3 +33,5 @@ endif ifeq ($(strip $(NO_TAPPING)), yes) OPT_DEFS += -DNO_ACTION_TAPPING endif + +SRC += sten.c diff --git a/keyboards/gboards/georgi/keymaps/dennytom/rules.mk b/keyboards/gboards/georgi/keymaps/dennytom/rules.mk index 1155f72c04..af3726f14a 100644 --- a/keyboards/gboards/georgi/keymaps/dennytom/rules.mk +++ b/keyboards/gboards/georgi/keymaps/dennytom/rules.mk @@ -1,8 +1,2 @@ MOUSEKEY_ENABLE = yes -EXTRAKEY_ENABLE = yes CONSOLE_ENABLE = no -# COMMAND_ENABLE = no -NKRO_ENABLE = yes - -TMPVAR := $(SRC) -SRC = $(filter-out sten.c, $(TMPVAR)) \ No newline at end of file diff --git a/keyboards/gboards/georgi/keymaps/minimal/rules.mk b/keyboards/gboards/georgi/keymaps/minimal/rules.mk index cdbbbc280e..d95158f051 100644 --- a/keyboards/gboards/georgi/keymaps/minimal/rules.mk +++ b/keyboards/gboards/georgi/keymaps/minimal/rules.mk @@ -1,12 +1,6 @@ -#---------------------------------------------------------------------------- -# make georgi:default:dfu -# Make sure you have dfu-programmer installed! -#---------------------------------------------------------------------------- - NO_REPEAT = no VERBOSE = yes KEYBOARD_SHARED_EP = yes -CUSTOM_MATRIX = yes #Firmware reduction options MOUSEKEY_ENABLE = no # 1500 bytes @@ -23,7 +17,6 @@ ONLY_QWERTY = no # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c ifeq ($(strip $(DEBUG_MATRIX)), yes) OPT_DEFS += -DDEBUG_MATRIX endif @@ -39,3 +32,5 @@ endif ifeq ($(strip $(NO_TAPPING)), yes) OPT_DEFS += -DNO_ACTION_TAPPING endif + +SRC += sten.c diff --git a/keyboards/gboards/georgi/keymaps/norman/rules.mk b/keyboards/gboards/georgi/keymaps/norman/rules.mk index bb97bef281..d550e882c6 100644 --- a/keyboards/gboards/georgi/keymaps/norman/rules.mk +++ b/keyboards/gboards/georgi/keymaps/norman/rules.mk @@ -1,12 +1,6 @@ -#---------------------------------------------------------------------------- -# make georgi:default:dfu -# Make sure you have dfu-programmer installed! -#---------------------------------------------------------------------------- - NO_REPEAT = yes VERBOSE = yes KEYBOARD_SHARED_EP = yes -CUSTOM_MATRIX = yes MOUSEKEY_ENABLE = yes #Debug options @@ -20,7 +14,6 @@ ONLY_QWERTY = no # know what you're doing. # # No touchy, capiche? -SRC += matrix.c i2c_master.c ifeq ($(strip $(DEBUG_MATRIX)), yes) OPT_DEFS += -DDEBUG_MATRIX endif @@ -33,3 +26,5 @@ endif ifeq ($(strip $(ONLY_QWERTY)), yes) OPT_DEFS += -DONLYQWERTY endif + +SRC += sten.c diff --git a/keyboards/gboards/georgi/rules.mk b/keyboards/gboards/georgi/rules.mk index a884d8b3b9..9f66bb0d5b 100644 --- a/keyboards/gboards/georgi/rules.mk +++ b/keyboards/gboards/georgi/rules.mk @@ -7,13 +7,17 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -CUSTOM_MATRIX = yes -MOUSEKEY_ENABLE = no -STENO_ENABLE = yes -EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = yes -COMMAND_ENABLE = no +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover - +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +CUSTOM_MATRIX = yes +STENO_ENABLE = yes LTO_ENABLE = yes -SRC += matrix.c i2c_master.c sten.c + +SRC += matrix.c i2c_master.c diff --git a/keyboards/gboards/gergo/config.h b/keyboards/gboards/gergo/config.h index 9d56c0e24f..1308312950 100644 --- a/keyboards/gboards/gergo/config.h +++ b/keyboards/gboards/gergo/config.h @@ -35,13 +35,6 @@ along with this program. If not, see . #define VERBOSE -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1307 -#define DEVICE_VER 0x0001 -#define MANUFACTURER g Heavy Industries -#define PRODUCT Gergo - /* key matrix size */ #define MATRIX_ROWS 14 #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) diff --git a/keyboards/gboards/gergo/info.json b/keyboards/gboards/gergo/info.json index be52e49046..e3f8b1caff 100644 --- a/keyboards/gboards/gergo/info.json +++ b/keyboards/gboards/gergo/info.json @@ -1,7 +1,13 @@ { - "maintainer": "germ", "keyboard_name": "Gergo", + "manufacturer": "g Heavy Industries", "url": "http://gboards.ca", + "maintainer": "germ", + "usb": { + "vid": "0xFEED", + "pid": "0x1307", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_gergo": { "layout": [ diff --git a/keyboards/gboards/gergo/keymaps/colemak/keymap.c b/keyboards/gboards/gergo/keymaps/colemak/keymap.c index 35b1e0b653..b2e79114f2 100644 --- a/keyboards/gboards/gergo/keymaps/colemak/keymap.c +++ b/keyboards/gboards/gergo/keymaps/colemak/keymap.c @@ -146,8 +146,8 @@ 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); - get_highest_layer(layer_state); + //uint8_t layer = biton32(layer_state); + biton32(layer_state); }; @@ -171,3 +171,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; + diff --git a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h b/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h index 2bfb5befb3..e86d030fd7 100644 --- a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/gboards/gergoplex/config.h b/keyboards/gboards/gergoplex/config.h index 6a73ccc4ea..f118bb4017 100644 --- a/keyboards/gboards/gergoplex/config.h +++ b/keyboards/gboards/gergoplex/config.h @@ -21,13 +21,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6B0A -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER g Heavy Industries -#define PRODUCT GergoPlex - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) diff --git a/keyboards/gboards/gergoplex/info.json b/keyboards/gboards/gergoplex/info.json index 5aa696d5de..462c2434a3 100644 --- a/keyboards/gboards/gergoplex/info.json +++ b/keyboards/gboards/gergoplex/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GergoPlex", + "manufacturer": "g Heavy Industries", "url": "", "maintainer": "germ", + "usb": { + "vid": "0x6B0A", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_3": { "layout": [ diff --git a/keyboards/gboards/gergoplex/keymaps/georgepetri/config.h b/keyboards/gboards/gergoplex/keymaps/georgepetri/config.h index e2c27583fa..f66c334b85 100644 --- a/keyboards/gboards/gergoplex/keymaps/georgepetri/config.h +++ b/keyboards/gboards/gergoplex/keymaps/georgepetri/config.h @@ -27,5 +27,3 @@ along with this program. If not, see . #define COMBO_ALLOW_ACTION_KEYS #define COMBO_VARIABLE_LEN - -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/gboards/gergoplex/keymaps/georgepetri/keymap.c b/keyboards/gboards/gergoplex/keymaps/georgepetri/keymap.c index 8b832cbac8..e3b8944814 100644 --- a/keyboards/gboards/gergoplex/keymaps/georgepetri/keymap.c +++ b/keyboards/gboards/gergoplex/keymaps/georgepetri/keymap.c @@ -199,14 +199,5 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data) { } qk_tap_dance_action_t tap_dance_actions[] = { - [GAME] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ql_finished, ql_reset) + [GAME] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275) }; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: - return 275; - default: - return TAPPING_TERM; - } -} diff --git a/keyboards/geekboards/macropad_v2/config.h b/keyboards/geekboards/macropad_v2/config.h index cb671bfab7..69c87cd154 100644 --- a/keyboards/geekboards/macropad_v2/config.h +++ b/keyboards/geekboards/macropad_v2/config.h @@ -15,13 +15,6 @@ */ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0483 -#define PRODUCT_ID 0xA372 -#define DEVICE_VER 0x0002 -#define MANUFACTURER GeekBoards -#define PRODUCT Macropad v2 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/geekboards/macropad_v2/info.json b/keyboards/geekboards/macropad_v2/info.json index 770ebbb0f4..b62620af9b 100644 --- a/keyboards/geekboards/macropad_v2/info.json +++ b/keyboards/geekboards/macropad_v2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "macropad_v2", + "keyboard_name": "Macropad v2", + "manufacturer": "GeebBoards", "url": "https://geekboards.ru/", "maintainer": "ruddy17", + "usb": { + "vid": "0x0483", + "pid": "0xA372", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/geekboards/tester/config.h b/keyboards/geekboards/tester/config.h index ac3b95c7e7..47cb82f215 100644 --- a/keyboards/geekboards/tester/config.h +++ b/keyboards/geekboards/tester/config.h @@ -2,14 +2,6 @@ #include "config_common.h" - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1319 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Geekboards -#define PRODUCT Geekboards Tester - - #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/geekboards/tester/info.json b/keyboards/geekboards/tester/info.json index 9882aa6850..2da610fb3f 100644 --- a/keyboards/geekboards/tester/info.json +++ b/keyboards/geekboards/tester/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Geekboards 8-keys macropad", + "keyboard_name": "Tester", + "manufacturer": "Geekboards", "url": "", "maintainer": "moyi4681", + "usb": { + "vid": "0xFEED", + "pid": "0x1319", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/generic_panda/panda65_01/config.h b/keyboards/generic_panda/panda65_01/config.h index 9d4f0c19b4..41cf77a389 100644 --- a/keyboards/generic_panda/panda65_01/config.h +++ b/keyboards/generic_panda/panda65_01/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6770 // gp generic_panda -#define PRODUCT_ID 0x6501 // 65_01 -#define DEVICE_VER 0x0001 -#define MANUFACTURER generic_panda -#define PRODUCT panda65_01 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/generic_panda/panda65_01/info.json b/keyboards/generic_panda/panda65_01/info.json index a2ad377615..83daae6631 100644 --- a/keyboards/generic_panda/panda65_01/info.json +++ b/keyboards/generic_panda/panda65_01/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Panda65_01", + "manufacturer": "generic_panda", "url": "https://github.com/JesseLeung97/qmk_firmware/tree/master/keyboards/generic_panda/panda65_01", "maintainer": "generic_panda", + "usb": { + "vid": "0x6770", + "pid": "0x6501", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_bs": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Home", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"PGup", "x":15, "y":1}, {"label":"Caps", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15, "y":2}, {"label":"LShift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"RShift", "x":12.25, "y":3, "w":1.75}, {"label":"Up", "x":14, "y":3}, {"label":"FN", "x":15, "y":3}, {"label":"LControl", "x":0, "y":4, "w":1.5}, {"label":"LAlt", "x":2.25, "y":4, "w":1.5}, {"label":"Space", "x":3.75, "y":4, "w":7}, {"label":"RWin", "x":10.75, "y":4, "w":1.5}, {"label":"Left", "x":13, "y":4}, {"label":"Down", "x":14, "y":4}, {"label":"Right", "x":15, "y":4}] diff --git a/keyboards/genone/eclipse_65/config.h b/keyboards/genone/eclipse_65/config.h index e9869e3694..c13f04ad29 100644 --- a/keyboards/genone/eclipse_65/config.h +++ b/keyboards/genone/eclipse_65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x2222 -#define DEVICE_VER 0x0001 -#define MANUFACTURER GEN ONE LLC -#define PRODUCT Eclipse65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/genone/eclipse_65/info.json b/keyboards/genone/eclipse_65/info.json index df0607946f..72d721d612 100644 --- a/keyboards/genone/eclipse_65/info.json +++ b/keyboards/genone/eclipse_65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "eclipse_65", + "keyboard_name": "Eclipse65", + "manufacturer": "GEN ONE LLC", "url": "https://genonemerch.com", "maintainer": "rojasa1990", + "usb": { + "vid": "0xFEED", + "pid": "0x2222", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/genone/g1_65/config.h b/keyboards/genone/g1_65/config.h index 3236160c12..ecbbf6e8c4 100644 --- a/keyboards/genone/g1_65/config.h +++ b/keyboards/genone/g1_65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xE720 // GEN ONE -#define PRODUCT_ID 0x0001 // G1_65 -#define DEVICE_VER 0x0001 -#define MANUFACTURER GEN ONE LLC -#define PRODUCT G1_65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/genone/g1_65/info.json b/keyboards/genone/g1_65/info.json index c73d2d64d0..670b219380 100644 --- a/keyboards/genone/g1_65/info.json +++ b/keyboards/genone/g1_65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "G1_65", + "manufacturer": "GEN ONE LLC", "url": "https://genonemerch.com", "maintainer": "rojasa1990", + "usb": { + "vid": "0xE720", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/gentleman65/config.h b/keyboards/gentleman65/config.h index 34cd4d4899..a58111d7df 100644 --- a/keyboards/gentleman65/config.h +++ b/keyboards/gentleman65/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00FA -#define PRODUCT_ID 0x2020 -#define DEVICE_VER 0x0001 -#define MANUFACTURER JJ48_24 & Omar Afzal -#define PRODUCT Gentleman 65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/gentleman65/info.json b/keyboards/gentleman65/info.json index d42b3ff6db..3a8e6168aa 100644 --- a/keyboards/gentleman65/info.json +++ b/keyboards/gentleman65/info.json @@ -1,7 +1,13 @@ { - "name": "The Gentleman 65", + "name": "Gentleman 65", + "manufacturer": "JJ48_24 & Omar Afzal", "url": "https://jkeys.design/products/gentleman-65", "maintainer": "0marA", + "usb": { + "vid": "0x00FA", + "pid": "0x2020", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.5}, {"x":11.5, "y":4, "w":1.5}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/gentleman65/keymaps/briianpowell/keymap.c b/keyboards/gentleman65/keymaps/briianpowell/keymap.c new file mode 100644 index 0000000000..bd036c8cb2 --- /dev/null +++ b/keyboards/gentleman65/keymaps/briianpowell/keymap.c @@ -0,0 +1,96 @@ +/* Copyright 2021 Omar Afzal + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_ESC LT(_FUNC, KC_ESC) + +enum gentleman_layers { + _QWERTY, + _WORKMAN, + _FUNC, +}; + +enum gentleman_keycodes { + QWERTY = SAFE_RANGE, + WORKMAN, + FUNC, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_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_DEL, + FN_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_WORKMAN] = 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_TRNS, + KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + FN_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FUNC] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, QK_BOOT, + KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, AG_NORM, AG_SWAP, QWERTY, WORKMAN, KC_TRNS, KC_INS, + KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, KC_TRNS, KC_HOME, + KC_TRNS, KC_WH_L, KC_BTN3, KC_WH_R, KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_SAI, RGB_SAD, KC_TRNS, RGB_HUI, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_MPRV, RGB_HUD, KC_MNXT + ), +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case _FUNC: + // Vertical Scroll + clockwise ? tap_code(KC_WH_D) : tap_code(KC_WH_U); + return false; + break; + default: + // Horizontal Scroll + if ((get_mods() & MOD_BIT(KC_LSFT)) == MOD_BIT(KC_LSFT)) { + clockwise ? tap_code(KC_WH_D) : tap_code(KC_WH_U); + return false; + } + // Volume + clockwise ? tap_code(KC_AUDIO_VOL_UP) : tap_code(KC_AUDIO_VOL_DOWN); + break; + } + } + return false; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + } + + return true; +} + diff --git a/keyboards/gentleman65/keymaps/briianpowell/readme.md b/keyboards/gentleman65/keymaps/briianpowell/readme.md new file mode 100644 index 0000000000..b7c0fb5c5d --- /dev/null +++ b/keyboards/gentleman65/keymaps/briianpowell/readme.md @@ -0,0 +1,14 @@ +# Gentleman65 Keyboard Compilation + +## Features + +- Base Layers + - QWERTY + - Workman +- Entertainment Keys + +## Building and flashing + +``` +make gentleman65:briianpowell:flash +``` diff --git a/keyboards/ggkeyboards/genesis/hotswap/config.h b/keyboards/ggkeyboards/genesis/hotswap/config.h index 52f6fc8524..298d6ab354 100644 --- a/keyboards/ggkeyboards/genesis/hotswap/config.h +++ b/keyboards/ggkeyboards/genesis/hotswap/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBB00 -#define PRODUCT_ID 0xD4D3 -#define DEVICE_VER 0x0001 -#define MANUFACTURER GG Keyboards -#define PRODUCT Genesis Hotswap - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/ggkeyboards/genesis/hotswap/info.json b/keyboards/ggkeyboards/genesis/hotswap/info.json index 8843b6a4bc..149e0e1d80 100644 --- a/keyboards/ggkeyboards/genesis/hotswap/info.json +++ b/keyboards/ggkeyboards/genesis/hotswap/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Genesis Hotswap", + "manufacturer": "GG Keyboards", "url": "", "maintainer": "Spooknik", + "usb": { + "vid": "0xBB00", + "pid": "0xD4D3", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_tkl_ansi" }, diff --git a/keyboards/ggkeyboards/genesis/solder/config.h b/keyboards/ggkeyboards/genesis/solder/config.h index 6bfeaf9a54..1d4bafdd0d 100644 --- a/keyboards/ggkeyboards/genesis/solder/config.h +++ b/keyboards/ggkeyboards/genesis/solder/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBB00 -#define PRODUCT_ID 0xD4D2 -#define DEVICE_VER 0x0001 -#define MANUFACTURER GG Keyboards -#define PRODUCT Genesis Solder - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/ggkeyboards/genesis/solder/info.json b/keyboards/ggkeyboards/genesis/solder/info.json index a316ad019d..9b07ecd290 100644 --- a/keyboards/ggkeyboards/genesis/solder/info.json +++ b/keyboards/ggkeyboards/genesis/solder/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Genesis Solder", + "manufacturer": "GG Keyboards", "url": "", "maintainer": "Spooknik", + "usb": { + "vid": "0xBB00", + "pid": "0xD4D2", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/gh60/revc/config.h b/keyboards/gh60/revc/config.h index 527bf4c959..f7f85bfaf7 100644 --- a/keyboards/gh60/revc/config.h +++ b/keyboards/gh60/revc/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4335 // GEEKhack -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER geekhack -#define PRODUCT GH60 Rev C - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/gh60/revc/info.json b/keyboards/gh60/revc/info.json index 116cf233c6..1b7fb2e40b 100644 --- a/keyboards/gh60/revc/info.json +++ b/keyboards/gh60/revc/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GH60 Rev C", + "manufacturer": "geekhack", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4335", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/gh60/revc/keymaps/dbroqua/keymap.c b/keyboards/gh60/revc/keymaps/dbroqua/keymap.c index ffb87ef009..964f40f1c0 100644 --- a/keyboards/gh60/revc/keymaps/dbroqua/keymap.c +++ b/keyboards/gh60/revc/keymaps/dbroqua/keymap.c @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; void matrix_scan_user(void) { - layer_state_t layer = layer_state; + uint32_t layer = layer_state; if (layer & (1<<1)) { gh60_fn_led_on(); @@ -120,4 +120,4 @@ void matrix_scan_user(void) { } else { gh60_esc_led_off(); } -}; +}; \ No newline at end of file diff --git a/keyboards/gh60/revc/keymaps/default/keymap.c b/keyboards/gh60/revc/keymaps/default/keymap.c index 4ebc71ff4b..a8fd4f3c22 100644 --- a/keyboards/gh60/revc/keymaps/default/keymap.c +++ b/keyboards/gh60/revc/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_scan_user(void) { //Layer LED indicators - layer_state_t layer = layer_state; + uint32_t layer = layer_state; if (layer & (1<<1)) { gh60_wasd_leds_on(); diff --git a/keyboards/gh60/revc/keymaps/robotmaxtron/keymap.c b/keyboards/gh60/revc/keymaps/robotmaxtron/keymap.c index 77bf54de63..b84e7564fc 100644 --- a/keyboards/gh60/revc/keymaps/robotmaxtron/keymap.c +++ b/keyboards/gh60/revc/keymaps/robotmaxtron/keymap.c @@ -97,7 +97,7 @@ void matrix_scan_user(void) { // Layer LED indicators // ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster - layer_state_t layer = layer_state; + uint32_t layer = layer_state; if (layer & (1<<1)) { gh60_wasd_leds_on(); } else { diff --git a/keyboards/gh60/satan/config.h b/keyboards/gh60/satan/config.h index 98218d8466..487400d574 100644 --- a/keyboards/gh60/satan/config.h +++ b/keyboards/gh60/satan/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4335 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0003 -#define MANUFACTURER SATAN -#define PRODUCT GH60 Satan - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/gh60/satan/info.json b/keyboards/gh60/satan/info.json index 167025799b..bfd44c42e4 100644 --- a/keyboards/gh60/satan/info.json +++ b/keyboards/gh60/satan/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GH60 Satan", + "manufacturer": "SATAN", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4335", + "pid": "0x0002", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/gh60/satan/keymaps/addcninblue/keymap.c b/keyboards/gh60/satan/keymaps/addcninblue/keymap.c index 2b1a417fb5..5012fee56b 100644 --- a/keyboards/gh60/satan/keymaps/addcninblue/keymap.c +++ b/keyboards/gh60/satan/keymaps/addcninblue/keymap.c @@ -177,7 +177,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); if (old_layer != layer) { switch (layer) { diff --git a/keyboards/gh60/v1p3/config.h b/keyboards/gh60/v1p3/config.h index 211dff948f..6d5d56915b 100644 --- a/keyboards/gh60/v1p3/config.h +++ b/keyboards/gh60/v1p3/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Unknown -#define PRODUCT GH60 v1.3 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/gh60/v1p3/info.json b/keyboards/gh60/v1p3/info.json index 8e09949e0f..7b5ac465b9 100644 --- a/keyboards/gh60/v1p3/info.json +++ b/keyboards/gh60/v1p3/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GH60 v1.3", + "manufacturer": "Unknown", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/gh80_3000/config.h b/keyboards/gh80_3000/config.h index 71adb3e249..1476722c74 100644 --- a/keyboards/gh80_3000/config.h +++ b/keyboards/gh80_3000/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER farmakon -#define PRODUCT GH80-3000 - /* key matrix size */ #define MATRIX_ROWS 11 #define MATRIX_COLS 11 diff --git a/keyboards/gh80_3000/info.json b/keyboards/gh80_3000/info.json index abd041df67..4d9c52fced 100644 --- a/keyboards/gh80_3000/info.json +++ b/keyboards/gh80_3000/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GH80-3000", + "manufacturer": "farmakon", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x3000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":2, "y":0}, {"label":"K002", "x":3, "y":0}, {"label":"K003", "x":4, "y":0}, {"label":"K300", "x":5, "y":0}, {"label":"K301", "x":6.5, "y":0}, {"label":"K302", "x":7.5, "y":0}, {"label":"K303", "x":8.5, "y":0}, {"label":"K306", "x":9.5, "y":0}, {"label":"K307", "x":11, "y":0}, {"label":"K308", "x":12, "y":0}, {"label":"K309", "x":13, "y":0}, {"label":"K310", "x":14, "y":0}, {"label":"K004", "x":15.25, "y":0}, {"label":"K005", "x":16.25, "y":0}, {"label":"K006", "x":17.25, "y":0}, {"label":"K007", "x":18.5, "y":0}, {"label":"K008", "x":19.5, "y":0}, {"label":"K009", "x":20.5, "y":0}, {"label":"K010", "x":21.5, "y":0}, {"label":"K100", "x":0, "y":1.5}, {"label":"K101", "x":1, "y":1.5}, {"label":"K102", "x":2, "y":1.5}, {"label":"K103", "x":3, "y":1.5}, {"label":"K400", "x":4, "y":1.5}, {"label":"K401", "x":5, "y":1.5}, {"label":"K402", "x":6, "y":1.5}, {"label":"K403", "x":7, "y":1.5}, {"label":"K404", "x":8, "y":1.5}, {"label":"K405", "x":9, "y":1.5}, {"label":"K406", "x":10, "y":1.5}, {"label":"K407", "x":11, "y":1.5}, {"label":"K408", "x":12, "y":1.5}, {"label":"K409", "x":13, "y":1.5}, {"label":"K410", "x":14, "y":1.5}, {"label":"K104", "x":15.25, "y":1.5}, {"label":"K105", "x":16.25, "y":1.5}, {"label":"K106", "x":17.25, "y":1.5}, {"label":"K107", "x":18.5, "y":1.5}, {"label":"K108", "x":19.5, "y":1.5}, {"label":"K109", "x":20.5, "y":1.5}, {"label":"K110", "x":21.5, "y":1.5}, {"label":"K200", "x":0, "y":2.5, "w":1.5}, {"label":"K201", "x":1.5, "y":2.5}, {"label":"K202", "x":2.5, "y":2.5}, {"label":"K203", "x":3.5, "y":2.5}, {"label":"K500", "x":4.5, "y":2.5}, {"label":"K501", "x":5.5, "y":2.5}, {"label":"K502", "x":6.5, "y":2.5}, {"label":"K503", "x":7.5, "y":2.5}, {"label":"K505", "x":8.5, "y":2.5}, {"label":"K506", "x":9.5, "y":2.5}, {"label":"K507", "x":10.5, "y":2.5}, {"label":"K508", "x":11.5, "y":2.5}, {"label":"K509", "x":12.5, "y":2.5}, {"label":"K510", "x":13.5, "y":2.5, "w":1.5}, {"label":"K204", "x":15.25, "y":2.5}, {"label":"K205", "x":16.25, "y":2.5}, {"label":"K206", "x":17.25, "y":2.5}, {"label":"K207", "x":18.5, "y":2.5}, {"label":"K208", "x":19.5, "y":2.5}, {"label":"K209", "x":20.5, "y":2.5}, {"label":"K210", "x":21.5, "y":2.5}, {"label":"K800", "x":0, "y":3.5, "w":1.75}, {"label":"K801", "x":1.75, "y":3.5}, {"label":"K802", "x":2.75, "y":3.5}, {"label":"K803", "x":3.75, "y":3.5}, {"label":"K600", "x":4.75, "y":3.5}, {"label":"K601", "x":5.75, "y":3.5}, {"label":"K602", "x":6.75, "y":3.5}, {"label":"K603", "x":7.75, "y":3.5}, {"label":"K606", "x":8.75, "y":3.5}, {"label":"K607", "x":9.75, "y":3.5}, {"label":"K608", "x":10.75, "y":3.5}, {"label":"K609", "x":11.75, "y":3.5}, {"label":"K610", "x":12.75, "y":3.5, "w":2.25}, {"label":"K807", "x":18.5, "y":3.5}, {"label":"K808", "x":19.5, "y":3.5}, {"label":"K809", "x":20.5, "y":3.5}, {"label":"K810", "x":21.5, "y":3.5}, {"label":"K900", "x":0, "y":4.5, "w":1.25}, {"label":"K901", "x":1.25, "y":4.5}, {"label":"K902", "x":2.25, "y":4.5}, {"label":"K903", "x":3.25, "y":4.5}, {"label":"K700", "x":4.25, "y":4.5}, {"label":"K701", "x":5.25, "y":4.5}, {"label":"K702", "x":6.25, "y":4.5}, {"label":"K703", "x":7.25, "y":4.5}, {"label":"K705", "x":8.25, "y":4.5}, {"label":"K706", "x":9.25, "y":4.5}, {"label":"K707", "x":10.25, "y":4.5}, {"label":"K708", "x":11.25, "y":4.5}, {"label":"K709", "x":12.25, "y":4.5, "w":1.75}, {"label":"K710", "x":14, "y":4.5}, {"label":"K906", "x":16.25, "y":4.5}, {"label":"K907", "x":18.5, "y":4.5}, {"label":"K908", "x":19.5, "y":4.5}, {"label":"K909", "x":20.5, "y":4.5}, {"label":"K910", "x":21.5, "y":4.5}, {"label":"KA00", "x":0, "y":5.5, "w":1.5}, {"label":"KA01", "x":1.5, "y":5.5}, {"label":"KA02", "x":2.5, "y":5.5, "w":1.5}, {"label":"KA03", "x":4, "y":5.5}, {"label":"K804", "x":5, "y":5.5, "w":2}, {"label":"K805", "x":7, "y":5.5}, {"label":"K806", "x":8, "y":5.5, "w":2}, {"label":"K604", "x":10, "y":5.5}, {"label":"K605", "x":11, "y":5.5, "w":1.5}, {"label":"K904", "x":12.5, "y":5.5}, {"label":"K905", "x":13.5, "y":5.5, "w":1.5}, {"label":"KA04", "x":15.25, "y":5.5}, {"label":"KA05", "x":16.25, "y":5.5}, {"label":"KA06", "x":17.25, "y":5.5}, {"label":"KA07", "x":18.5, "y":5.5}, {"label":"KA08", "x":19.5, "y":5.5}, {"label":"KA09", "x":20.5, "y":5.5}, {"label":"KA10", "x":21.5, "y":5.5}] diff --git a/keyboards/ghs/rar/config.h b/keyboards/ghs/rar/config.h index d97e8841f1..33ce4f0e5c 100644 --- a/keyboards/ghs/rar/config.h +++ b/keyboards/ghs/rar/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0645 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Gone Hacking Studio -#define PRODUCT GHS.RAR - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 8 diff --git a/keyboards/ghs/rar/info.json b/keyboards/ghs/rar/info.json index ed362b40f6..2f5a75a4f4 100644 --- a/keyboards/ghs/rar/info.json +++ b/keyboards/ghs/rar/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GHS.RAR", + "manufacturer": "Gone Hacking Studio", "url": "https://gonehacking.studio/", "maintainer": "Gone Hacking Studio", + "usb": { + "vid": "0x0645", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/gizmo_engineering/gk6/config.h b/keyboards/gizmo_engineering/gk6/config.h index f437840f91..5bc2e400bf 100755 --- a/keyboards/gizmo_engineering/gk6/config.h +++ b/keyboards/gizmo_engineering/gk6/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6532 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x3031 -#define MANUFACTURER Gizmo Engineering -#define PRODUCT GK6 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/gizmo_engineering/gk6/info.json b/keyboards/gizmo_engineering/gk6/info.json index ffd59e41b1..8dfdfbf93b 100755 --- a/keyboards/gizmo_engineering/gk6/info.json +++ b/keyboards/gizmo_engineering/gk6/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Gizmo Engineering GK6", + "keyboard_name": "GK6", + "manufacturer": "Gizmo Engineering", "url": "https://gizmo.engineering/", "maintainer": "federicoweber", + "usb": { + "vid": "0x6532", + "pid": "0x0001", + "device_version": "30.3.1" + }, "layouts": { "LAYOUT_gk6_2x2u": { "layout": [ diff --git a/keyboards/gkeyboard/gkb_m16/config.h b/keyboards/gkeyboard/gkb_m16/config.h index 690ecf42d1..3e89084879 100644 --- a/keyboards/gkeyboard/gkb_m16/config.h +++ b/keyboards/gkeyboard/gkb_m16/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x474B // "GK" -#define PRODUCT_ID 0x4201 -#define DEVICE_VER 0x0001 -#define MANUFACTURER gkeyboard -#define PRODUCT GKB-M16 /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/gkeyboard/gkb_m16/info.json b/keyboards/gkeyboard/gkb_m16/info.json index 1a3817b88b..ff299c5b89 100644 --- a/keyboards/gkeyboard/gkb_m16/info.json +++ b/keyboards/gkeyboard/gkb_m16/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "gkb_m16", + "keyboard_name": "GKB-M16", + "manufacturer": "gkeyboard", "url": "", "maintainer": "gkeyboard", + "usb": { + "vid": "0x474B", + "pid": "0x4201", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [ diff --git a/keyboards/gl516/a52gl/config.h b/keyboards/gl516/a52gl/config.h index c9f54e0928..8c7ea45bbd 100644 --- a/keyboards/gl516/a52gl/config.h +++ b/keyboards/gl516/a52gl/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE8D1 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Salicylic_Acid -#define PRODUCT a52gl - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 7 diff --git a/keyboards/gl516/a52gl/info.json b/keyboards/gl516/a52gl/info.json index b2332c0eda..39f872e5cf 100644 --- a/keyboards/gl516/a52gl/info.json +++ b/keyboards/gl516/a52gl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "a52gl", + "manufacturer": "Salicylic_Acid", "url": "https://salicylic-acid3.hatenablog.com/", "maintainer": "Salicylic_acid3", + "usb": { + "vid": "0x04D8", + "pid": "0xE8D1", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gl516/j73gl/config.h b/keyboards/gl516/j73gl/config.h index 50d745ebb1..01dc309a5c 100644 --- a/keyboards/gl516/j73gl/config.h +++ b/keyboards/gl516/j73gl/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE8D0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Salicylic_Acid -#define PRODUCT j73gl - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/gl516/j73gl/info.json b/keyboards/gl516/j73gl/info.json index 32b771c983..4ef656f230 100644 --- a/keyboards/gl516/j73gl/info.json +++ b/keyboards/gl516/j73gl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "j73gl", + "manufacturer": "Salicylic_Acid", "url": "https://salicylic-acid3.hatenablog.com/", "maintainer": "Salicylic_acid3", + "usb": { + "vid": "0x04D8", + "pid": "0xE8D0", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gl516/n51gl/config.h b/keyboards/gl516/n51gl/config.h index ea50fcfa1a..69e770a6b9 100644 --- a/keyboards/gl516/n51gl/config.h +++ b/keyboards/gl516/n51gl/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE8CF -#define DEVICE_VER 0x0001 -#define MANUFACTURER Salicylic_Acid -#define PRODUCT n51gl - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 7 diff --git a/keyboards/gl516/n51gl/info.json b/keyboards/gl516/n51gl/info.json index 6c94d32e30..99ae8d764f 100644 --- a/keyboards/gl516/n51gl/info.json +++ b/keyboards/gl516/n51gl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "n51gl", + "manufacturer": "Salicylic_Acid", "url": "https://salicylic-acid3.hatenablog.com/", "maintainer": "Salicylic_acid3", + "usb": { + "vid": "0x04D8", + "pid": "0xE8CF", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/glenpickle/chimera_ergo/config.h b/keyboards/glenpickle/chimera_ergo/config.h index 616d8af24e..e7492f7297 100644 --- a/keyboards/glenpickle/chimera_ergo/config.h +++ b/keyboards/glenpickle/chimera_ergo/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER unknown -#define PRODUCT Chimera Ergo - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 12 diff --git a/keyboards/glenpickle/chimera_ergo/info.json b/keyboards/glenpickle/chimera_ergo/info.json index 28a9689bae..26faa0343a 100644 --- a/keyboards/glenpickle/chimera_ergo/info.json +++ b/keyboards/glenpickle/chimera_ergo/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Chimera Ergo", + "manufacturer": "Unknown", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"k00", "x":0, "y":1}, {"label":"k01", "x":1, "y":0.75}, {"label":"k02", "x":2, "y":0.25}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0.25}, {"label":"k05", "x":5, "y":0.5}, {"label":"k06", "x":7, "y":0.5}, {"label":"k07", "x":8, "y":0.25}, {"label":"k08", "x":9, "y":0}, {"label":"k09", "x":10, "y":0.25}, {"label":"k10", "x":11, "y":0.75}, {"label":"k11", "x":12, "y":1}, {"label":"k12", "x":0, "y":2}, {"label":"k13", "x":1, "y":1.75}, {"label":"k14", "x":2, "y":1.25}, {"label":"k15", "x":3, "y":1}, {"label":"k16", "x":4, "y":1.25}, {"label":"k17", "x":5, "y":1.5}, {"label":"k18", "x":7, "y":1.5}, {"label":"k19", "x":8, "y":1.25}, {"label":"k20", "x":9, "y":1}, {"label":"k21", "x":10, "y":1.25}, {"label":"k22", "x":11, "y":1.75}, {"label":"k23", "x":12, "y":2}, {"label":"k24", "x":0, "y":3}, {"label":"k25", "x":1, "y":2.75}, {"label":"k26", "x":2, "y":2.25}, {"label":"k27", "x":3, "y":2}, {"label":"k28", "x":4, "y":2.25}, {"label":"k29", "x":5, "y":2.5}, {"label":"k30", "x":7, "y":2.5}, {"label":"k31", "x":8, "y":2.25}, {"label":"k32", "x":9, "y":2}, {"label":"k33", "x":10, "y":2.25}, {"label":"k34", "x":11, "y":2.75}, {"label":"k35", "x":12, "y":3}, {"label":"k36", "x":0, "y":4}, {"label":"k37", "x":1, "y":3.75}, {"label":"k38", "x":2, "y":3.25}, {"label":"k39", "x":3, "y":3}, {"label":"k40", "x":4, "y":3.25}, {"label":"k41", "x":5, "y":3.5}, {"label":"k42", "x":7, "y":3.5}, {"label":"k43", "x":8, "y":3.25}, {"label":"k44", "x":9, "y":3}, {"label":"k45", "x":10, "y":3.25}, {"label":"k46", "x":11, "y":3.75}, {"label":"k47", "x":12, "y":4}, {"label":"k48", "x":4, "y":4.75}, {"label":"k49", "x":5, "y":5}, {"label":"k50", "x":7, "y":5}, {"label":"k51", "x":8, "y":4.75}] diff --git a/keyboards/glenpickle/chimera_ergo/keymaps/default/keymap.c b/keyboards/glenpickle/chimera_ergo/keymaps/default/keymap.c index dd7e32f7dc..51ab0e92cd 100644 --- a/keyboards/glenpickle/chimera_ergo/keymaps/default/keymap.c +++ b/keyboards/glenpickle/chimera_ergo/keymaps/default/keymap.c @@ -131,7 +131,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _QWERTY: diff --git a/keyboards/glenpickle/chimera_ls/config.h b/keyboards/glenpickle/chimera_ls/config.h index f5da32e3c3..581f133571 100644 --- a/keyboards/glenpickle/chimera_ls/config.h +++ b/keyboards/glenpickle/chimera_ls/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER unknown -#define PRODUCT Chimera Lets Split - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/glenpickle/chimera_ls/info.json b/keyboards/glenpickle/chimera_ls/info.json index b6585a5c28..02b9aba091 100644 --- a/keyboards/glenpickle/chimera_ls/info.json +++ b/keyboards/glenpickle/chimera_ls/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Chimera LS", + "keyboard_name": "Chimera Lets Split", + "manufacturer": "Unknown", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "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":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}] diff --git a/keyboards/glenpickle/chimera_ls/keymaps/default/keymap.c b/keyboards/glenpickle/chimera_ls/keymaps/default/keymap.c index 1ae70e6245..0affeef389 100644 --- a/keyboards/glenpickle/chimera_ls/keymaps/default/keymap.c +++ b/keyboards/glenpickle/chimera_ls/keymaps/default/keymap.c @@ -158,7 +158,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _QWERTY: diff --git a/keyboards/glenpickle/chimera_ortho/config.h b/keyboards/glenpickle/chimera_ortho/config.h index 8ae25c1eb4..1310866fbb 100644 --- a/keyboards/glenpickle/chimera_ortho/config.h +++ b/keyboards/glenpickle/chimera_ortho/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER unknown -#define PRODUCT Chimera Ortho - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 10 diff --git a/keyboards/glenpickle/chimera_ortho/info.json b/keyboards/glenpickle/chimera_ortho/info.json index 73e15c64f3..ac4ecfb201 100644 --- a/keyboards/glenpickle/chimera_ortho/info.json +++ b/keyboards/glenpickle/chimera_ortho/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Chimera Ortho", + "manufacturer": "Unknown", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/glenpickle/chimera_ortho/keymaps/default/keymap.c b/keyboards/glenpickle/chimera_ortho/keymaps/default/keymap.c index bc783f540c..6a676493dd 100644 --- a/keyboards/glenpickle/chimera_ortho/keymaps/default/keymap.c +++ b/keyboards/glenpickle/chimera_ortho/keymaps/default/keymap.c @@ -151,7 +151,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _QWERTY: diff --git a/keyboards/glenpickle/chimera_ortho_plus/config.h b/keyboards/glenpickle/chimera_ortho_plus/config.h index 4846a1b20d..e7492f7297 100644 --- a/keyboards/glenpickle/chimera_ortho_plus/config.h +++ b/keyboards/glenpickle/chimera_ortho_plus/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xDE1D -#define DEVICE_VER 0x0001 -#define MANUFACTURER unknown -#define PRODUCT Chimera Ortho Plus - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 12 diff --git a/keyboards/glenpickle/chimera_ortho_plus/info.json b/keyboards/glenpickle/chimera_ortho_plus/info.json index 29a2c2a634..fb7dfbbf6c 100644 --- a/keyboards/glenpickle/chimera_ortho_plus/info.json +++ b/keyboards/glenpickle/chimera_ortho_plus/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Chimera Ortho Plus", + "manufacturer": "Unknown", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xDE1D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/caps_word.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/caps_word.c deleted file mode 100644 index d2f7b6ee7f..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/caps_word.c +++ /dev/null @@ -1,150 +0,0 @@ -// Copyright 2021-2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// -// For full documentation, see -// https://getreuer.info/posts/keyboards/caps-word - -#include "caps_word.h" - -static bool caps_word_active = false; - -#if CAPS_WORD_IDLE_TIMEOUT > 0 -#if CAPS_WORD_IDLE_TIMEOUT < 100 || CAPS_WORD_IDLE_TIMEOUT > 30000 -// Constrain timeout to a sensible range. With the 16-bit timer, the longest -// representable timeout is 32768 ms, rounded here to 30000 ms = half a minute. -#error "caps_word: CAPS_WORD_IDLE_TIMEOUT must be between 100 and 30000 ms" -#endif - -static uint16_t idle_timer = 0; - -void caps_word_task(void) { - if (caps_word_active && timer_expired(timer_read(), idle_timer)) { - caps_word_set(false); - } -} -#endif // CAPS_WORD_IDLE_TIMEOUT > 0 - -bool process_caps_word(uint16_t keycode, keyrecord_t* record) { -#ifndef NO_ACTION_ONESHOT - const uint8_t mods = get_mods() | get_oneshot_mods(); -#else - const uint8_t mods = get_mods(); -#endif // NO_ACTION_ONESHOT - - if (!caps_word_active) { - // Pressing both shift keys at the same time enables caps word. - if ((mods & MOD_MASK_SHIFT) == MOD_MASK_SHIFT) { - caps_word_set(true); // Activate Caps Word. - return false; - } - return true; - } else { -#if CAPS_WORD_IDLE_TIMEOUT > 0 - idle_timer = record->event.time + CAPS_WORD_IDLE_TIMEOUT; -#endif // CAPS_WORD_IDLE_TIMEOUT > 0 - } - - if (!record->event.pressed) { return true; } - - if (!(mods & ~MOD_MASK_SHIFT)) { - switch (keycode) { - // Ignore MO, TO, TG, TT, and OSL layer switch keys. - case QK_MOMENTARY ... QK_MOMENTARY_MAX: - case QK_TO ... QK_TO_MAX: - case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: - case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: - case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: - return true; - -#ifndef NO_ACTION_TAPPING - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - if (record->tap.count == 0) { - // Deactivate if a mod becomes active through holding a mod-tap key. - caps_word_set(false); - return true; - } - keycode &= 0xff; - break; - -#ifndef NO_ACTION_LAYER - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: -#endif // NO_ACTION_LAYER - if (record->tap.count == 0) { return true; } - keycode &= 0xff; - break; -#endif // NO_ACTION_TAPPING - -#ifdef SWAP_HANDS_ENABLE - case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: - if (keycode > 0x56F0 || record->tap.count == 0) { return true; } - keycode &= 0xff; - break; -#endif // SWAP_HANDS_ENABLE - } - - if (caps_word_press_user(keycode)) { - return true; - } - } - - caps_word_set(false); // Deactivate Caps Word. - return true; -} - -void caps_word_set(bool active) { - if (active != caps_word_active) { - if (active) { - clear_mods(); -#ifndef NO_ACTION_ONESHOT - clear_oneshot_mods(); -#endif // NO_ACTION_ONESHOT -#if CAPS_WORD_IDLE_TIMEOUT > 0 - idle_timer = timer_read() + CAPS_WORD_IDLE_TIMEOUT; -#endif // CAPS_WORD_IDLE_TIMEOUT > 0 - } else if ((get_weak_mods() & MOD_BIT(KC_LSFT)) != 0) { - // If the weak shift mod is still on, turn it off and send an update to - // the host computer. - del_weak_mods(MOD_BIT(KC_LSFT)); - send_keyboard_report(); - } - - caps_word_active = active; - caps_word_set_user(active); - } -} - -bool caps_word_get(void) { return caps_word_active; } - -__attribute__((weak)) void caps_word_set_user(bool active) {} - -__attribute__((weak)) 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 the next key. - return true; - - // Keycodes that continue Caps Word, without shifting. - case KC_1 ... KC_0: - case KC_BSPC: - case KC_MINS: - case KC_UNDS: - return true; - - default: - return false; // Deactivate Caps Word. - } -} - diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/caps_word.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/caps_word.h deleted file mode 100644 index 7f58dd3f17..0000000000 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/caps_word.h +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2021-2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// -// Caps Word, activated by pressing both shift keys at the same time. -// -// This library implements "Caps Word", which is like conventional Caps Lock, -// but automatically disables itself at the end of the word. This is useful for -// typing all-caps identifiers like `MOD_MASK_ALT`. -// -// Caps Word is activated by pressing the left and right shift keys at the same -// time. This way you don't need a dedicated key for using Caps Word. I've -// tested that this works as expected with one-shot mods and Space Cadet Shift. -// If your shift keys are mod-taps, activate Caps Word by holding both shift -// mod-tap keys until the tapping term, release them, then begin typing. -// -// Optionally, Caps Word may be configured to deactivate if the keyboard is idle -// for some time. This is useful to mitigate unintended shifting when you get -// interrupted or switch to the mouse while Caps Word is active. In your -// config.h, define `CAPS_WORD_IDLE_TIMEOUT` with a time in milliseconds: -// -// #define CAPS_WORD_IDLE_TIMEOUT 5000 // Turn off Caps Word after 5 seconds. -// -// and in your keymap.c, define (or add to) `matrix_scan_user()` as -// -// void matrix_scan_user(void) { -// caps_word_task(); -// // Other tasks... -// } -// -// For full documentation, see -// https://getreuer.info/posts/keyboards/caps-word - -#pragma once - -#include QMK_KEYBOARD_H - -// Call this function from `process_record_user()` to implement Caps Word. -bool process_caps_word(uint16_t keycode, keyrecord_t* record); - -// If CAPS_WORD_IDLE_TIMEOUT is set, call `caps_word_task()` from -// `matrix_scan_user()` as described above. -// -// If CAPS_WORD_IDLE_TIMEOUT isn't set, calling this function has no effect (but -// will still compile). -#if CAPS_WORD_IDLE_TIMEOUT > 0 -void caps_word_task(void); -#else -static inline void caps_word_task(void) {} -#endif - -// Activates or deactivates Caps Word. For instance activate Caps Word with a -// combo by defining a `COMBO_ACTION` that calls `caps_word_set(true)`: -// -// void process_combo_event(uint16_t combo_index, bool pressed) { -// switch(combo_index) { -// case CAPS_COMBO: -// if (pressed) { -// caps_word_set(true); // Activate Caps Word. -// } -// break; -// -// // Other combos... -// } -// } -void caps_word_set(bool active); - -// Returns whether Caps Word is currently active. -bool caps_word_get(void); - -// An optional callback that gets called when Caps Word turns on or off. This is -// useful to represent the current Caps Word state, e.g. by setting an LED or -// playing a sound. In your keymap, define -// -// void caps_word_set_user(bool active) { -// if (active) { -// // Do something when Caps Word activates. -// } else { -// // Do something when Caps Word deactivates. -// } -// } -void caps_word_set_user(bool active); - -// An optional callback which is called on every key press while Caps Word is -// active. When the key should be shifted (that is, a letter key), the callback -// should call `add_weak_mods(MOD_BIT(KC_LSFT))` to shift the key. The callback -// also determines whether the key should continue Caps Word. Returning true -// continues the current "word", while returning false is "word breaking" and -// deactivates Caps Word. The default callback is -// -// 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 the next key. -// return true; -// -// // Keycodes that continue Caps Word, without shifting. -// case KC_1 ... KC_0: -// case KC_BSPC: -// case KC_MINS: -// case KC_UNDS: -// return true; -// -// default: -// return false; // Deactivate Caps Word. -// } -// } -// -// To customize, copy the above function into your keymap and add/remove -// keycodes to the above cases. -// -// NOTE: Outside of this callback, you can use `caps_word_set(false)` to -// deactivate Caps Word. -bool caps_word_press_user(uint16_t keycode); - diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h index 582e473cb2..a37fb08d31 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h @@ -1,5 +1,5 @@ /* Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 + Copyright 2022 gourdo1 This 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,10 +17,21 @@ along with this program. If not, see . #pragma once -#define TAPPING_TOGGLE 2 -// TT set to two taps +// Force n-key rollover +#define FORCE_NKRO -/* Handle GRAVESC combo keys */ +// Set TT to two taps +#define TAPPING_TOGGLE 2 + +#ifdef COMMAND_ENABLE +#define IS_COMMAND() (get_mods() == MOD_MASK_CTRL) //debug commands accessed by holding down both CTRLs: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_command.md +#endif + +// Caps Word configuration +#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD +#define CAPS_WORD_IDLE_TIMEOUT 10000 // Automatically turn off after x milliseconds of idle. 0 to never timeout. + +// Handle GRAVESC combo keys #define GRAVE_ESC_ALT_OVERRIDE // Always send Escape if Alt is pressed #define GRAVE_ESC_CTRL_OVERRIDE @@ -31,19 +42,79 @@ along with this program. If not, see . #define TAPPING_TERM_PER_KEY #ifdef RGB_MATRIX_ENABLE -#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR -#define RGB_DISABLE_WHEN_USB_SUSPENDED -#endif + #define RGB_DISABLE_WHEN_USB_SUSPENDED + #define RGB_MATRIX_KEYPRESSES // Enables REACTIVE & SPLASH modes + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables Heatmap, Rain -// RGB step values -#define RGBLIGHT_HUE_STEP 32 // The number of steps to cycle through the hue by (default 10) -#define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by (default 17) -#define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by (default 17) + // RGB step values + #define RGBLIGHT_HUE_STEP 32 // The number of steps to cycle through the hue by (default 10) + #define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by (default 17) + #define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by (default 17) -// add fifth layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable + // Startup values, when none have been set + #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_REACTIVE // Sets the default effect mode, if none has been set (was RGB_MATRIX_SOLID_COLOR) + #define RGB_MATRIX_STARTUP_HUE 24 // Sets the default hue value, if none has been set + #define RGB_MATRIX_STARTUP_SAT 255 // Sets the default saturation value, if none has been set + #define RGB_MATRIX_STARTUP_VAL 127 // Sets the default brightness value, if none has been set + #define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set + + // Uncomment any #undef line below to turn OFF any default enabled RGB background effect (enabled in keyboards/gmmk/pro/config.h). + #undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Solid color (seems redundant; seems same as RGB_MATRIX_SOLID_COLOR?) + //#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static, horizontal rainbow + //#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static, vertical Rainbow + //#undef ENABLE_RGB_MATRIX_BREATHING // Breathing animation using selected HSV color + #undef ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right (with white) + //#undef ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right (with black) + #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades sat (with white) + //#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness (with black) + #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades brightness (with white) + //#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness (with black) + //#undef ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard cycling through rainbow + //#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient moving left to right + //#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom + #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient chevron scrolling left to right (too similar to cycle left right) + //#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Rainbow circles coming to center. + #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Two Rainbow circles coming to 1/3 and 2/3 points. (seems mostly redundant with above) + #undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Built-in cycling pinwheel (seems redundant with below) + //#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard + #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON // Spinning rainbow (more distracting transitions) + //#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Spinning rainbow (smoother) + #undef ENABLE_RGB_MATRIX_DUAL_BEACON // Two rainbows spinning around keyboard (distracting, busy) + #undef ENABLE_RGB_MATRIX_RAINDROPS // Sustained raindrops of blue, green, yellow (confusing to use with RGB layers) + //#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Sustained raindrops of blue, purple, pink, green (confusing to use with RGB layers, but slightly better than above) + #undef ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back (very subtle) + #undef ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left (very subtle) + #undef ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right (very subtle) + //#undef ENABLE_RGB_MATRIX_PIXEL_RAIN // Non-sustained raindrops of pastel colors + #undef ENABLE_RGB_MATRIX_PIXEL_FLOW // More active version of pixel rain with quick cycling (unusable, very distracting) + #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Same as Pixel Flow but with current HSV only (somewhat distracting) + //Only enabled if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined + //#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP // Fading heatmap that follows keystrokes (has buggy side LEDs that glow red) + //#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN // The Matrix (has buggy side LEDs that glow red) + //Only enabled if RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Key hits shown in current hue - all other keys black + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Keyboard lights up in chosen hue, key hits shown in complementary hue (try this as default?) + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse around a single key hit then fades value out (Single key) + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // same as above but more intense (Multi-key) + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Column and Row single current color fade (Single key) + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Column and Row single color fade. (Multi-key) + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of key hit then fades (Single key) + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multi-key hit then fades + //#undef ENABLE_RGB_MATRIX_SPLASH // Full rainbow pulses from key hit. All else black. + #undef ENABLE_RGB_MATRIX_MULTISPLASH // Full rainbow pulses from multi-keys. All else black. (distracting on multiple keystroke hits) + #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // Single color pulses from key hit. All else black. (distracting on multiple key hits) + //#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Single color pulses from muli-keys. All else black. +#endif //RGB_MATRIX_ENABLE + +// Add a layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable #if defined COLEMAK_LAYER_ENABLE -#define DYNAMIC_KEYMAP_LAYER_COUNT 5 -#define _COLEMAK 4 + #ifdef GAME_ENABLE + #define DYNAMIC_KEYMAP_LAYER_COUNT 6 + #define _COLEMAK 5 + #else + #define DYNAMIC_KEYMAP_LAYER_COUNT 5 + #define _COLEMAK 4 + #endif //GAME_ENABLE #endif // COLEMAK_LAYER_ENABLE /* diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c index 97db98dd12..050152b47d 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c @@ -1,7 +1,7 @@ /* Copyright 2021 Glorious, LLC Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 - + Copyright 2022 gourdo1 + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or @@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -// Note: Several advanced functions referenced in this file (like Tap Dance functions) are defined in users/gourdo1/gourdo1.c +// Note: Several advanced functions referenced in this file (like Tap Dance functions) are defined in /users/gourdo1/gourdo1.c #include QMK_KEYBOARD_H @@ -24,6 +24,10 @@ along with this program. If not, see . #include "gourdo1.h" +#include "paddlegame.h" + +#include + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base Layout @@ -44,39 +48,60 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_BASE] = LAYOUT( - KC_ESCLYR, KC_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_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_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LEFTOFENC, ENCFUNC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, BELOWENC, KC_TAB, KC_Q, KC_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, - TT(_NUMPADMOUSE), KC_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_LSFTCAPSWIN, KC_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, + CAPSNUM, KC_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, + LSFTCAPSWIN, KC_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(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), /* FN1 Layout * * ,-------------------------------------------------------------------------------------------------------------. - * | Esc ||MyCmp |WbHom | Calc |MdSel ||MdPrv |MdNxt |MdPly |MdStp ||VolDn |VolUp |PrScr |ScrLk ||Pause || ____ | + * | Esc ||MyCmp |WbHom | Calc |MdSel ||MdPrv |MdNxt |MdPly |MdStp ||VolDn |VolUp |PrScr |ScrLk ||Pause ||Sleep | * |=============================================================================================================| * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |RGBTOD|RGBTOI| ________ ||RGBTOG| * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| - * | ______ |RGBSAD|RGBVAI|RGBSAI| NKRO | ____ |YAHOO | ____ | ____ |OUTLK |Pause | ____ | ____ | Reset || Home | + * | ______ |RGBSAD|RGBVAI|RGBSAI| NKRO | ____ |YAHOO | ____ | ____ |OUTLK |Pause | ____ | ____ |QK_BOOT|| Home | * |---------+------+------+------+------+------+------+------+------+------+------+------+------+-------++------| * | Capslock |RGBHUD|RGBVAD|RGBHUI| ____|GMAIL |HTMAIL| ____ | ____ | ____ | ____ | ____ | __________ || End | * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| - * | __________ |RGBNIT| ____ | ____ | ____ | ____ |NumLk | ____ | ____ |DOTCOM| ____ | ______ ||RGBMOD|| ____ | + * | __________ |RGBNIT| ____ | ____ | ____ | ____ |NumLk | ____ | ____ |DOTCOM| CAD | ______ ||RGBMOD|| ____ | * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| * | ____ | WinKyLk | ____ | _____ | ____ | ____ | ____ ||RGBSPD|RGBRMD|RGBSPI| * `------------------------------------------------------------------------------------------------------------' */ + #ifdef GAME_ENABLE [_FN1] = LAYOUT( - EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, - _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, RESET, KC_HOME, - KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, _______, _______, _______, _______, KC_END, - _______, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, + EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP, + PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, + _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, TG(_GAME),SWAP_L, SWAP_R, QK_BOOT, KC_HOME, + KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END, + _______, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, + _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + ), + + [_GAME] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + #else + [_FN1] = LAYOUT( + EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP, + PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, + _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, QK_BOOT, KC_HOME, + KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END, + _______, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI ), + #endif //GAME_ENABLE /* _NUMPADMOUSE Layout * Note: A symbol preceded by "P" is a Numpad-encoded version of the key -- any app that differentiates will recognize the char as coming from a physical numpad. @@ -101,7 +126,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, KC_WH_U, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PAST, _______, KC_PENT, KC_WH_D, _______, KC_NO, _______, _______, _______, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, KC_BTN1, KC_MS_U, KC_BTN2, - _______, _______, _______, _______, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R + _______, _______, _______, KC_PENT, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R ), [_MOUSEKEY] = LAYOUT( @@ -115,19 +140,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef COLEMAK_LAYER_ENABLE [_COLEMAK] = 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_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_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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_PGDN, - _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - _______, _______, _______, KC_SPC, KC_RALT, _______,KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), + _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_PGDN, + _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + _______, _______, _______, KC_SPC, KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), #endif // COLEMAK_LAYER_ENABLE }; #if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults void encoder_action_rgbhue(bool clockwise) { - if (clockwise) + if (clockwise) rgblight_increase_hue_noeeprom(); else rgblight_decrease_hue_noeeprom(); @@ -154,6 +179,18 @@ bool encoder_update_user(uint8_t index, bool clockwise) { timeout_update_threshold(clockwise); #endif break; + #ifdef GAME_ENABLE + case _GAME: + // Game: Paddle movement + if (damage_count == 0) { + if (clockwise) { + if (paddle_pos_full < 15) ++paddle_pos_full; + } else { + if (paddle_pos_full > 0) --paddle_pos_full; + } + } + break; + #endif //GAME_ENABLE default: encoder_action_volume(clockwise); // Otherwise it just changes volume break; @@ -165,6 +202,45 @@ bool encoder_update_user(uint8_t index, bool clockwise) { #endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE #ifdef RGB_MATRIX_ENABLE + +// Game logic +#ifdef GAME_ENABLE +void init_ball(uint8_t i) { + i &= 1; + ball[i].on = true; + ball[i].up = false; + ball[i].y = 0; + ball[i].x = rand() % 16; + + // Set initial ball state + if (ball[i].x < 8) { + ball[i].left = false; + } else { + ball[i].x -= 4; + ball[i].left = true; + } + + // 1/4 chance of being an enemy ball after level 6 + if (level_number > 3) { + ball[i].enemy = ((rand() % 4) == 0); + } else { + ball[i].enemy = false; + } +} + +void hurt_paddle(void) { + if (paddle_lives > 0) { + --paddle_lives; + } + damage_timer = timer_read(); + damage_count = 10; + + // Reset board + init_ball(0); + ball[1].on = false; +} +#endif //GAME_ENABLE + // Capslock, Scroll lock and Numlock indicator on Left side lights. void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); @@ -174,6 +250,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { rgb_matrix_set_color(LED_L3, RGB_RED); rgb_matrix_set_color(LED_L4, RGB_RED); rgb_matrix_set_color(LED_TAB, RGB_RED); + rgb_matrix_set_color(LED_F12, RGB_RED); } // System NumLock warning indicator RGB setup @@ -197,12 +274,19 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // CapsLock RGB setup if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { - for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_LETTERS); i++) { - rgb_matrix_set_color(LED_LIST_LETTERS[i], RGB_CHARTREUSE); + if (user_config.rgb_hilite_caps) { + for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_LETTERS); i++) { + rgb_matrix_set_color(LED_LIST_LETTERS[i], RGB_CHARTREUSE); + } + rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE); + } + else { + rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE); } - rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE); } // Winkey disabled (gaming) mode RGB setup @@ -239,9 +323,9 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { rgb_matrix_set_color(LED_LALT, RGB_RED); rgb_matrix_set_color(LED_SPC, RGB_RED); rgb_matrix_set_color(LED_LWIN, RGB_RED); - rgb_matrix_set_color(LED_RALT, RGB_RED); + //rgb_matrix_set_color(LED_RALT, RGB_RED); rgb_matrix_set_color(LED_FN, RGB_OFFBLUE); - rgb_matrix_set_color(LED_RCTL, RGB_RED); + //rgb_matrix_set_color(LED_RCTL, RGB_RED); rgb_matrix_set_color(LED_BSLS, RGB_RED); rgb_matrix_set_color(LED_L1, RGB_RED); rgb_matrix_set_color(LED_L2, RGB_RED); @@ -264,37 +348,90 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { rgb_matrix_set_color(LED_R8, RGB_RED); rgb_matrix_set_color(LED_MINS, RGB_OFFBLUE); rgb_matrix_set_color(LED_EQL, RGB_OFFBLUE); + #ifdef GAME_ENABLE + rgb_matrix_set_color(LED_P, RGB_CHARTREUSE); + #else + rgb_matrix_set_color(LED_P, RGB_RED); + #endif // GAME_ENABLE + + //Add RGB statuses for user.config toggles + if (user_config.rgb_hilite_caps) { + rgb_matrix_set_color(LED_1, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_1, RGB_PURPLE); + } + if (user_config.rgb_hilite_numpad) { + rgb_matrix_set_color(LED_2, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_2, RGB_PURPLE); + } + if (user_config.esc_double_tap_to_baselyr) { + rgb_matrix_set_color(LED_3, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_3, RGB_PURPLE); + } + if (user_config.del_right_home_top) { + rgb_matrix_set_color(LED_4, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_4, RGB_PURPLE); + } + if (user_config.double_tap_shift_for_capslock) { + rgb_matrix_set_color(LED_5, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_5, RGB_PURPLE); + } + if (user_config.encoder_press_mute_or_media) { + rgb_matrix_set_color(LED_6, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_6, RGB_PURPLE); + } + if (user_config.ins_on_shft_bkspc_or_del) { + rgb_matrix_set_color(LED_7, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_7, RGB_PURPLE); + } + if (user_config.disable_space_mods) { + rgb_matrix_set_color(LED_8, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_8, RGB_PURPLE); + } // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code uint16_t timeout_threshold = get_timeout_threshold(); - if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_CYAN); + if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_BLUE); else if (timeout_threshold < 140) { rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_CYAN); - rgb_matrix_set_color(LED_LIST_NUMROW[(timeout_threshold % 10)], RGB_CYAN); + rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold % 10)], RGB_BLUE); } else { // >= 140 minutes, just show these 3 lights - rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_CYAN); - rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_CYAN); - rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_CYAN); + rgb_matrix_set_color(LED_LIST_FUNCROW[10], RGB_CYAN); + rgb_matrix_set_color(LED_LIST_FUNCROW[11], RGB_CYAN); + rgb_matrix_set_color(LED_LIST_FUNCROW[12], RGB_CYAN); } break; // Numpad & Mouse Keys overlay RGB case _NUMPADMOUSE: - for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_NUMPAD); i++) { - rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_OFFBLUE); + if (user_config.rgb_hilite_numpad) { + for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_NUMPAD); i++) { + rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_OFFBLUE); + } + rgb_matrix_set_color(LED_L5, RGB_OFFBLUE); + rgb_matrix_set_color(LED_L6, RGB_OFFBLUE); + rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE); + rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_RCTL, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_RSFT, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_END, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_PGUP, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_PGDN, RGB_CHARTREUSE); + } else { + rgb_matrix_set_color(LED_L5, RGB_OFFBLUE); + rgb_matrix_set_color(LED_L6, RGB_OFFBLUE); + rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE); } - rgb_matrix_set_color(LED_L5, RGB_OFFBLUE); - rgb_matrix_set_color(LED_L6, RGB_OFFBLUE); - rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE); - rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RCTL, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_RSFT, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_END, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_PGUP, RGB_CHARTREUSE); - rgb_matrix_set_color(LED_PGDN, RGB_CHARTREUSE); break; // MOUSEKEYS mode RGB @@ -308,19 +445,229 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { rgb_matrix_set_color(LED_END, RGB_CYAN); rgb_matrix_set_color(LED_PGUP, RGB_OFFBLUE); rgb_matrix_set_color(LED_PGDN, RGB_OFFBLUE); - break; - // Colemak layer RGB - #ifdef COLEMAK_LAYER_ENABLE + // Colemak layer RGB + #ifdef COLEMAK_LAYER_ENABLE case _COLEMAK: for (uint8_t i = 0; i < ARRAYSIZE(LED_SIDE_RIGHT); i++) { rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_MAGENTA); rgb_matrix_set_color(LED_SIDE_LEFT[i], RGB_MAGENTA); } break; - #endif + #endif + + // Paddle game logic + #ifdef GAME_ENABLE + case _GAME: + if (!game_start) { + srand((unsigned int) timer_read()); + + // Store user light settings + last_hsv = rgb_matrix_get_hsv(); + rgb_matrix_sethsv_noeeprom(0, 0, 0); + + paddle_pos_full = 8; + paddle_lives = 4; + bounce_count = 0; + level_number = 0; + damage_count = 0; + + init_ball(0); + ball[1].on = false; + ball_timer = timer_read(); + + game_start = true; + } + + // Set level indicator + if (level_number < 12) { + rgb_matrix_set_color(GAME_R0[level_number], RGB_BLUE); + } + + // Set life bar + for (uint8_t i = 0; i < paddle_lives; i++) { + rgb_matrix_set_color(GAME_LIVES[i], RGB_GREEN); + } + + uint8_t paddle_pos = paddle_pos_full >> 1; + + if (damage_count > 0) { + // Flash paddle when receiving damage + if (timer_elapsed(damage_timer) > 500) { + --damage_count; + damage_timer = timer_read(); + } + if ((damage_count & 1) == 0) { + for (uint8_t i = 0; i < 3; i++) { + rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_RED); + } + } + if (damage_count == 0) { + ball_timer = timer_read(); + } + + } else if (paddle_lives == 0) { + // Game over + for (uint8_t i = 0; i < sizeof(LED_GAME_OVER) / sizeof(LED_GAME_OVER[0]); i++) { + rgb_matrix_set_color(LED_GAME_OVER[i], RGB_RED); + } + + } else if (level_number >= 12) { + // You win + if (rgb_value.r == 0xff && rgb_value.g < 0xff) { + if (rgb_value.b > 0) { + --rgb_value.b; + } else { + ++rgb_value.g; + } + } else if (rgb_value.g == 0xff && rgb_value.b < 0xff) { + if (rgb_value.r > 0) { + --rgb_value.r; + } else { + ++rgb_value.b; + } + } else if (rgb_value.b == 0xff && rgb_value.r < 0xff) { + if (rgb_value.g > 0) { + --rgb_value.g; + } else { + ++rgb_value.r; + } + } + + for (uint8_t i = 0; i < 3; i++) { + rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], rgb_value.r, rgb_value.g, rgb_value.b); + } + rgb_matrix_set_color(GAME_SMILE1[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b); + rgb_matrix_set_color(GAME_SMILE1[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); + rgb_matrix_set_color(GAME_SMILE2[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b); + rgb_matrix_set_color(GAME_SMILE2[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); + + } else { + // normal game loop + + // Set paddle position + for (uint8_t i = 0; i < 3; i++) { + rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_GREEN); + } + + // Ball movement logic happens at intervals + if (timer_elapsed(ball_timer) > GAME_TIMER[level_number]) { + for (int i = 0; i < 2; ++i) { + if (ball[i].on) { + // Ball movement + if (ball[i].up) { + if (ball[i].y > 0) { + --ball[i].y; + if (!ball[i].left) ++ball[i].x; + } else { + // Count reflections. If > 10, increase level + ++bounce_count; + if (bounce_count >= 10) { + bounce_count = 0; + ++level_number; + } + ball[i].on = false; + } + } else { + ++ball[i].y; + if (ball[i].left) --ball[i].x; + if (ball[i].y > 4) { + // Remove a life if ball isn't returned and isn't enemy + if (!ball[i].enemy) { + hurt_paddle(); + i = 2; + } else { + ball[i].on = false; + } + } + } + } + } + if (ball[0].y == 4 && !ball[1].on) { + init_ball(1); + } + if (ball[1].y == 4 && !ball[0].on) { + init_ball(0); + } + if (!ball[0].on && !ball[1].on) { + init_ball(0); + } + ball_timer = timer_read(); + } + + // Other ball stuff + for (int i = 0; i < 2; ++i) { + if (ball[i].on) { + // Ball deflection logic + if (!ball[i].up && ball[i].y == 4 && (ball[i].x == paddle_pos || ball[i].x == paddle_pos - 1 || ball[i].x == paddle_pos + 1)) { + if (!ball[i].enemy) { + --ball[i].y; + if (!ball[i].left) { + ++ball[i].x; + } + ball[i].up = true; + } else { + hurt_paddle(); + i = 2; + } + } + + // Ball display + switch (ball[i].y) { + case 0: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_WHITE); + } + break; + + case 1: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_WHITE); + } + break; + + case 2: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_WHITE); + } + break; + + case 3: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_WHITE); + } + break; + + case 4: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_WHITE); + } + break; + } + } + } + } + break; + #endif //GAME_ENABLE default: + #ifdef GAME_ENABLE + if (game_start) { + // Reset lighting settings + game_start = false; + rgb_matrix_sethsv_noeeprom(last_hsv.h, last_hsv.s, last_hsv.v); + } + #endif //GAME_ENABLE break; } } @@ -329,8 +676,6 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { void keyboard_post_init_keymap(void) { // keyboard_post_init_user() moved to userspace #ifdef RGB_MATRIX_ENABLE - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); - rgb_matrix_sethsv_noeeprom(20, 255, 127); // Default startup color (Hue:amber Saturation:full Value(brightness):mid) activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle #endif } \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h new file mode 100644 index 0000000000..3d33975cfe --- /dev/null +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h @@ -0,0 +1,48 @@ +/* Copyright 2021 Glorious, LLC + Copyright 2021 Tomas Guinan + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifdef GAME_ENABLE +const uint16_t GAME_TIMER[] = { + 400, 350, 300, 250, 400, 350, 300, 250, 225, 200, 175, 150 +}; + +bool game_start = false; +HSV last_hsv; +static uint8_t paddle_pos_full; +static uint8_t paddle_lives; +static uint8_t level_number; +static uint8_t bounce_count; +static uint8_t damage_count; +static uint16_t damage_timer; +static uint16_t ball_timer; + +struct BallStruct +{ + uint8_t x; + uint8_t y; + bool on; + bool up; + bool left; + bool enemy; +}; + +struct BallStruct ball[2]; + +void init_ball(uint8_t i); +void hurt_paddle(void); + +#endif //GAME_ENABLE \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md index 3db6923d76..c378276434 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md @@ -1,6 +1,6 @@ -# gourdo1's GMMK Pro ANSI layout +# [gourdo1's](mailto:gourdo1@outlook.com) GMMK Pro ANSI layout -This Windows-centric layout is based on [Jonavin's](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/jonavin) GMMK Pro layout with several additions, modifications, a tweaked keymap, updated layers and expanded RGB controls. +This Windows-centric ANSI layout is based on [Jonavin's](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin) GMMK Pro layout with many additions, fixes, a revamped keymap, persistent user customizations, updated layers, [Tomas Guinan's paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) and expanded RGB effects and controls. ![image](https://raw.githubusercontent.com/gourdo1/media/main/susuwatari.jpg) @@ -8,26 +8,51 @@ This Windows-centric layout is based on [Jonavin's](https://github.com/qmk/qmk_f ### Core Functionality +* Quick & Easy Customization: Open a text editor and hit [FN]` (tilde key) to view toggle-able features. (added Jun 29, 2022) * [VIA](https://www.caniusevia.com/) support enabled (added Mar 16, 2022) * Most [default Glorious shortcuts](https://cdn.shopify.com/s/files/1/0549/2681/files/GMMK_Pro_User_Guide.pdf) enabled -* [N-key Rollover](https://en.wikipedia.org/wiki/Rollover_\(keyboard\)#n-key_rollover) (NKRO) -- toggled with FN+R -* Gaming mode (FN + Win-key) locks out Win-key as well as double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming related keys -* [Caps Word](https://getreuer.info/posts/keyboards/caps-word/index.html) enabled: To capitalize the next word only, press and release both left and right shift keys at the same time. (added Feb 25, 2022) -* Multi-monitor app moving shortcuts: FN + [,] (square brackets) to move current app window to next monitor (added Apr 11, 2022) -* Domain shortcuts: FN+.=".com", FN+O="outlook.com", FN+Y="yahoo.com", FN+H="hotmail.com", FN+G="gmail.com". (added Apr 7, 2022) +* [N-key Rollover](https://en.wikipedia.org/wiki/Rollover_\(keyboard\)#n-key_rollover) (NKRO) -- toggled with [FN]R +* 1000Hz polling rate with 5ms debounce time for quick response in games +* Mouse Keys! Don't want to move your hands off the keyboard or you didn't bring it with you? Use cursor keys to move the mouse +* Overlay numpad on 789-UIOP-JKL;-M,. & Space-bar mapped to Enter key for rapid number entry +* Gaming mode ([FN]Win-key) locks out Win-key and double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming keys +* Caps Word enabled: To capitalize the next word only, press and release left and right shift at the same time. (added Feb 25, 2022) +* Multi-monitor app moving shortcuts: [FN] ],[ (square brackets) to move current app window to next monitor (added Apr 11, 2022) * Capslock toggled by double tap of Left Shift key or FN + Capslock (RGB green highlighted) -* Fn-Backslash for [Bootloader mode](https://github.com/qmk/qmk_firmware/blob/master/docs/newbs_flashing.md) +* Paddle game accessible via [FN]P. Hit [FN]P again or double tap [ESC] to exit (added May 5, 2022) +* Single-handed shortcut for Ctrl-Alt-Delete: [FN]/ (added May 14, 2022) +* Single-handed shortcut for WinKey-L (lock Windows): [FN]L (added May 17, 2022) +* Domain shortcuts: [FN]. for .com, [FN]O for outlook.com, [FN]Y for yahoo.com, [FN]H for hotmail.com, [FN]G for gmail.com. (added Apr 7, 2022) +* FN-Backslash for [Bootloader mode](https://github.com/qmk/qmk_firmware/blob/master/docs/newbs_flashing.md) * Home key on F13, Del key right of Backspace * Insert accessible via Shift-Backspace (so shift delete still works in Windows Explorer) -* PrtScrn, Scroll Lock, Pause/Break are top right on the keyboard: Fn+F11, Fn+F12, Fn+F13 -* [Colemak](https://colemak.com/) key layout support (Layer accessible via Left Shift + turn Encoder clockwise until side LEDs light up purple) +* PrtScrn, Scroll Lock, Pause/Break are top right on the keyboard: [FN]F11, [FN]F12, [FN]F13 +* [Colemak](https://colemak.com/) key layout support (Accessible via Left Shift + turn Encoder clockwise until side LEDs light up purple) * Double tap ESC any time to revert to base layer (added Feb 26, 2022) +* RGB backlight effects expanded to include framebuffer effects and reactive keypress modes (updated May 24, 2022) +* RGB backlight now remembers last color & effect settings after power down (updated May 24, 2022) + +### Quick & Easy Customization +* Below features can be toggled by holding [FN] and pressing the number corresponding to that feature. Changes are saved to EEPROM for persistence. +* Print current settings by opening a text editor and pressing [FN]~ (CAUTION: verbose!) +* Quick view current settings by holding [FN] and viewing RGB under number keys (green means ON, violet means OFF) + +#### Toggle-able Settings: + 1. CapsLock RGB - highlight under alpha keys + 2. Numpad RGB - highlight under numpad layer keys + 3. ESC key - Double tap ESC key to go to base layer + 4. Swap DEL and HOME - Default is DEL to the right of BKSPC & HOME is above BKSPC + 5. Capslock function - Toggle between double tap LShift for CapsLock with Numpad on CapsLock key (default) and standard CapsLock + 6. Encoder button - default mutes volume; alternate plays/pauses media + 7. Insert function - Toggle between SHIFT-BKSPC and SHIFT-DEL + 8. Modded-Space override - Use standard Space in place of modded-Space functions ### Numpad + Mouse Keys (Capslock key) * Overlay numpad + [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) are accessed through Capslock key hold (temp) or double press (locked) with RGB highlighting +* Numpad uses Space-bar as Enter for rapid number entry (added May 17, 2022) * This layer disables much of the keyboard, except X/C/V for cut/copy/paste, WASD for cursor, Q/E for PgUp/PgDn, cursor keys become mouse keys, surrounding keys become mouse buttons and all number keys become numpad versions (so Alt char codes work regardless of which set you use) -* Fn & N keys light up orange if system numlock is off (inverted status), indicating numpad keys will not deliver expected output (FN + N to toggle) +* FN and N keys light up orange if system numlock is off (inverted status), indicating numpad keys will not deliver expected output ([FN]N to toggle) * Double zero on comma key. * [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) allow you to use the mouse without taking your hand off the keyboard. (added Mar 15, 2022) * Mouse controls are: Cursor keys = move mouse; RShift = button1, End = button2, RCtrl = button3, PgUp/PgDn = Scroll wheel @@ -37,40 +62,54 @@ This Windows-centric layout is based on [Jonavin's](https://github.com/qmk/qmk_f * Default knob turn changes volume; button press toggles mute * Exponential encoder - quick repeated volume up doubles increase; quick repeated volume down triples decrease (added Feb 17, 2022) -* FN knob turn changes RGB idle timeout +* FN + knob turn changes RGB idle timeout +* FN + knob push puts PC to Sleep (Added May 14, 2022) * holding Left Shift changes layers * holding Right Shift navigates page up/down * holding Left Ctrl navigates prev/next word * holding Right Ctrl changes RGB hue/color * holding Left Alt changes media prev/next track +### Paddle Game + +* Based on [Tomas Guinan's excellent GMMK Pro paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) +* Paddle Game playable by pressing [FN]P (P lights up green in FN layer if game is enabled in firmware, otherwise it lights up red) +* Use rotary encoder to control paddle +* Contains 12 levels, indicated by blue LED on F-key row +* Player has 4 lives, indicated by nav cluster +* Deflect white balls while avoiding red ones +* Use [FN]P, double tap ESC or otherwise change layer to quit game + ### Global RGB Controls -* RGB backlight lighting effect: FN + up/down -* RGB backlight effect speed: FN + left/right -* RGB backlight hue cycle: FN + A/D -* RGB backlight brightness: FN + W/S -* RGB backlight saturation: FN + Q/E (added Feb 4, 2022) -* RGB backlight night mode toggle: FN + Z (indicators still work) -* RGB backlight timeout: FN + Encoder or "-" and "=" (default 15 minutes) (updated Apr 7, 2022) - * indicators in FN layer using RGB in F-key and number rows to show the current timeout in minutes -* RGB indicators on left side LEDs: Capslock (green), Scroll Lock (red), and Num Lock not set (orange) -* FN + Z to turn off RGB backlighting; press again to toggle +* RGB backlight lighting effect: [FN]up/down +* RGB backlight effect speed: [FN]left/right +* RGB backlight hue cycle: [FN]A/D +* RGB backlight brightness: [FN]W/S +* RGB backlight saturation: [FN]Q/E (added Feb 4, 2022) +* RGB backlight night mode toggle: [FN]Z (indicators still work) +* RGB backlight timeout: [FN]Encoder or "-" and "=" (default 15 minutes) (updated June 28, 2022) + * F-key row indicator lights (cyan and blue) in FN layer display the current backlight timeout in minutes +* [FN]Z to turn off RGB backlighting (indicator lights still work); press again to toggle +* Left side RGB indicators in order from top: System NumLock off (orange), Scroll Lock (red), Numpad (blue), Capslock (green). ### Advanced Controls -* FN + \ to get to bootloader mode -* FN + [ESC] to clear EEPROM (then unplug and re-plug) (added Apr 11, 2022) -* FN + R to toggle N-key Rollover (added Apr 11, 2022) +* [FN]\ to get to bootloader mode +* [FN][ESC] to clear EEPROM (added Apr 11, 2022) +* [FN]R to toggle N-key Rollover (added Apr 11, 2022) +* [FN]/ is single-handed shortcut to Ctrl-Alt-Delete (added May 14, 2022) +* [FN]L is single-handed shortcut to Win-L (lock Windows) (added May 17, 2022) +* [FN][Encoder press] to sleep Windows PC (added May 14, 2022) -Link to latest firmware binary: https://github.com/gourdo1/media/raw/main/gmmk_pro_ansi_gourdo1.bin +Link to latest firmware binary: https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_ansi_gourdo1.bin -Link to cheatsheet: https://github.com/gourdo1/media/raw/main/GMMK_Pro_Cheatsheet.pdf +Link to cheatsheet: https://github.com/gourdo1/gmmkpro-media/raw/main/GMMK_Pro_Cheatsheet.pdf ## rules.mk Options -STARTUP_NUMLOCK_ON = yes - turns on NUMLOCK by default +STARTUP_NUMLOCK_ON = yes - Turns on NUMLOCK by default ENCODER_DEFAULTACTIONS_ENABLE = yes - Enabled default encoder functions @@ -78,20 +117,21 @@ TD_LSFT_CAPSLOCK_ENABLE = yes - This will enable double tap on Left Shift IDLE_TIMEOUT_ENABLE = yes - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically -INVERT_NUMLOCK_INDICATOR - inverts the Numlock indicator, LED is on when numlock is off -- numlock interferes with numpad keys, so should generally be off when numpad layer is active. +INVERT_NUMLOCK_INDICATOR - Inverts the Numlock indicator, LED is on when numlock is off -- numlock interferes with overlay numpad, so should be off when numpad layer is active unless you have an external numpad. -COLEMAK_LAYER_ENABLE = yes - Enable optional 5th layer for COLEMAK layout. Use Shift + encoder to enter 5th layer. +COLEMAK_LAYER_ENABLE = yes - Enables optional 5th layer for COLEMAK layout. Use Shift + encoder to enter 5th layer. +GAME_ENABLE ?= yes - Enables Paddle Game ## Layer Diagrams ### Base layer -![image](https://raw.githubusercontent.com/gourdo1/media/main/base.png) +![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/base.png) -### Fn Layer -![image](https://raw.githubusercontent.com/gourdo1/media/main/fn1.png) +### FN Layer +![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/fn1.png) ### Layer 2 (Numpad) -![image](https://raw.githubusercontent.com/gourdo1/media/main/numpad.png) +![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/numpad.png) ### COLEMAK layer ![image](https://user-images.githubusercontent.com/71780717/131235050-980d2f54-2d23-4ae8-a83f-9fcdbe60d6cb.png) diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h index 38da50754b..f1609a4bb3 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h @@ -1,5 +1,5 @@ /* Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 + Copyright 2022 gourdo1 This 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,6 +16,11 @@ along with this program. If not, see . */ #ifdef RGB_MATRIX_ENABLE + +//Define variables for Game +bool fn_active = false; +RGB rgb_value; + // Custom GMMK Pro-specific RGB color customizations (defaults found in quantum/color.h) #define RGB_GODSPEED 0x00, 0xE4, 0xFF // color for matching keycaps #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colors @@ -194,7 +199,7 @@ const uint8_t LED_LIST_NUMROW[] = { }; const uint8_t LED_LIST_LETTERS[] = { - LED_1, +/* LED_1, LED_2, LED_3, LED_4, @@ -203,7 +208,7 @@ const uint8_t LED_LIST_LETTERS[] = { LED_7, LED_8, LED_9, - LED_0, + LED_0, */ LED_Q, LED_W, LED_E, @@ -284,4 +289,122 @@ const uint8_t LED_SIDE_RIGHT[] = { LED_R8 }; +#ifdef GAME_ENABLE +// Game LED rules +const uint8_t GAME_LIVES[] = { + LED_DEL, + LED_PGUP, + LED_PGDN, + LED_END +}; +const uint8_t GAME_PADDLE[] = { + LED_Z, + LED_X, + LED_C, + LED_V, + LED_B, + LED_N, + LED_M, + LED_COMM, + LED_DOT, + LED_SLSH +}; +const uint8_t GAME_SMILE1[] = { + LED_A, + LED_S, + LED_D, + LED_F, + LED_G, + LED_H, + LED_J, + LED_K, + LED_L, + LED_SCLN, + LED_QUOT +}; +const uint8_t GAME_SMILE2[] = { + LED_2, + LED_3, + LED_4, + LED_5, + LED_6, + LED_7, + LED_8, + LED_9, + LED_0, + LED_MINS, + LED_EQL +}; +const uint8_t GAME_R4[] = { + LED_X, + LED_C, + LED_V, + LED_B, + LED_N, + LED_M, + LED_COMM, + LED_DOT +}; +const uint8_t GAME_R3[] = { + LED_S, + LED_D, + LED_F, + LED_G, + LED_H, + LED_J, + LED_K, + LED_L, + LED_SCLN +}; +const uint8_t GAME_R2[] = { + LED_W, + LED_E, + LED_R, + LED_T, + LED_Y, + LED_U, + LED_I, + LED_O, + LED_P, + LED_LBRC +}; +const uint8_t GAME_R1[] = { + LED_2, + LED_3, + LED_4, + LED_5, + LED_6, + LED_7, + LED_8, + LED_9, + LED_0, + LED_MINS, + LED_EQL +}; +const uint8_t GAME_R0[] = { + LED_F1, + LED_F2, + LED_F3, + LED_F4, + LED_F5, + LED_F6, + LED_F7, + LED_F8, + LED_F9, + LED_F10, + LED_F11, + LED_F12 +}; +const uint8_t LED_GAME_OVER[] = { + LED_5, + LED_8, + LED_F, + LED_G, + LED_H, + LED_J, + LED_C, + LED_M +}; +#endif //GAME_ENABLE + #endif \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk index b236d9132c..585f7846dd 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk @@ -1,18 +1,18 @@ -SRC += caps_word.c - LTO_ENABLE = yes # link time optimization -- achieves a smaller compiled size CONSOLE_ENABLE = no COMMAND_ENABLE = no -MOUSEKEY_ENABLE = yes - -VIA_ENABLE = yes -TAP_DANCE_ENABLE = yes BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +VIA_ENABLE = yes -TD_LSFT_CAPSLOCK_ENABLE = yes +MOUSEKEY_ENABLE = yes +TAP_DANCE_ENABLE = yes +CAPS_WORD_ENABLE = yes # Enable built-in Caps Word functionality IDLE_TIMEOUT_ENABLE = yes STARTUP_NUMLOCK_ON = yes ENCODER_DEFAULTACTIONS_ENABLE = no - COLEMAK_LAYER_ENABLE = yes # Enable Colemak layer / set to no to disable INVERT_NUMLOCK_INDICATOR = yes +GAME_ENABLE ?= yes # Enable Paddle Game / set to no to disable +ifeq ($(strip $(GAME_ENABLE)), yes) + OPT_DEFS += -DGAME_ENABLE +endif diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h new file mode 100644 index 0000000000..a37fb08d31 --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h @@ -0,0 +1,146 @@ +/* Copyright 2021 Jonavin Eng @Jonavin + Copyright 2022 gourdo1 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// Force n-key rollover +#define FORCE_NKRO + +// Set TT to two taps +#define TAPPING_TOGGLE 2 + +#ifdef COMMAND_ENABLE +#define IS_COMMAND() (get_mods() == MOD_MASK_CTRL) //debug commands accessed by holding down both CTRLs: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_command.md +#endif + +// Caps Word configuration +#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD +#define CAPS_WORD_IDLE_TIMEOUT 10000 // Automatically turn off after x milliseconds of idle. 0 to never timeout. + +// Handle GRAVESC combo keys +#define GRAVE_ESC_ALT_OVERRIDE +// Always send Escape if Alt is pressed +#define GRAVE_ESC_CTRL_OVERRIDE +// Always send Escape if Control is pressed + +// #define TAPPING_TERM 180 +#define TAPPING_TERM 300 +#define TAPPING_TERM_PER_KEY + +#ifdef RGB_MATRIX_ENABLE + #define RGB_DISABLE_WHEN_USB_SUSPENDED + #define RGB_MATRIX_KEYPRESSES // Enables REACTIVE & SPLASH modes + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables Heatmap, Rain + + // RGB step values + #define RGBLIGHT_HUE_STEP 32 // The number of steps to cycle through the hue by (default 10) + #define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by (default 17) + #define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by (default 17) + + // Startup values, when none have been set + #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_REACTIVE // Sets the default effect mode, if none has been set (was RGB_MATRIX_SOLID_COLOR) + #define RGB_MATRIX_STARTUP_HUE 24 // Sets the default hue value, if none has been set + #define RGB_MATRIX_STARTUP_SAT 255 // Sets the default saturation value, if none has been set + #define RGB_MATRIX_STARTUP_VAL 127 // Sets the default brightness value, if none has been set + #define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set + + // Uncomment any #undef line below to turn OFF any default enabled RGB background effect (enabled in keyboards/gmmk/pro/config.h). + #undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Solid color (seems redundant; seems same as RGB_MATRIX_SOLID_COLOR?) + //#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static, horizontal rainbow + //#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static, vertical Rainbow + //#undef ENABLE_RGB_MATRIX_BREATHING // Breathing animation using selected HSV color + #undef ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right (with white) + //#undef ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right (with black) + #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades sat (with white) + //#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness (with black) + #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades brightness (with white) + //#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness (with black) + //#undef ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard cycling through rainbow + //#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient moving left to right + //#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom + #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient chevron scrolling left to right (too similar to cycle left right) + //#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Rainbow circles coming to center. + #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Two Rainbow circles coming to 1/3 and 2/3 points. (seems mostly redundant with above) + #undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Built-in cycling pinwheel (seems redundant with below) + //#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard + #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON // Spinning rainbow (more distracting transitions) + //#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Spinning rainbow (smoother) + #undef ENABLE_RGB_MATRIX_DUAL_BEACON // Two rainbows spinning around keyboard (distracting, busy) + #undef ENABLE_RGB_MATRIX_RAINDROPS // Sustained raindrops of blue, green, yellow (confusing to use with RGB layers) + //#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Sustained raindrops of blue, purple, pink, green (confusing to use with RGB layers, but slightly better than above) + #undef ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back (very subtle) + #undef ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left (very subtle) + #undef ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right (very subtle) + //#undef ENABLE_RGB_MATRIX_PIXEL_RAIN // Non-sustained raindrops of pastel colors + #undef ENABLE_RGB_MATRIX_PIXEL_FLOW // More active version of pixel rain with quick cycling (unusable, very distracting) + #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Same as Pixel Flow but with current HSV only (somewhat distracting) + //Only enabled if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined + //#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP // Fading heatmap that follows keystrokes (has buggy side LEDs that glow red) + //#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN // The Matrix (has buggy side LEDs that glow red) + //Only enabled if RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Key hits shown in current hue - all other keys black + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Keyboard lights up in chosen hue, key hits shown in complementary hue (try this as default?) + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse around a single key hit then fades value out (Single key) + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // same as above but more intense (Multi-key) + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Column and Row single current color fade (Single key) + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Column and Row single color fade. (Multi-key) + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of key hit then fades (Single key) + //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multi-key hit then fades + //#undef ENABLE_RGB_MATRIX_SPLASH // Full rainbow pulses from key hit. All else black. + #undef ENABLE_RGB_MATRIX_MULTISPLASH // Full rainbow pulses from multi-keys. All else black. (distracting on multiple keystroke hits) + #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // Single color pulses from key hit. All else black. (distracting on multiple key hits) + //#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Single color pulses from muli-keys. All else black. +#endif //RGB_MATRIX_ENABLE + +// Add a layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable +#if defined COLEMAK_LAYER_ENABLE + #ifdef GAME_ENABLE + #define DYNAMIC_KEYMAP_LAYER_COUNT 6 + #define _COLEMAK 5 + #else + #define DYNAMIC_KEYMAP_LAYER_COUNT 5 + #define _COLEMAK 4 + #endif //GAME_ENABLE +#endif // COLEMAK_LAYER_ENABLE + +/* +// Mouse Keys Accelerated Mode Definitions +#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10) +#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement. +#define MOUSEKEY_MOVE_DELTA 8 // Step size (default: 8) +#define MOUSEKEY_MAX_SPEED 9 // Maximum cursor speed at which acceleration stops (default: 10) +#define MOUSEKEY_TIME_TO_MAX 150 // Time until maximum cursor speed is reached (default: 30) +#define MOUSEKEY_WHEEL_DELAY 0 // Delay between pressing a wheel key and wheel movement (default: 10) +#define MOUSEKEY_WHEEL_INTERVAL 80 // Time between wheel movements (default: 80) +#define MOUSEKEY_WHEEL_MAX_SPEED 8 // Maximum number of scroll steps per scroll action (default: 8) +#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 // Time until maximum scroll speed is reached (default: 40) +*/ + +// Mouse Keys Kinetic Mode Definitions +#define MK_KINETIC_SPEED // Enable Kinetic mode: Uses a quadratic curve on cursor speed to allow precise movements at the beginning and increases speed thereafter. +#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10) +#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement. +#define MOUSEKEY_MOVE_DELTA 5 // Step size for accelerating from initial to base speed (default: 8) +#define MOUSEKEY_MOVE_MAX 50 // use instead of BASE SPEED to limit speed in Kinetic mode +#define MOUSEKEY_INITIAL_SPEED 100 // Initial speed of the cursor in pixels per second (default: 100) +//#define MOUSEKEY_BASE_SPEED 800 // (broken in QMK 0.16.0) Maximum cursor speed at which acceleration stops (default: 1000) +#define MOUSEKEY_DECELERATED_SPEED 400 // Decelerated cursor speed (default: 400) +#define MOUSEKEY_ACCELERATED_SPEED 2000 // Accelerated cursor speed (default: 3000) +#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 16 // Initial number of movements of the mouse wheel (default: 16) +#define MOUSEKEY_WHEEL_BASE_MOVEMENTS 32 // Maximum number of movements at which acceleration stops (default: 32) +#define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48 // Accelerated wheel movements (default: 48) +#define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 // Decelerated wheel movements (default: 8) diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c new file mode 100644 index 0000000000..24a1e8a359 --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c @@ -0,0 +1,682 @@ +/* Copyright 2021 Glorious, LLC + Copyright 2021 Jonavin Eng @Jonavin + Copyright 2022 RustyBrakes (ISO conversion) + Copyright 2022 gourdo1 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General 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: Several advanced functions referenced in this file (like Tap Dance functions) are defined in /users/gourdo1/gourdo1.c + +#include QMK_KEYBOARD_H + +#include "rgb_matrix_map.h" + +#include "gourdo1.h" + +#include "paddlegame.h" + +#include + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layout + * + * ,-------------------------------------------------------------------------------------------------------------. + * | Esc || F1 | F2 | F3 | F4 || F5 | F6 | F7 | F8 || F9 | F10 | F11 | F12 || Home || Mute | + * |=============================================================================================================| + * | ISO | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | Backspc || Del | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ } | ] } | || PgUp | + * |---------+------+------+------+------+------+------+------+------+------+------+------+------+ ++------| + * | Capslock | A | S | D | F | G | H | J | K | L | ; : | ' " | ISO| Enter || PgDn | + * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| + * | LShift | ISO | Z | X | C | V | B | N | M | , < | . > | / ? | RShift || Up || End | + * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| + * | Ctrl | Win | LAlt | Space | RAlt | Fn | Ctrl || Left | Down | Rght | + * `------------------------------------------------------------------------------------------------------------' + */ + + [_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, LEFTOFENC, ENCFUNC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, BELOWENC, + KC_TAB, KC_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, + CAPSNUM, 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, + LSFTCAPSWIN,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(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* FN1 Layout + * + * ,-------------------------------------------------------------------------------------------------------------. + * | Esc ||MyCmp |WbHom | Calc |MdSel ||MdPrv |MdNxt |MdPly |MdStp ||VolDn |VolUp |PrScr |ScrLk ||Pause ||Sleep | + * |=============================================================================================================| + * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |RGBTOD|RGBTOI| ________ ||RGBTOG| + * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| + * | ______ |RGBSAD|RGBVAI|RGBSAI| NKRO | ____ |YAHOO | ____ | ____ |OUTLK |Pause | ____ | ____ | || Home | + * |---------+------+------+------+------+------+------+------+------+------+------+------+------+ ++------| + * | Capslock |RGBHUD|RGBVAD|RGBHUI| ____|GMAIL |HTMAIL| ____ | ____ | ____ | ____ | ____ | ___ | ____ || End | + * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| + * | ____ |RESET |RGBNIT| ____ | ____ | ____ | ____ |NumLk | ____ | ____ |DOTCOM| CAD | ______ ||RGBMOD|| ____ | + * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| + * | ____ | WinKyLk | ____ | _____ | ____ | ____ | ____ ||RGBSPD|RGBRMD|RGBSPI| + * `------------------------------------------------------------------------------------------------------------' + */ + + #ifdef GAME_ENABLE + [_FN1] = LAYOUT( + EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP, + PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, + _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, TG(_GAME),SWAP_L, SWAP_R, KC_HOME, + KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, _______, KC_END, + _______, RESET, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, + _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + ), + + [_GAME] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + #else + [_FN1] = LAYOUT( + EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP, + PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG, + _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, KC_HOME, + KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, _______, KC_END, + _______, RESET, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______, + _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + ), + #endif //GAME_ENABLE + + /* _NUMPADMOUSE Layout + * Note: A symbol preceded by "P" is a Numpad-encoded version of the key -- any app that differentiates will recognize the char as coming from a physical numpad. + * ,-------------------------------------------------------------------------------------------------------------. + * | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ || ____ | + * |=============================================================================================================| + * | ____ | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P0 | P- | P+ | ________ || ____ | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------| + * | ______ | PGUP | Up | PGDN | None | None | None | P4 | P5 | P6 | P+ | ____ | ____ | || WhUp | + * |---------+------+------+------+------+------+------+------+------+------+------+------+------+ ++------| + * | ________ | Left | Down | Rght | None| None | None | P1 | P2 | P3 | P* | ___ | ___ |P-Enter|| WhDn | + * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------| + * | __________ | None | ____ | ____ | ____ | None | None | 0 | 00 | P. | P/ | MBt1 ||MS_UP || MBt2 | + * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======| + * | ____ | ____ | ____ | _____ | ____ | ____ | MBt3 ||MS_LT |MS_DN |MS_RT | + * `------------------------------------------------------------------------------------------------------------' + */ + + [_NUMPADMOUSE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______, + _______, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, KC_WH_U, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PAST, _______, _______, KC_PENT, KC_WH_D, + _______, _______, KC_NO, _______, _______, _______, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, KC_BTN1, KC_MS_U, KC_BTN2, + _______, _______, _______, KC_PENT, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R + ), + + [_MOUSEKEY] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_D, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, + _______, _______, _______, _______, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R + ), + + #ifdef COLEMAK_LAYER_ENABLE + [_COLEMAK] = 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, _______, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_PGUP, + _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + _______, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + _______, _______, _______, KC_SPC, KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + #endif // COLEMAK_LAYER_ENABLE +}; + +#if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults +void encoder_action_rgbhue(bool clockwise) { + if (clockwise) + rgblight_increase_hue_noeeprom(); + else + rgblight_decrease_hue_noeeprom(); +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + uint8_t mods_state = get_mods(); + if (mods_state & MOD_BIT(KC_LSFT)) { // If you are holding L shift, encoder changes layers + encoder_action_layerchange(clockwise); + } else if (mods_state & MOD_BIT(KC_RSFT)) { // If you are holding R shift, Page up/dn + unregister_mods(MOD_BIT(KC_RSFT)); + encoder_action_navpage(clockwise); + register_mods(MOD_BIT(KC_RSFT)); + } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word + encoder_action_navword(clockwise); + } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, change rgb hue/colour + encoder_action_rgbhue(clockwise); + } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track + encoder_action_mediatrack(clockwise); + } else { + switch (get_highest_layer(layer_state)) { + case _FN1: + #ifdef IDLE_TIMEOUT_ENABLE + timeout_update_threshold(clockwise); + #endif + break; + #ifdef GAME_ENABLE + case _GAME: + // Game: Paddle movement + if (damage_count == 0) { + if (clockwise) { + if (paddle_pos_full < 15) ++paddle_pos_full; + } else { + if (paddle_pos_full > 0) --paddle_pos_full; + } + } + break; + #endif //GAME_ENABLE + default: + encoder_action_volume(clockwise); // Otherwise it just changes volume + break; + } + } + //return true; //set to return false to counteract enabled encoder in pro.c + return false; +} +#endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE + +#ifdef RGB_MATRIX_ENABLE + +// Game logic +#ifdef GAME_ENABLE +void init_ball(uint8_t i) { + i &= 1; + ball[i].on = true; + ball[i].up = false; + ball[i].y = 0; + ball[i].x = rand() % 16; + + // Set initial ball state + if (ball[i].x < 8) { + ball[i].left = false; + } else { + ball[i].x -= 4; + ball[i].left = true; + } + + // 1/4 chance of being an enemy ball after level 6 + if (level_number > 3) { + ball[i].enemy = ((rand() % 4) == 0); + } else { + ball[i].enemy = false; + } +} + +void hurt_paddle(void) { + if (paddle_lives > 0) { + --paddle_lives; + } + damage_timer = timer_read(); + damage_count = 10; + + // Reset board + init_ball(0); + ball[1].on = false; +} +#endif //GAME_ENABLE + +// Capslock, Scroll lock and Numlock indicator on Left side lights. +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); + + // Scroll Lock RGB setup + if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) { + rgb_matrix_set_color(LED_L3, RGB_RED); + rgb_matrix_set_color(LED_L4, RGB_RED); + rgb_matrix_set_color(LED_TAB, RGB_RED); + rgb_matrix_set_color(LED_F12, RGB_RED); + } + + // System NumLock warning indicator RGB setup + #ifdef INVERT_NUMLOCK_INDICATOR + if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled + rgb_matrix_set_color(LED_GRV, RGB_ORANGE2); + rgb_matrix_set_color(LED_L1, RGB_ORANGE2); + rgb_matrix_set_color(LED_L2, RGB_ORANGE2); + rgb_matrix_set_color(LED_N, RGB_ORANGE2); + rgb_matrix_set_color(LED_FN, RGB_ORANGE2); + } + #else + if (IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // Normal, on if NUM lock is ON + rgb_matrix_set_color(LED_GRV, RGB_ORANGE2); + rgb_matrix_set_color(LED_L1, RGB_ORANGE2); + rgb_matrix_set_color(LED_L2, RGB_ORANGE2); + rgb_matrix_set_color(LED_N, RGB_ORANGE2); + rgb_matrix_set_color(LED_FN, RGB_ORANGE2); + } + #endif // INVERT_NUMLOCK_INDICATOR + + // CapsLock RGB setup + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + if (user_config.rgb_hilite_caps) { + for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_LETTERS); i++) { + rgb_matrix_set_color(LED_LIST_LETTERS[i], RGB_CHARTREUSE); + } + rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE); + } + else { + rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE); + } + } + + // Winkey disabled (gaming) mode RGB setup + if (keymap_config.no_gui) { + rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Winkey red when disabled + rgb_matrix_set_color(LED_W, RGB_CHARTREUSE); //light up gaming keys with WSAD higlighted + rgb_matrix_set_color(LED_S, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_A, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_D, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_Q, RGB_ORANGE2); + rgb_matrix_set_color(LED_E, RGB_ORANGE2); + rgb_matrix_set_color(LED_R, RGB_ORANGE2); + rgb_matrix_set_color(LED_TAB, RGB_ORANGE2); + rgb_matrix_set_color(LED_F, RGB_ORANGE2); + rgb_matrix_set_color(LED_Z, RGB_ORANGE2); + rgb_matrix_set_color(LED_X, RGB_ORANGE2); + rgb_matrix_set_color(LED_C, RGB_ORANGE2); + rgb_matrix_set_color(LED_V, RGB_ORANGE2); + rgb_matrix_set_color(LED_SPC, RGB_ORANGE2); + rgb_matrix_set_color(LED_LCTL, RGB_ORANGE2); + rgb_matrix_set_color(LED_LSFT, RGB_ORANGE2); + } + + // Fn selector mode RGB setup + switch (get_highest_layer(layer_state)) { // special handling per layer + case _FN1: // on Fn layer select what the encoder does when pressed + rgb_matrix_set_color(LED_FN, RGB_RED); //FN key + + //NEW RGB LIGHTING TO RING KEYBOARD ON FN LAYER ACTIVATION: + for (uint8_t j = 0; j < ARRAYSIZE(LED_LIST_FUNCROW); j++) { + rgb_matrix_set_color(LED_LIST_FUNCROW[j], RGB_RED); + } + rgb_matrix_set_color(LED_LCTL, RGB_RED); + rgb_matrix_set_color(LED_LALT, RGB_RED); + rgb_matrix_set_color(LED_SPC, RGB_RED); + rgb_matrix_set_color(LED_LWIN, RGB_RED); + //rgb_matrix_set_color(LED_RALT, RGB_RED); + rgb_matrix_set_color(LED_FN, RGB_OFFBLUE); + //rgb_matrix_set_color(LED_RCTL, RGB_RED); + rgb_matrix_set_color(LED_BSLS, RGB_RED); + rgb_matrix_set_color(LED_L1, RGB_RED); + rgb_matrix_set_color(LED_L2, RGB_RED); + rgb_matrix_set_color(LED_L3, RGB_RED); + rgb_matrix_set_color(LED_L4, RGB_RED); + rgb_matrix_set_color(LED_L5, RGB_RED); + rgb_matrix_set_color(LED_L6, RGB_RED); + rgb_matrix_set_color(LED_L7, RGB_RED); + rgb_matrix_set_color(LED_L8, RGB_RED); + rgb_matrix_set_color(LED_DOWN, RGB_RED); + rgb_matrix_set_color(LED_LEFT, RGB_RED); + rgb_matrix_set_color(LED_RIGHT, RGB_RED); + rgb_matrix_set_color(LED_R1, RGB_RED); + rgb_matrix_set_color(LED_R2, RGB_RED); + rgb_matrix_set_color(LED_R3, RGB_RED); + rgb_matrix_set_color(LED_R4, RGB_RED); + rgb_matrix_set_color(LED_R5, RGB_RED); + rgb_matrix_set_color(LED_R6, RGB_RED); + rgb_matrix_set_color(LED_R7, RGB_RED); + rgb_matrix_set_color(LED_R8, RGB_RED); + rgb_matrix_set_color(LED_MINS, RGB_OFFBLUE); + rgb_matrix_set_color(LED_EQL, RGB_OFFBLUE); + #ifdef GAME_ENABLE + rgb_matrix_set_color(LED_P, RGB_CHARTREUSE); + #else + rgb_matrix_set_color(LED_P, RGB_RED); + #endif // GAME_ENABLE + + //Add RGB statuses for user.config toggles + if (user_config.rgb_hilite_caps) { + rgb_matrix_set_color(LED_1, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_1, RGB_PURPLE); + } + if (user_config.rgb_hilite_numpad) { + rgb_matrix_set_color(LED_2, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_2, RGB_PURPLE); + } + if (user_config.esc_double_tap_to_baselyr) { + rgb_matrix_set_color(LED_3, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_3, RGB_PURPLE); + } + if (user_config.del_right_home_top) { + rgb_matrix_set_color(LED_4, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_4, RGB_PURPLE); + } + if (user_config.double_tap_shift_for_capslock) { + rgb_matrix_set_color(LED_5, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_5, RGB_PURPLE); + } + if (user_config.encoder_press_mute_or_media) { + rgb_matrix_set_color(LED_6, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_6, RGB_PURPLE); + } + if (user_config.ins_on_shft_bkspc_or_del) { + rgb_matrix_set_color(LED_7, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_7, RGB_PURPLE); + } + if (user_config.disable_space_mods) { + rgb_matrix_set_color(LED_8, RGB_GREEN); + } else { + rgb_matrix_set_color(LED_8, RGB_PURPLE); + } + + // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code + uint16_t timeout_threshold = get_timeout_threshold(); + if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_BLUE); + else if (timeout_threshold < 140) { + rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_CYAN); + rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold % 10)], RGB_BLUE); + } else { // >= 140 minutes, just show these 3 lights + rgb_matrix_set_color(LED_LIST_FUNCROW[10], RGB_CYAN); + rgb_matrix_set_color(LED_LIST_FUNCROW[11], RGB_CYAN); + rgb_matrix_set_color(LED_LIST_FUNCROW[12], RGB_CYAN); + } + break; + + // Numpad & Mouse Keys overlay RGB + case _NUMPADMOUSE: + if (user_config.rgb_hilite_numpad) { + for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_NUMPAD); i++) { + rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_OFFBLUE); + } + rgb_matrix_set_color(LED_L5, RGB_OFFBLUE); + rgb_matrix_set_color(LED_L6, RGB_OFFBLUE); + rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE); + rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_RCTL, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_RSFT, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_END, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_PGUP, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_PGDN, RGB_CHARTREUSE); + } else { + rgb_matrix_set_color(LED_L5, RGB_OFFBLUE); + rgb_matrix_set_color(LED_L6, RGB_OFFBLUE); + rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE); + } + break; + + // MOUSEKEYS mode RGB + case _MOUSEKEY: + rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE); + rgb_matrix_set_color(LED_RCTL, RGB_CYAN); + rgb_matrix_set_color(LED_RSFT, RGB_CYAN); + rgb_matrix_set_color(LED_END, RGB_CYAN); + rgb_matrix_set_color(LED_PGUP, RGB_OFFBLUE); + rgb_matrix_set_color(LED_PGDN, RGB_OFFBLUE); + break; + + // Colemak layer RGB + #ifdef COLEMAK_LAYER_ENABLE + case _COLEMAK: + for (uint8_t i = 0; i < ARRAYSIZE(LED_SIDE_RIGHT); i++) { + rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_MAGENTA); + rgb_matrix_set_color(LED_SIDE_LEFT[i], RGB_MAGENTA); + } + break; + #endif + + // Paddle game logic + #ifdef GAME_ENABLE + case _GAME: + if (!game_start) { + srand((unsigned int) timer_read()); + + // Store user light settings + last_hsv = rgb_matrix_get_hsv(); + rgb_matrix_sethsv_noeeprom(0, 0, 0); + + paddle_pos_full = 8; + paddle_lives = 4; + bounce_count = 0; + level_number = 0; + damage_count = 0; + + init_ball(0); + ball[1].on = false; + ball_timer = timer_read(); + + game_start = true; + } + + // Set level indicator + if (level_number < 12) { + rgb_matrix_set_color(GAME_R0[level_number], RGB_BLUE); + } + + // Set life bar + for (uint8_t i = 0; i < paddle_lives; i++) { + rgb_matrix_set_color(GAME_LIVES[i], RGB_GREEN); + } + + uint8_t paddle_pos = paddle_pos_full >> 1; + + if (damage_count > 0) { + // Flash paddle when receiving damage + if (timer_elapsed(damage_timer) > 500) { + --damage_count; + damage_timer = timer_read(); + } + if ((damage_count & 1) == 0) { + for (uint8_t i = 0; i < 3; i++) { + rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_RED); + } + } + if (damage_count == 0) { + ball_timer = timer_read(); + } + + } else if (paddle_lives == 0) { + // Game over + for (uint8_t i = 0; i < sizeof(LED_GAME_OVER) / sizeof(LED_GAME_OVER[0]); i++) { + rgb_matrix_set_color(LED_GAME_OVER[i], RGB_RED); + } + + } else if (level_number >= 12) { + // You win + if (rgb_value.r == 0xff && rgb_value.g < 0xff) { + if (rgb_value.b > 0) { + --rgb_value.b; + } else { + ++rgb_value.g; + } + } else if (rgb_value.g == 0xff && rgb_value.b < 0xff) { + if (rgb_value.r > 0) { + --rgb_value.r; + } else { + ++rgb_value.b; + } + } else if (rgb_value.b == 0xff && rgb_value.r < 0xff) { + if (rgb_value.g > 0) { + --rgb_value.g; + } else { + ++rgb_value.r; + } + } + + for (uint8_t i = 0; i < 3; i++) { + rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], rgb_value.r, rgb_value.g, rgb_value.b); + } + rgb_matrix_set_color(GAME_SMILE1[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b); + rgb_matrix_set_color(GAME_SMILE1[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); + rgb_matrix_set_color(GAME_SMILE2[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b); + rgb_matrix_set_color(GAME_SMILE2[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); + + } else { + // normal game loop + + // Set paddle position + for (uint8_t i = 0; i < 3; i++) { + rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_GREEN); + } + + // Ball movement logic happens at intervals + if (timer_elapsed(ball_timer) > GAME_TIMER[level_number]) { + for (int i = 0; i < 2; ++i) { + if (ball[i].on) { + // Ball movement + if (ball[i].up) { + if (ball[i].y > 0) { + --ball[i].y; + if (!ball[i].left) ++ball[i].x; + } else { + // Count reflections. If > 10, increase level + ++bounce_count; + if (bounce_count >= 10) { + bounce_count = 0; + ++level_number; + } + ball[i].on = false; + } + } else { + ++ball[i].y; + if (ball[i].left) --ball[i].x; + if (ball[i].y > 4) { + // Remove a life if ball isn't returned and isn't enemy + if (!ball[i].enemy) { + hurt_paddle(); + i = 2; + } else { + ball[i].on = false; + } + } + } + } + } + if (ball[0].y == 4 && !ball[1].on) { + init_ball(1); + } + if (ball[1].y == 4 && !ball[0].on) { + init_ball(0); + } + if (!ball[0].on && !ball[1].on) { + init_ball(0); + } + ball_timer = timer_read(); + } + + // Other ball stuff + for (int i = 0; i < 2; ++i) { + if (ball[i].on) { + // Ball deflection logic + if (!ball[i].up && ball[i].y == 4 && (ball[i].x == paddle_pos || ball[i].x == paddle_pos - 1 || ball[i].x == paddle_pos + 1)) { + if (!ball[i].enemy) { + --ball[i].y; + if (!ball[i].left) { + ++ball[i].x; + } + ball[i].up = true; + } else { + hurt_paddle(); + i = 2; + } + } + + // Ball display + switch (ball[i].y) { + case 0: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_WHITE); + } + break; + + case 1: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_WHITE); + } + break; + + case 2: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_WHITE); + } + break; + + case 3: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_WHITE); + } + break; + + case 4: + if (ball[i].enemy) { + rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_RED); + } else { + rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_WHITE); + } + break; + } + } + } + } + break; + #endif //GAME_ENABLE + default: + #ifdef GAME_ENABLE + if (game_start) { + // Reset lighting settings + game_start = false; + rgb_matrix_sethsv_noeeprom(last_hsv.h, last_hsv.s, last_hsv.v); + } + #endif //GAME_ENABLE + break; + } +} +#endif + +void keyboard_post_init_keymap(void) { + // keyboard_post_init_user() moved to userspace + #ifdef RGB_MATRIX_ENABLE + activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle + #endif +} \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h new file mode 100644 index 0000000000..3d33975cfe --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h @@ -0,0 +1,48 @@ +/* Copyright 2021 Glorious, LLC + Copyright 2021 Tomas Guinan + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifdef GAME_ENABLE +const uint16_t GAME_TIMER[] = { + 400, 350, 300, 250, 400, 350, 300, 250, 225, 200, 175, 150 +}; + +bool game_start = false; +HSV last_hsv; +static uint8_t paddle_pos_full; +static uint8_t paddle_lives; +static uint8_t level_number; +static uint8_t bounce_count; +static uint8_t damage_count; +static uint16_t damage_timer; +static uint16_t ball_timer; + +struct BallStruct +{ + uint8_t x; + uint8_t y; + bool on; + bool up; + bool left; + bool enemy; +}; + +struct BallStruct ball[2]; + +void init_ball(uint8_t i); +void hurt_paddle(void); + +#endif //GAME_ENABLE \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md new file mode 100644 index 0000000000..31f4539fde --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md @@ -0,0 +1,122 @@ +# [gourdo1's](mailto:gourdo1@outlook.com) GMMK Pro ISO layout + +This Windows-centric ISO layout is based on [Jonavin's](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin) GMMK Pro layout with several additions, fixes, a tweaked keymap, updated layers, [Tomas Guinan's paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) and expanded RGB controls. + +![image](https://raw.githubusercontent.com/gourdo1/media/main/susuwatari.jpg) + +## Features: + +### Core Functionality + +* ISO layout (added July xx, 2022) +* [VIA](https://www.caniusevia.com/) support enabled (added Mar 16, 2022) +* Most [default Glorious shortcuts](https://cdn.shopify.com/s/files/1/0549/2681/files/GMMK_Pro_User_Guide.pdf) enabled +* [N-key Rollover](https://en.wikipedia.org/wiki/Rollover_\(keyboard\)#n-key_rollover) (NKRO) -- toggled with Fn+R +* 1000Hz polling rate with 5ms debounce time for quick response in games +* Mouse Keys! Don't want to move your hands off the keyboard or you didn't bring it with you on the road? Use cursor keys to move the mouse. +* Overlay numpad on 789-UIOP-JKL;-M,. & Space-bar mapped to Enter key for rapid number entry +* Gaming mode (Fn+Win-key) locks out Win-key as well as double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming related keys +* [Caps Word](https://getreuer.info/posts/keyboards/caps-word/index.html) enabled: To capitalize the next word only, press and release both left and right shift keys at the same time. (added Feb 25, 2022) +* Multi-monitor app moving shortcuts: Fn+[,] (square brackets) to move current app window to next monitor (added Apr 11, 2022) +* Capslock toggled by double tap of Left Shift key or Fn + Capslock (RGB green highlighted) +* Paddle game accessible via Fn+P; Hit Fn+P again or double tap ESC to exit (added May 5, 2022) +* Single-handed shortcut for Ctrl-Alt-Delete: Fn+/ (added May 14, 2022) +* Single-handed shortcut for Win-L (lock Windows): Fn+L (added May 17, 2022) +* Domain shortcuts: Fn+.=".com", Fn+O="outlook.com", Fn+Y="yahoo.com", Fn+H="hotmail.com", Fn+G="gmail.com". (added Apr 7, 2022) +* Fn-Backslash for [Bootloader mode](https://github.com/qmk/qmk_firmware/blob/master/docs/newbs_flashing.md) +* Home key on F13, Del key right of Backspace +* Insert accessible via Shift-Backspace (so shift delete still works in Windows Explorer) +* PrtScrn, Scroll Lock, Pause/Break are top right on the keyboard: Fn+F11, Fn+F12, Fn+F13 +* [Colemak](https://colemak.com/) key layout support (Layer accessible via Left Shift + turn Encoder clockwise until side LEDs light up purple) +* Double tap ESC any time to revert to base layer (added Feb 26, 2022) +* RGB backlight effects expanded to include framebuffer effects and reactive keypress modes (updated May 24, 2022) +* RGB backlight now remembers last color & effect settings after power down (updated May 24, 2022) + +### Numpad + Mouse Keys (Capslock key) + +* Overlay numpad + [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) are accessed through Capslock key hold (temp) or double press (locked) with RGB highlighting +* Numpad uses Space-bar as Enter for rapid number entry (added May 17, 2022) +* This layer disables much of the keyboard, except X/C/V for cut/copy/paste, WASD for cursor, Q/E for PgUp/PgDn, cursor keys become mouse keys, surrounding keys become mouse buttons and all number keys become numpad versions (so Alt char codes work regardless of which set you use) +* Fn and N keys light up orange if system numlock is off (inverted status), indicating numpad keys will not deliver expected output (Fn+N to toggle) +* Double zero on comma key. +* [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) allow you to use the mouse without taking your hand off the keyboard. (added Mar 15, 2022) +* Mouse controls are: Cursor keys = move mouse; RShift = button1, End = button2, RCtrl = button3, PgUp/PgDn = Scroll wheel +* Mouse Keys can also be accessed as a standalone layer by Left Shift-turning the Encoder until the cursor keys light up green + +### Encoder Functionality + +* Default knob turn changes volume; button press toggles mute +* Exponential encoder - quick repeated volume up doubles increase; quick repeated volume down triples decrease (added Feb 17, 2022) +* Fn + knob turn changes RGB idle timeout +* Fn + knob push puts PC to Sleep (Added May 14, 2022) +* holding Left Shift changes layers +* holding Right Shift navigates page up/down +* holding Left Ctrl navigates prev/next word +* holding Right Ctrl changes RGB hue/color +* holding Left Alt changes media prev/next track + +### Paddle Game + +* Based on [Tomas Guinan's excellent GMMK Pro paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) +* Paddle Game playable by pressing Fn+P (P lights up green in Fn layer if game is enabled in firmware, otherwise it lights up red) +* Use rotary encoder to control paddle +* Contains 12 levels, indicated by blue LED on F-key row +* Player has 4 lives, indicated by nav cluster +* Deflect white balls while avoiding red ones +* Use Fn+P, double tap ESC or otherwise change layer to quit game + +### Global RGB Controls + +* RGB backlight lighting effect: Fn+up/down +* RGB backlight effect speed: Fn+left/right +* RGB backlight hue cycle: Fn+A/D +* RGB backlight brightness: Fn+W/S +* RGB backlight saturation: Fn+Q/E (added Feb 4, 2022) +* RGB backlight night mode toggle: Fn+Z (indicators still work) +* RGB backlight timeout: Fn+Encoder or "-" and "=" (default 15 minutes) (updated Apr 7, 2022) + * indicators in Fn layer using RGB in F-key and number rows to show the current timeout in minutes +* Fn+Z to turn off RGB backlighting (indicator lights still work); press again to toggle +* RGB indicators on left side LEDs in order from top: System NumLock off (orange), Scroll Lock (red), Numpad (blue), Capslock (green). + +### Advanced Controls + +* Fn+\ to get to bootloader mode +* Fn+[ESC] to clear EEPROM (then unplug and re-plug) (added Apr 11, 2022) +* Fn+R to toggle N-key Rollover (added Apr 11, 2022) +* Fn+/ is single-handed shortcut to Ctrl-Alt-Delete (added May 14, 2022) +* Fn+L is single-handed shortcut to Win-L (lock Windows) (added May 17, 2022) +* Fn+[Encoder press] to sleep Windows PC (added May 14, 2022) + +Link to latest firmware binary: https://github.com/gourdo1/media/raw/main/gmmk_pro_rev1_ansi_gourdo1.bin + +Link to cheatsheet: https://github.com/gourdo1/media/raw/main/GMMK_Pro_Cheatsheet.pdf + + +## rules.mk Options + +STARTUP_NUMLOCK_ON = yes - Turns on NUMLOCK by default + +ENCODER_DEFAULTACTIONS_ENABLE = yes - Enabled default encoder functions + +TD_LSFT_CAPSLOCK_ENABLE = yes - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS + +IDLE_TIMEOUT_ENABLE = yes - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically + +INVERT_NUMLOCK_INDICATOR - Inverts the Numlock indicator, LED is on when numlock is off -- numlock interferes with overlay numpad, so should be off when numpad layer is active unless you have an external numpad. + +COLEMAK_LAYER_ENABLE = yes - Enables optional 5th layer for COLEMAK layout. Use Shift + encoder to enter 5th layer. + +GAME_ENABLE ?= yes - Enables Paddle Game + +## Layer Diagrams +### Base layer +![image](https://raw.githubusercontent.com/gourdo1/media/main/base.png) + +### Fn Layer +![image](https://raw.githubusercontent.com/gourdo1/media/main/fn1.png) + +### Layer 2 (Numpad) +![image](https://raw.githubusercontent.com/gourdo1/media/main/numpad.png) + +### COLEMAK layer +![image](https://user-images.githubusercontent.com/71780717/131235050-980d2f54-2d23-4ae8-a83f-9fcdbe60d6cb.png) diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h new file mode 100644 index 0000000000..36e42ee7f4 --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h @@ -0,0 +1,411 @@ +/* Copyright 2021 Jonavin Eng @Jonavin + Copyright 2022 gourdo1 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifdef RGB_MATRIX_ENABLE + +//Define variables for Game +bool fn_active = false; +RGB rgb_value; + +// Custom GMMK Pro-specific RGB color customizations (defaults found in quantum/color.h) +#define RGB_GODSPEED 0x00, 0xE4, 0xFF // color for matching keycaps +#define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colors +#define RGB_OFFBLUE 0x00, 0x80, 0xFF // new color: blue with a hint of green +#define RGB_DKRED 0x28, 0x00, 0x00 // new color: dark red +#define RGB_ORANGE2 0xFF, 0x28, 0x00 // fix: reduced green from 80 to 28 +#define RGB_PURPLE2 0x80, 0x00, 0xFF // fix: increased red from 7A to 80 +#define RGB_SPRINGGREEN2 0x00, 0xFF, 0x10 // fix: blue was 80, now 10 +#define RGB_YELLOW2 0xFF, 0xB0, 0x00 // fix: green was FF, now B0 +#define RGB_OFF RGB_BLACK + +// Added by gourdo1 for RGB testing +// Red Green Blue Expected GMMK Pro result +#define RGB_TEST1 0xFF, 0x00, 0x00 // Q - red good! +#define RGB_TEST2 0x0F, 0xFF, 0x00 // W - green good! +#define RGB_TEST3 0x00, 0x00, 0xFF // E - blue good! +#define RGB_TEST4 0xFF, 0xB0, 0x00 // R - yellow slightly green heavy - reduced green LED by quite a bit +#define RGB_TEST5 0x00, 0xFF, 0xFF // T - cyan good! +#define RGB_TEST6 0xFF, 0x00, 0xFF // Y - magenta very slightly blue heavy? +#define RGB_TEST7 0xFF, 0x28, 0x00 // U - orange very green heavy at default +#define RGB_TEST8 0xFF, 0x00, 0x80 // I - pink good! +#define RGB_TEST9 0x80, 0xFF, 0x00 // O - chartreus good! +#define RGB_TEST10 0x00, 0xFF, 0x10 // P - springgrn fixed: was too blue because green LED has blue in it already +#define RGB_TEST11 0x00, 0x80, 0xFF // A - grn blue good! +#define RGB_TEST12 0x80, 0x00, 0xFF // S - purple good! + +// RGB LED locations +enum led_location_map { + LED_ESC, // 0, ESC, k13 + LED_GRV, // 1, `, k16 + LED_TAB, // 2, Tab, k11 + LED_CAPS, // 3, Caps, k21 + LED_LSFT, // 4, Sh_L, k00 + LED_LCTL, // 5, Ct_L, k06 + LED_F1, // 6, F1, k26 + LED_1, // 7, 1, k17 + LED_Q, // 8, Q, k10 + LED_A, // 9, A, k12 + LED_Z, // 10, Z, k14 + LED_LWIN, // 11, Win_L, k90 + LED_F2, // 12, F2, k36 + LED_2, // 13, 2, k27 + LED_W, // 14, W, k20 + LED_S, // 15, S, k22 + LED_X, // 16, X, k24 + LED_LALT, // 17, Alt_L, k93 + LED_F3, // 18, F3, k31 + LED_3, // 19, 3, k37 + LED_E, // 20, E, k30 + LED_D, // 21, D, k32 + LED_C, // 22, C, k34 + LED_F4, // 23, F4, k33 + LED_4, // 24, 4, k47 + LED_R, // 25, R, k40 + LED_F, // 26, F, k42 + LED_V, // 27, V, k44 + LED_F5, // 28, F5, k07 + LED_5, // 29, 5, k46 + LED_T, // 30, T, k41 + LED_G, // 31, G, k43 + LED_B, // 32, B, k45 + LED_SPC, // 33, SPACE, k94 + LED_F6, // 34, F6, k63 + LED_6, // 35, 6, k56 + LED_Y, // 36, Y, k51 + LED_H, // 37, H, k53 + LED_N, // 38, N, k55 + LED_F7, // 39, F7, k71 + LED_7, // 40, 7, k57 + LED_U, // 41, U, k50 + LED_J, // 42, J, k52 + LED_M, // 43, M, k54 + LED_F8, // 44, F8, k76 + LED_8, // 45, 8, k67 + LED_I, // 46, I, k60 + LED_K, // 47, K, k62 + LED_COMM, // 48, ,, k64 + LED_RALT, // 49, Alt_R, k95 + LED_F9, // 50, F9, ka6 + LED_9, // 51, 9, k77 + LED_O, // 52, O, k70 + LED_L, // 53, L, k72 + LED_DOT, // 54, ., k74 + LED_FN, // 55, FN, k92 + LED_F10, // 56, F10, ka7 + LED_0, // 57, 0, k87 + LED_P, // 58, P, k80 + LED_SCLN, // 59, ;, k82 + LED_SLSH, // 60, ?, k85 + LED_F11, // 61, F11, ka3 + LED_MINS, // 62, -, k86 + LED_LBRC, // 63, [, k81 + LED_QUOT, // 64, ", k83 + LED_RCTL, // 65, Ct_R, k04 + LED_F12, // 66, F12, ka5 + LED_BSLS, // 67, \, k23 + LED_L1, // 68, LED, l01 + LED_R1, // 69, LED, l11 + LED_PRT, // 70, Prt, k97 + LED_L2, // 71, LED, l02 + LED_R2, // 72, LED, l12 + LED_DEL, // 73, Del, k65 + LED_L3, // 74, LED, l03 + LED_R3, // 75, LED, l13 + LED_PGUP, // 76, PgUp, k15 + LED_L4, // 77, LED, l04 + LED_R4, // 78, LED, l14 + LED_EQL, // 79, =, k66 + LED_RIGHT, // 80, Right, k05 + LED_L5, // 81, LED, l05 + LED_R5, // 82, LED, l15 + LED_END, // 83, End, k75 + LED_L6, // 84, LED, l06 + LED_R6, // 85, LED, l16 + LED_BSPC, // 86, BSpc, ka1 + LED_PGDN, // 87, PgDn, k25 + LED_L7, // 88, LED, l07 + LED_R7, // 89, LED, l17 + LED_RBRC, // 90, ], k61 + LED_RSFT, // 91, Sh_R, k91 + LED_L8, // 92, LED, l08 + LED_R8, // 93, LED, l18 + LED_UP, // 94, Up, k35 + LED_HASH, // 95, #, k84 + LED_LEFT, // 96, Left, k03 + LED_ENT, // 97, Enter, ka4 + LED_DOWN // 98, Down, k73 +}; + +const uint8_t LED_LIST_WASD[] = { + LED_W, + LED_A, + LED_S, + LED_D +}; + +const uint8_t LED_LIST_ARROWS[] = { + LED_LEFT, + LED_RIGHT, + LED_UP, + LED_DOWN +}; + +const uint8_t LED_LIST_FUNCROW[] = { + LED_ESC, + LED_F1, + LED_F2, + LED_F3, + LED_F4, + LED_F5, + LED_F6, + LED_F7, + LED_F8, + LED_F9, + LED_F10, + LED_F11, + LED_F12, + LED_PRT +}; + +const uint8_t LED_LIST_NUMROW[] = { + LED_GRV, + LED_1, + LED_2, + LED_3, + LED_4, + LED_5, + LED_6, + LED_7, + LED_8, + LED_9, + LED_0, + LED_MINS, + LED_EQL, + LED_BSPC, + LED_DEL +}; + +const uint8_t LED_LIST_LETTERS[] = { +/* LED_1, + LED_2, + LED_3, + LED_4, + LED_5, + LED_6, + LED_7, + LED_8, + LED_9, + LED_0, */ + LED_Q, + LED_W, + LED_E, + LED_R, + LED_T, + LED_Y, + LED_U, + LED_I, + LED_O, + LED_P, + LED_A, + LED_S, + LED_D, + LED_F, + LED_G, + LED_H, + LED_J, + LED_K, + LED_L, + LED_Z, + LED_X, + LED_C, + LED_V, + LED_B, + LED_N, + LED_M +}; + +const uint8_t LED_LIST_NUMPAD[] = { + LED_1, + LED_2, + LED_3, + LED_4, + LED_5, + LED_6, + LED_7, + LED_8, + LED_9, + LED_0, + LED_MINS, + LED_EQL, + LED_U, + LED_I, + LED_O, + LED_P, + LED_J, + LED_K, + LED_L, + LED_SCLN, + LED_ENT, + LED_M, + LED_COMM, + LED_DOT, + LED_SLSH, + LED_END, + LED_RIGHT +}; + +const uint8_t LED_SIDE_LEFT[] = { + LED_L1, + LED_L2, + LED_L3, + LED_L4, + LED_L5, + LED_L6, + LED_L7, + LED_L8 +}; + +const uint8_t LED_SIDE_RIGHT[] = { + LED_R1, + LED_R2, + LED_R3, + LED_R4, + LED_R5, + LED_R6, + LED_R7, + LED_R8 +}; + +#ifdef GAME_ENABLE +// Game LED rules +const uint8_t GAME_LIVES[] = { + LED_DEL, + LED_PGUP, + LED_PGDN, + LED_END +}; +const uint8_t GAME_PADDLE[] = { + LED_Z, + LED_X, + LED_C, + LED_V, + LED_B, + LED_N, + LED_M, + LED_COMM, + LED_DOT, + LED_SLSH +}; +const uint8_t GAME_SMILE1[] = { + LED_A, + LED_S, + LED_D, + LED_F, + LED_G, + LED_H, + LED_J, + LED_K, + LED_L, + LED_SCLN, + LED_QUOT +}; +const uint8_t GAME_SMILE2[] = { + LED_2, + LED_3, + LED_4, + LED_5, + LED_6, + LED_7, + LED_8, + LED_9, + LED_0, + LED_MINS, + LED_EQL +}; +const uint8_t GAME_R4[] = { + LED_X, + LED_C, + LED_V, + LED_B, + LED_N, + LED_M, + LED_COMM, + LED_DOT +}; +const uint8_t GAME_R3[] = { + LED_S, + LED_D, + LED_F, + LED_G, + LED_H, + LED_J, + LED_K, + LED_L, + LED_SCLN +}; +const uint8_t GAME_R2[] = { + LED_W, + LED_E, + LED_R, + LED_T, + LED_Y, + LED_U, + LED_I, + LED_O, + LED_P, + LED_LBRC +}; +const uint8_t GAME_R1[] = { + LED_2, + LED_3, + LED_4, + LED_5, + LED_6, + LED_7, + LED_8, + LED_9, + LED_0, + LED_MINS, + LED_EQL +}; +const uint8_t GAME_R0[] = { + LED_F1, + LED_F2, + LED_F3, + LED_F4, + LED_F5, + LED_F6, + LED_F7, + LED_F8, + LED_F9, + LED_F10, + LED_F11, + LED_F12 +}; +const uint8_t LED_GAME_OVER[] = { + LED_5, + LED_8, + LED_F, + LED_G, + LED_H, + LED_J, + LED_C, + LED_M +}; +#endif //GAME_ENABLE + +#endif \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk new file mode 100644 index 0000000000..37e81e3dbb --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk @@ -0,0 +1,22 @@ +LTO_ENABLE = yes # link time optimization -- achieves a smaller compiled size +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +MOUSEKEY_ENABLE = yes + +VIA_ENABLE = yes +TAP_DANCE_ENABLE = yes +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +CAPS_WORD_ENABLE = yes # Enable built-in Caps Word functionality + +TD_LSFT_CAPSLOCK_ENABLE = yes +IDLE_TIMEOUT_ENABLE = yes +STARTUP_NUMLOCK_ON = yes +ENCODER_DEFAULTACTIONS_ENABLE = no + +COLEMAK_LAYER_ENABLE = yes # Enable Colemak layer / set to no to disable +INVERT_NUMLOCK_INDICATOR = yes + +GAME_ENABLE ?= yes # Enable Paddle Game / set to no to disable +ifeq ($(strip $(GAME_ENABLE)), yes) + OPT_DEFS += -DGAME_ENABLE +endif diff --git a/keyboards/gon/nerd60/config.h b/keyboards/gon/nerd60/config.h index 5e2fe57327..85dfe0a339 100644 --- a/keyboards/gon/nerd60/config.h +++ b/keyboards/gon/nerd60/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E45 // NE -#define PRODUCT_ID 0x3630 // 60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER GON -#define PRODUCT NerD 60 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/gon/nerd60/info.json b/keyboards/gon/nerd60/info.json index 66db3f1185..baf67fe528 100644 --- a/keyboards/gon/nerd60/info.json +++ b/keyboards/gon/nerd60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "GON NerD 60", + "keyboard_name": "NerD 60", + "manufacturer": "GON", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E45", + "pid": "0x3630", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/gon/nerdtkl/config.h b/keyboards/gon/nerdtkl/config.h index 74d67f30d4..ec2cbc8a32 100644 --- a/keyboards/gon/nerdtkl/config.h +++ b/keyboards/gon/nerdtkl/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E45 // NE -#define PRODUCT_ID 0x5244 // RD -#define DEVICE_VER 0x0001 -#define MANUFACTURER GON -#define PRODUCT NerD TKL - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 9 diff --git a/keyboards/gon/nerdtkl/info.json b/keyboards/gon/nerdtkl/info.json index 45155fd737..1af13bf237 100644 --- a/keyboards/gon/nerdtkl/info.json +++ b/keyboards/gon/nerdtkl/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "GON NerD TKL", + "keyboard_name": "NerD TKL", + "manufacturer": "GON", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E45", + "pid": "0x5244", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl": { "layout": [ diff --git a/keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c b/keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c index bda83bb5da..c4294c812e 100644 --- a/keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c +++ b/keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c @@ -241,7 +241,7 @@ void matrix_scan_user(void) { } layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _BL: custom_backlight_level(0); break; diff --git a/keyboards/gopolar/gg86/config.h b/keyboards/gopolar/gg86/config.h new file mode 100644 index 0000000000..7566bd2c3f --- /dev/null +++ b/keyboards/gopolar/gg86/config.h @@ -0,0 +1,93 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7, D5 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C6, B6, B5, B4, D7, D6, D4, C7, E6, D2, D3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Forcing to use NKRO instead 6KRO */ +#define FORCE_NKRO + +/* Change larger keys per scan for elite gaming */ +#define QMK_KEYS_PER_SCAN 12 + +/* Use the custom font */ +#define OLED_FONT_H "lib/glcdfont.c" + +#ifdef RGB_MATRIX_ENABLE + /* RGB Matrix config */ + #define RGB_DI_PIN E2 + #define DRIVER_LED_TOTAL 100 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + #define RGB_MATRIX_KEYPRESSES + + /* RGB Matrix effect */ + #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_SOLID_REACTIVE_SIMPLE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + #define ENABLE_RGB_MATRIX_SPLASH + #define ENABLE_RGB_MATRIX_MULTISPLASH + #define ENABLE_RGB_MATRIX_SOLID_SPLASH + #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/gopolar/gg86/gg86.c b/keyboards/gopolar/gg86/gg86.c new file mode 100644 index 0000000000..3e790cd61e --- /dev/null +++ b/keyboards/gopolar/gg86/gg86.c @@ -0,0 +1,79 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "gg86.h" + +// OLED animation +#include "lib/logo.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, NO_LED, 74, 73, 72 }, + { 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 }, + { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38 }, + { 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, NO_LED, NO_LED, NO_LED }, + { 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, NO_LED, 10, NO_LED }, + { 0, 1, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, NO_LED, 4, 5, 6, NO_LED, 7, 8, 9 } +}, { + // Key matrix (0 -> 87) + {3 , 64}, {19 , 64}, {36 , 64}, {91 , 64}, {146, 64}, {162, 64}, {179, 64}, {198, 64}, {211, 64}, {224, 64}, + {211, 52}, {182, 52}, {170, 52}, {146, 52}, {133, 52}, {120, 52}, {107, 52}, {94 , 52}, {81 , 52}, {68 , 52}, {55 , 52}, {42 , 52}, {29 , 52}, {16 , 52}, {2 , 52}, + {2 , 41}, {23 , 41}, {36 , 41}, {49 , 41}, {62 , 41}, {75 , 41}, {88 , 41}, {101, 41}, {114, 41}, {127, 41}, {140, 41}, {153, 41}, {174, 41}, + {224, 29}, {211, 29}, {198, 29}, {179, 29}, {162, 29}, {149, 29}, {136, 29}, {123, 29}, {110, 29}, {97 , 29}, {84 , 29}, {71 , 29}, {58 , 29}, {45 , 29}, {32 , 29}, {19 , 29}, {3 , 29}, + {0 , 17}, {13 , 17}, {26 , 17}, {39 , 17}, {52 , 17}, {65 , 17}, {78 , 17}, {91 , 17}, {104, 17}, {117, 17}, {130, 17}, {143, 17}, {156, 17}, {175, 17}, {198, 17}, {211, 17}, {224, 17}, + {224, 0}, {211, 0}, {198, 0}, {182, 0}, {169, 0}, {156, 0}, {143, 0}, {123, 0}, {110, 0}, {97 , 0}, {84 , 0}, {65 , 0}, {52 , 0}, {39 , 0}, {26 , 0}, {0 , 0}, + + // Underglow (88 -> 99) + {1 , 6}, {50 , 6}, {89 , 6}, {135, 6}, {176, 6}, {198, 6}, {221, 55}, {192, 58}, {138, 59}, {96 , 61}, {42 , 59}, {7 , 60}, +}, { + // Key matrix (0 -> 87) + 1, 1, 1, 4, 1, 1, 1, 4, 4, 4, + 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, + 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + + // Underglow (88 -> 99) + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +} }; +#endif + +#ifdef OLED_ENABLE + uint16_t startup_timer; + + oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + startup_timer = timer_read(); + + return rotation; + } + + bool oled_task_kb(void) { + static bool finished_logo = false; + + if ((timer_elapsed(startup_timer) < 5000) && !finished_logo) { + render_logo(); + } else { + finished_logo = true; + + if (!oled_task_user()) { + return false; + } + } + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/gg86.h b/keyboards/gopolar/gg86/gg86.h new file mode 100644 index 0000000000..6922f8dab5 --- /dev/null +++ b/keyboards/gopolar/gg86/gg86.h @@ -0,0 +1,116 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │1F │1G │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │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 │4B │4C │4D │ │4F │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5B │5C │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5C, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, XXX, XXX, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, XXX, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, K55, XXX, XXX, XXX, XXX, K5A, K5B, K5C, XXX, K5E, K5F, K5G }, \ +} + +/* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │1F │1G │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │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 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │ │4F │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5B │5C │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + +#define LAYOUT_tkl_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5C, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, XXX, XXX, XXX }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, XXX, XXX, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, K55, XXX, XXX, XXX, XXX, K5A, K5B, K5C, XXX, K5E, K5F, K5G }, \ +} + +/* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │1F │1G │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐3D │ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │2D │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │ │4F │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5B │5C │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + +#define LAYOUT_tkl_iso_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5C, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, XXX, XXX, XXX }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, XXX, XXX, K4F, XXX }, \ + { K50, K51, K52, XXX, XXX, K55, XXX, XXX, XXX, XXX, K5A, K5B, K5C, XXX, K5E, K5F, K5G }, \ +} diff --git a/keyboards/gopolar/gg86/info.json b/keyboards/gopolar/gg86/info.json new file mode 100644 index 0000000000..9fbca5b36d --- /dev/null +++ b/keyboards/gopolar/gg86/info.json @@ -0,0 +1,301 @@ +{ + "keyboard_name": "GG86 Tai-Chi", + "manufacturer": "Gopolar", + "url": "", + "maintainer": "Gopolar", + "usb": { + "vid": "0x0007", + "pid": "0x0007", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\| / ISO Hash", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, + {"label":"Shift", "x":14, "y":4.5}, + {"label":"\u2191", "x":16.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.5}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, + {"label":"Space", "x":4, "y":5.5, "w":7}, + {"label":"Alt", "x":11, "y":5.5, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.5}, + {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5} + ] + } + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\|", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.5}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, + {"label":"Space", "x":4, "y":5.5, "w":7}, + {"label":"Alt", "x":11, "y":5.5, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.5}, + {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5} + ] + } + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"ISO Hash", "x":12.75, "y":3.5}, + {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"ISO \\", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.5}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, + {"label":"Space", "x":4, "y":5.5, "w":7}, + {"label":"Alt", "x":11, "y":5.5, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.5}, + {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/config.h b/keyboards/gopolar/gg86/keymaps/bongocat/config.h new file mode 100644 index 0000000000..7255016531 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/config.h @@ -0,0 +1,48 @@ +/* Copyright 2021 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 + +/* Additional thing to reduce compiled size */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 +#define NO_ACTION_ONESHOT + +#ifdef RGB_MATRIX_ENABLE + /* RGB Matrix config */ + #undef RGB_MATRIX_KEYPRESSES + + /* RGB Matrix effect */ + #undef ENABLE_RGB_MATRIX_ALPHAS_MODS + #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #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_UP_DOWN + #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON + #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #undef ENABLE_RGB_MATRIX_RAINDROPS + #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #undef ENABLE_RGB_MATRIX_HUE_PENDULUM + #undef ENABLE_RGB_MATRIX_HUE_WAVE + #undef ENABLE_RGB_MATRIX_PIXEL_RAIN +#endif diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c b/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c new file mode 100644 index 0000000000..de1046c5d3 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2021 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 . + */ + +#include QMK_KEYBOARD_H + +// OLED animation +#include "oled/bongocat.h" + +#include +#include + +#include + +// 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, +}; + +enum user_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_KEYLIGHT, + RGB_MODE_UNDERGLOW, + RGB_MODE_NONE, +}; + +typedef union { + uint32_t raw; + struct { + uint8_t rgb_mode :8; + }; +} user_config_t; + +user_config_t user_config; + +// enum layer_keycodes { }; + +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 │ - │ = │ Bckspc│ │Hom│Scr│Pse│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │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 │RSt│ │ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_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_PSCR, KC_SLCK, KC_PAUSE, + KC_GRV, KC_1, KC_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_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, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │M_T│F13│F14│F15│ │F16│Rfh│Stp│ │ │ │ │ │Est│ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN] = LAYOUT_all( + KC_SLEP, RGB_M_T, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, EEP_RST, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; + +void keyboard_post_init_user(void) { + user_config.raw = eeconfig_read_user(); + switch (user_config.rgb_mode) { + case RGB_MODE_ALL: + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + break; + case RGB_MODE_KEYLIGHT: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_NONE: + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + break; + } +} + +bool process_record_user(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); + user_config.rgb_mode = RGB_MODE_KEYLIGHT; + } + 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); + user_config.rgb_mode = RGB_MODE_UNDERGLOW; + } + break; + case (LED_FLAG_UNDERGLOW): { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_NONE; + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + user_config.rgb_mode = RGB_MODE_ALL; + } + break; + } + eeconfig_update_user(user_config.raw); + } + return false; + } + + return true; +} + +void rgb_matrix_indicators_user(void) { + HSV hsv = rgb_matrix_config.hsv; + uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); + hsv.h = time; + RGB rgb = hsv_to_rgb(hsv); + + if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(25, 0, 0, 0); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(73, 0, 0, 0); + } + } +} + +#ifdef OLED_ENABLE + bool oled_task_user(void) { + led_t led_usb_state = host_keyboard_led_state(); + + render_bongocat(); + oled_set_cursor(14, 0); // sets cursor to (column, row) using charactar spacing (4 rows on 128x32 screen, anything more will overflow back to the top) + oled_write_P(PSTR("WPM:"), false); + oled_write(get_u8_str(get_current_wpm(), '0'), false); // writes wpm on top right corner of string + oled_set_cursor(17, 2); + oled_write_P(led_usb_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); + oled_set_cursor(17, 3); + oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRL") : PSTR(" "), false); + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.c b/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.c new file mode 100644 index 0000000000..e328efd24a --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.c @@ -0,0 +1,378 @@ +/* Copyright 2021 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 . + */ + +#include "quantum.h" + +// WPM-responsive animation stuff here +#define IDLE_FRAMES 5 +#define IDLE_SPEED 10 // below this wpm value your animation will idle +// #define PREP_FRAMES 1 // uncomment if >1 +#define TAP_FRAMES 2 +#define ANIM_WPM_LOWER 20 // above this wpm value typing animation to trigger +#define ANIM_FRAME_DURATION_MAX 450 // longest animation duration in ms +#define ANIM_FRAME_DURATION_MIN 100 // shortest animation duration in ms +#define IDLE_FRAME_DURATION 300 // how long each frame lasts in ms +#define ANIM_FRAME_RATIO 2.5 // how aggressively animation speeds up with wpm +// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing +#define ANIM_SIZE 525 // number of bytes in array, minimize for adequate firmware size, max is 1024 +#define MAX(x, y) (((x) > (y)) ? (x) : (y)) // Math.max macro + +uint32_t curr_anim_duration = 0; // variable animation duration +uint32_t bongo_timer = 0; +uint32_t bongo_sleep = 0; +uint8_t current_idle_frame = 0; +// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 +uint8_t current_tap_frame = 0; + +// Code containing pixel art, contains: +// 5 idle frames, 1 prep frame, and 2 tap frames + +// To make your own pixel art: +// save a png/jpeg of an 128x32 image (resource: https://www.pixilart.com/draw ) +// follow this guide up to and including "CONVERT YOUR IMAGE" https://docs.splitkb.com/hc/en-us/articles/360013811280-How-do-I-convert-an-image-for-use-on-an-OLED-display- +// replace numbers in brackets with your own +// if you start getting errors when compiling make sure you didn't accedentally delete a bracket +void render_bongocat(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { + { + //Idle 1 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0xf8, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 2 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x9f, 0x9f, 0xff, + 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1e, 0x1e, 0x3f, 0x3d, 0x3d, 0x3e, 0x7f, 0x7f, 0x7f, 0x7f, 0xf9, 0xf9, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 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, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 3 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x9f, 0x9f, 0xff, + 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1e, 0x1e, 0x3f, 0x3d, 0x3d, 0x3e, 0x7f, 0x7f, 0x7f, 0x7f, 0xf9, 0xf9, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 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, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 4 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0x3c, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Idle 5 - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0xf8, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x0f, 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, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + } + }; + + static const char PROGMEM prep[][ANIM_SIZE] = { + { + //Prepare - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0xf0, 0xf8, + 0xdc, 0x36, 0x3e, 0xee, 0xfc, 0xe0, 0x9c, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7e, 0xbe, 0xbc, 0xbc, 0x7c, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x44, 0xc4, 0xc4, 0x68, 0x78, + 0x59, 0x89, 0x91, 0x91, 0xd3, 0xf3, 0xa3, 0x23, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0x81, + 0xfa, 0xff, 0xe6, 0xe7, 0xfd, 0xff, 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x13, 0x12, 0x3c, + 0x2c, 0x26, 0x27, 0x45, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x34, 0x3c, 0x2c, 0x44, 0xc8, 0xc8, + 0xe9, 0xb9, 0x11, 0x11, 0x13, 0x93, 0xe3, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + } + }; + + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + { + //Tap left - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0xf0, 0xf8, + 0xdc, 0x36, 0x3e, 0xee, 0xfc, 0xe0, 0x9c, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, 0x38, 0x2c, 0x44, 0xc4, 0xc4, 0x68, 0x78, + 0x59, 0x89, 0x91, 0x91, 0xd3, 0xf3, 0xa3, 0x23, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x3f, 0x1f, 0x07, 0x83, 0xc0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x13, 0x12, 0x3c, + 0x2c, 0x26, 0x27, 0x45, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x24, 0x18, 0x3c, 0x7e, 0x7f, 0x7f, + 0x7f, 0xbf, 0x3f, 0x1f, 0x1f, 0x8f, 0xe7, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x11, 0x11, 0x21, 0x23, 0x23, 0x21, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + { + //Tap right - 128x32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xce, 0x9c, 0xf8, 0xfc, 0xfe, 0x80, 0xe0, 0x20, 0x00, + 0x00, 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, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 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, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x38, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0x31, 0x00, 0x08, + 0x10, 0x10, 0x10, 0x10, 0xa0, 0xa0, 0x20, 0x20, 0x40, 0x46, 0x4f, 0x5f, 0x9f, 0x9c, 0x90, 0x80, + 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xff, + 0xff, 0xbf, 0x7f, 0x7f, 0xbf, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7e, 0xbe, 0xbc, 0xbc, 0x7c, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x0f, 0x8f, 0xc7, 0xe3, 0x31, 0x38, 0x2c, 0x04, 0x64, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0x8f, 0x27, 0x27, 0x27, 0xc7, 0xc7, 0x4f, 0x4f, 0x8f, 0x8f, + 0x9f, 0x9f, 0x1f, 0x1f, 0x3f, 0x3e, 0x3e, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0xfc, 0xfc, 0xff, 0x81, + 0xfa, 0xff, 0xe6, 0xe7, 0xfd, 0xff, 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x18, 0x08, 0x08, 0x08, 0x18, 0x10, 0x30, + 0x60, 0x40, 0xc0, 0x86, 0x87, 0x85, 0xc4, 0x49, 0x69, 0x3e, 0x0e, 0x13, 0x11, 0x12, 0x12, 0x3d, + 0x2d, 0x25, 0x26, 0x44, 0x68, 0x78, 0x58, 0x9d, 0x97, 0x93, 0xe3, 0x62, 0x34, 0x3c, 0x2c, 0x26, + 0xc7, 0xc5, 0x69, 0x39, 0x19, 0x1d, 0x36, 0xa2, 0xe2, 0x62, 0x34, 0x3c, 0x2c, 0x44, 0xc8, 0xc8, + 0xe9, 0xb9, 0x11, 0x11, 0x13, 0x93, 0xe3, 0x63, 0x27, 0x27, 0x47, 0x47, 0xcf, 0xcf, 0x0f, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00 + }, + }; + + // assumes 1 frame prep stage + 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() < ANIM_WPM_LOWER) { + // oled_write_raw_P(prep[abs((PREP_FRAMES-1)-current_prep_frame)], ANIM_SIZE); // uncomment if IDLE_FRAMES >1 + oled_write_raw_P(prep[0], ANIM_SIZE); // remove if IDLE_FRAMES >1 + } + + if (get_current_wpm() >= ANIM_WPM_LOWER) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + + // variable animation duration. Don't want this value to get near zero as it'll bug out. + curr_anim_duration = MAX(ANIM_FRAME_DURATION_MIN, ANIM_FRAME_DURATION_MAX - ANIM_FRAME_RATIO * get_current_wpm()); + + if (get_current_wpm() > ANIM_WPM_LOWER) { + oled_on(); // not essential but turns on animation OLED with any alpha keypress + + if (timer_elapsed32(bongo_timer) > curr_anim_duration) { + bongo_timer = timer_read32(); + animation_phase(); + } + + bongo_sleep = timer_read32(); + } else { + if (timer_elapsed32(bongo_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(bongo_timer) > IDLE_FRAME_DURATION) { + bongo_timer = timer_read32(); + animation_phase(); + } + } + } +} diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.h b/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.h new file mode 100644 index 0000000000..a7ec3c5028 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/oled/bongocat.h @@ -0,0 +1,17 @@ +/* Copyright 2021 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 . + */ + +void render_bongocat(void); diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/readme.md b/keyboards/gopolar/gg86/keymaps/bongocat/readme.md new file mode 100644 index 0000000000..632f9c67e2 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/readme.md @@ -0,0 +1,3 @@ +# Keymap with VIA and Bongo Cat on OLED + +Keymap is default 87 qwerty, with TKL 7u-spacebar layout diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/rules.mk b/keyboards/gopolar/gg86/keymaps/bongocat/rules.mk new file mode 100644 index 0000000000..05f6cfd501 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/bongocat/rules.mk @@ -0,0 +1,4 @@ +SRC += oled/bongocat.c + +VIA_ENABLE = yes +WPM_ENABLE = yes diff --git a/keyboards/gopolar/gg86/keymaps/default/keymap.c b/keyboards/gopolar/gg86/keymaps/default/keymap.c new file mode 100644 index 0000000000..070858c958 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/default/keymap.c @@ -0,0 +1,325 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// OLED animation +#include "lib/wave.h" + +#include +#include + +#include + +// 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 { }; + +enum user_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_KEYLIGHT, + RGB_MODE_UNDERGLOW, + RGB_MODE_NONE, +}; + +typedef union { + uint32_t raw; + struct { + uint8_t rgb_mode :8; + }; +} user_config_t; + +user_config_t user_config; + +// enum layer_keycodes { }; + +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 │ - │ = │ Bckspc│ │Hom│Scr│Pse│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │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 │RSt│ │ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUSE, + KC_GRV, KC_1, KC_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_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, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │M_T│F13│F14│F15│ │F16│Rfh│Stp│ │ │ │ │ │Est│ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [1] = LAYOUT_all( + KC_SLEP, RGB_M_T, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, EEP_RST, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │F13│F14│F15│F16│ │Rfh│Stp│ │ │ │ │ │ │ │ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [2] = LAYOUT_all( + KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │F13│F14│F15│F16│ │Rfh│Stp│ │ │ │ │ │ │ │ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [3] = LAYOUT_all( + KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; + +void keyboard_post_init_user(void) { + user_config.raw = eeconfig_read_user(); + switch (user_config.rgb_mode) { + case RGB_MODE_ALL: + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + break; + case RGB_MODE_KEYLIGHT: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_NONE: + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + break; + } +} + +bool process_record_user(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); + user_config.rgb_mode = RGB_MODE_KEYLIGHT; + } + 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); + user_config.rgb_mode = RGB_MODE_UNDERGLOW; + } + break; + case (LED_FLAG_UNDERGLOW): { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_NONE; + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + user_config.rgb_mode = RGB_MODE_ALL; + } + break; + } + eeconfig_update_user(user_config.raw); + } + return false; + } + + return true; +} + +void rgb_matrix_indicators_user(void) { + HSV hsv = rgb_matrix_config.hsv; + uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); + hsv.h = time; + RGB rgb = hsv_to_rgb(hsv); + + if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(25, 0, 0, 0); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(73, 0, 0, 0); + } + } +} + +#ifdef OLED_ENABLE + static void render_layer_info(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("QWERTY "), false); + break; + case 1: + oled_write_P(PSTR("Function "), false); + break; + case 2: + oled_write_P(PSTR("Function "), false); + break; + case 3: + oled_write_P(PSTR("Function "), false); + break; + default: + oled_write_P(PSTR("Undefined "), false); + } + } + + static void render_layer_number(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("0"), false); + break; + case 1: + oled_write_P(PSTR("1"), false); + break; + case 2: + oled_write_P(PSTR("2"), false); + break; + case 3: + oled_write_P(PSTR("3"), false); + break; + default: + oled_write_P(PSTR("X"), false); + } + } + + bool oled_task_user(void) { + led_t led_usb_state = host_keyboard_led_state(); + + oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLK ") : PSTR("----- "), false); + oled_write_P(PSTR(" GOPOLAR "), false); + oled_write_P(led_usb_state.scroll_lock ? PSTR(" SCRLK") : PSTR(" -----"), false); + + // sleep if it has been long enough since we last got a char + if (timer_elapsed32(wave_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + oled_on(); + } + // time for the next frame? + if (timer_elapsed(wave_timer) > FRAME_TIMEOUT) { + wave_timer = timer_read(); + render_frame(); + } + + oled_set_cursor(0, 3); + render_layer_info(); + oled_write_P(PSTR("Layer: "), false); + render_layer_number(); + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/config.h b/keyboards/gopolar/gg86/keymaps/horrortroll/config.h new file mode 100644 index 0000000000..246f36bb94 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/config.h @@ -0,0 +1,52 @@ +/* Copyright 2021 HorrorTroll + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 +#define NO_ACTION_ONESHOT + +#ifdef RGB_MATRIX_ENABLE + /* RGB Matrix effect */ + #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_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_UP_DOWN + #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #undef ENABLE_RGB_MATRIX_DUAL_BEACON + #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON + #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #undef ENABLE_RGB_MATRIX_RAINDROPS + #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #undef ENABLE_RGB_MATRIX_HUE_WAVE + #undef ENABLE_RGB_MATRIX_PIXEL_RAIN + + #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_SPLASH + #undef ENABLE_RGB_MATRIX_SOLID_SPLASH + #undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c new file mode 100644 index 0000000000..99817cec47 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2021 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 . + */ + +#include QMK_KEYBOARD_H + +#include "keymap_stuff.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 │ - │ = │ Bckspc│ │Hom│Scr│Pse│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │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 │RSt│ │ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_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_PSCR, KC_SLCK, KC_PAUSE, + KC_GRV, KC_1, KC_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_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, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Rst│ │MeP│VoD│VoU│Mut│ │Stp│Prv│Ply│Nxt│ │Mai│Hom│Cal│Sch│ │Rod│Mod│Tog│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │NKO│ │ │ │ │ │ │ │ │ │ │Spd│Spi│ │ │C_E│ │ │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │1Hd│1Hi│1Sd│1Si│1Vd│1Vi│ │ │ │ │ │ │ │ │ │ │ │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │2Hd│2Hi│2Sd│2Si│2Vd│2Vi│ │ │ │ │ │ │ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │Pre│Ref│Flp│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ Fn│ │ │Hud│Vad│Hui│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [_FN] = LAYOUT_all( + RESET, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, RGB_RMOD, RGB_MOD, RGB_TOG, + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_C_E, _______, _______, + _______, G1_HUD, G1_HUI, G1_SAD, G1_SAI, G1_VAD, G1_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, G2_HUD, G2_HUI, G2_SAD, G2_SAI, G2_VAD, G2_VAI, _______, _______, _______, _______, _______, _______, + _______, _______, G_PRE, REF_G, G_FLIP, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI + ), +}; diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h new file mode 100644 index 0000000000..ad7a3238ce --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h @@ -0,0 +1,304 @@ +/* Copyright 2021 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 . + */ + +#include "oled/oled_stuff.h" +#include +#include + +#include + +// 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, +}; + +// For CUSTOM_GRADIENT +HSV gradient_0 = {205, 250, 255}; +HSV gradient_100 = {140, 215, 125}; +bool reflected_gradient = false; +uint8_t gp_i = 0; + +typedef struct { + HSV gradient_0; + HSV gradient_1; + bool reflected; +} CUSTOM_PRESETS; + +enum user_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_KEYLIGHT, + RGB_MODE_UNDERGLOW, + RGB_MODE_NONE, +}; + +typedef union { + uint32_t raw; + struct { + uint8_t rgb_mode :8; + }; +} user_config_t; + +user_config_t user_config; + +enum layer_keycodes { + //Custom Gradient control keycode + G1_HUI = SAFE_RANGE, //Custom gradient color 1 hue increase + G1_HUD, //Custom gradient color 1 hue decrease + G1_SAI, //Custom gradient color 1 saturation increase + G1_SAD, //Custom gradient color 1 saturation decrease + G1_VAI, //Custom gradient color 1 value increase + G1_VAD, //Custom gradient color 1 value decrease + G2_HUI, //Custom gradient color 2 hue increase + G2_HUD, //Custom gradient color 2 hue decrease + G2_SAI, //Custom gradient color 2 saturation increase + G2_SAD, //Custom gradient color 2 saturation decrease + G2_VAI, //Custom gradient color 2 value increase + G2_VAD, //Custom gradient color 2 value decrease + G_PRE, //Gradient presets + REF_G, //Toggle between linear and reflected gradient + G_FLIP, //Flip the gradient colors + + //Custom led effect keycode + RGB_C_E, //Cycle user effect +}; + +void keyboard_post_init_user(void) { + user_config.raw = eeconfig_read_user(); + switch (user_config.rgb_mode) { + case RGB_MODE_ALL: + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + break; + case RGB_MODE_KEYLIGHT: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_NONE: + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + break; + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + process_record_user_oled(keycode, record); + + uint8_t color_adj_step = 5; + + CUSTOM_PRESETS gradient_presets[] = { + {{41 , 255, 255}, {233, 245, 255}, false }, + {{45 , 245, 155}, {160, 255, 80}, false }, + {{173, 245, 40}, {41 , 255, 205}, true }, + {{32 , 255, 165}, {217, 185, 70}, false }, + {{240, 255, 145}, {115, 255, 245}, true }, + {{118, 255, 255}, {242, 255, 255}, false }, + {{212, 0 , 0}, {223, 235, 165}, true }, + {{205, 250, 255}, {140, 215, 125}, false }, + }; + + uint8_t gp_length = sizeof(gradient_presets)/sizeof(gradient_presets[0]); + + switch (keycode) { + case G1_HUI: + if (record->event.pressed) { + gradient_0.h += color_adj_step; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_HUD: + if (record->event.pressed) { + gradient_0.h -= color_adj_step; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_SAI: + if (record->event.pressed) { + gradient_0.s = (gradient_0.s + color_adj_step * 2 <= 255) ? gradient_0.s + color_adj_step * 2 : 255; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_SAD: + if (record->event.pressed) { + gradient_0.s = (gradient_0.s - color_adj_step * 2 >= 0) ? gradient_0.s - color_adj_step * 2 : 0; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_VAI: + if (record->event.pressed) { + gradient_0.v = (gradient_0.v + color_adj_step * 2 <= 255) ? gradient_0.v + color_adj_step * 2 : 255; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G1_VAD: + if (record->event.pressed) { + gradient_0.v = (gradient_0.v - color_adj_step * 2 >= 0) ? gradient_0.v - color_adj_step * 2 : 0; + dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v); + } + return false; + case G2_HUI: + if (record->event.pressed) { + gradient_100.h += color_adj_step; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_HUD: + if (record->event.pressed) { + gradient_100.h -= color_adj_step; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_SAI: + if (record->event.pressed) { + gradient_100.s = (gradient_100.s + color_adj_step * 2 <= 255) ? gradient_100.s + color_adj_step * 2 : 255; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_SAD: + if (record->event.pressed) { + gradient_100.s = (gradient_100.s - color_adj_step * 2 >= 0) ? gradient_100.s - color_adj_step * 2 : 0; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_VAI: + if (record->event.pressed) { + gradient_100.v = (gradient_100.v + color_adj_step * 2 <= 255) ? gradient_100.v + color_adj_step * 2 : 255; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G2_VAD: + if (record->event.pressed) { + gradient_100.v = (gradient_100.v - color_adj_step * 2 >= 0) ? gradient_100.v - color_adj_step * 2 : 0; + dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v); + } + return false; + case G_PRE: + if (record->event.pressed) { + gp_i = (gp_i + gp_length ) % gp_length; + + gradient_0 = gradient_presets[gp_i].gradient_0; + gradient_100 = gradient_presets[gp_i].gradient_1; + reflected_gradient = gradient_presets[gp_i].reflected; + + gp_i += 1; + } + return false; + case REF_G: + if (record->event.pressed) { + reflected_gradient = !reflected_gradient; + } + return false; + case G_FLIP: + if (record->event.pressed) { + HSV temp_color = gradient_0; + gradient_0 = gradient_100; + gradient_100 = temp_color; + } + return false; + case RGB_C_E: + if (record->event.pressed) { + switch (rgb_matrix_get_mode()) { + case RGB_MATRIX_CUSTOM_CUSTOM_GRADIENT: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_COOL_DIAGONAL); + return false; + case RGB_MATRIX_CUSTOM_COOL_DIAGONAL: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_FLOWER_BLOOMING); + return false; + case RGB_MATRIX_CUSTOM_FLOWER_BLOOMING: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_RAINBOW_REACTIVE_SIMPLE); + return false; + case RGB_MATRIX_CUSTOM_RAINBOW_REACTIVE_SIMPLE: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_KITT); + return false; + case RGB_MATRIX_CUSTOM_KITT: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_RANDOM_BREATH_RAINBOW); + return false; + default: + rgb_matrix_mode(RGB_MATRIX_CUSTOM_CUSTOM_GRADIENT); + return false; + } + } + return false; + 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); + user_config.rgb_mode = RGB_MODE_KEYLIGHT; + } + 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); + user_config.rgb_mode = RGB_MODE_UNDERGLOW; + } + break; + case (LED_FLAG_UNDERGLOW): { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_NONE; + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + user_config.rgb_mode = RGB_MODE_ALL; + } + break; + } + eeconfig_update_user(user_config.raw); + } + return false; + } + + return true; +} + +void rgb_matrix_indicators_user(void) { + HSV hsv = rgb_matrix_config.hsv; + uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); + hsv.h = time; + RGB rgb = hsv_to_rgb(hsv); + + if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(25, 0, 0, 0); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(73, 0, 0, 0); + } + } +} diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/cool_diagonal.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/cool_diagonal.c new file mode 100644 index 0000000000..2c518a5431 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/cool_diagonal.c @@ -0,0 +1,22 @@ +/* Copyright 2021 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 . + */ + +static HSV COOL_DIAGONAL_math(HSV hsv, uint8_t i, uint8_t time) { + hsv.h = (g_led_config.point[i].x / 4) - g_led_config.point[i].y - time; + return hsv; +} + +bool COOL_DIAGONAL(effect_params_t* params) { return effect_runner_i(params, &COOL_DIAGONAL_math); } \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c new file mode 100644 index 0000000000..fcedf777eb --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c @@ -0,0 +1,74 @@ +/* Copyright 2021 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 . + */ + +extern HSV gradient_0; +extern HSV gradient_100; +extern bool reflected_gradient; + +static HSV INTERPOLATE_HSV(float step, HSV gradient_0, HSV gradient_100) { + uint8_t cw, ccw; + HSV color; + + cw = (gradient_0.h >= gradient_100.h) ? 255 + gradient_100.h - gradient_0.h : gradient_100.h - gradient_0.h; // Hue range is 0 to 255. + ccw = (gradient_0.h >= gradient_100.h) ? gradient_0.h - gradient_100.h : 255 + gradient_0.h - gradient_100.h; + + if( cw < ccw ) { // going clockwise + color.h = gradient_0.h + (uint8_t)(step * cw); + } else { // Going counter clockwise + color.h = gradient_0.h - (uint8_t)(step * ccw); + } + + color.s = gradient_0.s + step * (gradient_100.s - gradient_0.s); + + // Scale V with global RGB Matrix's V, so users can still control overall brightness with RGB_VAI & RGB_VAD0 + color.v = round((gradient_0.v + step * (gradient_100.v - gradient_0.v)) * ((float)rgb_matrix_config.hsv.v / 255)); + + return color; +} + +static HSV CUSTOM_GRADIENT_math(uint8_t led_x, uint8_t min_x, uint8_t max_x) { + float step = (float)led_x / (max_x - min_x); + float mid_gradient_pos = 0.5; + + if( reflected_gradient ) { + if( step <= mid_gradient_pos ) { + return INTERPOLATE_HSV(step * (1/mid_gradient_pos), gradient_0, gradient_100); + } else { + return INTERPOLATE_HSV((step - mid_gradient_pos) * (1/(1-mid_gradient_pos)), gradient_100, gradient_0); + } + + } else { + return INTERPOLATE_HSV(step, gradient_0, gradient_100); + } +} + +static bool CUSTOM_GRADIENT(effect_params_t* params) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + uint8_t min_x = 0; // X coordinate of the left-most LED + uint8_t max_x = 224; // X coordinate of the right-most LED + + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + + HSV hsv_orig = CUSTOM_GRADIENT_math(g_led_config.point[i].x, min_x, max_x); + RGB rgb = hsv_to_rgb(hsv_orig); + + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + + return led_max < DRIVER_LED_TOTAL; +} \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.c new file mode 100644 index 0000000000..add83149cc --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.c @@ -0,0 +1,27 @@ +/* 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 . + */ + +#include "led/flower_blooming/flower_blooming.h" + +static HSV FLOWER_BLOOMING_math(HSV hsv, uint8_t i, uint8_t time) { + if (g_led_config.point[i].y > k_rgb_matrix_center.y) + hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 + time; + else + hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 - time; + return hsv; +} + +bool FLOWER_BLOOMING(effect_params_t* params) { return effect_runner_bloom(params, &FLOWER_BLOOMING_math); } diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.h b/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.h new file mode 100644 index 0000000000..941dab975a --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.h @@ -0,0 +1,20 @@ +#pragma once + +typedef HSV (*flower_blooming_f)(HSV hsv, uint8_t i, uint8_t time); + +bool effect_runner_bloom(effect_params_t* params, flower_blooming_f effect_func) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 10, 1)); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + if (g_led_config.point[i].y > k_rgb_matrix_center.y) { + RGB bgr = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + rgb_matrix_set_color(i, bgr.b, bgr.g, bgr.r); + } else { + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + } + return rgb_matrix_check_finished_leds(led_max); +} diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/kitt.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/kitt.c new file mode 100644 index 0000000000..bfc32ce040 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/kitt.c @@ -0,0 +1,68 @@ +/* Copyright 2021 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 . + */ + +// variable for startup animation +bool BASE_EFFECT_NOT_STARTED_YET = true; +uint8_t base_effect_startup_counter = 255; + +uint8_t led_count = 11; +uint8_t led_first = 41; + +static uint8_t time_to_led(uint8_t time, uint8_t led_behind) { + uint16_t led_time = led_count * time; + uint16_t step = ((2 * led_count + (led_time / 128)) - led_behind) % (2 * led_count); + uint8_t led; + + if (step < led_count) { + led = step; + } else { + led = led_count - 1 - (step - led_count); + } + + return led; +} + +static HSV KITT_math(HSV hsv, uint8_t i, uint8_t time) { + + // reset base effect startup + if (i == 0) { + BASE_EFFECT_NOT_STARTED_YET = true; + } + + hsv.h = 0; + hsv.s = 255; + + if (i >= led_first && i < led_first + led_count) { + uint8_t j = i - led_first; + if (j == time_to_led(time, 0)) { + hsv.v = hsv.v; + } else if (j == time_to_led(time, 1)) { + hsv.v = hsv.v/2; + } else if (j == time_to_led(time, 2)) { + hsv.v = hsv.v/4; + } else if (j == time_to_led(time, 3)) { + hsv.v = hsv.v/8; + } else { + hsv.v = 0; + } + } else { + hsv.v = 0; + } + + return hsv; +} + +bool KITT(effect_params_t* params) { return effect_runner_i(params, &KITT_math); } \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c new file mode 100644 index 0000000000..ce3fff8ec5 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c @@ -0,0 +1,25 @@ +/* Copyright 2021 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 . + */ + +#include "led/rainbow_reactive_simple/rainbow_reactive_simple.h" + +static HSV RAINBOW_REACTIVE_SIMPLE_math(HSV hsv, uint8_t i, uint8_t time, uint16_t offset) { + hsv.h = g_led_config.point[i].x - time; + hsv.v = scale8(255 - offset, hsv.v); + return hsv; +} + +bool RAINBOW_REACTIVE_SIMPLE(effect_params_t* params) { return effect_rainbow_reactive(params, &RAINBOW_REACTIVE_SIMPLE_math); } \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h new file mode 100644 index 0000000000..5b610716e0 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h @@ -0,0 +1,45 @@ +/* Copyright 2021 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 + +typedef HSV (*rainbow_reactive_f)(HSV hsv, uint8_t i, uint8_t time, uint16_t offset); + +bool effect_rainbow_reactive(effect_params_t* params, rainbow_reactive_f effect_func) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4); + uint16_t max_tick = 65535 / rgb_matrix_config.speed; + + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + uint16_t tick = max_tick; + + // Reverse search to find most recent key hit + for (int8_t j = g_last_hit_tracker.count - 1; j >= 0; j--) { + if (g_last_hit_tracker.index[j] == i && g_last_hit_tracker.tick[j] < tick) { + tick = g_last_hit_tracker.tick[j]; + break; + } + } + + uint16_t offset = scale16by8(tick, rgb_matrix_config.speed); + RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time, offset)); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); + } + + return led_max < DRIVER_LED_TOTAL; +} \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c new file mode 100644 index 0000000000..e5f399cdd3 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c @@ -0,0 +1,55 @@ +/* Copyright 2021 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 . + */ + +static uint8_t offset[DRIVER_LED_TOTAL]; + +static void doRandom_breath_rainbow(int i, effect_params_t* params) { + if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 6); + + if (rand() * 50 == 1) { + if (rand() * 2 == 1) { + offset[i]++; + } + else { + offset[i]--; + } + } + + //float val = (((float)sin8(time + offset[i]) / 256)/2.1) + .05; + HSV hsv = {0, 255, 255}; + hsv.h = scale16by8(g_rgb_timer + offset[i], rgb_matrix_config.speed / 4) + (offset[i]*2); + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); +} + +bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { + + if (!params->init) { + // Change one LED every tick, make sure speed is not 0 + doRandom_breath_rainbow(rand() % DRIVER_LED_TOTAL, params); + return false; + } + + RGB_MATRIX_USE_LIMITS(led_min, led_max); + + for (uint8_t i = led_min; i < led_max; i++) { + doRandom_breath_rainbow(i, params); + } + + return led_max < DRIVER_LED_TOTAL; +} \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h b/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h new file mode 100644 index 0000000000..d67e5a18c5 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h @@ -0,0 +1,68 @@ +/* Copyright 2021 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 . + */ + +// OLED animation +#include "lib/wave.h" + +#ifdef OLED_ENABLE + static void render_layer_info(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR(" QWERTY "), false); + break; + case 1: + oled_write_P(PSTR(" Function "), false); + break; + default: + oled_write_P(PSTR(" Undefined "), false); + } + } + + static void render_layer_number(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("0"), false); + break; + case 1: + oled_write_P(PSTR("1"), false); + break; + default: + oled_write_P(PSTR("X"), false); + } + } + + bool oled_task_user(void) { + render_layer_info(); + + // sleep if it has been long enough since we last got a char + if (timer_elapsed32(wave_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + oled_on(); + } + // time for the next frame? + if (timer_elapsed(wave_timer) > FRAME_TIMEOUT) { + wave_timer = timer_read(); + render_frame(); + } + + oled_set_cursor(0, 3); + oled_write_P(PSTR(" Layer: "), false); + render_layer_number(); + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/readme.md b/keyboards/gopolar/gg86/keymaps/horrortroll/readme.md new file mode 100644 index 0000000000..363330e98f --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/readme.md @@ -0,0 +1,12 @@ +# My personal keymap with VIA and custom LED / OLED + +Keymap is default 87 qwerty, with TKL 7u-spacebar layout + +It have new LED effect: + +- Custom gradient (ported from SirTimmyTimbit code [https://github.com/SirTimmyTimbit/customizable-gradient-effect-for-drop-alt]) +- Cool diagonal (ported from pleasuretek code [https://github.com/pleasuretek/qmk_firmware]) +- Flower Blooming +- Rainbow reactive simple +- Knight Rider (ported from jumper149 code [https://github.com/jumper149/qmk_firmware/blob/jumper149/keyboards/dztech/dz65rgb/keymaps/jumper149/]) +- Random breath rainbow (based from daed code [https://github.com/daed/qmk_firmware/blob/master/keyboards/massdrop/alt/keymaps/daed] and modify by me) diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/rgb_matrix_user.inc b/keyboards/gopolar/gg86/keymaps/horrortroll/rgb_matrix_user.inc new file mode 100644 index 0000000000..7a31991027 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/rgb_matrix_user.inc @@ -0,0 +1,17 @@ +RGB_MATRIX_EFFECT(CUSTOM_GRADIENT) +RGB_MATRIX_EFFECT(COOL_DIAGONAL) +RGB_MATRIX_EFFECT(FLOWER_BLOOMING) +RGB_MATRIX_EFFECT(RAINBOW_REACTIVE_SIMPLE) +RGB_MATRIX_EFFECT(KITT) +RGB_MATRIX_EFFECT(RANDOM_BREATH_RAINBOW) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +#include "led/custom_gradient.c" +#include "led/cool_diagonal.c" +#include "led/flower_blooming/flower_blooming.c" +#include "led/rainbow_reactive_simple/rainbow_reactive_simple.c" +#include "led/kitt.c" +#include "led/random_breath_rainbow.c" + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/rules.mk b/keyboards/gopolar/gg86/keymaps/horrortroll/rules.mk new file mode 100644 index 0000000000..d475530c87 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +RGB_MATRIX_CUSTOM_USER = yes diff --git a/keyboards/gopolar/gg86/keymaps/via/keymap.c b/keyboards/gopolar/gg86/keymaps/via/keymap.c new file mode 100644 index 0000000000..070858c958 --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/via/keymap.c @@ -0,0 +1,325 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// OLED animation +#include "lib/wave.h" + +#include +#include + +#include + +// 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 { }; + +enum user_rgb_mode { + RGB_MODE_ALL, + RGB_MODE_KEYLIGHT, + RGB_MODE_UNDERGLOW, + RGB_MODE_NONE, +}; + +typedef union { + uint32_t raw; + struct { + uint8_t rgb_mode :8; + }; +} user_config_t; + +user_config_t user_config; + +// enum layer_keycodes { }; + +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 │ - │ = │ Bckspc│ │Hom│Scr│Pse│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │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 │RSt│ │ │ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │ │ │ │ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUSE, + KC_GRV, KC_1, KC_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_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, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │M_T│F13│F14│F15│ │F16│Rfh│Stp│ │ │ │ │ │Est│ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [1] = LAYOUT_all( + KC_SLEP, RGB_M_T, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, EEP_RST, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │F13│F14│F15│F16│ │Rfh│Stp│ │ │ │ │ │ │ │ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [2] = LAYOUT_all( + KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + +/* + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + │Slp│ │F13│F14│F15│F16│ │Rfh│Stp│ │ │ │ │ │ │ │ │ │VoD│VoU│ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hui│Sai│Spi│ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Hud│Sad│Spd│ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + │ │ │ │ │ │ │ │ │ │ │ │ │ RGB_Tog│ + ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ + │ │ │ │ │Cal│ │ │ │ │ │ │ │ │ │ │Vai│ + ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + │ │ │ │ │ │ │ │ │Rod│Vad│Mod│ + └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +*/ + /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + [3] = LAYOUT_all( + KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_WREF, KC_WSTP, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_SPI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; + +void keyboard_post_init_user(void) { + user_config.raw = eeconfig_read_user(); + switch (user_config.rgb_mode) { + case RGB_MODE_ALL: + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + break; + case RGB_MODE_KEYLIGHT: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + break; + case RGB_MODE_NONE: + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + break; + } +} + +bool process_record_user(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); + user_config.rgb_mode = RGB_MODE_KEYLIGHT; + } + 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); + user_config.rgb_mode = RGB_MODE_UNDERGLOW; + } + break; + case (LED_FLAG_UNDERGLOW): { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + user_config.rgb_mode = RGB_MODE_NONE; + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + user_config.rgb_mode = RGB_MODE_ALL; + } + break; + } + eeconfig_update_user(user_config.raw); + } + return false; + } + + return true; +} + +void rgb_matrix_indicators_user(void) { + HSV hsv = rgb_matrix_config.hsv; + uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); + hsv.h = time; + RGB rgb = hsv_to_rgb(hsv); + + if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } + } else { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(25, 0, 0, 0); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b); + } else { + rgb_matrix_set_color(73, 0, 0, 0); + } + } +} + +#ifdef OLED_ENABLE + static void render_layer_info(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("QWERTY "), false); + break; + case 1: + oled_write_P(PSTR("Function "), false); + break; + case 2: + oled_write_P(PSTR("Function "), false); + break; + case 3: + oled_write_P(PSTR("Function "), false); + break; + default: + oled_write_P(PSTR("Undefined "), false); + } + } + + static void render_layer_number(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("0"), false); + break; + case 1: + oled_write_P(PSTR("1"), false); + break; + case 2: + oled_write_P(PSTR("2"), false); + break; + case 3: + oled_write_P(PSTR("3"), false); + break; + default: + oled_write_P(PSTR("X"), false); + } + } + + bool oled_task_user(void) { + led_t led_usb_state = host_keyboard_led_state(); + + oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLK ") : PSTR("----- "), false); + oled_write_P(PSTR(" GOPOLAR "), false); + oled_write_P(led_usb_state.scroll_lock ? PSTR(" SCRLK") : PSTR(" -----"), false); + + // sleep if it has been long enough since we last got a char + if (timer_elapsed32(wave_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + oled_on(); + } + // time for the next frame? + if (timer_elapsed(wave_timer) > FRAME_TIMEOUT) { + wave_timer = timer_read(); + render_frame(); + } + + oled_set_cursor(0, 3); + render_layer_info(); + oled_write_P(PSTR("Layer: "), false); + render_layer_number(); + + return true; + } +#endif diff --git a/keyboards/gopolar/gg86/keymaps/via/rules.mk b/keyboards/gopolar/gg86/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/gopolar/gg86/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/gopolar/gg86/lib/glcdfont.c b/keyboards/gopolar/gg86/lib/glcdfont.c new file mode 100644 index 0000000000..6b2294ea58 --- /dev/null +++ b/keyboards/gopolar/gg86/lib/glcdfont.c @@ -0,0 +1,249 @@ +/* Copyright 2021 HorrorTroll + * Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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 is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. + +#include "progmem.h" + +// Standard ASCII 5x7 font +const unsigned char font[] PROGMEM = { + 0x07, 0x08, 0x7F, 0x08, 0x07, 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, + 0x2A, 0x1C, 0x77, 0x1C, 0x2A, 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, 0x3E, 0x04, 0x08, 0x00, + 0x08, 0x10, 0x3E, 0x10, 0x08, 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, + 0x41, 0x22, 0x14, 0x08, 0x00, 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, 0xA4, 0xA4, 0x9C, 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, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 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, 0x38, 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, + 0x10, 0x38, 0x10, 0x10, 0x1C, 0x00, + 0x0C, 0x7A, 0x41, 0x7A, 0x0C, 0x00, + 0x18, 0x2F, 0x41, 0x2F, 0x18, 0x00, + 0x22, 0x72, 0x22, 0x27, 0x22, 0x00, + 0x08, 0x1C, 0x08, 0x08, 0x08, 0x00, + 0x08, 0x08, 0x38, 0x20, 0x28, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x2A, 0x2A, 0x2A, 0x00, 0x00, + 0x4E, 0x46, 0x4A, 0x50, 0x2F, 0x00, + 0x3E, 0x45, 0x55, 0x51, 0x3E, 0x00, + 0x48, 0x50, 0x7E, 0x50, 0x48, 0x00, + 0x3E, 0x49, 0x71, 0x49, 0x3E, 0x00, + 0x10, 0x22, 0x4F, 0x20, 0x10, 0x00, + 0x0E, 0x06, 0x0A, 0x10, 0x20, 0x00, + 0x20, 0x10, 0x0A, 0x06, 0x0E, 0x00, + 0x08, 0x08, 0x08, 0x1C, 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, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; \ No newline at end of file diff --git a/keyboards/gopolar/gg86/lib/logo.c b/keyboards/gopolar/gg86/lib/logo.c new file mode 100644 index 0000000000..3db3acdac1 --- /dev/null +++ b/keyboards/gopolar/gg86/lib/logo.c @@ -0,0 +1,60 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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" + +#define ANIM_SIZE 525 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +void render_logo(void) { + static const char PROGMEM gopolar[][ANIM_SIZE] = { + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0x78, 0x78, + 0x38, 0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0xf8, 0xf8, 0xf8, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xf0, 0xfe, 0xff, 0xff, 0x0f, 0x07, 0x01, 0x00, 0xe0, 0xf0, 0xf8, + 0xf8, 0xfc, 0xfc, 0x3c, 0x1e, 0x8f, 0xc7, 0xe3, 0xe1, 0x00, 0x00, 0x07, 0x1f, 0xff, 0xff, 0xfc, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x0f, 0x03, 0x01, 0x01, 0x00, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe1, 0xe1, 0xe3, 0xe7, 0xe7, 0xe6, 0x00, 0x80, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, + 0x38, 0x70, 0xf0, 0xe0, 0x80, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x38, 0x70, + 0xf0, 0xe0, 0xc0, 0x00, 0x80, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x70, 0xf0, 0xe0, 0x80, + 0x00, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x38, 0x38, 0x70, 0xf0, + 0xe0, 0xc0, 0x00, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3f, 0x7f, 0xff, 0xf8, 0x60, 0x00, 0x00, 0x07, 0x0f, 0x1f, + 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x07, 0x80, 0xc0, 0xe0, 0xf8, 0xff, 0x7f, 0x3f, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x3c, 0x38, 0x38, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x38, 0x38, 0x3c, 0x1f, 0x0f, 0x07, 0x00, 0x07, 0x1f, 0x3f, 0x38, 0x70, 0x70, 0x70, + 0x70, 0x38, 0x3f, 0x1f, 0x07, 0x00, 0xff, 0xff, 0xff, 0x00, 0x60, 0x60, 0x60, 0x60, 0x70, 0x78, + 0x3f, 0x1f, 0x0f, 0x00, 0x07, 0x1f, 0x3f, 0x38, 0x70, 0x70, 0x70, 0x70, 0x38, 0x3f, 0x1f, 0x07, + 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x0f, 0x3f, 0x7f, 0x78, 0x70, 0x60, 0x60, 0x60, 0x60, 0x00, 0x7f, + 0x7f, 0x7f, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x0f, 0x1e, 0x1e, + 0x1e, 0x1e, 0x1c, 0x1c, 0x1e, 0x1e, 0x1e, 0x1e, 0x0f, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 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 + } + }; + + oled_write_raw_P(gopolar[0], ANIM_SIZE); +} diff --git a/keyboards/gopolar/gg86/lib/logo.h b/keyboards/gopolar/gg86/lib/logo.h new file mode 100644 index 0000000000..08ab8ea529 --- /dev/null +++ b/keyboards/gopolar/gg86/lib/logo.h @@ -0,0 +1,17 @@ +/* Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +void render_logo(void); diff --git a/keyboards/gopolar/gg86/lib/wave.h b/keyboards/gopolar/gg86/lib/wave.h new file mode 100644 index 0000000000..11a3198ab1 --- /dev/null +++ b/keyboards/gopolar/gg86/lib/wave.h @@ -0,0 +1,130 @@ +/* Copyright 2021 HorrorTroll + * Copyright 2021 Gopolar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +extern const unsigned char font[] PROGMEM; + +#define ROW_1 OLED_DISPLAY_WIDTH +#define ROW_2 (OLED_DISPLAY_WIDTH * 2) + +static uint32_t wave_sleep = 0; + +#define FRAME_TIMEOUT (1000/28) + +static uint16_t wave_timer = 0; + +static uint8_t next_bar_val = 0; +static uint8_t next_log_byte[OLED_FONT_WIDTH] = {0}; +static uint8_t line1[OLED_DISPLAY_WIDTH] = {0}; +static uint8_t line2[OLED_DISPLAY_WIDTH] = {0}; + +static const uint8_t PROGMEM bar_lut[8] = {0, 16, 24, 56, 60, 124, 126, 255}; + +#define BAR_KEY_WEIGHT 128 +#define BAR_KEY_DECAY_MAX 18 + +static uint8_t bar_key_decay = BAR_KEY_DECAY_MAX; + +// clang-format off +static const char PROGMEM code_to_name[0xFF] = { +// 0 1 2 3 4 5 6 7 8 9 A B C D E F + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x + 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x + '3', '4', '5', '6', '7', '8', '9', '0', 128, 136, 132, 131, 22, '-', '=', '[', // 2x + ']','\\', '#', ';','\'', '`', ',', '.', '/', 130, 7, 7, 7, 7, 7, 7, // 3x + 7, 7, 7, 7, 7, 7, 137, 138, 139, 140, 141, 30, 143, 142, 31, 26, // 4x + 27, 25, 24, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x + ' ', ' ', ' ', ' ','\\', 135, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx + 15, 129, 133, 4, 15, 129, 133, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx +}; +// clang-format on + +void add_keylog(uint16_t keycode) { + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || + (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) { + keycode = keycode & 0xFF; + } else if (keycode > 0xFF) { + keycode = 0; + } + + if (keycode < (sizeof(code_to_name) / sizeof(char))) { + char log_char = pgm_read_byte(&code_to_name[keycode]); + + for (uint8_t j = 0; j < OLED_FONT_WIDTH; j++) { + const uint8_t glyph_line = pgm_read_byte(&font[log_char * OLED_FONT_WIDTH + j]); + next_log_byte[j] = glyph_line; + } + } +} + +bool process_record_user_oled(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + wave_sleep = timer_read32(); + add_keylog(keycode); + + uint8_t t = next_bar_val + BAR_KEY_WEIGHT; + + if (t < next_bar_val) { + next_bar_val = 255; + } else { + next_bar_val = t; + } + + bar_key_decay = BAR_KEY_DECAY_MAX; + } + + return true; +} + +void render_frame(void) { + // rotate line 1, and stick in the next byte of the next char, + // then rotate the next char buffer + memmove(line1+1, line1, OLED_DISPLAY_WIDTH - 1); + line1[0] = next_log_byte[OLED_FONT_WIDTH - 1]; + memmove(next_log_byte+1, next_log_byte, OLED_FONT_WIDTH - 1); + next_log_byte[0] = 0; + + // rotate line 2, sticking in the next display value + uint8_t disp_val = pgm_read_byte(&bar_lut[next_bar_val / 32]); + memmove(line2+1, line2, OLED_DISPLAY_WIDTH - 1); + line2[0] = disp_val; + + // draw both bars + for (uint8_t i = 0; i < OLED_DISPLAY_WIDTH; i++) { + oled_write_raw_byte(line1[i], ROW_1 + i); + oled_write_raw_byte(line2[i], ROW_2 + i); + } + + // decay the next bar value + if (next_bar_val > bar_key_decay) { + next_bar_val -= bar_key_decay; + } else { + next_bar_val = 0; + } + + if (bar_key_decay > 1) { + bar_key_decay -= 1; + } +} diff --git a/keyboards/gopolar/gg86/readme.md b/keyboards/gopolar/gg86/readme.md new file mode 100644 index 0000000000..0e655efa12 --- /dev/null +++ b/keyboards/gopolar/gg86/readme.md @@ -0,0 +1,24 @@ +# Gopolar GG86 Tai-Chi + +![GG86 Tai-Chi](https://i.imgur.com/SgXOZjt.png?2) + +A tenkeyless 86-key keyboard made by Gopolar, which controlled by an Atmega32u4 chipset. The keyboard features per-key RGB as well as underglow RGB, and an OLED screen for displaying useful information. + +* Keyboard Maintainer: Gopolar +* Hardware Supported: Atmega32u4 +* Hardware Availability: [mecha.store](https://mecha.store/collections/gopolar/products/gopolar-gg86-tenkeyless-hotswappable-barebones-keyboard) / [AliExpress](https://www.aliexpress.com/item/1005003605711613.html) + +Make example for this keyboard (after setting up your build environment): + + make gopolar/gg86:default + +Flashing example for this keyboard: + + make gopolar/gg86: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 +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Esc key) and plug in the keyboard +* **Physical reset button**: Short press the button under Spacebar keycap to enter the Bootloader and flash the firmware +* **Keycode in layout**: Press the key mapped to RESET if it is available diff --git a/keyboards/gopolar/gg86/rules.mk b/keyboards/gopolar/gg86/rules.mk new file mode 100644 index 0000000000..0f0bdec2b6 --- /dev/null +++ b/keyboards/gopolar/gg86/rules.mk @@ -0,0 +1,32 @@ +SRC += lib/logo.c + +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +# Additional thing to reduce compiled size +LTO_ENABLE = yes +NO_USB_STARTUP_CHECK = yes + +# RGB Matrix enabled +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 + +# OLED enabled +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 # OLED display diff --git a/keyboards/gorthage_truck/config.h b/keyboards/gorthage_truck/config.h index 46a928b9d6..c3777f7318 100644 --- a/keyboards/gorthage_truck/config.h +++ b/keyboards/gorthage_truck/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xB33F -#define PRODUCT_ID 0x58E4 -#define DEVICE_VER 0x0001 -#define MANUFACTURER s8erdude -#define PRODUCT gorthage_truck - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 9 diff --git a/keyboards/gorthage_truck/info.json b/keyboards/gorthage_truck/info.json index 8f344ee860..8b083b3229 100644 --- a/keyboards/gorthage_truck/info.json +++ b/keyboards/gorthage_truck/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "gorthage_truck", + "manufacturer": "s8erdude", "url": "https://github.com/jpuerto96", "maintainer": "jpuerto96 (s8erdude)", + "usb": { + "vid": "0xB33F", + "pid": "0x58E4", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_3u": { "layout": [ diff --git a/keyboards/gowla/config.h b/keyboards/gowla/config.h index fed13df57d..8f178c6aba 100644 --- a/keyboards/gowla/config.h +++ b/keyboards/gowla/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xE9B6 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Gowla -#define PRODUCT Gowla Macro Board - /* Matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/gowla/info.json b/keyboards/gowla/info.json index c4926000bb..bf9f17e4ad 100644 --- a/keyboards/gowla/info.json +++ b/keyboards/gowla/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Gowla Macro Pad", + "keyboard_name": "Gowla Macro Board", + "manufacturer": "Gowla", "url": "https://github.com/SamGowland/Gowla-Macro-Board", "maintainer": "Gowla", + "usb": { + "vid": "0xFEED", + "pid": "0xE9B6", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_3x3": { "layout": [ diff --git a/keyboards/gray_studio/apollo80/config.h b/keyboards/gray_studio/apollo80/config.h index f00550fb65..89fc00653a 100644 --- a/keyboards/gray_studio/apollo80/config.h +++ b/keyboards/gray_studio/apollo80/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4753 -#define PRODUCT_ID 0x3001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Graystudio -#define PRODUCT apollo80 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/gray_studio/apollo80/info.json b/keyboards/gray_studio/apollo80/info.json index c0e3efdb88..32d36d766d 100644 --- a/keyboards/gray_studio/apollo80/info.json +++ b/keyboards/gray_studio/apollo80/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "apollo 80", + "keyboard_name": "apollo80", + "manufacturer": "Graystudio", "url": "https://graystudio.club/products/gb-space80-apollo", "maintainer": "qmk", + "usb": { + "vid": "0x4753", + "pid": "0x3001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gray_studio/cod67/config.h b/keyboards/gray_studio/cod67/config.h index 466ddcebc0..20612363ec 100644 --- a/keyboards/gray_studio/cod67/config.h +++ b/keyboards/gray_studio/cod67/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4753 -#define PRODUCT_ID 0x1000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Graystudio -#define PRODUCT COD67 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/gray_studio/cod67/info.json b/keyboards/gray_studio/cod67/info.json index b95f5eb8e4..c75d4786a5 100644 --- a/keyboards/gray_studio/cod67/info.json +++ b/keyboards/gray_studio/cod67/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "COD67", + "manufacturer": "Graystudio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4753", + "pid": "0x1000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4}, {"label":"Win", "x":1, "y":4}, {"label":"Alt", "x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4, "w":2}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] diff --git a/keyboards/gray_studio/hb85/config.h b/keyboards/gray_studio/hb85/config.h index 0e1f0aff42..d1240e6b9c 100644 --- a/keyboards/gray_studio/hb85/config.h +++ b/keyboards/gray_studio/hb85/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once -#define VENDOR_ID 0x4753 -#define PRODUCT_ID 0x2000 -#define DEVICE_VER 0x0200 -#define MANUFACTURER Gray Studio -#define PRODUCT HB85 - /* matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 15 diff --git a/keyboards/gray_studio/hb85/info.json b/keyboards/gray_studio/hb85/info.json index a60047df9a..a2895c1ee6 100644 --- a/keyboards/gray_studio/hb85/info.json +++ b/keyboards/gray_studio/hb85/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Gray Studio HB85", + "keyboard_name": "HB85", + "manufacturer": "Gray Studio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4753", + "pid": "0x2000", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":1.5, "y":0}, {"x":2.75, "y":0}, {"x":3.75, "y":0}, {"x":4.75, "y":0}, {"x":5.75, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.5, "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, "y":1.25}, {"x":16, "y":1.25}, {"x":17, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15, "y":2.25}, {"x":16, "y":2.25}, {"x":17, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":15, "y":3.25}, {"x":16, "y":3.25}, {"x":17, "y":3.25}, {"x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"x":15, "y":4.25}, {"x":16, "y":4.25}, {"x":17, "y":4.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25}, {"x":11, "y":5.25}, {"x":12, "y":5.25}, {"x":13, "y":5.25}, {"x":14, "y":5.25}, {"x":15, "y":5.25}, {"x":16, "y":5.25}] diff --git a/keyboards/gray_studio/space65/config.h b/keyboards/gray_studio/space65/config.h index 23bf1e7f94..0a67e39bcf 100644 --- a/keyboards/gray_studio/space65/config.h +++ b/keyboards/gray_studio/space65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4753 -#define PRODUCT_ID 0x3000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Graystudio -#define PRODUCT Space65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/gray_studio/space65/info.json b/keyboards/gray_studio/space65/info.json index a14df5ca8f..9d3e600307 100644 --- a/keyboards/gray_studio/space65/info.json +++ b/keyboards/gray_studio/space65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Gray Studio Space65", + "keyboard_name": "Space65", + "manufacturer": "Graystudio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4753", + "pid": "0x3000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gray_studio/think65/hotswap/config.h b/keyboards/gray_studio/think65/hotswap/config.h index b42e3cebdf..c9a8937436 100644 --- a/keyboards/gray_studio/think65/hotswap/config.h +++ b/keyboards/gray_studio/think65/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4753 -#define PRODUCT_ID 0x4001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Graystudio -#define PRODUCT Think6.5° Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/gray_studio/think65/hotswap/info.json b/keyboards/gray_studio/think65/hotswap/info.json index 4cbd8744b7..6de7e15c73 100644 --- a/keyboards/gray_studio/think65/hotswap/info.json +++ b/keyboards/gray_studio/think65/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "THINK6.5", + "keyboard_name": "Think6.5° Hotswap", + "manufacturer": "Graystudio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4753", + "pid": "0x4001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/gray_studio/think65/solder/config.h b/keyboards/gray_studio/think65/solder/config.h index 32a1769a6b..e2fb811cf9 100644 --- a/keyboards/gray_studio/think65/solder/config.h +++ b/keyboards/gray_studio/think65/solder/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4753 -#define PRODUCT_ID 0x4000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Graystudio -#define PRODUCT Think6.5° - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/gray_studio/think65/solder/info.json b/keyboards/gray_studio/think65/solder/info.json index 5a7b7bea00..54c2cd2cc4 100644 --- a/keyboards/gray_studio/think65/solder/info.json +++ b/keyboards/gray_studio/think65/solder/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "THINK6.5", + "keyboard_name": "Think6.5°", + "manufacturer": "Graystudio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4753", + "pid": "0x4000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/grid600/press/config.h b/keyboards/grid600/press/config.h index 0f6fe305cb..7afe784e06 100644 --- a/keyboards/grid600/press/config.h +++ b/keyboards/grid600/press/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x7539 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Grid -#define PRODUCT PRESS - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 4 diff --git a/keyboards/grid600/press/info.json b/keyboards/grid600/press/info.json index 7ee2a93d0a..e1ed976dc0 100644 --- a/keyboards/grid600/press/info.json +++ b/keyboards/grid600/press/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Grid 600 Type 05 PRESS Cover Module", + "keyboard_name": "PRESS", + "manufacturer": "Grid", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x7539", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}] diff --git a/keyboards/gvalchca/ga150/config.h b/keyboards/gvalchca/ga150/config.h index c815217702..0e54d66141 100644 --- a/keyboards/gvalchca/ga150/config.h +++ b/keyboards/gvalchca/ga150/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6776 -#define PRODUCT_ID 0x6135 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Gvalchca -#define PRODUCT GA15.0 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/gvalchca/ga150/info.json b/keyboards/gvalchca/ga150/info.json index b81082d32f..b2c5208558 100644 --- a/keyboards/gvalchca/ga150/info.json +++ b/keyboards/gvalchca/ga150/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GA15.0", + "manufacturer": "Gvalchca", "url": "", "maintainer": "Gvalchca", + "usb": { + "vid": "0x6776", + "pid": "0x6135", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gvalchca/spaccboard/config.h b/keyboards/gvalchca/spaccboard/config.h index 64b13bd9bc..518337ca94 100644 --- a/keyboards/gvalchca/spaccboard/config.h +++ b/keyboards/gvalchca/spaccboard/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6776 -#define PRODUCT_ID 0x5342 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Gvalchca -#define PRODUCT SpaccBoard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/gvalchca/spaccboard/info.json b/keyboards/gvalchca/spaccboard/info.json index 654c3eb4ad..468dd972ab 100644 --- a/keyboards/gvalchca/spaccboard/info.json +++ b/keyboards/gvalchca/spaccboard/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "SpaccBoard", + "manufacturer": "Gvalchca", "url": "https://keebmeup.com", "maintainer": "Gvalchca", + "usb": { + "vid": "0x6776", + "pid": "0x5342", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/h0oni/deskpad/config.h b/keyboards/h0oni/deskpad/config.h index c5c8054ca1..d01487a5f7 100644 --- a/keyboards/h0oni/deskpad/config.h +++ b/keyboards/h0oni/deskpad/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D53 -#define PRODUCT_ID 0x4450 //hD -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hydrogen -#define PRODUCT Deskpad - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/h0oni/deskpad/info.json b/keyboards/h0oni/deskpad/info.json index b5622d578f..d02a5b0012 100644 --- a/keyboards/h0oni/deskpad/info.json +++ b/keyboards/h0oni/deskpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Deskpad", + "manufacturer": "Hydrogen", "url": "", "maintainer": "Hydrogen BD", + "usb": { + "vid": "0x4D53", + "pid": "0x4450", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"k1", "x":0, "y":0}, diff --git a/keyboards/h0oni/hotduck/config.h b/keyboards/h0oni/hotduck/config.h index 9865f5d303..5ee44e4e23 100644 --- a/keyboards/h0oni/hotduck/config.h +++ b/keyboards/h0oni/hotduck/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D53 -#define PRODUCT_ID 0x6844 //hD -#define DEVICE_VER 0x0001 -#define MANUFACTURER h0oni -#define PRODUCT hotDuck - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 10 diff --git a/keyboards/h0oni/hotduck/info.json b/keyboards/h0oni/hotduck/info.json index 32e4ae7c2f..29f6471600 100644 --- a/keyboards/h0oni/hotduck/info.json +++ b/keyboards/h0oni/hotduck/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "hotDuck", + "manufacturer": "h0oni", "url": "", "maintainer": "h0oni", + "usb": { + "vid": "0x4D53", + "pid": "0x6844", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, diff --git a/keyboards/halfcliff/config.h b/keyboards/halfcliff/config.h index 9cd03089ba..0ef616b967 100644 --- a/keyboards/halfcliff/config.h +++ b/keyboards/halfcliff/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0335 -#define PRODUCT_ID 0x0021 -#define DEVICE_VER 0x0001 -#define MANUFACTURER n2 -#define PRODUCT halfcliff - /* key matrix size */ #define MATRIX_ROWS 20 #define MATRIX_COLS 5 diff --git a/keyboards/halfcliff/info.json b/keyboards/halfcliff/info.json index d5b5d4e53f..fa189c1056 100644 --- a/keyboards/halfcliff/info.json +++ b/keyboards/halfcliff/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "halfcliff", + "manufacturer": "n2", "url": "https://github.com/N2-Sumikko", "maintainer": "n2", + "usb": { + "vid": "0x0335", + "pid": "0x0021", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/halokeys/elemental75/chconf.h b/keyboards/halokeys/elemental75/chconf.h new file mode 100644 index 0000000000..b780a0e77b --- /dev/null +++ b/keyboards/halokeys/elemental75/chconf.h @@ -0,0 +1,21 @@ +/* Copyright 2022 Halokeys + * + * This program is free software: you can 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 +// Need to override the SysTick timer to use TIM3 -- this is a 16-bit timer on F303 +// so we need to change resolution and frequency to match. +#define CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 +#include_next "chconf.h" diff --git a/keyboards/halokeys/elemental75/config.h b/keyboards/halokeys/elemental75/config.h new file mode 100644 index 0000000000..bdc70b7a42 --- /dev/null +++ b/keyboards/halokeys/elemental75/config.h @@ -0,0 +1,58 @@ + /* Copyright 2022 Halokeys + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { A2, A3, A4, A5, A6, A7 } +#define MATRIX_COL_PINS { B2, B1, B0, B10, B11, B13, B14, B15, A8, A9, A14, A15, B3, B4, B7 } +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCE 5 + +#define ENCODERS_PAD_A { B6 } +#define ENCODERS_PAD_B { B5 } +#define TAP_CODE_DELAY 10 // tap_code function delay for register and unregister + +#define RGB_DI_PIN A10 +#define RGBLED_NUM 22 +#define RGBLIGHT_LIMIT_VAL 225 // value set lower than 255 since current draw is too high +#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 + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/halokeys/elemental75/elemental75.c b/keyboards/halokeys/elemental75/elemental75.c new file mode 100644 index 0000000000..2b5dc1ca2e --- /dev/null +++ b/keyboards/halokeys/elemental75/elemental75.c @@ -0,0 +1,35 @@ + /* Copyright 2022 Halokeys + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "elemental75.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + uprintf("Encoder Hit: clockwise: %d, index: %u\n", clockwise, index); + if (index == 0) { + if (clockwise) { + print("Tapped code: KC_VOLU\n"); + tap_code(KC_VOLU); + } else { + print("Tapped code: KC_VOLD\n"); + tap_code(KC_VOLD); + } + } + return true; +} +#endif diff --git a/keyboards/halokeys/elemental75/elemental75.h b/keyboards/halokeys/elemental75/elemental75.h new file mode 100644 index 0000000000..265d1c9437 --- /dev/null +++ b/keyboards/halokeys/elemental75/elemental75.h @@ -0,0 +1,34 @@ +/* Copyright 2022 Halokeys +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +*/ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K59, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ + K50, K51, K52, K54, K56, K58, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E }, \ + { K50, K51, K52, KC_NO, K54, KC_NO, K56, KC_NO, K58, K59, K5A, K5B, K5C, K5D, K5E }, \ +} diff --git a/keyboards/halokeys/elemental75/info.json b/keyboards/halokeys/elemental75/info.json new file mode 100644 index 0000000000..84febe2cab --- /dev/null +++ b/keyboards/halokeys/elemental75/info.json @@ -0,0 +1,103 @@ +{ + "keyboard_name": "Elemental75", + "manufacturer": "Halokeys", + "url": "", + "maintainer": "shamit05", + "usb": { + "vid": "0xEA0B", + "pid": "0xEA75", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (A2,B2)", "x":0, "y":0}, + {"label":"K01 (A2,B1)", "x":1.25, "y":0}, + {"label":"K02 (A2,B0)", "x":2.25, "y":0}, + {"label":"K03 (A2,B10)", "x":3.25, "y":0}, + {"label":"K04 (A2,B11)", "x":4.25, "y":0}, + {"label":"K05 (A2,B13)", "x":5.5, "y":0}, + {"label":"K06 (A2,B14)", "x":6.5, "y":0}, + {"label":"K07 (A2,B15)", "x":7.5, "y":0}, + {"label":"K08 (A2,A8)", "x":8.5, "y":0}, + {"label":"K09 (A2,A9)", "x":9.75, "y":0}, + {"label":"K0A (A2,A14)", "x":10.75, "y":0}, + {"label":"K0B (A2,A15)", "x":11.75, "y":0}, + {"label":"K0C (A2,B3)", "x":12.75, "y":0}, + {"label":"K0D (A2,B4)", "x":14, "y":0}, + {"label":"K0E (A2,B7)", "x":15.25, "y":0}, + {"label":"K10 (A3,B2)", "x":0, "y":1.25}, + {"label":"K11 (A3,B1)", "x":1, "y":1.25}, + {"label":"K12 (A3,B0)", "x":2, "y":1.25}, + {"label":"K13 (A3,B10)", "x":3, "y":1.25}, + {"label":"K14 (A3,B11)", "x":4, "y":1.25}, + {"label":"K15 (A3,B13)", "x":5, "y":1.25}, + {"label":"K16 (A3,B14)", "x":6, "y":1.25}, + {"label":"K17 (A3,B15)", "x":7, "y":1.25}, + {"label":"K18 (A3,A8)", "x":8, "y":1.25}, + {"label":"K19 (A3,A9)", "x":9, "y":1.25}, + {"label":"K1A (A3,A14)", "x":10, "y":1.25}, + {"label":"K1B (A3,A15)", "x":11, "y":1.25}, + {"label":"K1C (A3,B3)", "x":12, "y":1.25}, + {"label":"K1D (A3,B4)", "x":13, "y":1.25}, + {"label":"K59 (A7,A9)", "x":14, "y":1.25}, + {"label":"K1E (A3,B7)", "x":15.25, "y":1.25}, + {"label":"K20 (A4,B2)", "x":0, "y":2.25, "w":1.5}, + {"label":"K21 (A4,B1)", "x":1.5, "y":2.25}, + {"label":"K22 (A4,B0)", "x":2.5, "y":2.25}, + {"label":"K23 (A4,B10)", "x":3.5, "y":2.25}, + {"label":"K24 (A4,B11)", "x":4.5, "y":2.25}, + {"label":"K25 (A4,B13)", "x":5.5, "y":2.25}, + {"label":"K26 (A4,B14)", "x":6.5, "y":2.25}, + {"label":"K27 (A4,B15)", "x":7.5, "y":2.25}, + {"label":"K28 (A4,A8)", "x":8.5, "y":2.25}, + {"label":"K29 (A4,A9)", "x":9.5, "y":2.25}, + {"label":"K2A (A4,A14)", "x":10.5, "y":2.25}, + {"label":"K2B (A4,A15)", "x":11.5, "y":2.25}, + {"label":"K2C (A4,B3)", "x":12.5, "y":2.25}, + {"label":"K2D (A4,B4)", "x":13.5, "y":2.25, "w":1.5}, + {"label":"K2E (A4,B7)", "x":15.25, "y":2.25}, + {"label":"K30 (A5,B2)", "x":0, "y":3.25, "w":1.75}, + {"label":"K31 (A5,B1)", "x":1.75, "y":3.25}, + {"label":"K32 (A5,B0)", "x":2.75, "y":3.25}, + {"label":"K33 (A5,B10)", "x":3.75, "y":3.25}, + {"label":"K34 (A5,B11)", "x":4.75, "y":3.25}, + {"label":"K35 (A5,B13)", "x":5.75, "y":3.25}, + {"label":"K36 (A5,B14)", "x":6.75, "y":3.25}, + {"label":"K37 (A5,B15)", "x":7.75, "y":3.25}, + {"label":"K38 (A5,A8)", "x":8.75, "y":3.25}, + {"label":"K39 (A5,A9)", "x":9.75, "y":3.25}, + {"label":"K3A (A5,A14)", "x":10.75, "y":3.25}, + {"label":"K3B (A5,A15)", "x":11.75, "y":3.25}, + {"label":"K3C (A5,B3)", "x":12.75, "y":3.25, "w":2.25}, + {"label":"K3E (A5,B7)", "x":15.25, "y":3.25}, + {"label":"K40 (A6,B2)", "x":0, "y":4.25, "w":1.25}, + {"label":"K41 (A6,B1)", "x":1.25, "y":4.25}, + {"label":"K42 (A6,B0)", "x":2.25, "y":4.25}, + {"label":"K43 (A6,B10)", "x":3.25, "y":4.25}, + {"label":"K44 (A6,B11)", "x":4.25, "y":4.25}, + {"label":"K45 (A6,B13)", "x":5.25, "y":4.25}, + {"label":"K46 (A6,B14)", "x":6.25, "y":4.25}, + {"label":"K47 (A6,B15)", "x":7.25, "y":4.25}, + {"label":"K48 (A6,A8)", "x":8.25, "y":4.25}, + {"label":"K49 (A6,A9)", "x":9.25, "y":4.25}, + {"label":"K4A (A6,A14)", "x":10.25, "y":4.25}, + {"label":"K4B (A6,A15)", "x":11.25, "y":4.25}, + {"label":"K4C (A6,B3)", "x":12.25, "y":4.25, "w":1.5}, + {"label":"K4D (A6,B4)", "x":14, "y":4.5}, + {"label":"K4E (A6,B7)", "x":15.25, "y":4.25}, + {"label":"K50 (A7,B2)", "x":0, "y":5.25, "w":1.5}, + {"label":"K51 (A7,B1)", "x":1.5, "y":5.25}, + {"label":"K52 (A7,B0)", "x":2.5, "y":5.25, "w":1.5}, + {"label":"K54 (A7,B11)", "x":4, "y":5.25, "w":2.25}, + {"label":"K56 (A7,B14)", "x":6.25, "y":5.25, "w":1.25}, + {"label":"K58 (A7,A8)", "x":7.5, "y":5.25, "w":2.75}, + {"label":"K5A (A7,A14)", "x":10.25, "y":5.25, "w":1.25}, + {"label":"K5B (A7,A15)", "x":11.5, "y":5.25, "w":1.25}, + {"label":"K5C (A7,B3)", "x":13, "y":5.5}, + {"label":"K5D (A7,B4)", "x":14, "y":5.5}, + {"label":"K5E (A7,B7)", "x":15, "y":5.5} + ] + } + } +} diff --git a/keyboards/halokeys/elemental75/keymaps/default/keymap.c b/keyboards/halokeys/elemental75/keymaps/default/keymap.c new file mode 100644 index 0000000000..ef1a7a68e7 --- /dev/null +++ b/keyboards/halokeys/elemental75/keymaps/default/keymap.c @@ -0,0 +1,82 @@ + /* Copyright 2022 Halokeys + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "print.h" + +/* [Keymaps] ----------------------------------------------------------------- */ +enum layer_names { + _BASE, + _FN +}; + +/* Tap Dance declarations */ +enum { + TD_PLAY_FORWARD_BACK, +}; + +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 + return true; +} + +void dance_cln_finished(qk_tap_dance_state_t *state, void *user_data) { + uprintf("Tap Dance count: %u", state->count); + if (state->count == 1) { + tap_code(KC_MPLY); + } else if (state->count == 2) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } +} + +/* All tap dance functions would go here. Only showing this one. */ +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_PLAY_FORWARD_BACK] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, NULL), +}; + +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, MO(1), TD(TD_PLAY_FORWARD_BACK), + KC_GRV, KC_1, KC_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_TAB, KC_Q, KC_W, KC_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, XXXXXXX, 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_LSFT, KC_SPC, KC_BSPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN] = LAYOUT( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 keyboard_post_init_user(void) { + /* Customise these values to desired behaviour */ + debug_enable=true; + debug_matrix=true; + /* debug_keyboard=true; */ + /* debug_mouse=true; */ +} diff --git a/keyboards/halokeys/elemental75/keymaps/default/rules.mk b/keyboards/halokeys/elemental75/keymaps/default/rules.mk new file mode 100644 index 0000000000..e5ddcae8d9 --- /dev/null +++ b/keyboards/halokeys/elemental75/keymaps/default/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/halokeys/elemental75/keymaps/via/keymap.c b/keyboards/halokeys/elemental75/keymaps/via/keymap.c new file mode 100644 index 0000000000..d92b2c7690 --- /dev/null +++ b/keyboards/halokeys/elemental75/keymaps/via/keymap.c @@ -0,0 +1,97 @@ + /* Copyright 2022 Halokeys + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "print.h" + +/* [Keymaps] ----------------------------------------------------------------- */ +enum layer_names { _BASE, _FN ,_FN1 ,_FN2 }; + +/* Tap Dance declarations */ +enum { + TD_PLAY_FORWARD_BACK, +}; + +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 + return true; +} + +void dance_cln_finished(qk_tap_dance_state_t *state, void *user_data) { + uprintf("Tap Dance count: %u", state->count); + if (state->count == 1) { + tap_code(KC_MPLY); + } else if (state->count == 2) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } +} + +/* All tap dance functions would go here. Only showing this one. */ +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_PLAY_FORWARD_BACK] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, NULL), +}; + +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, MO(1), TD(TD_PLAY_FORWARD_BACK), + KC_GRV, KC_1, KC_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_TAB, KC_Q, KC_W, KC_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, XXXXXXX, 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_LSFT, KC_SPC, KC_BSPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN] = LAYOUT( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + + [_FN2] = 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 + ), + +}; + +void keyboard_post_init_user(void) { + /* Customise these values to desired behaviour */ + debug_enable=true; + debug_matrix=true; + /* debug_keyboard=true; */ + /* debug_mouse=true; */ +} diff --git a/keyboards/halokeys/elemental75/keymaps/via/rules.mk b/keyboards/halokeys/elemental75/keymaps/via/rules.mk new file mode 100644 index 0000000000..791d5ab502 --- /dev/null +++ b/keyboards/halokeys/elemental75/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/halokeys/elemental75/readme.md b/keyboards/halokeys/elemental75/readme.md new file mode 100644 index 0000000000..6fd8ae056b --- /dev/null +++ b/keyboards/halokeys/elemental75/readme.md @@ -0,0 +1,21 @@ +# Elemental75 + +A compact 75% keyboard made and sold by Halokeys. + +* Keyboard Maintainer: [Shamit Surana](https://github.com/shamit05) +* Hardware Supported: Elemental75 +* Hardware Availability: Not Available Yet + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the Escape key down (top left key) and plug in the keyboard +* **Physical reset button**: Hold the reset button on the back of the PCB for at least 5 seconds. +* **Keycode in layout**: Hold the key mapped to `RESET` if it is available + +Make example for this keyboard (after setting up your build environment): + + make halokeys/elemental75:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/halokeys/elemental75/rules.mk b/keyboards/halokeys/elemental75/rules.mk new file mode 100644 index 0000000000..226c430d25 --- /dev/null +++ b/keyboards/halokeys/elemental75/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/han60/config.h b/keyboards/han60/config.h index c96cb6782f..70267edb81 100644 --- a/keyboards/han60/config.h +++ b/keyboards/han60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4842 -#define PRODUCT_ID 0xFB60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HanBoards -#define PRODUCT han60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/han60/info.json b/keyboards/han60/info.json index 474b20de04..1722996c85 100644 --- a/keyboards/han60/info.json +++ b/keyboards/han60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "han60", + "manufacturer": "HanBoards", "maintainer": "qmk", "url": "hanboards.com", + "usb": { + "vid": "0x4842", + "pid": "0xFB60", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/hand88/config.h b/keyboards/hand88/config.h index 7e013224dd..78e7dadc9b 100755 --- a/keyboards/hand88/config.h +++ b/keyboards/hand88/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x3838 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT Hand 88 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/hand88/info.json b/keyboards/hand88/info.json index 1afb77570c..05cef0d06c 100755 --- a/keyboards/hand88/info.json +++ b/keyboards/hand88/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Hand 88", + "manufacturer": "Yiancar-Designs", "url": "https://yiancar-designs.com", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x3838", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.5}, {"x":1.5, "y":5.25}, {"x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"x":11, "y":5.25, "w":1.5}, {"x":12.5, "y":5.25}, {"x":13.5, "y":5.25, "w":1.5}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}] diff --git a/keyboards/handwired/108key_trackpoint/config.h b/keyboards/handwired/108key_trackpoint/config.h index b5bf98271a..2ff8a9a115 100644 --- a/keyboards/handwired/108key_trackpoint/config.h +++ b/keyboards/handwired/108key_trackpoint/config.h @@ -2,12 +2,6 @@ #include "config_common.h" -#define VENDOR_ID 0x1234 -#define PRODUCT_ID 0x5678 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK -#define PRODUCT 108Key-Trackpoint - #define MATRIX_ROWS 8 #define MATRIX_COLS 23 diff --git a/keyboards/handwired/108key_trackpoint/info.json b/keyboards/handwired/108key_trackpoint/info.json index d3cf5ad26a..a652ee74a9 100644 --- a/keyboards/handwired/108key_trackpoint/info.json +++ b/keyboards/handwired/108key_trackpoint/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "108 Key with TrackPoint", + "keyboard_name": "108Key-TrackPoint", + "manufacturer": "QMK", "url": "", "maintainer": "mkem114", + "usb": { + "vid": "0x1234", + "pid": "0x5678", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/2x5keypad/config.h b/keyboards/handwired/2x5keypad/config.h index 174fb736a2..f53879f19a 100644 --- a/keyboards/handwired/2x5keypad/config.h +++ b/keyboards/handwired/2x5keypad/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x2020 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jonathan Cameron -#define PRODUCT 2x5keypad - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 5 diff --git a/keyboards/handwired/2x5keypad/info.json b/keyboards/handwired/2x5keypad/info.json index 77ce9a8b50..72b5e185b7 100644 --- a/keyboards/handwired/2x5keypad/info.json +++ b/keyboards/handwired/2x5keypad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "2x5keypad", + "manufacturer": "Jonathan Cameron", "url": "", "maintainer": "jmcameron", + "usb": { + "vid": "0xFEED", + "pid": "0x2020", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/3dfoxc/config.h b/keyboards/handwired/3dfoxc/config.h index ea73f91ba0..a0fd24c136 100644 --- a/keyboards/handwired/3dfoxc/config.h +++ b/keyboards/handwired/3dfoxc/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER dlgoodr -#define PRODUCT 3dfoxc - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/3dfoxc/info.json b/keyboards/handwired/3dfoxc/info.json index 06e849bb11..aa8875e0dd 100644 --- a/keyboards/handwired/3dfoxc/info.json +++ b/keyboards/handwired/3dfoxc/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "3dfoxc", + "manufacturer": "dlgoodr", "url": "", "maintainer": "dlgoodr", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/3dp660/config.h b/keyboards/handwired/3dp660/config.h index 60ab13deaa..8a8fe8ea30 100644 --- a/keyboards/handwired/3dp660/config.h +++ b/keyboards/handwired/3dp660/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x676F // "go" - gooberpsycho -#define PRODUCT_ID 0x3660 // "3" "660" -#define DEVICE_VER 0x0001 -#define MANUFACTURER gooberpsycho -#define PRODUCT 3dp660 Handwired #define TAPPING_TERM 400 diff --git a/keyboards/handwired/3dp660/info.json b/keyboards/handwired/3dp660/info.json index db3d47b068..d3bfd24550 100644 --- a/keyboards/handwired/3dp660/info.json +++ b/keyboards/handwired/3dp660/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "3dp660", + "manufacturer": "gooberpsycho", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x676F", + "pid": "0x3660", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_66_ansi": { diff --git a/keyboards/handwired/412_64/config.h b/keyboards/handwired/412_64/config.h index df8961dc04..de6d79e0a9 100644 --- a/keyboards/handwired/412_64/config.h +++ b/keyboards/handwired/412_64/config.h @@ -4,13 +4,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF7E0 -#define PRODUCT_ID 0x0412 -#define DEVICE_VER 0x0000 -#define MANUFACTURER EDI/SCI -#define PRODUCT 412 64 Model 00 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/412_64/info.json b/keyboards/handwired/412_64/info.json index dad67a3f2a..cbf068c36a 100644 --- a/keyboards/handwired/412_64/info.json +++ b/keyboards/handwired/412_64/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "412-64", + "keyboard_name": "412-64 Model 00", + "manufacturer": "EDI/SCI", "url": "", "maintainer": "fateeverywhere", + "usb": { + "vid": "0xF7E0", + "pid": "0x0412", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x16": { "layout": [ diff --git a/keyboards/handwired/42/config.h b/keyboards/handwired/42/config.h index 9381b7e94f..34c9a0500c 100644 --- a/keyboards/handwired/42/config.h +++ b/keyboards/handwired/42/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0003 -#define MANUFACTURER nglgzz -#define PRODUCT 42 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/42/info.json b/keyboards/handwired/42/info.json index 33d8e8ff91..8174c0d230 100644 --- a/keyboards/handwired/42/info.json +++ b/keyboards/handwired/42/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "42", + "manufacturer": "nglgzz", "url": "", "maintainer": "nglgzz", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/6key/config.h b/keyboards/handwired/6key/config.h index 40eb478b0a..efa24db048 100644 --- a/keyboards/handwired/6key/config.h +++ b/keyboards/handwired/6key/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBEEF -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bratzworth -#define PRODUCT 6key - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/handwired/6key/info.json b/keyboards/handwired/6key/info.json index 8d165a59ae..4b1e69de86 100644 --- a/keyboards/handwired/6key/info.json +++ b/keyboards/handwired/6key/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "6key", + "manufacturer": "Bratzworth", "url": "https://github.com/Bratzworth/6key", "maintainer": "bratzworth", + "usb": { + "vid": "0xBEED", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}] diff --git a/keyboards/handwired/6macro/config.h b/keyboards/handwired/6macro/config.h index cfa15ee15b..7fe3be6556 100644 --- a/keyboards/handwired/6macro/config.h +++ b/keyboards/handwired/6macro/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0037 -#define DEVICE_VER 0x0001 -#define MANUFACTURER joaofbmaia -#define PRODUCT 6macro - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/handwired/6macro/info.json b/keyboards/handwired/6macro/info.json index eac751e3a8..2fd8e24a5b 100644 --- a/keyboards/handwired/6macro/info.json +++ b/keyboards/handwired/6macro/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "6macro", + "manufacturer": "joaofbmaia", "url": "", "maintainer": "joaofbmaia", + "usb": { + "vid": "0xFEED", + "pid": "0x0037", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}] diff --git a/keyboards/handwired/aball/config.h b/keyboards/handwired/aball/config.h index 33a6cd2a97..6de7b03f43 100644 --- a/keyboards/handwired/aball/config.h +++ b/keyboards/handwired/aball/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xC2F0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Richard Sutherland -#define PRODUCT ABall - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 diff --git a/keyboards/handwired/aball/info.json b/keyboards/handwired/aball/info.json index c8afff6a2b..60f40d1935 100644 --- a/keyboards/handwired/aball/info.json +++ b/keyboards/handwired/aball/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "aball", + "keyboard_name": "ABall", + "manufacturer": "Richard Sutherland", "url": "https://github.com/brickbots/aball/", "maintainer": "@brickbots", + "usb": { + "vid": "0xFEED", + "pid": "0xC2F0", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/aek64/config.h b/keyboards/handwired/aek64/config.h index cc90dba00f..8bb20b7fdf 100644 --- a/keyboards/handwired/aek64/config.h +++ b/keyboards/handwired/aek64/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 -#define MANUFACTURER 4sStylZ and others makers -#define PRODUCT AEK64 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/aek64/info.json b/keyboards/handwired/aek64/info.json index 75cb254024..d0e2474d1d 100644 --- a/keyboards/handwired/aek64/info.json +++ b/keyboards/handwired/aek64/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "aek64", + "keyboard_name": "AEK64", + "manufacturer": "4sStylZ and others makers", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6464", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0, "w":1.25}, {"label":"1", "x":1.25, "y":0}, {"label":"2", "x":2.25, "y":0}, {"label":"3", "x":3.25, "y":0}, {"label":"4", "x":4.25, "y":0}, {"label":"5", "x":5.25, "y":0}, {"label":"6", "x":6.25, "y":0}, {"label":"7", "x":7.25, "y":0}, {"label":"8", "x":8.25, "y":0}, {"label":"9", "x":9.25, "y":0}, {"label":"0", "x":10.25, "y":0}, {"label":"\u00b0", "x":11.25, "y":0}, {"label":"+", "x":12.25, "y":0}, {"label":"Backspace", "x":13.25, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.75}, {"label":"A", "x":1.75, "y":1}, {"label":"Z", "x":2.75, "y":1}, {"label":"E", "x":3.75, "y":1}, {"label":"R", "x":4.75, "y":1}, {"label":"T", "x":5.75, "y":1}, {"label":"Y", "x":6.75, "y":1}, {"label":"U", "x":7.75, "y":1}, {"label":"I", "x":8.75, "y":1}, {"label":"O", "x":9.75, "y":1}, {"label":"P", "x":10.75, "y":1}, {"label":"{", "x":11.75, "y":1}, {"label":"}", "x":12.75, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":2}, {"label":"Q", "x":2, "y":2}, {"label":"S", "x":3, "y":2}, {"label":"D", "x":4, "y":2}, {"label":"F", "x":5, "y":2}, {"label":"G", "x":6, "y":2}, {"label":"H", "x":7, "y":2}, {"label":"J", "x":8, "y":2}, {"label":"K", "x":9, "y":2}, {"label":"L", "x":10, "y":2}, {"label":"M", "x":11, "y":2}, {"label":"%", "x":12, "y":2}, {"label":"µ", "x":13, "y":2}, {"label":"Enter", "x":14, "y":1, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.5}, {"label":">", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"?", "x":8.5, "y":3}, {"label":".", "x":9.5, "y":3}, {"label":"/", "x":10.5, "y":3}, {"label":"§", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":2.5}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Opt", "x":1.5, "y":4, "w":1.25}, {"label":"Cmd", "x":2.75, "y":4, "w":1.5}, {"label":"Space", "x":4.25, "y":4, "w":6.5}, {"label":"Cmd", "x":10.75, "y":4, "w":1.5}, {"label":"Opt", "x":12.25, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/handwired/aim65/config.h b/keyboards/handwired/aim65/config.h index 1c0468c7b0..ae03460cc3 100644 --- a/keyboards/handwired/aim65/config.h +++ b/keyboards/handwired/aim65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0F34 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hi-Tek -#define PRODUCT AIM-65 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/aim65/info.json b/keyboards/handwired/aim65/info.json index 1559c19f88..adb446d3cb 100644 --- a/keyboards/handwired/aim65/info.json +++ b/keyboards/handwired/aim65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Hi-Tek AIM-65", + "keyboard_name": "AIM-65", + "manufacturer": "Hi-Tek", "url": "https://github.com/Bonnee/aim-65_keyboard", "maintainer": "bonnee", + "usb": { + "vid": "0xFEED", + "pid": "0x0F34", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/amigopunk/config.h b/keyboards/handwired/amigopunk/config.h index 473f33aa9d..b6e79d05f2 100644 --- a/keyboards/handwired/amigopunk/config.h +++ b/keyboards/handwired/amigopunk/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1805 -#define DEVICE_VER 0x0001 -#define MANUFACTURER haesbaert -#define PRODUCT amigopunk - /* Key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/handwired/amigopunk/info.json b/keyboards/handwired/amigopunk/info.json index f3cf31a843..c5ff09f831 100644 --- a/keyboards/handwired/amigopunk/info.json +++ b/keyboards/handwired/amigopunk/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "amigopunk", + "manufacturer": "haesbaert", "url": "www.haesbaert.org", "maintainer": "haesbaert", + "usb": { + "vid": "0xFEED", + "pid": "0x1805", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/angel/config.h b/keyboards/handwired/angel/config.h index e2472a1a27..ffa5110fe5 100644 --- a/keyboards/handwired/angel/config.h +++ b/keyboards/handwired/angel/config.h @@ -17,17 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0805 - -#define MANUFACTURER JSA -#define PRODUCT Angel -/* USB Version in Binary-coded decimal: 0xJJMN where - * JJ is the major number, M is minor, N is sub minor. */ -#define DEVICE_VER 0x0100 // Version 1.00: hand-wire - - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/handwired/angel/info.json b/keyboards/handwired/angel/info.json index 12ac29ffa7..8e932c9a47 100644 --- a/keyboards/handwired/angel/info.json +++ b/keyboards/handwired/angel/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Angel", + "manufacturer": "JSA", "url": "https://github.com/jamessa/Angel", "maintainer": "jamessa", + "usb": { + "vid": "0xFEED", + "pid": "0x0805", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [{"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":0.5, "y":1}, {"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":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":0.5, "y":3}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3, "w":1.25}, {"x":5.75, "y":3, "w":1.5}, {"x":7.25, "y":3, "w":1.25}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}] diff --git a/keyboards/handwired/aplx2/config.h b/keyboards/handwired/aplx2/config.h index a02b5954ae..d1ec168038 100644 --- a/keyboards/handwired/aplx2/config.h +++ b/keyboards/handwired/aplx2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xE0E0 -#define PRODUCT_ID 0x0030 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Aplyard -#define PRODUCT Aplx2 - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 2 diff --git a/keyboards/handwired/aplx2/info.json b/keyboards/handwired/aplx2/info.json index e514ed07d8..d1a6a32c26 100644 --- a/keyboards/handwired/aplx2/info.json +++ b/keyboards/handwired/aplx2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Aplx2", + "manufacturer": "Aplyard", "url": "", "maintainer": "Aplyard", + "usb": { + "vid": "0xE0E0", + "pid": "0x0030", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/aranck/config.h b/keyboards/handwired/aranck/config.h index 88b394a29e..8517852270 100644 --- a/keyboards/handwired/aranck/config.h +++ b/keyboards/handwired/aranck/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ardakilic -#define PRODUCT Aranck - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/aranck/info.json b/keyboards/handwired/aranck/info.json index f3b48378fa..4bf69e192a 100644 --- a/keyboards/handwired/aranck/info.json +++ b/keyboards/handwired/aranck/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Aranck", + "manufacturer": "Ardakilic", "url": "https://github.com/Ardakilic", "maintainer": "Arda Kilicdagi", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_planck_mit": { "layout": [ diff --git a/keyboards/handwired/arrow_pad/config.h b/keyboards/handwired/arrow_pad/config.h index c8b19524bb..436b37f8a0 100644 --- a/keyboards/handwired/arrow_pad/config.h +++ b/keyboards/handwired/arrow_pad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4096 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nobody -#define PRODUCT GoldPad - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/arrow_pad/info.json b/keyboards/handwired/arrow_pad/info.json index fc24898f06..d4c3137735 100644 --- a/keyboards/handwired/arrow_pad/info.json +++ b/keyboards/handwired/arrow_pad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "arrow_pad", + "keyboard_name": "GoldPad", + "manufacturer": "Nobody", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x4096", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/atreus50/config.h b/keyboards/handwired/atreus50/config.h index 0356bf3d7d..c7365fe20c 100644 --- a/keyboards/handwired/atreus50/config.h +++ b/keyboards/handwired/atreus50/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBB80 -#define PRODUCT_ID 0x040D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hexwire -#define PRODUCT Atreus 50 Keyboard - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/handwired/atreus50/info.json b/keyboards/handwired/atreus50/info.json index 5007c3135e..640c633157 100644 --- a/keyboards/handwired/atreus50/info.json +++ b/keyboards/handwired/atreus50/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Atreus50", + "manufacturer": "Hexwire", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xBB80", + "pid": "0x040D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/axon/config.h b/keyboards/handwired/axon/config.h index ef015194e8..e4ace3ba4e 100644 --- a/keyboards/handwired/axon/config.h +++ b/keyboards/handwired/axon/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER RobinL -#define PRODUCT Axon - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/handwired/axon/info.json b/keyboards/handwired/axon/info.json index 5eabffadb4..e74f63e74f 100644 --- a/keyboards/handwired/axon/info.json +++ b/keyboards/handwired/axon/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Axon", + "manufacturer": "RobinL", "url": "https://github.com/thatfellarobin/axon", "maintainer": "Robin L.", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/handwired/battleship_gamepad/config.h b/keyboards/handwired/battleship_gamepad/config.h index 1cbfbf87e9..92ad57d178 100644 --- a/keyboards/handwired/battleship_gamepad/config.h +++ b/keyboards/handwired/battleship_gamepad/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4142 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER arbraini -#define PRODUCT Battleship Gamepad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/battleship_gamepad/info.json b/keyboards/handwired/battleship_gamepad/info.json index 581f290aa2..b2278a79ac 100644 --- a/keyboards/handwired/battleship_gamepad/info.json +++ b/keyboards/handwired/battleship_gamepad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Battleship Gamepad", + "manufacturer": "arbraini", "url": "https://github.com/abraini-Nascent/battleship_gamepad", "maintainer": "arbraini", + "usb": { + "vid": "0x4142", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/bdn9_ble/config.h b/keyboards/handwired/bdn9_ble/config.h index 1d9ad6ecdd..b23a9bfba8 100644 --- a/keyboards/handwired/bdn9_ble/config.h +++ b/keyboards/handwired/bdn9_ble/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1134 -#define DEVICE_VER 0x0100 -#define MANUFACTURER KeyPCB/Keebio -#define PRODUCT BDN9-BLE - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/handwired/bdn9_ble/info.json b/keyboards/handwired/bdn9_ble/info.json index 6b2faf14d2..8d3bdf9d98 100644 --- a/keyboards/handwired/bdn9_ble/info.json +++ b/keyboards/handwired/bdn9_ble/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KeyPCB/Keeb.io BDN9-BLE", + "keyboard_name": "BDN9-BLE", + "manufacturer": "KeyPCB/Keebio", "url": "", "maintainer": "merlin04", + "usb": { + "vid": "0xCB10", + "pid": "0x1134", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/bigmac/config.h b/keyboards/handwired/bigmac/config.h index b036accaa2..d953dea55e 100644 --- a/keyboards/handwired/bigmac/config.h +++ b/keyboards/handwired/bigmac/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1010 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Taylore101 -#define PRODUCT BigMac - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/handwired/bigmac/info.json b/keyboards/handwired/bigmac/info.json index 3774530912..d8ee9837f2 100644 --- a/keyboards/handwired/bigmac/info.json +++ b/keyboards/handwired/bigmac/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BigMac", + "manufacturer": "Taylore101", "url": "", "maintainer": "Taylore101", + "usb": { + "vid": "0xFEED", + "pid": "0x1010", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/bolek/config.h b/keyboards/handwired/bolek/config.h index aafaa62174..33fbf59ac1 100644 --- a/keyboards/handwired/bolek/config.h +++ b/keyboards/handwired/bolek/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3708 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mikołaj Biel -#define PRODUCT bolek - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 10 diff --git a/keyboards/handwired/bolek/info.json b/keyboards/handwired/bolek/info.json index 2fc0b5614d..dcbfdb236e 100644 --- a/keyboards/handwired/bolek/info.json +++ b/keyboards/handwired/bolek/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "bolek", + "manufacturer": "Mikołaj Biel", "url": "https://github.com/klausweiss/bolek", "maintainer": "klausweiss", + "usb": { + "vid": "0xFEED", + "pid": "0x3708", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/boss566y/redragon_vara/config.h b/keyboards/handwired/boss566y/redragon_vara/config.h index 8d731763b9..bbb1a78dbe 100644 --- a/keyboards/handwired/boss566y/redragon_vara/config.h +++ b/keyboards/handwired/boss566y/redragon_vara/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5048 //PH -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PH -#define PRODUCT Redragon Vara - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 11 diff --git a/keyboards/handwired/boss566y/redragon_vara/info.json b/keyboards/handwired/boss566y/redragon_vara/info.json index 235999bc32..7521d3daff 100644 --- a/keyboards/handwired/boss566y/redragon_vara/info.json +++ b/keyboards/handwired/boss566y/redragon_vara/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Handwired Redragon Vara", + "keyboard_name": "Redragon Vara", + "manufacturer": "PH", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5048", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_fullsize_ansi": { "layout": [ diff --git a/keyboards/handwired/brain/config.h b/keyboards/handwired/brain/config.h index 6b9e650bcf..317d25f5f5 100644 --- a/keyboards/handwired/brain/config.h +++ b/keyboards/handwired/brain/config.h @@ -21,12 +21,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4A53 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER klackygears -#define PRODUCT Brain #define SPLIT_USB_DETECT diff --git a/keyboards/handwired/brain/info.json b/keyboards/handwired/brain/info.json index c10a33db99..89af811654 100644 --- a/keyboards/handwired/brain/info.json +++ b/keyboards/handwired/brain/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Brain", + "manufacturer": "Klackygears", "url": "", "maintainer": "Klackygears", + "usb": { + "vid": "0x4A53", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/bstk100/config.h b/keyboards/handwired/bstk100/config.h index 29a5afa35e..2c79452943 100644 --- a/keyboards/handwired/bstk100/config.h +++ b/keyboards/handwired/bstk100/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xB100 -#define DEVICE_VER 0x0001 -#define MANUFACTURER FREE WING -#define PRODUCT bstk100 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 5 diff --git a/keyboards/handwired/bstk100/info.json b/keyboards/handwired/bstk100/info.json index aec01fccc9..05d1ad212f 100644 --- a/keyboards/handwired/bstk100/info.json +++ b/keyboards/handwired/bstk100/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "bstk100", + "manufacturer": "FREE WING", "url": "http://www.neko.ne.jp/~freewing/", "maintainer": "FREE WING", + "usb": { + "vid": "0xFEED", + "pid": "0xB100", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/cans12er/config.h b/keyboards/handwired/cans12er/config.h index 269471ac0b..117474691a 100644 --- a/keyboards/handwired/cans12er/config.h +++ b/keyboards/handwired/cans12er/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Can -#define PRODUCT cans12er - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/cans12er/info.json b/keyboards/handwired/cans12er/info.json index 15c01dd6de..28d6d2c83e 100644 --- a/keyboards/handwired/cans12er/info.json +++ b/keyboards/handwired/cans12er/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Cans12er", + "manufacturer": "Can", "url": "", "maintainer": "canbaytok", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_3x4": { "layout": [ diff --git a/keyboards/handwired/carpolly/config.h b/keyboards/handwired/carpolly/config.h index e0890cf7ac..8830ebff52 100644 --- a/keyboards/handwired/carpolly/config.h +++ b/keyboards/handwired/carpolly/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6532 -#define PRODUCT_ID 0x0017 -#define DEVICE_VER 0x0001 -#define MANUFACTURER paul -#define PRODUCT Carpolly - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/handwired/carpolly/info.json b/keyboards/handwired/carpolly/info.json index 7a7395e914..5648033aca 100644 --- a/keyboards/handwired/carpolly/info.json +++ b/keyboards/handwired/carpolly/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Carpolly", + "manufacturer": "paul", "url": "https://github.com/PollyV1", "maintainer": "Paul Enrico N. Viola", + "usb": { + "vid": "0x6532", + "pid": "0x0017", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/chiron/config.h b/keyboards/handwired/chiron/config.h index 0e8d697025..7b72988431 100644 --- a/keyboards/handwired/chiron/config.h +++ b/keyboards/handwired/chiron/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mike Hix -#define PRODUCT chiron - #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/handwired/chiron/info.json b/keyboards/handwired/chiron/info.json index 46cf5a1d47..92f650c6f8 100644 --- a/keyboards/handwired/chiron/info.json +++ b/keyboards/handwired/chiron/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Chiron Keyboard", + "keyboard_name": "Chiron", + "manufacturer": "Mike Hix", "url": "", "maintainer": "musl", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/ck4x4/config.h b/keyboards/handwired/ck4x4/config.h index 428a163170..1d7a351568 100644 --- a/keyboards/handwired/ck4x4/config.h +++ b/keyboards/handwired/ck4x4/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK -#define PRODUCT CK4x4 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/ck4x4/info.json b/keyboards/handwired/ck4x4/info.json index 11f5c31054..ff165e75f7 100644 --- a/keyboards/handwired/ck4x4/info.json +++ b/keyboards/handwired/ck4x4/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CK4x4", + "manufacturer": "QMK", "url": "", "maintainer": "awkannan", + "usb": { + "vid": "0xFEED", + "pid": "0x6464", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/cmd60/config.h b/keyboards/handwired/cmd60/config.h index 14bcdec530..4927762d8e 100644 --- a/keyboards/handwired/cmd60/config.h +++ b/keyboards/handwired/cmd60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER cmd -#define PRODUCT CMD60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/cmd60/info.json b/keyboards/handwired/cmd60/info.json index 41d73348c4..077fdbce67 100644 --- a/keyboards/handwired/cmd60/info.json +++ b/keyboards/handwired/cmd60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CMD60", + "manufacturer": "cmd", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/colorlice/config.h b/keyboards/handwired/colorlice/config.h index 6fdd87ccf5..41d87f6c71 100644 --- a/keyboards/handwired/colorlice/config.h +++ b/keyboards/handwired/colorlice/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0302 -#define DEVICE_VER 0x0001 -#define MANUFACTURER marhalloweenvt -#define PRODUCT Colorlice - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/colorlice/info.json b/keyboards/handwired/colorlice/info.json index 582013c506..4e13a7c2c6 100644 --- a/keyboards/handwired/colorlice/info.json +++ b/keyboards/handwired/colorlice/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ColorLice", + "manufacturer": "marhalloweenvt", "url": "", "maintainer": "marhalloweenvt", + "usb": { + "vid": "0xFEED", + "pid": "0x0302", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/handwired/concertina/64key/config.h b/keyboards/handwired/concertina/64key/config.h index 45b5a05ca4..1b09c403f6 100644 --- a/keyboards/handwired/concertina/64key/config.h +++ b/keyboards/handwired/concertina/64key/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB device descriptors */ -#define VENDOR_ID 0x444D -#define PRODUCT_ID 0x3632 -#define DEVICE_VER 0x0001 -#define PRODUCT Concertina -#define MANUFACTURER Viktor Eikman - #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/concertina/64key/info.json b/keyboards/handwired/concertina/64key/info.json index 3b0a01346d..d826f46031 100644 --- a/keyboards/handwired/concertina/64key/info.json +++ b/keyboards/handwired/concertina/64key/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Concertina", + "manufacturer": "Viktor Eikman", "url": "https://viktor.eikman.se/article/the-concertina/", "maintainer": "veikman", + "usb": { + "vid": "0x444D", + "pid": "0x3632", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_64key": { "layout": [ diff --git a/keyboards/handwired/consolekeyboard/18key/config.h b/keyboards/handwired/consolekeyboard/18key/config.h index 00e99da9fd..98aa5895e4 100644 --- a/keyboards/handwired/consolekeyboard/18key/config.h +++ b/keyboards/handwired/consolekeyboard/18key/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6761 -#define PRODUCT_ID 0x3332 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Stream Cheap -#define PRODUCT Console Keyboard 18 /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 11 diff --git a/keyboards/handwired/consolekeyboard/18key/info.json b/keyboards/handwired/consolekeyboard/18key/info.json index a635818f64..8ab498b4e3 100644 --- a/keyboards/handwired/consolekeyboard/18key/info.json +++ b/keyboards/handwired/consolekeyboard/18key/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Console Keyboard", + "keyboard_name": "Console Keyboard 18", + "manufacturer": "Stream Cheap", "url": "https://www.thingiverse.com/thing:3167050", "maintainer": "Gareth Edwards", + "usb": { + "vid": "0x6761", + "pid": "0x3332", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/consolekeyboard/20key/config.h b/keyboards/handwired/consolekeyboard/20key/config.h index 077e73321f..1ed0e5743f 100644 --- a/keyboards/handwired/consolekeyboard/20key/config.h +++ b/keyboards/handwired/consolekeyboard/20key/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6761 -#define PRODUCT_ID 0x3432 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Stream Cheap -#define PRODUCT Console Keyboard 20 /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/consolekeyboard/20key/info.json b/keyboards/handwired/consolekeyboard/20key/info.json index 32c9521e68..6ac860de2a 100644 --- a/keyboards/handwired/consolekeyboard/20key/info.json +++ b/keyboards/handwired/consolekeyboard/20key/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Console Keyboard", + "keyboard_name": "Console Keyboard 20", + "manufacturer": "Stream Cheap", "url": "https://www.thingiverse.com/thing:3167050", "maintainer": "Gareth Edwards", + "usb": { + "vid": "0x6761", + "pid": "0x3432", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/consolekeyboard/27key/config.h b/keyboards/handwired/consolekeyboard/27key/config.h index daddbd6fcb..f2f97c5ddd 100644 --- a/keyboards/handwired/consolekeyboard/27key/config.h +++ b/keyboards/handwired/consolekeyboard/27key/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6761 -#define PRODUCT_ID 0x3433 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Stream Cheap -#define PRODUCT Console Keyboard 30 /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 11 diff --git a/keyboards/handwired/consolekeyboard/27key/info.json b/keyboards/handwired/consolekeyboard/27key/info.json index 4d6145c5d5..48c0ef5cff 100644 --- a/keyboards/handwired/consolekeyboard/27key/info.json +++ b/keyboards/handwired/consolekeyboard/27key/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Console Keyboard", + "keyboard_name": "Console Keyboard 27", + "manufacturer": "Stream Cheap", "url": "https://www.thingiverse.com/thing:3167050", "maintainer": "Gareth Edwards", + "usb": { + "vid": "0x6761", + "pid": "0x3433", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/consolekeyboard/30key/config.h b/keyboards/handwired/consolekeyboard/30key/config.h index 447f4e2a9c..6839a40dc3 100644 --- a/keyboards/handwired/consolekeyboard/30key/config.h +++ b/keyboards/handwired/consolekeyboard/30key/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6761 -#define PRODUCT_ID 0x3433 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Stream Cheap -#define PRODUCT Console Keyboard 30 /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/consolekeyboard/30key/info.json b/keyboards/handwired/consolekeyboard/30key/info.json index aa3c67d1d5..604093b143 100644 --- a/keyboards/handwired/consolekeyboard/30key/info.json +++ b/keyboards/handwired/consolekeyboard/30key/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Console Keyboard", + "keyboard_name": "Console Keyboard 30", + "manufacturer": "Streap Cheap", "url": "https://www.thingiverse.com/thing:3167050", "maintainer": "Gareth Edwards", + "usb": { + "vid": "0x6761", + "pid": "0x3433", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/croxsplit44/config.h b/keyboards/handwired/croxsplit44/config.h index 009da2785e..d215b763af 100644 --- a/keyboards/handwired/croxsplit44/config.h +++ b/keyboards/handwired/croxsplit44/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xB62C -#define PRODUCT_ID 0x6146 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Samux6146 -#define PRODUCT splitcustom44 - #define MATRIX_ROWS 4 #define MATRIX_COLS 12 #define MATRIX_ROW_PINS { D4, D5, D6, D7 } diff --git a/keyboards/handwired/croxsplit44/info.json b/keyboards/handwired/croxsplit44/info.json index e10a390bbd..032da273d2 100644 --- a/keyboards/handwired/croxsplit44/info.json +++ b/keyboards/handwired/croxsplit44/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "croxsplit44", + "keyboard_name": "splitcustom44", + "manufacturer": "Samux6146", "url": "", "maintainer": "Samux6146", + "usb": { + "vid": "0xB62C", + "pid": "0x6146", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/curiosity/config.h b/keyboards/handwired/curiosity/config.h index 8b632a5ec4..35bfef4794 100644 --- a/keyboards/handwired/curiosity/config.h +++ b/keyboards/handwired/curiosity/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5342 // "SB" -#define PRODUCT_ID 0x4355 // "CU" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Spaceman -#define PRODUCT Curiosity - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/curiosity/info.json b/keyboards/handwired/curiosity/info.json index 5218abc46d..738056625c 100644 --- a/keyboards/handwired/curiosity/info.json +++ b/keyboards/handwired/curiosity/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Curiosity", + "manufacturer": "Spaceman", "url": "", "maintainer": "Spaceman", + "usb": { + "vid": "0x5342", + "pid": "0x4355", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_small_mods": { "layout": [ diff --git a/keyboards/handwired/d48/config.h b/keyboards/handwired/d48/config.h index 83ca9b2247..6b6ae5ce3f 100644 --- a/keyboards/handwired/d48/config.h +++ b/keyboards/handwired/d48/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Andrew Dunai -#define PRODUCT D48 - /* Key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/d48/info.json b/keyboards/handwired/d48/info.json index 03cbd0edb4..3329c4c599 100644 --- a/keyboards/handwired/d48/info.json +++ b/keyboards/handwired/d48/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "D48", + "manufacturer": "Andrew Dunai", "url": "", "maintainer": "and3rson", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/dactyl/config.h b/keyboards/handwired/dactyl/config.h index 29a008f0c6..be4891c65c 100644 --- a/keyboards/handwired/dactyl/config.h +++ b/keyboards/handwired/dactyl/config.h @@ -21,13 +21,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1308 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Adereth -#define PRODUCT Dactyl - #define DIODE_DIRECTION ROW2COL #define MATRIX_ROWS 6 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/dactyl/info.json b/keyboards/handwired/dactyl/info.json index d48ceeb9ad..ec0fe2b7b6 100644 --- a/keyboards/handwired/dactyl/info.json +++ b/keyboards/handwired/dactyl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Dactyl", + "manufacturer": "Adereth", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x1308", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_dactyl": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k14", "x":4, "y":1}, {"label":"k15", "x":5, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k23", "x":3, "y":2}, {"label":"k24", "x":4, "y":2}, {"label":"k25", "x":5, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k33", "x":3, "y":3}, {"label":"k34", "x":4, "y":3}, {"label":"k35", "x":5, "y":3}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k43", "x":3, "y":4}, {"label":"k44", "x":4, "y":4}, {"label":"k55", "x":6, "y":5}, {"label":"k50", "x":7, "y":5}, {"label":"k54", "x":7, "y":6}, {"label":"k53", "x":5, "y":6, "h":2}, {"label":"k52", "x":6, "y":6, "h":2}, {"label":"k51", "x":7, "y":7}, {"label":"k06", "x":11, "y":0}, {"label":"k07", "x":12, "y":0}, {"label":"k08", "x":13, "y":0}, {"label":"k09", "x":14, "y":0}, {"label":"k0A", "x":15, "y":0}, {"label":"k0B", "x":16, "y":0}, {"label":"k16", "x":11, "y":1}, {"label":"k17", "x":12, "y":1}, {"label":"k18", "x":13, "y":1}, {"label":"k19", "x":14, "y":1}, {"label":"k1A", "x":15, "y":1}, {"label":"k1B", "x":16, "y":1}, {"label":"k26", "x":11, "y":2}, {"label":"k27", "x":12, "y":2}, {"label":"k28", "x":13, "y":2}, {"label":"k29", "x":14, "y":2}, {"label":"k2A", "x":15, "y":2}, {"label":"k2B", "x":16, "y":2}, {"label":"k36", "x":11, "y":3}, {"label":"k37", "x":12, "y":3}, {"label":"k38", "x":13, "y":3}, {"label":"k39", "x":14, "y":3}, {"label":"k3A", "x":15, "y":3}, {"label":"k3B", "x":16, "y":3}, {"label":"k47", "x":12, "y":4}, {"label":"k48", "x":13, "y":4}, {"label":"k49", "x":14, "y":4}, {"label":"k4A", "x":15, "y":4}, {"label":"k4B", "x":16, "y":4}, {"label":"k5B", "x":9, "y":5}, {"label":"k56", "x":10, "y":5}, {"label":"k57", "x":9, "y":6}, {"label":"k5A", "x":9, "y":7}, {"label":"k59", "x":10, "y":6, "h":2}, {"label":"k58", "x":11, "y":6, "h":2}] diff --git a/keyboards/handwired/dactyl_left/config.h b/keyboards/handwired/dactyl_left/config.h index c962f6e176..cce0d050a7 100644 --- a/keyboards/handwired/dactyl_left/config.h +++ b/keyboards/handwired/dactyl_left/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER RedForty -#define PRODUCT dactyl_left - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 6 diff --git a/keyboards/handwired/dactyl_left/info.json b/keyboards/handwired/dactyl_left/info.json index 980601758f..e8ab5e04c6 100644 --- a/keyboards/handwired/dactyl_left/info.json +++ b/keyboards/handwired/dactyl_left/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "dactyl_left", + "manufacturer": "RedForty", "url": "", "maintainer": "RedForty", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25}, {"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125}, {"x":6, "y":4.75}, {"x":7, "y":4.75}, {"x":5, "y":5.75, "h":2}, {"x":6, "y":5.75, "h":2}, {"x":7, "y":5.75}, {"x":7, "y":6.75}] diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h b/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h index 7db11618cf..0a03dd9b1f 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h +++ b/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/4x5/4x5.h b/keyboards/handwired/dactyl_manuform/4x5/4x5.h index 73f6be64c2..e410c22466 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/4x5.h +++ b/keyboards/handwired/dactyl_manuform/4x5/4x5.h @@ -1,6 +1,6 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h index 682c7a868b..6b0ddbfe8e 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h +++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h @@ -20,8 +20,6 @@ along with this program. If not, see . #pragma once -#include "../../config.h" - /* Use I2C or Serial, not both */ #define USE_SERIAL diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/keymap.c b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/keymap.c index 0a1c90b6bf..009d88fd0e 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/keymap.c @@ -1,6 +1,4 @@ -#include "dactyl_manuform.h" -#include "action_layer.h" -#include "eeconfig.h" +#include QMK_KEYBOARD_H extern keymap_config_t keymap_config; diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h index 27526140c9..3860a696c8 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/handwired/dactyl_manuform/4x6/4x6.h b/keyboards/handwired/dactyl_manuform/4x6/4x6.h index dcdb1a39ec..99b11a712a 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/4x6.h +++ b/keyboards/handwired/dactyl_manuform/4x6/4x6.h @@ -1,6 +1,6 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/4x6_5.h b/keyboards/handwired/dactyl_manuform/4x6_5/4x6_5.h index f34d8be4df..df639cbf22 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_5/4x6_5.h +++ b/keyboards/handwired/dactyl_manuform/4x6_5/4x6_5.h @@ -1,6 +1,6 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/5x6/5x6.h b/keyboards/handwired/dactyl_manuform/5x6/5x6.h index 606a213492..ebc959ddf1 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/5x6.h +++ b/keyboards/handwired/dactyl_manuform/5x6/5x6.h @@ -1,6 +1,6 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h index 5a848d26e5..a213d43d39 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/handwired/dactyl_manuform/5x6_2_5/5x6_2_5.h b/keyboards/handwired/dactyl_manuform/5x6_2_5/5x6_2_5.h index 790fdb0695..7191119fd9 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_2_5/5x6_2_5.h +++ b/keyboards/handwired/dactyl_manuform/5x6_2_5/5x6_2_5.h @@ -16,7 +16,7 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/5x6_5.h b/keyboards/handwired/dactyl_manuform/5x6_5/5x6_5.h index 794b0be9fe..3179426585 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_5/5x6_5.h +++ b/keyboards/handwired/dactyl_manuform/5x6_5/5x6_5.h @@ -1,6 +1,6 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/5x7/5x7.h b/keyboards/handwired/dactyl_manuform/5x7/5x7.h index 0c0c781be7..7cd2597a1f 100644 --- a/keyboards/handwired/dactyl_manuform/5x7/5x7.h +++ b/keyboards/handwired/dactyl_manuform/5x7/5x7.h @@ -1,6 +1,6 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/6x6/6x6.h b/keyboards/handwired/dactyl_manuform/6x6/6x6.h index 7bff55701a..657d057787 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/6x6.h +++ b/keyboards/handwired/dactyl_manuform/6x6/6x6.h @@ -1,6 +1,6 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/6x6_4/6x6_4.h b/keyboards/handwired/dactyl_manuform/6x6_4/6x6_4.h index 7c767cae7e..74cb474a5b 100644 --- a/keyboards/handwired/dactyl_manuform/6x6_4/6x6_4.h +++ b/keyboards/handwired/dactyl_manuform/6x6_4/6x6_4.h @@ -4,7 +4,7 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/6x6_kinesis.h b/keyboards/handwired/dactyl_manuform/6x6_kinesis/6x6_kinesis.h index 00f931281b..1adb7d4696 100644 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/6x6_kinesis.h +++ b/keyboards/handwired/dactyl_manuform/6x6_kinesis/6x6_kinesis.h @@ -4,7 +4,7 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/6x7/6x7.h b/keyboards/handwired/dactyl_manuform/6x7/6x7.h index 8d69ddd097..bd66c309fc 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/6x7.h +++ b/keyboards/handwired/dactyl_manuform/6x7/6x7.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" #define XXX KC_NO diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.c b/keyboards/handwired/dactyl_manuform/dactyl_manuform.c deleted file mode 100644 index 043bbd5672..0000000000 --- a/keyboards/handwired/dactyl_manuform/dactyl_manuform.c +++ /dev/null @@ -1 +0,0 @@ -#include "dactyl_manuform.h" diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h deleted file mode 100644 index c339370f8b..0000000000 --- a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#if defined(KEYBOARD_handwired_dactyl_manuform_4x5) -# include "4x5.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_4x6) -# include "4x6.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_4x6_5) -# include "4x6_5.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_5x6) -# include "5x6.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_5x6_5) -# include "5x6_5.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_5x6_2_5) -# include "5x6_2_5.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_5x7) -# include "5x7.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_6x6) -# include "6x6.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_6x6_4) -# include "6x6_4.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_6x6_kinesis) -# include "6x6_kinesis.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_6x7) -# include "6x7.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_3x5_3) -# include "3x5_3.h" -#elif defined(KEYBOARD_handwired_dactyl_manuform_dmote_62key) -# include "62key.h" -#endif - -#include "quantum.h" diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/62key.h b/keyboards/handwired/dactyl_manuform/dmote/62key/62key.h index 2d52e7e5fb..673164b424 100644 --- a/keyboards/handwired/dactyl_manuform/dmote/62key/62key.h +++ b/keyboards/handwired/dactyl_manuform/dmote/62key/62key.h @@ -1,6 +1,6 @@ #pragma once -#include "dactyl_manuform.h" +#include "quantum.h" // This uses the same coordinate system as the program that defines // the case model, but not the same coordinates. diff --git a/keyboards/handwired/dactyl_promicro/config.h b/keyboards/handwired/dactyl_promicro/config.h index 19874be799..a110a81c81 100644 --- a/keyboards/handwired/dactyl_promicro/config.h +++ b/keyboards/handwired/dactyl_promicro/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -#define PRODUCT Dactyl Ergo(6x6) /* key matrix size */ // Rows are doubled-up @@ -32,12 +31,6 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 -//#define MANUFACTURER tshort - /* mouse config */ #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 diff --git a/keyboards/handwired/dactyl_promicro/info.json b/keyboards/handwired/dactyl_promicro/info.json index 0f0ac0b357..c923591309 100644 --- a/keyboards/handwired/dactyl_promicro/info.json +++ b/keyboards/handwired/dactyl_promicro/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Dactyl ProMicro", + "keyboard_name": "Dactyl Ergo(6x6)", + "manufacturer": "tshort", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x3060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_6x6": { "layout": [ diff --git a/keyboards/handwired/dactyl_rah/config.h b/keyboards/handwired/dactyl_rah/config.h index b5f272ba70..08f53541a3 100644 --- a/keyboards/handwired/dactyl_rah/config.h +++ b/keyboards/handwired/dactyl_rah/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ralphie02 -#define PRODUCT DACTYL_RAH - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 12 diff --git a/keyboards/handwired/dactyl_rah/info.json b/keyboards/handwired/dactyl_rah/info.json index 55e0c6c521..4612b3a9b1 100644 --- a/keyboards/handwired/dactyl_rah/info.json +++ b/keyboards/handwired/dactyl_rah/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Dactyl RAH", + "manufacturer": "ralphie02", "url": "https://qmk.fm/keyboards/", "maintainer": "ralphie02", + "usb": { + "vid": "0xFEED", + "pid": "0x3060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_6x6": { "layout": [ diff --git a/keyboards/handwired/daishi/config.h b/keyboards/handwired/daishi/config.h index e4a45972c8..09a5897f7a 100644 --- a/keyboards/handwired/daishi/config.h +++ b/keyboards/handwired/daishi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D6D -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MetaMechs -#define PRODUCT Daishi - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 18 diff --git a/keyboards/handwired/daishi/info.json b/keyboards/handwired/daishi/info.json index f0b18bebbc..96afaa6a5b 100644 --- a/keyboards/handwired/daishi/info.json +++ b/keyboards/handwired/daishi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Daishi", + "manufacturer": "MetaMechs", "url": "", "maintainer": "Croktopus", + "usb": { + "vid": "0x6D6D", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/datahand/config.h b/keyboards/handwired/datahand/config.h index c9726f6ddb..f12b446e51 100644 --- a/keyboards/handwired/datahand/config.h +++ b/keyboards/handwired/datahand/config.h @@ -17,14 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -/* Taken from the DataHand PS/2-USB adaptor. */ -#define VENDOR_ID 0x13BA -#define PRODUCT_ID 0x0017 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DataHand -#define PRODUCT DataHand - /* key matrix size */ #define MATRIX_ROWS 13 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/datahand/info.json b/keyboards/handwired/datahand/info.json index 21ec229a98..a0779c11ed 100644 --- a/keyboards/handwired/datahand/info.json +++ b/keyboards/handwired/datahand/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Handwired DataHand", + "keyboard_name": "DataHand", + "manufacturer": "DataHand", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x13BA", + "pid": "0x0017", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/dc/mc/001/config.h b/keyboards/handwired/dc/mc/001/config.h index 5cba80831f..db03889cc1 100644 --- a/keyboards/handwired/dc/mc/001/config.h +++ b/keyboards/handwired/dc/mc/001/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4443 // 'D' 'C' -#define PRODUCT_ID 0x4D43 // 'M' 'C' -#define DEVICE_VER 0x0001 -#define MANUFACTURER Daniel Cormier -#define PRODUCT DC MC 001 - /* BUTTON_MUTE = _BV(4), BUTTON_STOP = _BV(0), diff --git a/keyboards/handwired/dc/mc/001/info.json b/keyboards/handwired/dc/mc/001/info.json index d9562f660e..9162b6e77e 100644 --- a/keyboards/handwired/dc/mc/001/info.json +++ b/keyboards/handwired/dc/mc/001/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Daniel Cormier's Media Controller (v1)", + "keyboard_name": "DC MC 001", + "manufacturer": "Daniel Cormier", "url": "https://imgur.com/a/PM9lQ", "maintainer": "Daniel Cormier (Twitter: @danielcormier)", + "usb": { + "vid": "0x4443", + "pid": "0x4D43", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/ddg_56/config.h b/keyboards/handwired/ddg_56/config.h index 6d880d1fd5..ab3c0738a0 100644 --- a/keyboards/handwired/ddg_56/config.h +++ b/keyboards/handwired/ddg_56/config.h @@ -16,13 +16,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xB195 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Spaceman -#define PRODUCT DDG_56 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/ddg_56/info.json b/keyboards/handwired/ddg_56/info.json index 300de84132..697f6c7762 100644 --- a/keyboards/handwired/ddg_56/info.json +++ b/keyboards/handwired/ddg_56/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ddg_56", + "keyboard_name": "DDG_56", + "manufacturer": "Spaceman", "url": "", "maintainer": "spaceman", + "usb": { + "vid": "0xFEED", + "pid": "0xB195", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/dqz11n1g/config.h b/keyboards/handwired/dqz11n1g/config.h new file mode 100644 index 0000000000..fbfdeb30ae --- /dev/null +++ b/keyboards/handwired/dqz11n1g/config.h @@ -0,0 +1,52 @@ +/* +Copyright (c) 2022 David Kuehling + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* Matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 19 + +/* Pin-out */ +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6, B4 } + +/* The pin connecting to the SN74HC165 SH/~LD in */ +#define ROW_SHIFT_PIN B6 + +/* Column read via SPI (shift register) */ +/* #define MATRIX_COL_PINS { } */ +#define UNUSED_PINS + +#define LED_CAPS_LOCK_PIN F7 /* A0 */ +#define LED_NUM_LOCK_PIN F5 /*A2 */ +#define LED_SCROLL_LOCK_PIN F4 /*A3 */ + +#define LED_FUN_LOCK_PIN F6 /* A1 (handled in layer_state_set_user()) */ + +/* audio config */ +#define AUDIO_PIN B5 +#define AUDIO_CLICKY +#define AUDIO_INIT_DELAY +#define AUDIO_CLICKY_FREQ_RANDOMNESS 0.0f +#define NO_MUSIC_MODE + +/* diodes go row->col, though this is hard-coded in matrix.c and we drive the + * matrix differently: we have pull-down on the columns and drive the selected + * row high */ +/* #define DIODE_DIRECTION ROW2COL */ diff --git a/keyboards/handwired/dqz11n1g/dqz11n1g.h b/keyboards/handwired/dqz11n1g/dqz11n1g.h new file mode 100644 index 0000000000..f5c55bd6d5 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/dqz11n1g.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 David Kuehling + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* Fill actually existing keys into the 7x19 keyboard matrix */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0J, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1J, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2J, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3J, \ + k40, k41, k42, k43, k44, k45, k4D, k4E, k4F, k4G, k4H, k4J, \ + k51, k52, k53, k54, k5E, k5F, k5G, k5H, \ + k46, k47, k48, k4A, k4B, k4C, \ + k56, k57, k58, k5A, k5B, k5C, \ + k68, k6A \ +) { \ + /* left hand */ /* middle/thumb block */ /* right hand */ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0J }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1J }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2J }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3J }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, XXX, k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4J }, \ + { XXX, k51, k52, k53, k54, XXX, k56, k57, k58, XXX, k5A, k5B, k5C, XXX, k5E, k5F, k5G, k5H, XXX }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, k68, XXX, k6A, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \ +} + +/* + * Local Variables: + * c-basic-offset:4 + * fill-column: 76 + * End: + */ diff --git a/keyboards/handwired/dqz11n1g/info.json b/keyboards/handwired/dqz11n1g/info.json new file mode 100644 index 0000000000..24605b34d2 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/info.json @@ -0,0 +1,147 @@ +{ + "keyboard_name": "DQz11N1G", + "manufacturer": "Unknown", + "url": "https://github.com/dvdkhlng/qmk_firmware_dqz11n1g", + "maintainer": "dvdkhlng", + "usb": { + "vid": "0xFEED", + "pid": "0x4451", + "device_version": "0.0.1" + }, + "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": 7, "y": 0, "matrix": [0, 6] }, + {"x": 8, "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": 15, "y": 0, "matrix": [0, 13] }, + {"x": 16, "y": 0, "matrix": [0, 14] }, + {"x": 17, "y": 0, "matrix": [0, 15] }, + {"x": 18, "y": 0, "matrix": [0, 16] }, + {"x": 19, "y": 0, "matrix": [0, 17] }, + {"x": 20, "y": 0, "matrix": [0, 18] }, + + {"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": 7, "y": 1, "matrix": [1, 6] }, + {"x": 8, "y": 1, "matrix": [1, 7] }, + {"x": 9, "y": 1, "matrix": [1, 8] }, + {"x": 10, "y": 1, "matrix": [1, 9] }, + {"x": 11, "y": 1, "matrix": [1, 10] }, + {"x": 12, "y": 1, "matrix": [1, 11] }, + {"x": 13, "y": 1, "matrix": [1, 12] }, + + {"x": 15, "y": 1, "matrix": [1, 13] }, + {"x": 16, "y": 1, "matrix": [1, 14] }, + {"x": 17, "y": 1, "matrix": [1, 15] }, + {"x": 18, "y": 1, "matrix": [1, 16] }, + {"x": 19, "y": 1, "matrix": [1, 17] }, + {"x": 20, "y": 1, "matrix": [1, 18] }, + + {"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": 7, "y": 2, "matrix": [2, 6] }, + {"x": 8, "y": 2, "matrix": [2, 7] }, + {"x": 9, "y": 2, "matrix": [2, 8] }, + {"x": 10, "y": 2, "matrix": [2, 9] }, + {"x": 11, "y": 2, "matrix": [2, 10] }, + {"x": 12, "y": 2, "matrix": [2, 11] }, + {"x": 13, "y": 2, "matrix": [2, 12] }, + + {"x": 15, "y": 2, "matrix": [2, 13] }, + {"x": 16, "y": 2, "matrix": [2, 14] }, + {"x": 17, "y": 2, "matrix": [2, 15] }, + {"x": 18, "y": 2, "matrix": [2, 16] }, + {"x": 19, "y": 2, "matrix": [2, 17] }, + {"x": 20, "y": 2, "matrix": [2, 18] }, + + {"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": 7, "y": 3, "matrix": [3, 6] }, + {"x": 8, "y": 3, "matrix": [3, 7] }, + {"x": 9, "y": 3, "matrix": [3, 8] }, + {"x": 10, "y": 3, "matrix": [3, 9] }, + {"x": 11, "y": 3, "matrix": [3, 10] }, + {"x": 12, "y": 3, "matrix": [3, 11] }, + {"x": 13, "y": 3, "matrix": [3, 12] }, + + {"x": 15, "y": 3, "matrix": [3, 13] }, + {"x": 16, "y": 3, "matrix": [3, 14] }, + {"x": 17, "y": 3, "matrix": [3, 15] }, + {"x": 18, "y": 3, "matrix": [3, 16] }, + {"x": 19, "y": 3, "matrix": [3, 17] }, + {"x": 20, "y": 3, "matrix": [3, 18] }, + + {"x": 0, "y": 4, "h": 2, "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": 4, "y": 4, "matrix": [4, 4] }, + {"x": 5, "y": 4, "matrix": [4, 5] }, + + {"x": 15, "y": 4, "matrix": [4, 13] }, + {"x": 16, "y": 4, "matrix": [4, 14] }, + {"x": 17, "y": 4, "matrix": [4, 15] }, + {"x": 18, "y": 4, "matrix": [4, 16] }, + {"x": 19, "y": 4, "matrix": [4, 17] }, + {"x": 20, "y": 4, "h": 2, "matrix": [4, 18] }, + + {"x": 1, "y": 5, "matrix": [5, 1] }, + {"x": 2, "y": 5, "matrix": [5, 2] }, + {"x": 3, "y": 5, "matrix": [5, 3] }, + {"x": 4, "y": 5, "matrix": [5, 4] }, + + {"x": 16, "y": 5, "matrix": [5, 14] }, + {"x": 17, "y": 5, "matrix": [5, 15] }, + {"x": 18, "y": 5, "matrix": [5, 16] }, + {"x": 19, "y": 5, "matrix": [5, 17] }, + + {"x": 5, "y": 7, "matrix": [4, 6] }, + {"x": 6, "y": 7, "matrix": [4, 7] }, + {"x": 7, "y": 7, "matrix": [4, 8] }, + + {"x": 13, "y": 7, "matrix": [4, 10] }, + {"x": 14, "y": 7, "matrix": [4, 11] }, + {"x": 15, "y": 7, "matrix": [4, 12] }, + + {"x": 5, "y": 8, "h": 2, "matrix": [5, 6] }, + {"x": 6, "y": 8, "h": 2, "matrix": [5, 7] }, + {"x": 7, "y": 8, "matrix": [5, 8] }, + + {"x": 13, "y": 8, "matrix": [5, 10] }, + {"x": 14, "y": 8, "h": 2, "matrix": [5, 11] }, + {"x": 15, "y": 8, "h": 2, "matrix": [5, 12] }, + + {"x": 7, "y": 9, "matrix": [6, 8] }, + {"x": 13, "y": 9, "matrix": [6, 10] } + ] + } + } +} diff --git a/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c b/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c new file mode 100644 index 0000000000..29d9cad7b7 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright (c) 2022 David Kuehling < dvdkhlng TA posteo TOD de > + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { _DEFAULT, _FUNCTION }; +#define KC_FUN TG(_FUNCTION) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DEFAULT] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_FUN, KC_NUM, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PSCR, 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_VOLU, KC_ESC, KC_P4, KC_P5, KC_P6, KC_PAST, KC_SCRL, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, + KC_NUBS,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_VOLD, KC_GRV, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_BRK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_MUTE, KC_WSCH,KC_P0,KC_PDOT,KC_PENT,KC_PPLS,KC_INS, 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_LGUI,KC_LALT,KC_RBRC, KC_NUHS,KC_RALT,KC_APP, KC_RCTL, /* */ + + /* thumb keys: */ KC_BSPC, KC_HOME, KC_END, KC_LEFT, KC_RGHT, KC_DEL, + /* thumb keys: */ KC_SPC, KC_TAB, KC_PGUP, KC_UP, KC_ENT, KC_SPC, + /* thumb keys: */ KC_PGDN, KC_DOWN + ), + + /* This is the "function key locked" layer. It is not documented by + * Maltron, so just putting some "Quantum" keycodes here for testing that + * the layer exists and Fun Lock LED works. */ + [_FUNCTION] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,KC_TRNS,KC_BTN3,KC_MS_U,KC_WH_U,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CK_UP, AU_ON, KC_MS_L,KC_BTN1,KC_MS_R,KC_NO, 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, CK_DOWN,AU_OFF, KC_BTN2,KC_MS_D,KC_WH_D,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, CK_TOGG,KC_NO, KC_ACL0,KC_ACL1,KC_ACL2,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /* */ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* */ + + /* thumb keys: */ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /* thumb keys: */ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /* thumb keys: */ KC_NO, KC_NO + ) +}; + +/* Show "Fun Lock" layer state via the "Fun Lock" LED */ +layer_state_t layer_state_set_user(layer_state_t state) { + + setPinOutput(LED_FUN_LOCK_PIN); + + if (layer_state_cmp(state, _FUNCTION)) + writePinHigh(LED_FUN_LOCK_PIN); + else + writePinLow(LED_FUN_LOCK_PIN); + + return state; +} + +/* + * Local Variables: + * c-basic-offset:4 + * fill-column: 76 + * End: + */ diff --git a/keyboards/handwired/dqz11n1g/keymaps/default/readme.md b/keyboards/handwired/dqz11n1g/keymaps/default/readme.md new file mode 100644 index 0000000000..d61546eb37 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/keymaps/default/readme.md @@ -0,0 +1,17 @@ +![DQz11N1G-DE Layout Image](https://u.cubeupload.com/ddklg/OPBN5q.jpg) + +# Default Layout for DQz11N1G-DE + +This is the layout corresponding to what the Maltron keyboard DQz11N1G-DE I +own came with (using the original pre-installed controller). Note that this +differs from German Maltron layout as published on [Maltron's +website](https://www.maltron.com/germany.html). Use the photo above as a +reference for the layout implemented here. + +I did not find any official documentation about the the Function Lock key on +the original Maltron keyboards. It seems that it implements some of the +features that are documented for the one-handed Maltron keyboards. Most +keys don't send any keycodes at all when function lock is enabed. + +We instead map some of the Quantum keycodes (mouse keys and audio control) +in the middle (keypad) section of the keypad, when Function Lock is enabled. \ No newline at end of file diff --git a/keyboards/handwired/dqz11n1g/matrix.c b/keyboards/handwired/dqz11n1g/matrix.c new file mode 100644 index 0000000000..f9f3f2b68f --- /dev/null +++ b/keyboards/handwired/dqz11n1g/matrix.c @@ -0,0 +1,131 @@ +/* + Copyright (c) 2022 David Kuehling + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public 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 + +#include "spi_master.h" +#include "quantum.h" +#include "matrix.h" + +static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; + +static void unselect_rows(void); + +void matrix_init_custom(void) { + /* initialize row pins */ + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + setPinOutput(row_pins[row]); + } + unselect_rows(); + + /* columns read via shift-register on SPI lines */ + + /* Enable SPI, Master, set clock rate fck/2. First bit already at Qh + * output before clock edge (CPHA=0). SN74HC165 shift register shifts + * on low-to-high transition (CPOL=1). Receive the LSB first (DORD=1). + */ + bool lsbFirst = true; + uint8_t mode = 2; /* CPOL=1, CPHA=0 */ + uint16_t divisor = 16; + + /* According to Atmega32U4 datasheet, PB0 *must* be set to output, + * otherwise it will interfere with SPI master operation. On pro-micro + * it's connected to a yellew LED. */ + pin_t slavePin = PB0; + spi_init(); + spi_start(slavePin, lsbFirst, mode, divisor); + + /* Initialize pin controlling the shift register's SH/~LD pin */ + setPinOutput(ROW_SHIFT_PIN); +} + +static void select_row(uint8_t row) { + pin_t pin = row_pins[row]; + if (pin != NO_PIN) { + writePinHigh(pin); + } +} + +static void unselect_row(uint8_t row) { + pin_t pin = row_pins[row]; + if (pin != NO_PIN) { + writePinLow(pin); + } +} + +static void unselect_rows(void) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + unselect_row(row); + } +} + +bool matrix_read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { + /* Start with a clear matrix row */ + matrix_row_t current_row_value = 0; + + /* Set shift register SH/~LD pin to "load" mode */ + writePinLow(ROW_SHIFT_PIN); + select_row(current_row); + matrix_output_select_delay(); + + /* Set shift register SH/~LD pin to "shift" mode */ + writePinHigh(ROW_SHIFT_PIN); + + /* For each octet of columns... */ + for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index += 8) { + spi_status_t read_result = spi_read(); + if (read_result >= 0) { + /* only if SPI read successful: populate the matrix row with the + state of the 8 consecutive column bits */ + current_row_value |= ((matrix_row_t)read_result << col_index); + } + } + + /* Unselect row & wait for all columns signals to go high. */ + unselect_row(current_row); + matrix_output_unselect_delay(current_row, current_row_value != 0); + + /* Update row in matrix. */ + if (current_row_value != current_matrix[current_row]) { + current_matrix[current_row] = current_row_value; + return true; + } + + return false; +} + +bool matrix_scan_custom(matrix_row_t curr_matrix[]) { + bool changed = false; + + /* set row, read cols */ + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { + changed |= matrix_read_cols_on_row(curr_matrix, current_row); + } + + return changed; +} + +/* + * Local Variables: + * c-basic-offset:4 + * fill-column: 76 + * End: + */ diff --git a/keyboards/handwired/dqz11n1g/readme.md b/keyboards/handwired/dqz11n1g/readme.md new file mode 100644 index 0000000000..0e3a57873d --- /dev/null +++ b/keyboards/handwired/dqz11n1g/readme.md @@ -0,0 +1,80 @@ +# DQz11N1G + +![DQz11N1G](https://u.cubeupload.com/ddklg/OPBN5q.jpg) + +Firmware for a DIY controller replacement for one of the ortholinear contoured +keyboards manufactured by [PCD Maltron Ltd](https://www.maltron.com) + +This work here in no way officially associated with PCD Maltron Ltd and comes +with NO WARRANTY. Modifying your Maltron keyboard as described below will +certainly void your warranty and may cause damage to your keyboard. Proceed +at your own risk! + +* maintainer: [David Kuehling](https://github.com/dvdkhlng/qmk_firmware_dqz11n1g) +* Hardware Supported: Maltron DQz11N1G with a replacement controller board + assembled as described below. The work here is based on a german version + of the keyboard: DQz11N1G-DE. I assume, but don't know for sure, that + minor or no changes at all are required to make this work on different + language versions of the keyboard. +* Hardware Availability: + * [PCD Maltron Ltd](https://www.maltron.com), for the original keyboard + * 1x [Arduino Pro Micro](https://www.sparkfun.com/products/12640) + * 3x [SN74HC165](https://www.ti.com/product/SN74HC165) + * 1x DIL connector 2 rows a 17 pins. + * 19x pull-down resistors (10k Ohm), + * 4 LED current limiting resistors (not sure about the correct resistance, + using 470 Ohm here) + +Make example for this keyboard (after setting up your build environment): + + make handwired/dqz11n1g:default + +## In Detail + +[PCD Maltron Ltd](https://www.maltron.com) manufacturs ergonomic keyboards +that appear to be hand-wired internally. For the Maltron DQz11N1G-DE +keyboard that I happen to own, the keyboard matrix is wired to a 34-pin DIL +connector. This makes it rather easy to replace the proprietary +controller-board with a self-made board based on the QMK firmware. + +I don't really like the default layout of my Maltron DQz11N1G-DE keyboard, +and modding it to work with QMK allows me to adapt it to my needs. It +especially allows for the two space keys to assume different roles, thereby +creating an additional easily reachable thumb-key. + +### Internal Details of Keyboard Matrix and DIL Connector + +![DQz11N1G-DE keyboard matrix](https://u.cubeupload.com/ddklg/OJFue6.jpg) + +![DQz11N1G-DE keyboard matrix connector](https://u.cubeupload.com/ddklg/fjFXeL.png) + +### Replacement Keyboard Controller Board + +Due to supply chain problems, I decided to base this on an +Arduino-compatible [Pro Micro](https://www.sparkfun.com/products/12640) +board which is still easy to source. + +Unfortunately pin-count of the DQz11N1G-DE's keyboard matrix is way beyond +the Pro Micro's available I/O pin count. I'm using three 8-bit +shift-registers ([SN74HC165](https://www.ti.com/product/SN74HC165) ) to +connect the 19 colums of the keyboard matrix for readout. Due to diode +direction in DQz11N1G-DE we also need 19 pull-down resistors one for each of +the utilized shift-register inputs. + +This is a design sketch of the replacement board this is based on. Note how +we need a custom matrix.c source file to deal with the shift register based +keyboard readout. + +![Sketch of Keyboard Controller Board](https://u.cubeupload.com/ddklg/GBZgSf.png) + +This is how the assembled controller board looks like, on the right side you +see the original PIC-based controller the keyboard ships with. + +![The assembled controller next to the original controller the keyboard ships with](https://u.cubeupload.com/ddklg/KLYF2V.jpg) + +Inside of the keyboard after installing the new controller board: + +![Installed controller](https://u.cubeupload.com/ddklg/Br0aiF.jpg) + +(Not visible in the photo: I drilled hole into the keyboard above the USB +connector for a reset switch to simplify flashing controller firmware) diff --git a/keyboards/handwired/dqz11n1g/rules.mk b/keyboards/handwired/dqz11n1g/rules.mk new file mode 100644 index 0000000000..db8a809da9 --- /dev/null +++ b/keyboards/handwired/dqz11n1g/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Keyboard matrix uses shift-registers read via SPI +CUSTOM_MATRIX = lite +SRC += matrix.c +QUANTUM_LIB_SRC += spi_master.c + +# 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 = yes # Audio output + diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk index a0120c8159..b7ff577361 100644 --- a/keyboards/handwired/dygma/raise/rules.mk +++ b/keyboards/handwired/dygma/raise/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/eagleii/config.h b/keyboards/handwired/eagleii/config.h index aa53dfa460..c17635caf1 100644 --- a/keyboards/handwired/eagleii/config.h +++ b/keyboards/handwired/eagleii/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x9789 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Eagle -#define PRODUCT II - #define MATRIX_ROWS 12 #define MATRIX_COLS 12 #define MATRIX_ROW_PINS { D0, B5, F1, B2, F7, F6, D4, D7, B4, B7, F5, B0 } diff --git a/keyboards/handwired/eagleii/info.json b/keyboards/handwired/eagleii/info.json index 366a3ad35f..7a221e8224 100644 --- a/keyboards/handwired/eagleii/info.json +++ b/keyboards/handwired/eagleii/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "EagleII", + "keyboard_name": "II", + "manufacturer": "Eagle", "url": "", "maintainer": "Spaceman", + "usb": { + "vid": "0xFEED", + "pid": "0x9789", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/elrgo_s/config.h b/keyboards/handwired/elrgo_s/config.h index 0ba6f77586..dc20ab1d3e 100644 --- a/keyboards/handwired/elrgo_s/config.h +++ b/keyboards/handwired/elrgo_s/config.h @@ -30,13 +30,6 @@ Copyright 2021 Yaroslav Smirnov #define DIODE_DIRECTION COL2ROW -/* USB Device descriptor parameter */ -#define PRODUCT Elrgo S -#define MANUFACTURER Eloren -#define VENDOR_ID 0x454C -#define PRODUCT_ID 0x3436 -#define DEVICE_VER 0x0001 - /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 diff --git a/keyboards/handwired/elrgo_s/info.json b/keyboards/handwired/elrgo_s/info.json index 7c2039605d..a176872fbf 100644 --- a/keyboards/handwired/elrgo_s/info.json +++ b/keyboards/handwired/elrgo_s/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Elrgo S", + "manufacturer": "Eloren", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x454C", + "pid": "0x3436", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x6_5": { "layout": [ diff --git a/keyboards/handwired/ergocheap/config.h b/keyboards/handwired/ergocheap/config.h index 00b9616e3e..136ba9d81c 100644 --- a/keyboards/handwired/ergocheap/config.h +++ b/keyboards/handwired/ergocheap/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEDE //0xFEED -#define PRODUCT_ID 0x6942 //0x6465 -#define DEVICE_VER 0x0001 -#define MANUFACTURER xSteins -#define PRODUCT ERGOCHEAP - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 @@ -47,7 +40,6 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD /* * Feature disable options diff --git a/keyboards/handwired/ergocheap/info.json b/keyboards/handwired/ergocheap/info.json index 8896b932f2..4e2853cd85 100644 --- a/keyboards/handwired/ergocheap/info.json +++ b/keyboards/handwired/ergocheap/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ergocheap", + "manufacturer": "xSteins", "url": "", "maintainer": "xSteins", + "usb": { + "vid": "0xFEDE", + "pid": "0x6942", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/evk/v1_3/config.h b/keyboards/handwired/evk/v1_3/config.h index 374ad9d0c3..a280c49f3b 100644 --- a/keyboards/handwired/evk/v1_3/config.h +++ b/keyboards/handwired/evk/v1_3/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yang Cui -#define PRODUCT evk v1_3 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/evk/v1_3/info.json b/keyboards/handwired/evk/v1_3/info.json index fb225566fd..99f7256522 100644 --- a/keyboards/handwired/evk/v1_3/info.json +++ b/keyboards/handwired/evk/v1_3/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Ergonomic Vertical Keyboard (EVK) version 1.3 with Teensy 2.0", + "keyboard_name": "evk v1_3", + "manufacturer": "Yang Cui", "url": "https://github.com/YangPiCui/ErgonomicVerticalKeyboard", "maintainer": "YangPiCui", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/fc200rt_qmk/config.h b/keyboards/handwired/fc200rt_qmk/config.h index 2eec7f584c..d0b9fc2cab 100644 --- a/keyboards/handwired/fc200rt_qmk/config.h +++ b/keyboards/handwired/fc200rt_qmk/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBEEF -#define PRODUCT_ID 0xFFFF -#define DEVICE_VER 0x0001 -#define MANUFACTURER NaCly -#define PRODUCT fc200rt_qmk - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/fc200rt_qmk/info.json b/keyboards/handwired/fc200rt_qmk/info.json index e6c295831c..261692012e 100644 --- a/keyboards/handwired/fc200rt_qmk/info.json +++ b/keyboards/handwired/fc200rt_qmk/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "fc200rt_qmk", + "manufacturer": "NaCly", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xBEEF", + "pid": "0xFFFF", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/handwired/fivethirteen/config.h b/keyboards/handwired/fivethirteen/config.h index 6ef436506b..8f392c35d0 100644 --- a/keyboards/handwired/fivethirteen/config.h +++ b/keyboards/handwired/fivethirteen/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER rdg -#define PRODUCT fivethirteen - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/handwired/fivethirteen/info.json b/keyboards/handwired/fivethirteen/info.json index e1f429e548..51dd52faa6 100644 --- a/keyboards/handwired/fivethirteen/info.json +++ b/keyboards/handwired/fivethirteen/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "fivethirteen", + "manufacturer": "rdg", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/floorboard/config.h b/keyboards/handwired/floorboard/config.h index 74be3e4426..84b748d520 100644 --- a/keyboards/handwired/floorboard/config.h +++ b/keyboards/handwired/floorboard/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kevin Lockwood -#define PRODUCT Floorboard - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/floorboard/info.json b/keyboards/handwired/floorboard/info.json index 6ccff9e60d..2dcc40d1af 100644 --- a/keyboards/handwired/floorboard/info.json +++ b/keyboards/handwired/floorboard/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Floorboard", + "manufacturer": "Kevin Lockwood", "url": "https://imgur.com/gJLgwQI", "maintainer": "Kevin Lockwood", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "layout": [ diff --git a/keyboards/handwired/frankie_macropad/config.h b/keyboards/handwired/frankie_macropad/config.h index 57e6d7e0dd..823be87688 100644 --- a/keyboards/handwired/frankie_macropad/config.h +++ b/keyboards/handwired/frankie_macropad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF00D -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Eric Wood -#define PRODUCT frankie_macropad - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/frankie_macropad/info.json b/keyboards/handwired/frankie_macropad/info.json index 55d8fcf16f..00a0d17615 100644 --- a/keyboards/handwired/frankie_macropad/info.json +++ b/keyboards/handwired/frankie_macropad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "frankie_macropad", + "manufacturer": "Eric Wood", "url": "https://github.com/eric-wood/macro-pad", "maintainer": "eric-wood", + "usb": { + "vid": "0xF00D", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/frenchdev/config.h b/keyboards/handwired/frenchdev/config.h index 84f16ea96e..f3d5398270 100644 --- a/keyboards/handwired/frenchdev/config.h +++ b/keyboards/handwired/frenchdev/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1307 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nicolas Poirey -#define PRODUCT Frenchdev V1 - /* key matrix size */ #define MATRIX_ROWS 16 #define MATRIX_COLS 6 diff --git a/keyboards/handwired/frenchdev/info.json b/keyboards/handwired/frenchdev/info.json index ca29c96e51..48725f37ac 100644 --- a/keyboards/handwired/frenchdev/info.json +++ b/keyboards/handwired/frenchdev/info.json @@ -1,5 +1,12 @@ { + "keyboard_name": "Frenchdev V1", + "manufacturer": "Nicolas Poirey", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x1307", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/frenchdev/keymaps/default/keymap.c b/keyboards/handwired/frenchdev/keymaps/default/keymap.c index 11463a0162..2d917b412e 100644 --- a/keyboards/handwired/frenchdev/keymaps/default/keymap.c +++ b/keyboards/handwired/frenchdev/keymaps/default/keymap.c @@ -209,7 +209,7 @@ void press_underscore(void) { uint8_t old_layer=_BASE; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); frenchdev_led_1_off(); frenchdev_led_2_off(); diff --git a/keyboards/handwired/freoduo/config.h b/keyboards/handwired/freoduo/config.h index 3af04f4ea7..e4393a319d 100644 --- a/keyboards/handwired/freoduo/config.h +++ b/keyboards/handwired/freoduo/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xB141 -#define PRODUCT_ID 0x0602 //F is 6th in alphabet, 02 as in DUO -#define DEVICE_VER 0x0001 -#define MANUFACTURER ParyzFilip -#define PRODUCT Freoduo - /* key matrix size */ /* rows are doubled-up */ #define MATRIX_ROWS 10 diff --git a/keyboards/handwired/freoduo/info.json b/keyboards/handwired/freoduo/info.json index 2fe8a4a485..de0a04392b 100644 --- a/keyboards/handwired/freoduo/info.json +++ b/keyboards/handwired/freoduo/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Freoduo", +"manufacturer": "ParyzFilip", "url": "https://github.com/FilipParyz", "maintainer": "https://github.com/FilipParyz", +"usb": { + "vid": "0xB141", + "pid": "0x0602", + "device_version": "0.0.1" +}, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/fruity60/config.h b/keyboards/handwired/fruity60/config.h index 7d63a657ec..a3a1e2beb8 100644 --- a/keyboards/handwired/fruity60/config.h +++ b/keyboards/handwired/fruity60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xB170 -#define DEVICE_VER 0x0001 -#define MANUFACTURER yanfali -#define PRODUCT fruity60 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 11 diff --git a/keyboards/handwired/fruity60/info.json b/keyboards/handwired/fruity60/info.json index d9b583faaf..40e38795e8 100644 --- a/keyboards/handwired/fruity60/info.json +++ b/keyboards/handwired/fruity60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "fruity60", + "manufacturer": "yanfali", "url": "https://github.com/yanfali/fruity60", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xB170", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"label":"Backspace", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Menu", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/handwired/gamenum/config.h b/keyboards/handwired/gamenum/config.h index 6fba6586da..480f6f73aa 100644 --- a/keyboards/handwired/gamenum/config.h +++ b/keyboards/handwired/gamenum/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1234 -#define PRODUCT_ID 0x5678 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Seth-Senpai -#define PRODUCT GameNum - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/gamenum/info.json b/keyboards/handwired/gamenum/info.json index d7d87ad202..a2d4bb3ce4 100644 --- a/keyboards/handwired/gamenum/info.json +++ b/keyboards/handwired/gamenum/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "gamenum", + "keyboard_name": "GameNum", + "manufacturer": "Seth-Senpai", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x1234", + "pid": "0x5678", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/hacked_motospeed/config.h b/keyboards/handwired/hacked_motospeed/config.h index 062376222f..ee781012b1 100644 --- a/keyboards/handwired/hacked_motospeed/config.h +++ b/keyboards/handwired/hacked_motospeed/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0690 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MMO_Corp -#define PRODUCT hacked_motospeed - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/hacked_motospeed/info.json b/keyboards/handwired/hacked_motospeed/info.json index d5da5e4578..a0fcd930c3 100644 --- a/keyboards/handwired/hacked_motospeed/info.json +++ b/keyboards/handwired/hacked_motospeed/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Hacked Motospeed", + "manufacturer": "MMO_Corp", "url": "", "maintainer": "Deckweiss", + "usb": { + "vid": "0xFEED", + "pid": "0x0690", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"ESC", "x":0, "y":0, "h":2}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Z", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0, "w":2}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":"(", "x":11, "y":1}, {"label":")", "x":12, "y":1}, {"label":"=", "x":0, "y":2}, {"label":"Y", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"?", "x":11, "y":2}, {"label":"Fn", "x":0, "y":3, "w":2}, {"label":"Num", "x":2, "y":3}, {"label":"Bksp", "x":3, "y":3}, {"label":"Enter", "x":4, "y":3}, {"label":"Spc", "x":5, "y":3}, {"label":"LShift", "x":7, "y":3}, {"label":"LCtrl", "x":8, "y":3}, {"label":"LAlt", "x":9, "y":3}, {"label":"RAlt", "x":10, "y":3}, {"label":"Meta", "x":11, "y":3}, {"label":"Fn", "x":12, "y":2, "h":2}] diff --git a/keyboards/handwired/heisenberg/config.h b/keyboards/handwired/heisenberg/config.h index 9438f3a082..7aa147b4e4 100644 --- a/keyboards/handwired/heisenberg/config.h +++ b/keyboards/handwired/heisenberg/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ardakilic -#define PRODUCT Heisenberg - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/heisenberg/info.json b/keyboards/handwired/heisenberg/info.json index 4f08514d2f..9756e8981e 100644 --- a/keyboards/handwired/heisenberg/info.json +++ b/keyboards/handwired/heisenberg/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Heisenberg", + "manufacturer": "Ardakilic", "url": "https://github.com/Ardakilic", "maintainer": "Arda Kilicdagi", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_planck_mit": { "layout": [ diff --git a/keyboards/handwired/hexon38/config.h b/keyboards/handwired/hexon38/config.h index 6187aa539e..cd818ca2bc 100644 --- a/keyboards/handwired/hexon38/config.h +++ b/keyboards/handwired/hexon38/config.h @@ -4,13 +4,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER pepaslabs -#define PRODUCT hexon38 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/hexon38/info.json b/keyboards/handwired/hexon38/info.json index 09127debb7..d993e33a37 100644 --- a/keyboards/handwired/hexon38/info.json +++ b/keyboards/handwired/hexon38/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "hexon38", + "manufacturer": "pepaslabs", "url": "", "maintainer": "cellularmitosis", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/hillside/info.json b/keyboards/handwired/hillside/info.json deleted file mode 100644 index 781b43c0ff..0000000000 --- a/keyboards/handwired/hillside/info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "manufacturer": "mmccoyd", - "maintainer": "mmccoyd", - - "url": "http://github.com/mmccoyd/hillside/" -} diff --git a/keyboards/handwired/hnah108/config.h b/keyboards/handwired/hnah108/config.h index e0249ba0c2..d430e008dd 100644 --- a/keyboards/handwired/hnah108/config.h +++ b/keyboards/handwired/hnah108/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0002 -#define MANUFACTURER HnahKB -#define PRODUCT Hnah108 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 11 diff --git a/keyboards/handwired/hnah108/info.json b/keyboards/handwired/hnah108/info.json index 71fee54ed9..5671ad4a7e 100644 --- a/keyboards/handwired/hnah108/info.json +++ b/keyboards/handwired/hnah108/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "hnah108", + "keyboard_name": "Hnah108", + "manufacturer": "HnahKB", "url": "", "maintainer": "HnahKB", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/handwired/hnah40/config.h b/keyboards/handwired/hnah40/config.h index 123c4ca38a..8080cf1138 100644 --- a/keyboards/handwired/hnah40/config.h +++ b/keyboards/handwired/hnah40/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0002 -#define MANUFACTURER HnahKB -#define PRODUCT Hnah40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/handwired/hnah40/info.json b/keyboards/handwired/hnah40/info.json index df95f0bf94..e4ca3fbb84 100644 --- a/keyboards/handwired/hnah40/info.json +++ b/keyboards/handwired/hnah40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Hnah40", + "manufacturer": "HnahKB", "url": "https://github.com/vuhopkep/PCB/tree/master/Hnah40-Atmega328p/PCB_V1/PCB", "maintainer": "HnahKB", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/hnah40rgb/config.h b/keyboards/handwired/hnah40rgb/config.h index 8204550d00..916fe15a20 100644 --- a/keyboards/handwired/hnah40rgb/config.h +++ b/keyboards/handwired/hnah40rgb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HnahKB -#define PRODUCT Hnah40V2 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/handwired/hnah40rgb/info.json b/keyboards/handwired/hnah40rgb/info.json index 79a5ddefb2..d00935ec26 100644 --- a/keyboards/handwired/hnah40rgb/info.json +++ b/keyboards/handwired/hnah40rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Hnah40", + "keyboard_name": "Hnah40V2", + "manufacturer": "HnahKB", "url": "", "maintainer": "HnahKB", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/handwired/ibm122m/config.h b/keyboards/handwired/ibm122m/config.h index cf65a8b909..9c9b7a09a9 100644 --- a/keyboards/handwired/ibm122m/config.h +++ b/keyboards/handwired/ibm122m/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IBM -#define PRODUCT IBM Model M 122 key - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 20 diff --git a/keyboards/handwired/ibm122m/info.json b/keyboards/handwired/ibm122m/info.json index 71f216d32f..970aa57240 100644 --- a/keyboards/handwired/ibm122m/info.json +++ b/keyboards/handwired/ibm122m/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "IBM Model M 122-key", + "keyboard_name": "IBM Model M 122 key", + "manufacturer": "IBM", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/ibm_wheelwriter/config.h b/keyboards/handwired/ibm_wheelwriter/config.h index ecca69fff8..eda98c03b5 100644 --- a/keyboards/handwired/ibm_wheelwriter/config.h +++ b/keyboards/handwired/ibm_wheelwriter/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8767 -#define PRODUCT_ID 0x5f89 -#define DEVICE_VER 0x0002 -#define MANUFACTURER IBM -#define PRODUCT ibm6715 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 13 diff --git a/keyboards/handwired/ibm_wheelwriter/info.json b/keyboards/handwired/ibm_wheelwriter/info.json index 58babe0a94..35e1e8c404 100644 --- a/keyboards/handwired/ibm_wheelwriter/info.json +++ b/keyboards/handwired/ibm_wheelwriter/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ibm_wheelwriter", + "keyboard_name": "6715 Wheelwriter", + "manufacturer": "IBM", "url": "https://github.com/andresteare/qmk_firmware", "maintainer": "andresteare", + "usb": { + "vid": "0x8767", + "pid": "0x5F89", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/jn68m/config.h b/keyboards/handwired/jn68m/config.h index 56a3e11696..2a0f34cab1 100644 --- a/keyboards/handwired/jn68m/config.h +++ b/keyboards/handwired/jn68m/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC714 -#define PRODUCT_ID 0x1010 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MxBlue -#define PRODUCT JN68M - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/jn68m/info.json b/keyboards/handwired/jn68m/info.json index 625b3bb96e..d244bbbb4e 100644 --- a/keyboards/handwired/jn68m/info.json +++ b/keyboards/handwired/jn68m/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "JN68M", + "manufacturer": "MxBlue", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xC714", + "pid": "0x1010", + "device_version": "0.0.1" + }, "bootloader": "atmel-dfu", "layouts": { "LAYOUT": { diff --git a/keyboards/handwired/jopr/config.h b/keyboards/handwired/jopr/config.h index 7e1da5bbc3..484415752b 100644 --- a/keyboards/handwired/jopr/config.h +++ b/keyboards/handwired/jopr/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4DAE -#define PRODUCT_ID 0x1000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER joelproko -#define PRODUCT jopr-106-Nl2SR-Cl2nL - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 11 diff --git a/keyboards/handwired/jopr/info.json b/keyboards/handwired/jopr/info.json index 7062f9e318..7da42ae0f4 100644 --- a/keyboards/handwired/jopr/info.json +++ b/keyboards/handwired/jopr/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "jopr-106", + "keyboard_name": "jopr-106-Nl2SR-Cl2nL", + "manufacturer": "joelproko", "url": "https://github.com/joelproko/keyboard_layout_jopr", "maintainer": "joelproko", + "usb": { + "vid": "0x4DAE", + "pid": "0x1000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/jot50/config.h b/keyboards/handwired/jot50/config.h index c44ceb3a71..5d3c6773e1 100644 --- a/keyboards/handwired/jot50/config.h +++ b/keyboards/handwired/jot50/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jotix -#define PRODUCT Jot50 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/jot50/info.json b/keyboards/handwired/jot50/info.json index 817dd12878..8df364e5a6 100644 --- a/keyboards/handwired/jot50/info.json +++ b/keyboards/handwired/jot50/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Jot50", + "manufacturer": "Jotix", "url": "", "maintainer": "jotix", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/handwired/jotanck/config.h b/keyboards/handwired/jotanck/config.h index db4a51f52f..f1ae28b9dc 100644 --- a/keyboards/handwired/jotanck/config.h +++ b/keyboards/handwired/jotanck/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jotix -#define PRODUCT Jotanck - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/jotanck/info.json b/keyboards/handwired/jotanck/info.json index 914c254849..c0b009c3ae 100644 --- a/keyboards/handwired/jotanck/info.json +++ b/keyboards/handwired/jotanck/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Jotanck", + "manufacturer": "Jotix", "url": "", "maintainer": "jotix", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "layout": [ diff --git a/keyboards/handwired/jotpad16/config.h b/keyboards/handwired/jotpad16/config.h index 78f28059e5..0afe9be035 100644 --- a/keyboards/handwired/jotpad16/config.h +++ b/keyboards/handwired/jotpad16/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jotix -#define PRODUCT JotPad16 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/jotpad16/info.json b/keyboards/handwired/jotpad16/info.json index 39a043e9e1..97c2ddbd75 100644 --- a/keyboards/handwired/jotpad16/info.json +++ b/keyboards/handwired/jotpad16/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "JotPad16", + "manufacturer": "Jotix", "url": "", "maintainer": "jotix", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [ diff --git a/keyboards/handwired/jtallbean/split_65/config.h b/keyboards/handwired/jtallbean/split_65/config.h index 196b0bc55d..acca0a265a 100644 --- a/keyboards/handwired/jtallbean/split_65/config.h +++ b/keyboards/handwired/jtallbean/split_65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER jtallbean -#define PRODUCT split_65 - /* key matrix size */ #define MATRIX_ROWS 10 // Double rows for split keyboards. split_65 has 5, so define 10 #define MATRIX_COLS 9 diff --git a/keyboards/handwired/jtallbean/split_65/info.json b/keyboards/handwired/jtallbean/split_65/info.json index a4082533a1..0cc04c93dc 100644 --- a/keyboards/handwired/jtallbean/split_65/info.json +++ b/keyboards/handwired/jtallbean/split_65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "split_65", + "manufacturer": "jtallbean", "url": "", "maintainer": "jtallbean", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/handwired/juliet/config.h b/keyboards/handwired/juliet/config.h index 5189017dfb..4b8cc99995 100644 --- a/keyboards/handwired/juliet/config.h +++ b/keyboards/handwired/juliet/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x6B62 -#define PRODUCT_ID 0x4069 -#define DEVICE_VER 0x0001 -#define MANUFACTURER nacly -#define PRODUCT juliet - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/juliet/info.json b/keyboards/handwired/juliet/info.json index 9d80b112d6..053b662e4d 100644 --- a/keyboards/handwired/juliet/info.json +++ b/keyboards/handwired/juliet/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "juliet", + "manufacturer": "nacly", "url": "https://github.com/Na-Cly/juliet", "maintainer": "Na-Cly", + "usb": { + "vid": "0x6B62", + "pid": "0x4069", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"1.5u", "x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"label":"1.5u", "x":11.5, "y":0, "w":1.5}, {"label":"1.75u", "x":0, "y":1, "w":1.75}, {"x":1.75, "y":1}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"label":"2.25u", "x":10.75, "y":1, "w":2.25}, {"label":"1.25u", "x":0, "y":2, "w":1.25}, {"x":1.25, "y":2}, {"x":2.25, "y":2}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"label":"1.75u", "x":11.25, "y":2, "w":1.75}, {"label":"1.25u", "x":0, "y":3, "w":1.25}, {"label":"1u", "x":1.25, "y":3}, {"label":"1.25u", "x":2.25, "y":3, "w":1.25}, {"label":"2.25u", "x":3.5, "y":3, "w":2.25}, {"label":"1u", "x":5.75, "y":3}, {"label":"2.75u", "x":6.75, "y":3, "w":2.75}, {"label":"1.25u", "x":9.5, "y":3, "w":1.25}, {"label":"1u", "x":10.75, "y":3}, {"label":"1.25u", "x":11.75, "y":3, "w":1.25}] diff --git a/keyboards/handwired/k8split/config.h b/keyboards/handwired/k8split/config.h index c1afef9a33..58708012f6 100644 --- a/keyboards/handwired/k8split/config.h +++ b/keyboards/handwired/k8split/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC81D -#define PRODUCT_ID 0xC868 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ckat -#define PRODUCT k8split - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/k8split/info.json b/keyboards/handwired/k8split/info.json index b7a39c56c7..c4da6abfb4 100644 --- a/keyboards/handwired/k8split/info.json +++ b/keyboards/handwired/k8split/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "k8split", + "manufacturer": "Ckat", "url": "", "maintainer": "Ckath", + "usb": { + "vid": "0xC81D", + "pid": "0xC868", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/k_numpad17/config.h b/keyboards/handwired/k_numpad17/config.h index 849460520a..fd412cb723 100644 --- a/keyboards/handwired/k_numpad17/config.h +++ b/keyboards/handwired/k_numpad17/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Handwired -#define PRODUCT K-Numpad17 #define TAPPING_TERM 400 diff --git a/keyboards/handwired/k_numpad17/info.json b/keyboards/handwired/k_numpad17/info.json index a382df0081..10dc814fc7 100644 --- a/keyboards/handwired/k_numpad17/info.json +++ b/keyboards/handwired/k_numpad17/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "K-Numpad17", + "manufacturer": "Handwired", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/handwired/kbod/config.h b/keyboards/handwired/kbod/config.h index 8cf38f59dc..0200f5e180 100644 --- a/keyboards/handwired/kbod/config.h +++ b/keyboards/handwired/kbod/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER fudanchii -#define PRODUCT kbod - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/kbod/info.json b/keyboards/handwired/kbod/info.json index 2026bde377..3c62ad9f74 100644 --- a/keyboards/handwired/kbod/info.json +++ b/keyboards/handwired/kbod/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "kbod", + "manufacturer": "fudanchii", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c index 0ffc3e9d97..333f8a769f 100644 --- a/keyboards/handwired/kbod/keymaps/default/keymap.c +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -89,7 +89,7 @@ void matrix_init_user(void) { } void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); if (layer) { PORTC |= _BV(PC7); } else { diff --git a/keyboards/handwired/ks63/config.h b/keyboards/handwired/ks63/config.h index b75346e6f5..565c48ab9e 100644 --- a/keyboards/handwired/ks63/config.h +++ b/keyboards/handwired/ks63/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3061 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kleshwong -#define PRODUCT ks63 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/ks63/info.json b/keyboards/handwired/ks63/info.json index fe3ee22bf7..600bd2252d 100644 --- a/keyboards/handwired/ks63/info.json +++ b/keyboards/handwired/ks63/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ks60", + "keyboard_name": "ks63", + "manufacturer": "kleshwong", "url": "", "maintainer": "Klesh Wong", + "usb": { + "vid": "0xFEED", + "pid": "0x3061", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/lagrange/config.h b/keyboards/handwired/lagrange/config.h index 309603ad39..0b9638178d 100644 --- a/keyboards/handwired/lagrange/config.h +++ b/keyboards/handwired/lagrange/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x2718 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Dimitris Papavasiliou -#define PRODUCT Lagrange - #define EE_HANDS #define SPLIT_USB_DETECT diff --git a/keyboards/handwired/lagrange/info.json b/keyboards/handwired/lagrange/info.json index 48714c75c3..9dd3891ebc 100644 --- a/keyboards/handwired/lagrange/info.json +++ b/keyboards/handwired/lagrange/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Lagrange", + "manufacturer": "Dimitris Papavasiliou", "url": "https://github.com/dpapavas/lagrange-keyboard", "maintainer": "dpapavas", + "usb": { + "vid": "0xFEED", + "pid": "0x2718", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/leftynumpad/config.h b/keyboards/handwired/leftynumpad/config.h index db89057e62..33dc93fc0e 100644 --- a/keyboards/handwired/leftynumpad/config.h +++ b/keyboards/handwired/leftynumpad/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xBEEF -#define DEVICE_VER 0x0001 -#define MANUFACTURER Tom Swartz -#define PRODUCT LeftyNumpad /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 5 diff --git a/keyboards/handwired/leftynumpad/info.json b/keyboards/handwired/leftynumpad/info.json index bd9f1919cf..c25e9c758e 100644 --- a/keyboards/handwired/leftynumpad/info.json +++ b/keyboards/handwired/leftynumpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "LeftyNumpad", + "manufacturer": "Tom Swartz", "url": "https://github.com/tomswartz07", "maintainer": "Tom Swartz", + "usb": { + "vid": "0xFEED", + "pid": "0xBEEF", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/lemonpad/config.h b/keyboards/handwired/lemonpad/config.h index c4e488f572..32ccfda88a 100644 --- a/keyboards/handwired/lemonpad/config.h +++ b/keyboards/handwired/lemonpad/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6473 -#define PRODUCT_ID 0x4C50 -#define DEVICE_VER 0x0001 -#define MANUFACTURER dari-studios -#define PRODUCT lemonpad - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/handwired/lemonpad/info.json b/keyboards/handwired/lemonpad/info.json index e9d13d147f..e2824f8fa7 100644 --- a/keyboards/handwired/lemonpad/info.json +++ b/keyboards/handwired/lemonpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "lemonpad", + "manufacturer": "dari-studios", "url": "", "maintainer": "dari-studios", + "usb": { + "vid": "0x6473", + "pid": "0x4C50", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/lovelive9/config.h b/keyboards/handwired/lovelive9/config.h index 9a55ee95f3..7453fb0202 100644 --- a/keyboards/handwired/lovelive9/config.h +++ b/keyboards/handwired/lovelive9/config.h @@ -3,13 +3,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER numazu Keyboards -#define PRODUCT lovelive9 - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 9 diff --git a/keyboards/handwired/lovelive9/info.json b/keyboards/handwired/lovelive9/info.json index c7ef2cf83c..7f8bd65fae 100644 --- a/keyboards/handwired/lovelive9/info.json +++ b/keyboards/handwired/lovelive9/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "lovelive9", + "manufacturer": "numazu Keyboards", "url": "https://github.com/ginjake", "maintainer": "ginjake", + "usb": { + "vid": "0xFEED", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/m40/5x5_macropad/config.h b/keyboards/handwired/m40/5x5_macropad/config.h index 4f71b79d43..935bc3992c 100644 --- a/keyboards/handwired/m40/5x5_macropad/config.h +++ b/keyboards/handwired/m40/5x5_macropad/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER m40 -#define PRODUCT macropad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 5 diff --git a/keyboards/handwired/m40/5x5_macropad/info.json b/keyboards/handwired/m40/5x5_macropad/info.json index 7d5ae8c6cb..1b0d95bf2d 100644 --- a/keyboards/handwired/m40/5x5_macropad/info.json +++ b/keyboards/handwired/m40/5x5_macropad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "5x5_macropad", + "manufacturer": "m40", "url": "https://www.thingiverse.com/thing:5239739", "maintainer": "m40-dev", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x5": { "layout": [ diff --git a/keyboards/handwired/macroboard/config.h b/keyboards/handwired/macroboard/config.h index 42a4deb5d8..91f2b6a6a7 100644 --- a/keyboards/handwired/macroboard/config.h +++ b/keyboards/handwired/macroboard/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x2137 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 6 diff --git a/keyboards/handwired/macroboard/f401/rules.mk b/keyboards/handwired/macroboard/f401/rules.mk index bcb612f5cc..3ce53701da 100644 --- a/keyboards/handwired/macroboard/f401/rules.mk +++ b/keyboards/handwired/macroboard/f401/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/macroboard/f411/rules.mk b/keyboards/handwired/macroboard/f411/rules.mk index 1bb37ec02c..0a580be07a 100644 --- a/keyboards/handwired/macroboard/f411/rules.mk +++ b/keyboards/handwired/macroboard/f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/macroboard/info.json b/keyboards/handwired/macroboard/info.json index 2aa44eb803..cb3645f358 100644 --- a/keyboards/handwired/macroboard/info.json +++ b/keyboards/handwired/macroboard/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "macroboard", + "keyboard_name": "Macroboard", + "manufacturer": "QMK", "url": "", "maintainer": "Michał Szczepaniak", + "usb": { + "vid": "0xFEED", + "pid": "0x2137", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x6": { "layout": [ diff --git a/keyboards/handwired/magicforce61/config.h b/keyboards/handwired/magicforce61/config.h index e54ee545da..7cf32ea0ed 100644 --- a/keyboards/handwired/magicforce61/config.h +++ b/keyboards/handwired/magicforce61/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hexwire -#define PRODUCT Magicforce 61 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/magicforce61/info.json b/keyboards/handwired/magicforce61/info.json index e4bab8a0d2..2a69b22e2f 100644 --- a/keyboards/handwired/magicforce61/info.json +++ b/keyboards/handwired/magicforce61/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Magicforce \"61\"", + "keyboard_name": "Magicforce 61", + "manufacturer": "Hexwire", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/magicforce68/config.h b/keyboards/handwired/magicforce68/config.h index 0539fab023..d53c51a01a 100644 --- a/keyboards/handwired/magicforce68/config.h +++ b/keyboards/handwired/magicforce68/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hexwire -#define PRODUCT Magicforce 68 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/handwired/magicforce68/info.json b/keyboards/handwired/magicforce68/info.json index f3ad1287ea..82f329e29d 100644 --- a/keyboards/handwired/magicforce68/info.json +++ b/keyboards/handwired/magicforce68/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Magicforce 68 Handwired", + "keyboard_name": "Magicforce 68", + "manufacturer": "Hexwire", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/marauder/config.h b/keyboards/handwired/marauder/config.h index 7c6a6d74d4..fdc269fb7f 100644 --- a/keyboards/handwired/marauder/config.h +++ b/keyboards/handwired/marauder/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D52 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER BB-66 -#define PRODUCT Minshara Marauder - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/handwired/marauder/info.json b/keyboards/handwired/marauder/info.json index d2e1be4ff8..8c0e23fafb 100644 --- a/keyboards/handwired/marauder/info.json +++ b/keyboards/handwired/marauder/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Minshara Marauder", + "manufacturer": "BB-66", "url": "https://imgur.com/a/TvsXpq5", "maintainer": "BB-66", + "usb": { + "vid": "0x4D52", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/mechboards_micropad/config.h b/keyboards/handwired/mechboards_micropad/config.h index f008d596f1..923428df56 100644 --- a/keyboards/handwired/mechboards_micropad/config.h +++ b/keyboards/handwired/mechboards_micropad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar -#define PRODUCT Mechboards Micropad - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/mechboards_micropad/info.json b/keyboards/handwired/mechboards_micropad/info.json index abbf6e649d..aefc0b89c0 100644 --- a/keyboards/handwired/mechboards_micropad/info.json +++ b/keyboards/handwired/mechboards_micropad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mechboards Micropad", + "manufacturer": "Yiancar", "url": "", "maintainer": "yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"1", "x":0, "y":0}, {"label":"2", "x":1, "y":0}, {"label":"3", "x":2, "y":0}, {"label":"4", "x":3, "y":0}] diff --git a/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk b/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk index e01b22e8fd..d2eae19dfb 100644 --- a/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk +++ b/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/meck_tkl/config.h b/keyboards/handwired/meck_tkl/config.h index 7029e22530..07fd3dd314 100644 --- a/keyboards/handwired/meck_tkl/config.h +++ b/keyboards/handwired/meck_tkl/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x474B -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER gabrielkim13 -#define PRODUCT Meck TKL - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/handwired/meck_tkl/info.json b/keyboards/handwired/meck_tkl/info.json index 5976b67584..a8d6e281e2 100644 --- a/keyboards/handwired/meck_tkl/info.json +++ b/keyboards/handwired/meck_tkl/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "meck_tkl", + "keyboard_name": "Meck TKL", + "manufacturer": "gabrielkim13", "url": "github.com/gabrielkim13", "maintainer": "gabrielkim13", + "usb": { + "vid": "0x474B", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/handwired/minorca/config.h b/keyboards/handwired/minorca/config.h index e987ba67f0..0707e7a8ec 100644 --- a/keyboards/handwired/minorca/config.h +++ b/keyboards/handwired/minorca/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6660 -#define DEVICE_VER 0x0001 -#define MANUFACTURER panc.co -#define PRODUCT Minorca - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 @@ -67,9 +60,3 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT - -/* bootmagic salt key */ -#define BOOTMAGIC_KEY_SALT KC_ESC - -/* skip bootmagic and eeconfig */ -#define BOOTMAGIC_KEY_SKIP KC_SPACE diff --git a/keyboards/handwired/minorca/info.json b/keyboards/handwired/minorca/info.json index 9882d0cf7e..34b2539a11 100644 --- a/keyboards/handwired/minorca/info.json +++ b/keyboards/handwired/minorca/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Minorca Handwired", + "keyboard_name": "Minorca", + "manufacturer": "panc.co", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6660", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/mutepad/config.h b/keyboards/handwired/mutepad/config.h index 7113063223..bf030bce4b 100644 --- a/keyboards/handwired/mutepad/config.h +++ b/keyboards/handwired/mutepad/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER JoshwJB -#define PRODUCT MutePad - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/mutepad/info.json b/keyboards/handwired/mutepad/info.json index 60218924a0..1ae80088eb 100644 --- a/keyboards/handwired/mutepad/info.json +++ b/keyboards/handwired/mutepad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MutePad", + "manufacturer": "JoshwJB", "url": "https://github.com/JoshwJB/MutePad", "maintainer": "JoshwJB", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/myskeeb/config.h b/keyboards/handwired/myskeeb/config.h index ef6dcb13b7..0e64b01274 100644 --- a/keyboards/handwired/myskeeb/config.h +++ b/keyboards/handwired/myskeeb/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device Descriptor Parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0100 -#define MANUFACTURER DAG3 -#define PRODUCT MySKeeb - // Key Matrix Size // // Rows are Doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/handwired/myskeeb/info.json b/keyboards/handwired/myskeeb/info.json index 27f1d2ae52..8aff23d617 100644 --- a/keyboards/handwired/myskeeb/info.json +++ b/keyboards/handwired/myskeeb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "myskeeb", + "keyboard_name": "MySKeeb", + "manufacturer": "DAG3", "url": "", "maintainer": "su8044", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/nicekey/config.h b/keyboards/handwired/nicekey/config.h index 7a41e62a57..702bdaacf7 100644 --- a/keyboards/handwired/nicekey/config.h +++ b/keyboards/handwired/nicekey/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Lukas -#define PRODUCT nicekey - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 diff --git a/keyboards/handwired/nicekey/info.json b/keyboards/handwired/nicekey/info.json index fd6b0f1689..3f965bf1b2 100644 --- a/keyboards/handwired/nicekey/info.json +++ b/keyboards/handwired/nicekey/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "nicekey handwired", + "keyboard_name": "nicekey", + "manufacturer": "Lukas", "url": "", "maintainer": "spydon", + "usb": { + "vid": "0xFEED", + "pid": "0x6464", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/not_so_minidox/config.h b/keyboards/handwired/not_so_minidox/config.h index aa6319cb0f..e137931a1a 100644 --- a/keyboards/handwired/not_so_minidox/config.h +++ b/keyboards/handwired/not_so_minidox/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER mtdjr -#define PRODUCT Not So MiniDox - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/handwired/not_so_minidox/info.json b/keyboards/handwired/not_so_minidox/info.json index 7a458add9c..5d8f7ff960 100644 --- a/keyboards/handwired/not_so_minidox/info.json +++ b/keyboards/handwired/not_so_minidox/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Not So MiniDox", + "manufacturer": "mtdjr", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x3060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/novem/config.h b/keyboards/handwired/novem/config.h index 1b6d8587f0..a442f493e2 100644 --- a/keyboards/handwired/novem/config.h +++ b/keyboards/handwired/novem/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jose I. Martinez -#define PRODUCT novem - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/handwired/novem/info.json b/keyboards/handwired/novem/info.json index 5c7d24bca0..e1699e99e2 100644 --- a/keyboards/handwired/novem/info.json +++ b/keyboards/handwired/novem/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "novem", + "manufacturer": "Jose I. Martinez", "url": "", "maintainer": "Jose I. Martinez", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/nozbe_macro/config.h b/keyboards/handwired/nozbe_macro/config.h index 996ed08ab6..289e5afcfe 100644 --- a/keyboards/handwired/nozbe_macro/config.h +++ b/keyboards/handwired/nozbe_macro/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Leon Omelan -#define PRODUCT Nozbe Reunion Pad - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/nozbe_macro/info.json b/keyboards/handwired/nozbe_macro/info.json index 056ccf9fc1..57a4751bdb 100644 --- a/keyboards/handwired/nozbe_macro/info.json +++ b/keyboards/handwired/nozbe_macro/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "nozbe_macro", + "keyboard_name": "Nozbe Reunion Pad", + "manufacturer": "Leon Omelan", "url": "", "maintainer": "Leon Omelan", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/numpad20/config.h b/keyboards/handwired/numpad20/config.h index 4b9ca1baf3..4690cce003 100644 --- a/keyboards/handwired/numpad20/config.h +++ b/keyboards/handwired/numpad20/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBB80 -#define PRODUCT_ID 0x0504 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hexwire -#define PRODUCT Numpad 20 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/numpad20/info.json b/keyboards/handwired/numpad20/info.json index f031160e75..b6b277503a 100644 --- a/keyboards/handwired/numpad20/info.json +++ b/keyboards/handwired/numpad20/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "numpad20 handwired", + "keyboard_name": "Numpad 20", + "manufacturer": "Hexwire", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xBB80", + "pid": "0x0504", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/obuwunkunubi/spaget/config.h b/keyboards/handwired/obuwunkunubi/spaget/config.h index 1558acb55a..7b0fc127e8 100644 --- a/keyboards/handwired/obuwunkunubi/spaget/config.h +++ b/keyboards/handwired/obuwunkunubi/spaget/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1337 -#define PRODUCT_ID 0x6969 -#define DEVICE_VER 0x0001 -#define MANUFACTURER obuwunkunubi -#define PRODUCT spaget - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/obuwunkunubi/spaget/info.json b/keyboards/handwired/obuwunkunubi/spaget/info.json index fcf98ad293..124f74fd3c 100644 --- a/keyboards/handwired/obuwunkunubi/spaget/info.json +++ b/keyboards/handwired/obuwunkunubi/spaget/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "spaget", + "manufacturer": "obuwunkunubi", "url": "", "maintainer": "obuwunkunubi", + "usb": { + "vid": "0x1337", + "pid": "0x6969", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/oem_ansi_fullsize/config.h b/keyboards/handwired/oem_ansi_fullsize/config.h index 710b4a871b..6d2ca75e9b 100644 --- a/keyboards/handwired/oem_ansi_fullsize/config.h +++ b/keyboards/handwired/oem_ansi_fullsize/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Cian Johnston -#define PRODUCT oem_ansi_fullsize - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 22 diff --git a/keyboards/handwired/oem_ansi_fullsize/info.json b/keyboards/handwired/oem_ansi_fullsize/info.json index 1ab1559fc0..9d86df7075 100644 --- a/keyboards/handwired/oem_ansi_fullsize/info.json +++ b/keyboards/handwired/oem_ansi_fullsize/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "oem_ansi_fullsize", + "manufacturer": "Cian Johnston", "url": "https://github.com/johnstcn/qmk", "maintainer": "johnstcn", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_fullsize_ansi": { "layout": [ diff --git a/keyboards/handwired/oem_iso_fullsize/config.h b/keyboards/handwired/oem_iso_fullsize/config.h index 566af03b0f..5270c77f47 100644 --- a/keyboards/handwired/oem_iso_fullsize/config.h +++ b/keyboards/handwired/oem_iso_fullsize/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x9856 // "Gamdias" -#define PRODUCT_ID 0x7070 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Gamdias -#define PRODUCT teclado_oscar - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 21 diff --git a/keyboards/handwired/oem_iso_fullsize/info.json b/keyboards/handwired/oem_iso_fullsize/info.json index 6df2a57ca7..a3736dc768 100644 --- a/keyboards/handwired/oem_iso_fullsize/info.json +++ b/keyboards/handwired/oem_iso_fullsize/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "oem_iso_fullsize", + "keyboard_name": "teclado_oscar", + "manufacturer": "Gamdias", "url": "https://github.com/andresteare/qmk_firmware", "maintainer": "andresteare", + "usb": { + "vid": "0x9856", + "pid": "0x7070", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/onekey/blackpill_f401/rules.mk b/keyboards/handwired/onekey/blackpill_f401/rules.mk index 264e71d0b5..1fec226e9b 100644 --- a/keyboards/handwired/onekey/blackpill_f401/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f401/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/onekey/blackpill_f411/rules.mk b/keyboards/handwired/onekey/blackpill_f411/rules.mk index 75bc794ef0..cd1657335d 100644 --- a/keyboards/handwired/onekey/blackpill_f411/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h index 88c15806ce..f491d4d393 100644 --- a/keyboards/handwired/onekey/config.h +++ b/keyboards/handwired/onekey/config.h @@ -42,7 +42,6 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD /* * Feature disable options diff --git a/keyboards/handwired/onekey/onekey.c b/keyboards/handwired/onekey/onekey.c index a29f9ea6d0..cbd67012ce 100644 --- a/keyboards/handwired/onekey/onekey.c +++ b/keyboards/handwired/onekey/onekey.c @@ -1,12 +1 @@ -// Copyright 2022 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - #include "onekey.h" - -void keyboard_post_init_kb(void) { - debug_enable = true; - debug_matrix = true; - debug_keyboard = true; - debug_mouse = true; - keyboard_post_init_user(); -} diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h deleted file mode 100644 index f5a122e91b..0000000000 --- a/keyboards/handwired/onekey/rp2040/config.h +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "config_common.h" - -#define PRODUCT Onekey Raspberry Pi RP2040 -#define MATRIX_COL_PINS { GP4 } -#define MATRIX_ROW_PINS { GP5 } -#define DEBUG_MATRIX_SCAN_RATE - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U - -#define RGB_DI_PIN A1 diff --git a/keyboards/handwired/onekey/rp2040/readme.md b/keyboards/handwired/onekey/rp2040/readme.md deleted file mode 100644 index 9014479f8d..0000000000 --- a/keyboards/handwired/onekey/rp2040/readme.md +++ /dev/null @@ -1,12 +0,0 @@ -# Raspberry Pi 2040 onekey - -To trigger keypress, short together pins *GP4* and *GP5*. - -Double-tap reset to enter bootloader mode. Copy the built uf2 file to the device by dragging the file to the new USB disk. - -## Supported Hardware - -* Raspberry Pi Pico -* SparkFun Pro Micro - RP2040 -* Adafruit KB2040 - RP2040 Kee Boar -* ...and many more RP2040 based development boards diff --git a/keyboards/handwired/onekey/rp2040/rules.mk b/keyboards/handwired/onekey/rp2040/rules.mk deleted file mode 100644 index 646402d0bb..0000000000 --- a/keyboards/handwired/onekey/rp2040/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# MCU name -MCU = RP2040 -BOOTLOADER = rp2040 diff --git a/keyboards/handwired/onekey/teensy_lc/readme.md b/keyboards/handwired/onekey/teensy_lc/readme.md index 676d794d87..20e9be5bed 100644 --- a/keyboards/handwired/onekey/teensy_lc/readme.md +++ b/keyboards/handwired/onekey/teensy_lc/readme.md @@ -33,8 +33,6 @@ When setting matrix pins, you need to use the MCU definitions instead of what is | 21/A7 | D6 | | | 22/A8 | C1 | | | 23/A9 | C2 | | -| 24/A10 | E2 | | -| 25/A11 | E21 | *[1]* | -| 26/A12 | E30 | *[1]* | - -*[1]* - Currently not configured and may require extra work to implement. +| 24/A10 | E20 | | +| 25/A11 | E21 | | +| 26/A12 | E30 | | \ No newline at end of file diff --git a/keyboards/handwired/ortho5x13/config.h b/keyboards/handwired/ortho5x13/config.h index 7731d29f0c..c16cf77cd4 100644 --- a/keyboards/handwired/ortho5x13/config.h +++ b/keyboards/handwired/ortho5x13/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBB80 -#define PRODUCT_ID 0x050D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hexwire -#define PRODUCT Ortho 5x13 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/handwired/ortho5x13/info.json b/keyboards/handwired/ortho5x13/info.json index 1ec13f93a7..0fe0530e33 100644 --- a/keyboards/handwired/ortho5x13/info.json +++ b/keyboards/handwired/ortho5x13/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ortho5x13", + "keyboard_name": "Ortho 5x13", + "manufacturer": "Hexwire", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xBB80", + "pid": "0x050D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/ortho5x14/config.h b/keyboards/handwired/ortho5x14/config.h index a5aab6168f..0be408cbf4 100644 --- a/keyboards/handwired/ortho5x14/config.h +++ b/keyboards/handwired/ortho5x14/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBB80 -#define PRODUCT_ID 0x050D -#define DEVICE_VER 0x0001 -#define MANUFACTURER MPInc -#define PRODUCT Ortho 5x14 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/ortho5x14/info.json b/keyboards/handwired/ortho5x14/info.json index 7ccd121a22..3702a2ff38 100644 --- a/keyboards/handwired/ortho5x14/info.json +++ b/keyboards/handwired/ortho5x14/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ortho5x14", + "keyboard_name": "Ortho5 x14", + "manufacturer": "MPInc", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xBB80", + "pid": "0x050D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c b/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c index d785825332..70a96fac9d 100644 --- a/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c +++ b/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c @@ -343,9 +343,9 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_PGUP_HOME] = ACTION_TAP_DANCE_DOUBLE(KC_PGUP, KC_HOME), [TD_PGDN_END] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN, KC_END), - [TD_Q_LrALT] = ACTION_TAP_DANCE_LAYER_MOVE(KC_Q, _ALT), - [TD_R_LrKey] = ACTION_TAP_DANCE_LAYER_MOVE(KC_R, _RAISE), - [TD_T_LrMS] = ACTION_TAP_DANCE_LAYER_MOVE(KC_T, _MOUSE), + [TD_Q_LrALT] = ACTION_TAP_DANCE_DUAL_ROLE(KC_Q, _ALT), + [TD_R_LrKey] = ACTION_TAP_DANCE_DUAL_ROLE(KC_R, _RAISE), + [TD_T_LrMS] = ACTION_TAP_DANCE_DUAL_ROLE(KC_T, _MOUSE), [TD_SHIFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,lshift_finished, lshift_reset), [TD_SPC_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_SPACE, KC_ENT), diff --git a/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c b/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c index 3734510f8c..b152503aaf 100644 --- a/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c +++ b/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c @@ -279,9 +279,9 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_PGUP_HOME] = ACTION_TAP_DANCE_DOUBLE(KC_PGUP, KC_HOME), [TD_PGDN_END] = ACTION_TAP_DANCE_DOUBLE(KC_PGUP, KC_END), - [TD_Q_LrALT] = ACTION_TAP_DANCE_LAYER_MOVE(KC_Q, _ALT), - [TD_R_LrKey] = ACTION_TAP_DANCE_LAYER_MOVE(KC_R, _RAISE), - [TD_T_LrMS] = ACTION_TAP_DANCE_LAYER_MOVE(KC_T, _MOUSE), + [TD_Q_LrALT] = ACTION_TAP_DANCE_DUAL_ROLE(KC_Q, _ALT), + [TD_R_LrKey] = ACTION_TAP_DANCE_DUAL_ROLE(KC_R, _RAISE), + [TD_T_LrMS] = ACTION_TAP_DANCE_DUAL_ROLE(KC_T, _MOUSE), [TD_SHIFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,lshift_finished, lshift_reset), [TD_SPC_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_SPACE, KC_ENT), diff --git a/keyboards/handwired/ortho_brass/config.h b/keyboards/handwired/ortho_brass/config.h index 816a8fe597..694b93c4ee 100644 --- a/keyboards/handwired/ortho_brass/config.h +++ b/keyboards/handwired/ortho_brass/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER BifbofII -#define PRODUCT Ortho Brass - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/ortho_brass/info.json b/keyboards/handwired/ortho_brass/info.json index 9178f8d89b..ab79b9df72 100644 --- a/keyboards/handwired/ortho_brass/info.json +++ b/keyboards/handwired/ortho_brass/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ortho Brass", + "manufacturer": "BifbofII", "url": "", "maintainer": "BifbofII", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "layout": [ diff --git a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c index f32529b6a7..948a7bd1bc 100644 --- a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c @@ -162,7 +162,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ortho_4x12_1x2uC( _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/owlet60/config.h b/keyboards/handwired/owlet60/config.h index 9613a97580..3dfccbd218 100644 --- a/keyboards/handwired/owlet60/config.h +++ b/keyboards/handwired/owlet60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xDA19 -#define DEVICE_VER 0x0001 -#define MANUFACTURER worthlessowl -#define PRODUCT Owlet60 - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/owlet60/info.json b/keyboards/handwired/owlet60/info.json index 18e57fe815..df230a9b01 100644 --- a/keyboards/handwired/owlet60/info.json +++ b/keyboards/handwired/owlet60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Owlet60", + "manufacturer": "worthlessowl", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/owlet60/", "maintainer": "worthlessowl", + "usb": { + "vid": "0xFEED", + "pid": "0xDA19", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_owlet60_full_bsp": { "layout": [{"label":"F1", "x":0.5, "y":0}, {"label":"~", "x":1.75, "y":0}, {"label":"!", "x":2.75, "y":0}, {"label":"@", "x":3.75, "y":0}, {"label":"#", "x":4.75, "y":0}, {"label":"$", "x":5.75, "y":0}, {"label":"%", "x":6.75, "y":0}, {"label":"^", "x":7.75, "y":0}, {"label":"&", "x":9.25, "y":0}, {"label":"*", "x":10.25, "y":0}, {"label":"(", "x":11.25, "y":0}, {"label":")", "x":12.25, "y":0}, {"label":"_", "x":13.25, "y":0}, {"label":"+", "x":14.25, "y":0}, {"label":"Backspace", "x":15.25, "y":0, "w":2}, {"label":"PgUp", "x":17.25, "y":0}, {"label":"F2", "x":0.25, "y":1}, {"label":"Tab", "x":1.5, "y":1, "w":1.5}, {"label":"Q", "x":3, "y":1}, {"label":"W", "x":4, "y":1}, {"label":"E", "x":5, "y":1}, {"label":"R", "x":6, "y":1}, {"label":"T", "x":7, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15, "y":1}, {"label":"|", "x":16, "y":1, "w":1.5}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"F3", "x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":9.5, "y":2}, {"label":"J", "x":10.5, "y":2}, {"label":"K", "x":11.5, "y":2}, {"label":"L", "x":12.5, "y":2}, {"label":":", "x":13.5, "y":2}, {"label":"\"", "x":14.5, "y":2}, {"label":"Enter", "x":15.5, "y":2, "w":2.25}, {"label":"Home", "x":17.75, "y":2}, {"label":"Shift", "x":1, "y":3, "w":2.25}, {"label":"Z", "x":3.25, "y":3}, {"label":"X", "x":4.25, "y":3}, {"label":"C", "x":5.25, "y":3}, {"label":"V", "x":6.25, "y":3}, {"label":"B", "x":7.25, "y":3}, {"label":"B", "x":9.25, "y":3}, {"label":"N", "x":10.25, "y":3}, {"label":"M", "x":11.25, "y":3}, {"label":"<", "x":12.25, "y":3}, {"label":">", "x":13.25, "y":3}, {"label":"?", "x":14.25, "y":3}, {"label":"Shift", "x":15.25, "y":3, "w":1.75}, {"label":"Up", "x":17, "y":3}, {"label":"End", "x":18, "y":3}, {"label":"Ctrl", "x":1, "y":4, "w":1.5}, {"label":"Alt", "x":3.5, "y":4, "w":1.5}, {"x":5, "y":4, "w":2.25}, {"label":"Super", "x":7.25, "y":4, "w":1.25}, {"x":9.25, "y":4, "w":2}, {"label":"Alt", "x":11.25, "y":4, "w":1.5}, {"label":"Left", "x":16, "y":4}, {"label":"Down", "x":17, "y":4}, {"label":"Right", "x":18, "y":4}] diff --git a/keyboards/handwired/p65rgb/config.h b/keyboards/handwired/p65rgb/config.h index 2ff3da8119..44e2a1b5da 100644 --- a/keyboards/handwired/p65rgb/config.h +++ b/keyboards/handwired/p65rgb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x75B4 -#define DEVICE_VER 0x0001 -#define MANUFACTURER marhalloweenvt -#define PRODUCT p65rgb - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/handwired/p65rgb/info.json b/keyboards/handwired/p65rgb/info.json index 5b688404e3..5daf9d1c99 100644 --- a/keyboards/handwired/p65rgb/info.json +++ b/keyboards/handwired/p65rgb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "p65rgb", + "manufacturer": "marhalloweenvt", "url": "", "maintainer": "marhalloweenvt", + "usb": { + "vid": "0xFEED", + "pid": "0x75B4", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/pilcrow/config.h b/keyboards/handwired/pilcrow/config.h index 3ed0f5de6a..3667d46296 100644 --- a/keyboards/handwired/pilcrow/config.h +++ b/keyboards/handwired/pilcrow/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER You -#define PRODUCT pilcrow - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/handwired/pilcrow/info.json b/keyboards/handwired/pilcrow/info.json index 6aac0760e2..ee3a0e733d 100644 --- a/keyboards/handwired/pilcrow/info.json +++ b/keyboards/handwired/pilcrow/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "pilcrow", + "manufacturer": "Unknown", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/pill60/blackpill_f401/rules.mk b/keyboards/handwired/pill60/blackpill_f401/rules.mk index 9b0a72afb9..8d72b0e446 100644 --- a/keyboards/handwired/pill60/blackpill_f401/rules.mk +++ b/keyboards/handwired/pill60/blackpill_f401/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/pill60/blackpill_f411/rules.mk b/keyboards/handwired/pill60/blackpill_f411/rules.mk index 1243557019..13a6cb5286 100644 --- a/keyboards/handwired/pill60/blackpill_f411/rules.mk +++ b/keyboards/handwired/pill60/blackpill_f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/pill60/config.h b/keyboards/handwired/pill60/config.h index 16147e584b..90edb12b87 100644 --- a/keyboards/handwired/pill60/config.h +++ b/keyboards/handwired/pill60/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4454 -#define PRODUCT_ID 0x5444 -#define DEVICE_VER 0x0001 - -#define MANUFACTURER "IktaS" -#define PRODUCT "Pill60" - #define MATRIX_ROWS 5 #define MATRIX_COLS 14 #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/handwired/pill60/info.json b/keyboards/handwired/pill60/info.json index ce8c9dcc53..02fb75983a 100644 --- a/keyboards/handwired/pill60/info.json +++ b/keyboards/handwired/pill60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pill60", + "manufacturer": "IktaS", "url": "https://github.com/IktaS/Pill60", "maintainer": "IktaS ", + "usb": { + "vid": "0x4454", + "pid": "0x5444", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/prime_exl/config.h b/keyboards/handwired/prime_exl/config.h index 436715a7d9..bb68ab28a1 100644 --- a/keyboards/handwired/prime_exl/config.h +++ b/keyboards/handwired/prime_exl/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5052 -#define PRODUCT_ID 0x6578 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PrimeKB -#define PRODUCT Prime_EXL - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 9 diff --git a/keyboards/handwired/prime_exl/info.json b/keyboards/handwired/prime_exl/info.json index bc43b5e3f7..9c40e5e69e 100644 --- a/keyboards/handwired/prime_exl/info.json +++ b/keyboards/handwired/prime_exl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Prime_EXL", + "manufacturer": "PrimeKB", "url": "https://www.primekb.com", "maintainer": "holtenc", + "usb": { + "vid": "0x5052", + "pid": "0x6578", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0,"y":0,"w":1,"h":1}, {"x":1,"y":0,"w":1,"h":1}, {"x":2,"y":0,"w":1,"h":1}, {"x":3,"y":0,"w":1,"h":1}, {"x":4,"y":0,"w":1,"h":1}, {"x":5,"y":0,"w":1,"h":1}, {"x":6.5,"y":0,"w":1,"h":1}, {"x":7.5,"y":0,"w":1,"h":1}, {"x":8.5,"y":0,"w":1,"h":1}, {"x":9.5,"y":0,"w":1,"h":1}, {"x":10.5,"y":0,"w":1,"h":1}, {"x":11.5,"y":0,"w":1,"h":1}, {"x":13.75,"y":0,"w":1,"h":1}, {"x":14.75,"y":0,"w":1,"h":1}, {"x":15.75,"y":0,"w":1,"h":1}, {"x":16.75,"y":0,"w":1,"h":1}, {"x":17.75,"y":0,"w":1,"h":1}, {"x":18.75,"y":0,"w":2,"h":1}, {"x":0,"y":1,"w":1,"h":1}, {"x":1,"y":1,"w":1,"h":1}, {"x":2,"y":1,"w":1,"h":1}, {"x":3,"y":1,"w":1,"h":1}, {"x":4,"y":1,"w":1,"h":1}, {"x":5,"y":1,"w":1,"h":1}, {"x":6.5,"y":1,"w":1.25,"h":1}, {"x":7.75,"y":1,"w":1,"h":1}, {"x":8.75,"y":1,"w":1,"h":1}, {"x":9.75,"y":1,"w":1,"h":1}, {"x":10.75,"y":1,"w":1,"h":1}, {"x":11.75,"y":1,"w":1,"h":1}, {"x":14,"y":1,"w":1,"h":1}, {"x":15,"y":1,"w":1,"h":1}, {"x":16,"y":1,"w":1,"h":1}, {"x":17,"y":1,"w":1,"h":1}, {"x":18,"y":1,"w":1,"h":1}, {"x":19,"y":1,"w":1.75,"h":1}, {"x":0,"y":2,"w":1,"h":1}, {"x":1,"y":2,"w":1,"h":1}, {"x":2,"y":2,"w":1,"h":1}, {"x":3,"y":2,"w":1,"h":1}, {"x":4,"y":2,"w":1,"h":1}, {"x":5,"y":2,"w":1,"h":1}, {"x":6.5,"y":2,"w":1.75,"h":1}, {"x":8.25,"y":2,"w":1,"h":1}, {"x":9.25,"y":2,"w":1,"h":1}, {"x":10.25,"y":2,"w":1,"h":1}, {"x":11.25,"y":2,"w":1,"h":1}, {"x":12.25,"y":2,"w":1,"h":1}, {"x":13.5,"y":2,"w":1,"h":1}, {"x":14.5,"y":2,"w":1,"h":1}, {"x":15.5,"y":2,"w":1,"h":1}, {"x":16.5,"y":2,"w":1,"h":1}, {"x":17.5,"y":2,"w":1,"h":1}, {"x":18.5,"y":2,"w":1,"h":1}, {"x":19.5,"y":2,"w":1.25,"h":1}, {"x":0,"y":3,"w":1,"h":1}, {"x":1,"y":3,"w":1,"h":1}, {"x":2,"y":3,"w":1,"h":1}, {"x":3,"y":3,"w":1,"h":1}, {"x":4,"y":3,"w":1,"h":1}, {"x":5,"y":3,"w":1,"h":1}, {"x":6.5,"y":3,"w":1.25,"h":1}, {"x":7.75,"y":3,"w":1.25,"h":1}, {"x":9,"y":3,"w":1,"h":1}, {"x":10,"y":3,"w":1,"h":1}, {"x":11,"y":3,"w":2,"h":1}, {"x":13.5,"y":3,"w":2,"h":1}, {"x":15.5,"y":3,"w":1,"h":1}, {"x":16.5,"y":3,"w":1,"h":1}, {"x":17.5,"y":3,"w":1.5,"h":1}, {"x":19,"y":3,"w":1.5,"h":1}, {"x":0,"y":4,"w":1,"h":1}, {"x":1,"y":4,"w":1,"h":1}, {"x":2,"y":4,"w":1,"h":1}, {"x":3,"y":4,"w":1,"h":1}, {"x":4,"y":4,"w":1,"h":1}, {"x":5,"y":4,"w":1,"h":1}] diff --git a/keyboards/handwired/prime_exl/keymaps/via/keymap.c b/keyboards/handwired/prime_exl/keymaps/via/keymap.c index b5b616d55b..0e6802996d 100644 --- a/keyboards/handwired/prime_exl/keymaps/via/keymap.c +++ b/keyboards/handwired/prime_exl/keymaps/via/keymap.c @@ -87,7 +87,7 @@ void led_set_user(uint8_t usb_led) { //function for layer indicator LED layer_state_t layer_state_set_user(layer_state_t state) { - if (get_highest_layer(state) == 1) { + if (biton32(state) == 1) { writePinHigh(C6); } else { writePinLow(C6); diff --git a/keyboards/handwired/prime_exl_plus/config.h b/keyboards/handwired/prime_exl_plus/config.h index 4583e443aa..6b02ea50f4 100644 --- a/keyboards/handwired/prime_exl_plus/config.h +++ b/keyboards/handwired/prime_exl_plus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5052 -#define PRODUCT_ID 0x6579 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PrimeKB -#define PRODUCT Prime_EXL Plus - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/handwired/prime_exl_plus/info.json b/keyboards/handwired/prime_exl_plus/info.json index f54de6f840..1ae1b33152 100644 --- a/keyboards/handwired/prime_exl_plus/info.json +++ b/keyboards/handwired/prime_exl_plus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Prime_EXL Plus", + "manufacturer": "PrimeKB", "url": "https://www.primekb.com", "maintainer": "holtenc", + "usb": { + "vid": "0x5052", + "pid": "0x6579", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"K040", "x":0, "y":0}, {"label":"K050", "x":1, "y":0}, {"label":"K041", "x":2, "y":0}, {"label":"K051", "x":3, "y":0}, {"label":"K042", "x":4, "y":0}, {"label":"K052", "x":5, "y":0}, {"label":"K043", "x":6.5, "y":0}, {"label":"K053", "x":7.5, "y":0}, {"label":"K044", "x":8.5, "y":0}, {"label":"K054", "x":9.5, "y":0}, {"label":"K045", "x":10.5, "y":0}, {"label":"K055", "x":11.5, "y":0}, {"label":"K046", "x":14, "y":0}, {"label":"K056", "x":15, "y":0}, {"label":"K047", "x":16, "y":0}, {"label":"K057", "x":17, "y":0}, {"label":"K048", "x":18, "y":0}, {"label":"K058", "x":19, "y":0, "w":2}, {"label":"K030", "x":0, "y":1}, {"label":"K060", "x":1, "y":1}, {"label":"K031", "x":2, "y":1}, {"label":"K061", "x":3, "y":1}, {"label":"K032", "x":4, "y":1}, {"label":"K062", "x":5, "y":1}, {"label":"K033", "x":6.5, "y":1}, {"label":"K063", "x":7.5, "y":1}, {"label":"K034", "x":8.5, "y":1}, {"label":"K064", "x":9.5, "y":1}, {"label":"K035", "x":10.5, "y":1}, {"label":"K065", "x":11.5, "y":1}, {"label":"K036", "x":14, "y":1}, {"label":"K066", "x":15, "y":1}, {"label":"K037", "x":16, "y":1}, {"label":"K067", "x":17, "y":1}, {"label":"K038", "x":18, "y":1}, {"label":"K068", "x":19, "y":1}, {"label":"K039", "x":20, "y":1}, {"label":"K020", "x":0, "y":2}, {"label":"K070", "x":1, "y":2}, {"label":"K021", "x":2, "y":2}, {"label":"K071", "x":3, "y":2}, {"label":"K022", "x":4, "y":2}, {"label":"K072", "x":5, "y":2}, {"label":"K023", "x":6.5, "y":2, "w":1.25}, {"label":"K073", "x":7.75, "y":2}, {"label":"K024", "x":8.75, "y":2}, {"label":"K074", "x":9.75, "y":2}, {"label":"K025", "x":10.75, "y":2}, {"label":"K075", "x":11.75, "y":2}, {"label":"K026", "x":14.25, "y":2}, {"label":"K076", "x":15.25, "y":2}, {"label":"K027", "x":16.25, "y":2}, {"label":"K077", "x":17.25, "y":2}, {"label":"K028", "x":18.25, "y":2}, {"label":"K029", "x":19.25, "y":2, "w":1.75}, {"label":"K010", "x":0, "y":3}, {"label":"K080", "x":1, "y":3}, {"label":"K011", "x":2, "y":3}, {"label":"K081", "x":3, "y":3}, {"label":"K012", "x":4, "y":3}, {"label":"K082", "x":5, "y":3}, {"label":"K013", "x":6.5, "y":3, "w":1.75}, {"label":"K083", "x":8.25, "y":3}, {"label":"K014", "x":9.25, "y":3}, {"label":"K084", "x":10.25, "y":3}, {"label":"K015", "x":11.25, "y":3}, {"label":"K085", "x":12.25, "y":3}, {"label":"K016", "x":13.75, "y":3}, {"label":"K086", "x":14.75, "y":3}, {"label":"K017", "x":15.75, "y":3}, {"label":"K087", "x":16.75, "y":3}, {"label":"K018", "x":17.75, "y":3}, {"label":"K088", "x":18.75, "y":3}, {"label":"K019", "x":19.75, "y":3, "w":1.25}, {"label":"K000", "x":0, "y":4}, {"label":"K090", "x":1, "y":4}, {"label":"K001", "x":2, "y":4}, {"label":"K091", "x":3, "y":4}, {"label":"K002", "x":4, "y":4}, {"label":"K092", "x":5, "y":4}, {"label":"K003", "x":6.5, "y":4, "w":1.25}, {"label":"K093", "x":7.75, "y":4, "w":1.25}, {"label":"K004", "x":10.25, "y":4, "w":1.25}, {"label":"K095", "x":11.5, "y":4, "w":1.75}, {"label":"K006", "x":13.75, "y":4, "w":1.75}, {"label":"K097", "x":15.5, "y":4, "w":1.25}, {"label":"K098", "x":18.5, "y":4, "w":1.25}, {"label":"K009", "x":19.75, "y":4, "w":1.25}] diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h index 68f83035f9..73fffcc45f 100644 --- a/keyboards/handwired/promethium/config.h +++ b/keyboards/handwired/promethium/config.h @@ -19,16 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x17EF // Lenovo -//#define PRODUCT_ID 0x6009 // ThinkPad Keyboard with TrackPoint -//#define PRODUCT_ID 0x6047 // ThinkPad Compact USB Keyboard with TrackPoint -#define PRODUCT_ID 0x6048 // ThinkPad Compact Bluetooth Keyboard with TrackPoint -//#define PRODUCT_ID 0x6067 // ThinkPad Pro Docking Station -#define DEVICE_VER 0x0001 -#define MANUFACTURER Priyadi -#define PRODUCT Promethium Keyboard - /* key matrix size */ #define MATRIX_COLS 6 #define MATRIX_ROWS 9 diff --git a/keyboards/handwired/promethium/info.json b/keyboards/handwired/promethium/info.json index 365ee2fe32..618b680ff1 100644 --- a/keyboards/handwired/promethium/info.json +++ b/keyboards/handwired/promethium/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Promethium51", + "keyboard_name": "Promethium", + "manufacturer": "Priyadi", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x17EF", + "pid": "0x6048", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/promethium/keymaps/default/config.h b/keyboards/handwired/promethium/keymaps/default/config.h index 0630fd43e3..1e5e8906ed 100644 --- a/keyboards/handwired/promethium/keymaps/default/config.h +++ b/keyboards/handwired/promethium/keymaps/default/config.h @@ -2,12 +2,6 @@ #define PRIYADI_PROMETHIUM -/* bootmagic salt key */ -#define BOOTMAGIC_KEY_SALT KC_ESC - -/* skip bootmagic and eeconfig */ -#define BOOTMAGIC_KEY_SKIP KC_SPACE - #define RGBSPS_ENABLE #define RGBSPS_DEMO_ENABLE diff --git a/keyboards/handwired/promethium/keymaps/default/keymap.c b/keyboards/handwired/promethium/keymaps/default/keymap.c index 77f83361e6..1903b2f9ba 100644 --- a/keyboards/handwired/promethium/keymaps/default/keymap.c +++ b/keyboards/handwired/promethium/keymaps/default/keymap.c @@ -529,7 +529,7 @@ void led_reset(void) { } void led_set_default_layer_indicator(void) { - uint8_t default_layer = get_highest_layer(default_layer_state); + uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY); rgbsps_set(LED_IND_ALT, COLOR_BLANK); @@ -553,7 +553,7 @@ void led_set_layer_indicator(void) { rgbsps_set(LED_IND_GREEK, COLOR_BLANK); rgbsps_set(LED_IND_EMOJI, COLOR_BLANK); - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); if (oldlayer == layer) { return; } @@ -1014,7 +1014,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); - layer = get_highest_layer(layer_state); + layer = biton32(layer_state); #ifdef DOUBLESPACE_LAYER_ENABLE // double-space: send space immediately if any other key depressed before space is released diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index faa096ce08..94b505aa2c 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -532,7 +532,7 @@ void led_reset(void) { } void led_set_default_layer_indicator(void) { - uint8_t default_layer = get_highest_layer(default_layer_state); + uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY); rgbsps_set(LED_IND_ALT, COLOR_BLANK); @@ -556,7 +556,7 @@ void led_set_layer_indicator(void) { rgbsps_set(LED_IND_GREEK, COLOR_BLANK); rgbsps_set(LED_IND_EMOJI, COLOR_BLANK); - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); if (oldlayer == layer) { return; } @@ -989,7 +989,7 @@ void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool * } #endif -layer_state_t layer_state_set_kb(layer_state_t state) +uint32_t layer_state_set_kb(uint32_t state) { // turn on punc layer if both fun & num are on if ((state & ((1UL<<_NUM) | (1UL<<_FUN))) == ((1UL<<_NUM) | (1UL<<_FUN))) { @@ -1017,7 +1017,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); - layer = get_highest_layer(layer_state); + layer = biton32(layer_state); #ifdef DOUBLESPACE_LAYER_ENABLE // double-space: send space immediately if any other key depressed before space is released diff --git a/keyboards/handwired/pterodactyl/config.h b/keyboards/handwired/pterodactyl/config.h index 044fa12f78..eb67deecc4 100644 --- a/keyboards/handwired/pterodactyl/config.h +++ b/keyboards/handwired/pterodactyl/config.h @@ -21,13 +21,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1308 -#define DEVICE_VER 0x0002 -#define MANUFACTURER myoung34 -#define PRODUCT Pterodactyl - #define DIODE_DIRECTION COL2ROW #define MATRIX_ROWS 6 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/pterodactyl/info.json b/keyboards/handwired/pterodactyl/info.json index 6d396dc0b4..77d5db7ec7 100644 --- a/keyboards/handwired/pterodactyl/info.json +++ b/keyboards/handwired/pterodactyl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pterodactyl", + "manufacturer": "myoung34", "url": "https://marcyoung.us/post/pterodactyl/", "maintainer": "Marcus Young", + "usb": { + "vid": "0xFEED", + "pid": "0x1308", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_pterodactyl": { "layout": [ diff --git a/keyboards/handwired/pteron/config.h b/keyboards/handwired/pteron/config.h index a368f5cbd2..81141a3ebf 100644 --- a/keyboards/handwired/pteron/config.h +++ b/keyboards/handwired/pteron/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK Community -#define PRODUCT Pteron Keyboard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/pteron/info.json b/keyboards/handwired/pteron/info.json index 346d7c39bd..f23728f92e 100644 --- a/keyboards/handwired/pteron/info.json +++ b/keyboards/handwired/pteron/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "pteron", + "keyboard_name": "Pteron", + "manufacturer": "QMK", "url": "", "maintainer": "FSund", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/pteron38/config.h b/keyboards/handwired/pteron38/config.h index 967872aaa9..95eaa86e3b 100644 --- a/keyboards/handwired/pteron38/config.h +++ b/keyboards/handwired/pteron38/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK Community -#define PRODUCT Pteron38 Keyboard - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/handwired/pteron38/info.json b/keyboards/handwired/pteron38/info.json index e474d988b4..2051d86e0b 100644 --- a/keyboards/handwired/pteron38/info.json +++ b/keyboards/handwired/pteron38/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "pteron38", + "keyboard_name": "Pteron38", + "manufacturer": "QMK", "url": "", "maintainer": "fidelcoria", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_4": { "layout": [ diff --git a/keyboards/handwired/pteron44/config.h b/keyboards/handwired/pteron44/config.h index 94622fa8cf..d28e6c3b36 100644 --- a/keyboards/handwired/pteron44/config.h +++ b/keyboards/handwired/pteron44/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x542C -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK Community -#define PRODUCT Pteron44 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/pteron44/info.json b/keyboards/handwired/pteron44/info.json index a640adc9c6..53b123dbe0 100644 --- a/keyboards/handwired/pteron44/info.json +++ b/keyboards/handwired/pteron44/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "pteron44", + "keyboard_name": "Pteron44", + "manufacturer": "QMK", "url": "", "maintainer": "fidelcoria", + "usb": { + "vid": "0xFEED", + "pid": "0x542C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/qc60/config.h b/keyboards/handwired/qc60/config.h index db3d88dcf4..a1719ce06f 100644 --- a/keyboards/handwired/qc60/config.h +++ b/keyboards/handwired/qc60/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0C60 -#define DEVICE_VER 0x0100 -#define MANUFACTURER PeiorisBoards -#define PRODUCT QC60 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/handwired/qc60/info.json b/keyboards/handwired/qc60/info.json index f2e12ebccb..f3ccde01db 100644 --- a/keyboards/handwired/qc60/info.json +++ b/keyboards/handwired/qc60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "QC60", + "manufacturer": "PeiorisBoards", "url": "", "maintainer": "coarse", + "usb": { + "vid": "0xFEED", + "pid": "0x0C60", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/retro_refit/config.h b/keyboards/handwired/retro_refit/config.h index beb9b26deb..22eea072d4 100644 --- a/keyboards/handwired/retro_refit/config.h +++ b/keyboards/handwired/retro_refit/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nobody -#define PRODUCT retro_refit - /* key matrix size */ #define MATRIX_ROWS 11 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/retro_refit/info.json b/keyboards/handwired/retro_refit/info.json index 47970247b0..beb03c6a0e 100644 --- a/keyboards/handwired/retro_refit/info.json +++ b/keyboards/handwired/retro_refit/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "handwired/retro_refit", + "keyboard_name": "retro_refit", + "manufacturer": "Nobody", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/riblee_f401/config.h b/keyboards/handwired/riblee_f401/config.h index 6e5c079799..3437f3c7b9 100644 --- a/keyboards/handwired/riblee_f401/config.h +++ b/keyboards/handwired/riblee_f401/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x002A -#define DEVICE_VER 0x0001 -#define MANUFACTURER Riblee -#define PRODUCT Handwired F401 - #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/riblee_f401/info.json b/keyboards/handwired/riblee_f401/info.json index cebc3ba86b..2852e621d1 100644 --- a/keyboards/handwired/riblee_f401/info.json +++ b/keyboards/handwired/riblee_f401/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Handwired Preonic (Blackpill F401)", + "keyboard_name": "Handwired F401", + "manufacturer": "Riblee", "url": "", "maintainer": "riblee", + "usb": { + "vid": "0xFEED", + "pid": "0x002A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/handwired/riblee_f401/keymaps/default/keymap.c b/keyboards/handwired/riblee_f401/keymaps/default/keymap.c index bee4de5ede..6892c0fb49 100644 --- a/keyboards/handwired/riblee_f401/keymaps/default/keymap.c +++ b/keyboards/handwired/riblee_f401/keymaps/default/keymap.c @@ -158,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_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, DEBUG, _______, _______, _______, _______, _______, _______,_______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, LCG_SWP, LCG_NRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/handwired/riblee_f401/rules.mk b/keyboards/handwired/riblee_f401/rules.mk index a2fe4f3a19..9abda835da 100644 --- a/keyboards/handwired/riblee_f401/rules.mk +++ b/keyboards/handwired/riblee_f401/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/riblee_f411/config.h b/keyboards/handwired/riblee_f411/config.h index f335871dec..35d51754d2 100644 --- a/keyboards/handwired/riblee_f411/config.h +++ b/keyboards/handwired/riblee_f411/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x002B -#define DEVICE_VER 0x0001 -#define MANUFACTURER Riblee -#define PRODUCT Handwired F411 - #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/riblee_f411/info.json b/keyboards/handwired/riblee_f411/info.json index 9e44d4de22..ac90dd65db 100644 --- a/keyboards/handwired/riblee_f411/info.json +++ b/keyboards/handwired/riblee_f411/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Handwired Preonic (Blackpill F411)", + "keyboard_name": "Handwired F411", + "manufacturer": "Riblee", "url": "", "maintainer": "riblee", + "usb": { + "vid": "0xFEED", + "pid": "0x002B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/handwired/riblee_f411/keymaps/default/keymap.c b/keyboards/handwired/riblee_f411/keymaps/default/keymap.c index ff7e1117b8..2e9485d6b9 100644 --- a/keyboards/handwired/riblee_f411/keymaps/default/keymap.c +++ b/keyboards/handwired/riblee_f411/keymaps/default/keymap.c @@ -158,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_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, DEBUG, _______, _______, _______, _______, _______, _______,_______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, LCG_SWP, LCG_NRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/handwired/riblee_f411/rules.mk b/keyboards/handwired/riblee_f411/rules.mk index 7d0652ad24..ae4bc544a7 100644 --- a/keyboards/handwired/riblee_f411/rules.mk +++ b/keyboards/handwired/riblee_f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/rs60/config.h b/keyboards/handwired/rs60/config.h index 169517362f..60553af596 100644 --- a/keyboards/handwired/rs60/config.h +++ b/keyboards/handwired/rs60/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . */ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4260 -#define DEVICE_VER 0x0001 -#define MANUFACTURER rs -#define PRODUCT rs60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/rs60/info.json b/keyboards/handwired/rs60/info.json index d3db01eb79..cbf81141aa 100644 --- a/keyboards/handwired/rs60/info.json +++ b/keyboards/handwired/rs60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "rs60", + "manufacturer": "rs", "url": "", "maintainer": "rs", + "usb": { + "vid": "0xFEED", + "pid": "0x4260", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/handwired/rs60/keymaps/default/keymap.c b/keyboards/handwired/rs60/keymaps/default/keymap.c index 6d5dc4a32a..6b311a7ebb 100644 --- a/keyboards/handwired/rs60/keymaps/default/keymap.c +++ b/keyboards/handwired/rs60/keymaps/default/keymap.c @@ -155,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_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, DEBUG, _______, _______, _______, _______, _______, _______,_______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/handwired/selene/config.h b/keyboards/handwired/selene/config.h index ced93e5164..be61d7da23 100644 --- a/keyboards/handwired/selene/config.h +++ b/keyboards/handwired/selene/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4244 //-B-pen-D-ragon -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bpendragon -#define PRODUCT Selene - #define MATRIX_ROWS 6 #define MATRIX_COLS 21 diff --git a/keyboards/handwired/selene/info.json b/keyboards/handwired/selene/info.json index c7f69b42bd..eb515eb11e 100644 --- a/keyboards/handwired/selene/info.json +++ b/keyboards/handwired/selene/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Selene", + "manufacturer": "Bpendragon", "url": "https://github.com/Bpendragon/Selene-Keyboard", "maintainer": "Bpendragon", + "usb": { + "vid": "0x4244", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/sick68/config.h b/keyboards/handwired/sick68/config.h index 16b5fc76e7..846f50a87a 100644 --- a/keyboards/handwired/sick68/config.h +++ b/keyboards/handwired/sick68/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5E68 -#define PRODUCT_ID 0x5F00 -#define DEVICE_VER 0x0001 -#define MANUFACTURER umbynos -#define PRODUCT sick68 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/handwired/sick68/info.json b/keyboards/handwired/sick68/info.json index e607e100e6..52bcad8197 100644 --- a/keyboards/handwired/sick68/info.json +++ b/keyboards/handwired/sick68/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "sick68", + "manufacturer": "umbynos", "url": "", "maintainer": "umbynos", + "usb": { + "vid": "0x5E68", + "pid": "0x5F00", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/handwired/sick_pad/config.h b/keyboards/handwired/sick_pad/config.h index f431daf38e..bc563be4f1 100644 --- a/keyboards/handwired/sick_pad/config.h +++ b/keyboards/handwired/sick_pad/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xDA20 -#define DEVICE_VER 0x0001 -#define MANUFACTURER FedorSosnin -#define PRODUCT SiCK-PAD - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/sick_pad/info.json b/keyboards/handwired/sick_pad/info.json index d751035d12..458526cce8 100644 --- a/keyboards/handwired/sick_pad/info.json +++ b/keyboards/handwired/sick_pad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "sick_pad", + "keyboard_name": "SiCK-PAD", + "manufacturer": "FedorSosnin", "url": "https://www.thingiverse.com/thing:3682168", "maintainer": "jmschneider", + "usb": { + "vid": "0xFEED", + "pid": "0xDA20", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/handwired/slash/config.h b/keyboards/handwired/slash/config.h index 4afdf9d4b9..325b3b5cfd 100644 --- a/keyboards/handwired/slash/config.h +++ b/keyboards/handwired/slash/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER asdftemp -#define PRODUCT Slash - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/slash/info.json b/keyboards/handwired/slash/info.json index ce15788160..3fd0f1918e 100644 --- a/keyboards/handwired/slash/info.json +++ b/keyboards/handwired/slash/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "slash", + "keyboard_name": "Slash", + "manufacturer": "asdftemp", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/snatchpad/config.h b/keyboards/handwired/snatchpad/config.h index c0ac5ebbde..dce9776dcd 100644 --- a/keyboards/handwired/snatchpad/config.h +++ b/keyboards/handwired/snatchpad/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6662 -#define PRODUCT_ID 0x7370 -#define DEVICE_VER 0x0001 -#define MANUFACTURER xia0 -#define PRODUCT snatchpad - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/handwired/snatchpad/info.json b/keyboards/handwired/snatchpad/info.json index 1306d72b06..22840d7352 100644 --- a/keyboards/handwired/snatchpad/info.json +++ b/keyboards/handwired/snatchpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "snatchpad", + "manufacturer": "xia0", "url": "", "maintainer": "xia0", + "usb": { + "vid": "0x6662", + "pid": "0x7370", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/space_oddity/config.h b/keyboards/handwired/space_oddity/config.h index 2e3b74041f..b4825cf1a2 100644 --- a/keyboards/handwired/space_oddity/config.h +++ b/keyboards/handwired/space_oddity/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER James Taylor -#define PRODUCT Space Odyssey - #define MOUSEKEY_INTERVAL 16 #define MOUSEKEY_DELAY 0 #define MOUSEKEY_TIME_TO_MAX 60 diff --git a/keyboards/handwired/space_oddity/info.json b/keyboards/handwired/space_oddity/info.json index b1f2a801d9..33d24c3905 100644 --- a/keyboards/handwired/space_oddity/info.json +++ b/keyboards/handwired/space_oddity/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Space Oddity", + "manufacturer": "James Taylor", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/split89/config.h b/keyboards/handwired/split89/config.h index 7927c1d83c..8cb8f4e1ea 100644 --- a/keyboards/handwired/split89/config.h +++ b/keyboards/handwired/split89/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER jurassic73 -#define PRODUCT split89 - /* * Keyboard Matrix Assignments * diff --git a/keyboards/handwired/split89/info.json b/keyboards/handwired/split89/info.json index 7147420f32..fda9b2c9f0 100644 --- a/keyboards/handwired/split89/info.json +++ b/keyboards/handwired/split89/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "split89", - "maintainer": "jurassic73", + "manufacturer": "jurassic73", "url": "https://github.com/jurassic73/split89", + "maintainer": "jurassic73", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6, "y":0}, {"label":"F6", "x":10.25, "y":0}, {"label":"F7", "x":11.25, "y":0}, {"label":"F8", "x":12.25, "y":0}, {"label":"F9", "x":13.75, "y":0}, {"label":"F10", "x":14.75, "y":0}, {"label":"F11", "x":15.75, "y":0}, {"label":"F12", "x":16.75, "y":0}, {"label":"PrtSc", "x":18, "y":0}, {"label":"Scroll Lock", "x":19, "y":0}, {"label":"Pause", "x":20, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":9.75, "y":1.5}, {"label":"*", "x":10.75, "y":1.5}, {"label":"(", "x":11.75, "y":1.5}, {"label":")", "x":12.75, "y":1.5}, {"label":"_", "x":13.75, "y":1.5}, {"label":"+", "x":14.75, "y":1.5}, {"label":"Backspace", "x":15.75, "y":1.5, "w":2}, {"label":"Insert", "x":18, "y":1.5}, {"label":"Home", "x":19, "y":1.5}, {"label":"PgUp", "x":20, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":9.25, "y":2.5}, {"label":"U", "x":10.25, "y":2.5}, {"label":"I", "x":11.25, "y":2.5}, {"label":"O", "x":12.25, "y":2.5}, {"label":"P", "x":13.25, "y":2.5}, {"label":"{", "x":14.25, "y":2.5}, {"label":"}", "x":15.25, "y":2.5}, {"label":"|", "x":16.25, "y":2.5, "w":1.5}, {"label":"Delete", "x":18, "y":2.5}, {"label":"End", "x":19, "y":2.5}, {"label":"PgDn", "x":20, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":9.5, "y":3.5}, {"label":"J", "x":10.5, "y":3.5}, {"label":"K", "x":11.5, "y":3.5}, {"label":"L", "x":12.5, "y":3.5}, {"label":":", "x":13.5, "y":3.5}, {"label":"\"", "x":14.5, "y":3.5}, {"label":"Enter", "x":15.5, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":10, "y":4.5}, {"label":"M", "x":11, "y":4.5}, {"label":"<", "x":12, "y":4.5}, {"label":">", "x":13, "y":4.5}, {"label":"?", "x":14, "y":4.5}, {"label":"Shift", "x":15, "y":4.5, "w":2.75}, {"label":"\u2191", "x":19, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Fn", "x":1.25, "y":5.5, "w":1.25}, {"label":"Win", "x":2.5, "y":5.5, "w":1.25}, {"label":"Alt", "x":3.75, "y":5.5, "w":1.25}, {"x":5, "y":5.5, "w":2.25}, {"x":10, "y":5.5, "w":2.75}, {"label":"Alt", "x":12.75, "y":5.5, "w":1.25}, {"label":"Win", "x":14, "y":5.5, "w":1.25}, {"label":"Menu", "x":15.25, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":16.5, "y":5.5, "w":1.25}, {"label":"\u2190", "x":18, "y":5.5}, {"label":"\u2193", "x":19, "y":5.5}, {"label":"\u2192", "x":20, "y":5.5}] diff --git a/keyboards/handwired/splittest/bluepill/chconf.h b/keyboards/handwired/splittest/bluepill/chconf.h new file mode 100644 index 0000000000..73c7d64e3a --- /dev/null +++ b/keyboards/handwired/splittest/bluepill/chconf.h @@ -0,0 +1,23 @@ +/* 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 CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next diff --git a/keyboards/handwired/splittest/bluepill/config.h b/keyboards/handwired/splittest/bluepill/config.h new file mode 100644 index 0000000000..92766b3de4 --- /dev/null +++ b/keyboards/handwired/splittest/bluepill/config.h @@ -0,0 +1,16 @@ +// Copyright 2022 dvermd (@dvermd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +// wiring of each half +#define MATRIX_ROW_PINS { B10 } +#define MATRIX_COL_PINS { B1 } + +#define SPLIT_HAND_PIN A7 + +#if !(defined(USE_SDI1_ON_STANDARD_ROLE_PINS) || defined(USE_SDI1_ON_ALTERNATE_ROLE_PINS) || defined(USE_SDI2)) + #define USE_SDI1_ON_STANDARD_ROLE_PINS +#endif \ No newline at end of file diff --git a/keyboards/handwired/splittest/bluepill/halconf.h b/keyboards/handwired/splittest/bluepill/halconf.h new file mode 100644 index 0000000000..d85c8b842e --- /dev/null +++ b/keyboards/handwired/splittest/bluepill/halconf.h @@ -0,0 +1,6 @@ +/* Needed for serial bitbang, half-duplex and full-duplex */ +#define HAL_USE_PAL TRUE +#define PAL_USE_WAIT TRUE +#define PAL_USE_CALLBACKS TRUE + +#include_next diff --git a/keyboards/handwired/splittest/bluepill/mcuconf.h b/keyboards/handwired/splittest/bluepill/mcuconf.h new file mode 100644 index 0000000000..875819537f --- /dev/null +++ b/keyboards/handwired/splittest/bluepill/mcuconf.h @@ -0,0 +1,11 @@ +#pragma once + +#include_next + +// These are needed if the communication is on the SD1 USART, either with standard or alternate pins +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 TRUE + +// These are needed if the communication is on the SD2 USART, either with standard or alternate pins +#undef STM32_SERIAL_USE_USART2 +#define STM32_SERIAL_USE_USART2 TRUE diff --git a/keyboards/handwired/splittest/bluepill/post_config.h b/keyboards/handwired/splittest/bluepill/post_config.h new file mode 100644 index 0000000000..b866805a64 --- /dev/null +++ b/keyboards/handwired/splittest/bluepill/post_config.h @@ -0,0 +1,38 @@ + +#if defined(SPLIT_BITBANG) + + #define SOFT_SERIAL_PIN B8 + +#elif defined(SPLIT_SERIAL_HALFDUPLEX) + + #if defined(USE_SDI1_ON_STANDARD_ROLE_PINS) + #define SOFT_SERIAL_PIN A9 + #elif defined(USE_SDI1_ON_ALTERNATE_ROLE_PINS) + #define SOFT_SERIAL_PIN B6 + #define USART1_REMAP // Remap USART TX and RX pins on STM32F103 MCUs + #elif defined(USE_SDI2) + #define SOFT_SERIAL_PIN A2 + #define SERIAL_USART_DRIVER SD2 // USART driver of TX and RX pin. default: SD1 + #else + #error "splittest serial_halfduplex keymap is missing a configuration (USE_SDI1_ON_STANDARD_ROLE_PINS, USE_SDI1_ON_ALTERNATE_ROLE_PINS, USE_SDI2)" + #endif + +#elif defined(SPLIT_SERIAL_FULLDUPLEX) + + #define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. + + #if defined(USE_SDI1_ON_STANDARD_ROLE_PINS) + #define SOFT_SERIAL_PIN A9 + #define SERIAL_USART_RX_PIN A10 // USART RX pin + #elif defined(USE_SDI1_ON_ALTERNATE_ROLE_PINS) + #define SOFT_SERIAL_PIN B6 + #define SERIAL_USART_RX_PIN B7 // USART RX pin + #define USART1_REMAP // Remap USART TX and RX pins on STM32F103 MCUs + #elif defined(USE_SDI2) + #define SOFT_SERIAL_PIN A2 + #define SERIAL_USART_RX_PIN A3 // USART RX pin + #define SERIAL_USART_DRIVER SD2 // USART driver of TX and RX pin. default: SD1 + #else + #error "splittest serial_fullduplex keymap is missing a configuration (USE_SDI1_ON_STANDARD_ROLE_PINS, USE_SDI1_ON_ALTERNATE_ROLE_PINS, USE_SDI2)" + #endif +#endif diff --git a/keyboards/handwired/splittest/bluepill/readme.md b/keyboards/handwired/splittest/bluepill/readme.md new file mode 100644 index 0000000000..381aa6ba3a --- /dev/null +++ b/keyboards/handwired/splittest/bluepill/readme.md @@ -0,0 +1,65 @@ +# bluepill splittest + +This is the splittest example for the bluepill MCU. +To trigger keypress, short together pins _B10_ and _B1_. + +## Keyboard Configuration + +The type of communication (bitbang, serial (half/full duplex)) is set by the keymap `config.h` file with variables with `SPLIT_` prefix. +So this example uses: + +- `config.h` to set which SDI to use for serial. Either define `USE_SDI1_ON_STANDARD_ROLE_PINS`, `USE_SDI1_ON_ALTERNATE_ROLE_PINS` or `USE_SDI2` before the `#ifdef` that configures the default case when none of these variable is defined. +- `post_config.h` for defining the communication pins between the halves once the keymap is configured. + +On your keyboard, you most likely will only use `config.h` because you'd have already chosen your communication scheme: serial type, SDI, pins. + +## Wiring + +### Switches + +- Add switches to both Bluepills across B10 and B1 pins + +### Handedness + +Have a look at the [handedness documentation](https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness) + +- Add pull-up resistor to left side between VCC and A7 +- Add pull-down resistors to right side between GND and A7 + +### Send power to the other half + +- Connect the following pins on both sides together: GND, VCC + +### Halves data connection + +Choose one of the connection type + +#### serial - bitbang + +- Connect the B8 pins on both sides together + +#### serial - usart half duplex + +Check the [documentation](https://docs.qmk.fm/#/serial_driver?id=usart-half-duplex) to determine the pull-up resistor. + +- To use the default usart (USART1) with the standard role pins, + - Connect the A9 pins on both sides together and to add a pull-up resistor on one of these pins + - Define USE_SDI1_ON_STANDARD_ROLE_PINS in config.h +- To use the default usart (USART1) with the alternate role pins, + - Connect the B6 pins on both sides together and to add a pull-up resistor on one of these pins + - Define USE_SDI1_ON_ALTERNATE_ROLE_PINS in config.h +- To use the usart2 (USART2) pins, + - Connect the A2 pins on both sides together and to add a pull-up resistor on one of these pins + - Define USE_SDI2 in config.h + +#### serial - usart full duplex + +- To use the default usart (USART1) with the standard role pins, + - Connect the mpins on A9, A10 one to the other on each side + - Define USE_SDI1_ON_STANDARD_ROLE_PINS in config.h +- To use the default usart (USART1) with the alternate role pins, + - Connect the pins B6, B7 one to the other on each side + - Define USE_SDI1_ON_ALTERNATE_ROLE_PINS in config.h +- To use the usart2 (USART2) pins, + - Connect the pins A2, A3 one to the other on each side + - Define USE_SDI2 in config.h diff --git a/keyboards/handwired/splittest/bluepill/rules.mk b/keyboards/handwired/splittest/bluepill/rules.mk new file mode 100644 index 0000000000..1d2ff9419e --- /dev/null +++ b/keyboards/handwired/splittest/bluepill/rules.mk @@ -0,0 +1,10 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino + +CONSOLE_ENABLE = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/splittest/keymaps/bitbang/config.h b/keyboards/handwired/splittest/keymaps/bitbang/config.h new file mode 100644 index 0000000000..c21a363855 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/bitbang/config.h @@ -0,0 +1,18 @@ +// Copyright 2022 dvermd (@dvermd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +#define SPLIT_BITBANG + +#define FORCED_SYNC_THROTTLE_MS 100 + +#define SELECT_SOFT_SERIAL_SPEED 3 // or 0, 1, 2, 4, 5 + // 0: about 189kbps (Experimental only) + // 1: about 137kbps (default) + // 2: about 75kbps + // 3: about 39kbps + // 4: about 26kbps + // 5: about 20kbps diff --git a/keyboards/handwired/splittest/keymaps/bitbang/keymap.c b/keyboards/handwired/splittest/keymaps/bitbang/keymap.c new file mode 100644 index 0000000000..9875000319 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/bitbang/keymap.c @@ -0,0 +1,11 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {[0] = LAYOUT(KC_L, KC_R)}; + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + debug_enable = true; + debug_matrix = true; + debug_keyboard = true; + // debug_mouse=true; +} \ No newline at end of file diff --git a/keyboards/handwired/splittest/keymaps/bitbang/rules.mk b/keyboards/handwired/splittest/keymaps/bitbang/rules.mk new file mode 100644 index 0000000000..a4f16a0b6b --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/bitbang/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = bitbang diff --git a/keyboards/handwired/splittest/keymaps/serial_fullduplex/config.h b/keyboards/handwired/splittest/keymaps/serial_fullduplex/config.h new file mode 100644 index 0000000000..b83dc43a1f --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/serial_fullduplex/config.h @@ -0,0 +1,8 @@ +// Copyright 2022 dvermd (@dvermd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +#define SPLIT_SERIAL_FULLDUPLEX diff --git a/keyboards/handwired/splittest/keymaps/serial_fullduplex/halconf.h b/keyboards/handwired/splittest/keymaps/serial_fullduplex/halconf.h new file mode 100644 index 0000000000..35ae5bf214 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/serial_fullduplex/halconf.h @@ -0,0 +1,2 @@ +#define HAL_USE_SERIAL TRUE +#include_next diff --git a/keyboards/handwired/splittest/keymaps/serial_fullduplex/keymap.c b/keyboards/handwired/splittest/keymaps/serial_fullduplex/keymap.c new file mode 100644 index 0000000000..84919f53a7 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/serial_fullduplex/keymap.c @@ -0,0 +1,11 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {[0] = LAYOUT(KC_L, KC_R)}; + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + debug_enable = true; + debug_matrix = true; + debug_keyboard = true; + // debug_mouse=true; +} diff --git a/keyboards/handwired/splittest/keymaps/serial_fullduplex/rules.mk b/keyboards/handwired/splittest/keymaps/serial_fullduplex/rules.mk new file mode 100644 index 0000000000..c6e2988321 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/serial_fullduplex/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = usart diff --git a/keyboards/handwired/splittest/keymaps/serial_halfduplex/config.h b/keyboards/handwired/splittest/keymaps/serial_halfduplex/config.h new file mode 100644 index 0000000000..96dcf0dc42 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/serial_halfduplex/config.h @@ -0,0 +1,8 @@ +// Copyright 2022 dvermd (@dvermd) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +#define SPLIT_SERIAL_HALFDUPLEX diff --git a/keyboards/handwired/splittest/keymaps/serial_halfduplex/halconf.h b/keyboards/handwired/splittest/keymaps/serial_halfduplex/halconf.h new file mode 100644 index 0000000000..35ae5bf214 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/serial_halfduplex/halconf.h @@ -0,0 +1,2 @@ +#define HAL_USE_SERIAL TRUE +#include_next diff --git a/keyboards/handwired/splittest/keymaps/serial_halfduplex/keymap.c b/keyboards/handwired/splittest/keymaps/serial_halfduplex/keymap.c new file mode 100644 index 0000000000..84919f53a7 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/serial_halfduplex/keymap.c @@ -0,0 +1,11 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {[0] = LAYOUT(KC_L, KC_R)}; + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + debug_enable = true; + debug_matrix = true; + debug_keyboard = true; + // debug_mouse=true; +} diff --git a/keyboards/handwired/splittest/keymaps/serial_halfduplex/rules.mk b/keyboards/handwired/splittest/keymaps/serial_halfduplex/rules.mk new file mode 100644 index 0000000000..c6e2988321 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/serial_halfduplex/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = usart diff --git a/keyboards/handwired/splittest/promicro/rules.mk b/keyboards/handwired/splittest/promicro/rules.mk index cf663a7ed6..d29dbc8596 100644 --- a/keyboards/handwired/splittest/promicro/rules.mk +++ b/keyboards/handwired/splittest/promicro/rules.mk @@ -3,3 +3,5 @@ MCU = atmega32u4 # Bootloader selection BOOTLOADER = caterina + +RGBLIGHT_ENABLE = yes diff --git a/keyboards/handwired/splittest/rules.mk b/keyboards/handwired/splittest/rules.mk index b33e198bbd..18300431b2 100644 --- a/keyboards/handwired/splittest/rules.mk +++ b/keyboards/handwired/splittest/rules.mk @@ -9,7 +9,7 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow SPLIT_KEYBOARD = yes diff --git a/keyboards/handwired/splittest/teensy_2/rules.mk b/keyboards/handwired/splittest/teensy_2/rules.mk index 320633f80f..a88fa054ee 100644 --- a/keyboards/handwired/splittest/teensy_2/rules.mk +++ b/keyboards/handwired/splittest/teensy_2/rules.mk @@ -3,3 +3,5 @@ MCU = atmega32u4 # Bootloader selection BOOTLOADER = halfkay + +RGBLIGHT_ENABLE = yes diff --git a/keyboards/handwired/sticc14/config.h b/keyboards/handwired/sticc14/config.h index c269f4706d..962c9e0356 100644 --- a/keyboards/handwired/sticc14/config.h +++ b/keyboards/handwired/sticc14/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER u/ergorius -#define PRODUCT Sticc14 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 3 diff --git a/keyboards/handwired/sticc14/info.json b/keyboards/handwired/sticc14/info.json index e7bbd5e73c..ab602839ac 100644 --- a/keyboards/handwired/sticc14/info.json +++ b/keyboards/handwired/sticc14/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Sticc14", + "manufacturer": "u/ergorius", "url": "", "maintainer": "erkhal", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/stream_cheap/2x3/config.h b/keyboards/handwired/stream_cheap/2x3/config.h index 5e571e356a..8ae6ffb988 100644 --- a/keyboards/handwired/stream_cheap/2x3/config.h +++ b/keyboards/handwired/stream_cheap/2x3/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7363 // Stream Cheap -#define PRODUCT_ID 0x1213 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Stream Cheap -#define PRODUCT 2x3 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/handwired/stream_cheap/2x3/info.json b/keyboards/handwired/stream_cheap/2x3/info.json index 3522dda596..c16c853804 100644 --- a/keyboards/handwired/stream_cheap/2x3/info.json +++ b/keyboards/handwired/stream_cheap/2x3/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Stream Cheap 2x3", + "keyboard_name": "2x3", + "manufacturer": "Stream Cheap", "url": "https://www.thingiverse.com/thing:4497991", "maintainer": "qmk", + "usb": { + "vid": "0x7363", + "pid": "0x1213", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x3": { "layout": [ diff --git a/keyboards/handwired/stream_cheap/2x4/config.h b/keyboards/handwired/stream_cheap/2x4/config.h index 432f23c7d9..41e30a6dc1 100644 --- a/keyboards/handwired/stream_cheap/2x4/config.h +++ b/keyboards/handwired/stream_cheap/2x4/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7363 // Stream Cheap -#define PRODUCT_ID 0x1214 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Stream Cheap -#define PRODUCT 2x4 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/stream_cheap/2x4/info.json b/keyboards/handwired/stream_cheap/2x4/info.json index d472eecd1e..441a68caaa 100644 --- a/keyboards/handwired/stream_cheap/2x4/info.json +++ b/keyboards/handwired/stream_cheap/2x4/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Stream Cheap 2x4", + "keyboard_name": "2x4", + "manufacturer": "Stream Cheap", "url": "https://www.thingiverse.com/thing:4497991", "maintainer": "qmk", + "usb": { + "vid": "0x7363", + "pid": "0x1214", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x4": { "layout": [ diff --git a/keyboards/handwired/stream_cheap/2x5/config.h b/keyboards/handwired/stream_cheap/2x5/config.h index e7a73107b9..45694ed822 100644 --- a/keyboards/handwired/stream_cheap/2x5/config.h +++ b/keyboards/handwired/stream_cheap/2x5/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7363 // Stream Cheap -#define PRODUCT_ID 0x1215 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Stream Cheap -#define PRODUCT 2x5 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 5 diff --git a/keyboards/handwired/stream_cheap/2x5/info.json b/keyboards/handwired/stream_cheap/2x5/info.json index 694e0758d4..57088d112b 100644 --- a/keyboards/handwired/stream_cheap/2x5/info.json +++ b/keyboards/handwired/stream_cheap/2x5/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Stream Cheap 2x5", + "keyboard_name": "2x5", + "manufacturer": "Stream Cheap", "url": "https://www.thingiverse.com/thing:4497991", "maintainer": "qmk", + "usb": { + "vid": "0x7363", + "pid": "0x1215", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x5": { "layout": [ diff --git a/keyboards/handwired/swiftrax/astro65/config.h b/keyboards/handwired/swiftrax/astro65/config.h index 6f77ba2006..39e1004233 100644 --- a/keyboards/handwired/swiftrax/astro65/config.h +++ b/keyboards/handwired/swiftrax/astro65/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEAEF -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Astro65 /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/swiftrax/astro65/info.json b/keyboards/handwired/swiftrax/astro65/info.json index 20de968e6e..d577cfafa0 100644 --- a/keyboards/handwired/swiftrax/astro65/info.json +++ b/keyboards/handwired/swiftrax/astro65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Astro65", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "Swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEAEF", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker_split_bs": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0}, {"label":"0,14", "x":14, "y":0}, {"label":"0,15", "x":15, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"1,15", "x":15, "y":1}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,12", "x":12.75, "y":2, "w":2.25}, {"label":"2,15", "x":15, "y":2}, {"label":"3,0", "x":0, "y":3, "w":2.25}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,14", "x":14, "y":3}, {"label":"3,15", "x":15, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,10", "x":10, "y":4, "w":1.25}, {"label":"4,11", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,14", "x":14, "y":4}, {"label":"4,15", "x":15, "y":4}] diff --git a/keyboards/handwired/swiftrax/bebol/config.h b/keyboards/handwired/swiftrax/bebol/config.h index 44345f81f5..0d35bd1abc 100644 --- a/keyboards/handwired/swiftrax/bebol/config.h +++ b/keyboards/handwired/swiftrax/bebol/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEAC4 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Bebol /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/swiftrax/bebol/info.json b/keyboards/handwired/swiftrax/bebol/info.json index 57c7938653..0f4ddd0d95 100644 --- a/keyboards/handwired/swiftrax/bebol/info.json +++ b/keyboards/handwired/swiftrax/bebol/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bebol", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "Swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEAC4", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/handwired/swiftrax/beegboy/config.h b/keyboards/handwired/swiftrax/beegboy/config.h index a211573b75..a6a6e12f1b 100644 --- a/keyboards/handwired/swiftrax/beegboy/config.h +++ b/keyboards/handwired/swiftrax/beegboy/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEAC5 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Beegboy - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/handwired/swiftrax/beegboy/info.json b/keyboards/handwired/swiftrax/beegboy/info.json index 78fb7ff64c..7e4d05a198 100644 --- a/keyboards/handwired/swiftrax/beegboy/info.json +++ b/keyboards/handwired/swiftrax/beegboy/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Beegboy", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEAC5", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/swiftrax/bumblebee/config.h b/keyboards/handwired/swiftrax/bumblebee/config.h index 89b51a762f..4d3d808a14 100644 --- a/keyboards/handwired/swiftrax/bumblebee/config.h +++ b/keyboards/handwired/swiftrax/bumblebee/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE881 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT BumbleBee /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/swiftrax/bumblebee/info.json b/keyboards/handwired/swiftrax/bumblebee/info.json index 3d9a8730a6..c210e75c14 100644 --- a/keyboards/handwired/swiftrax/bumblebee/info.json +++ b/keyboards/handwired/swiftrax/bumblebee/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BumbleBee", + "manufacturer": "Swiftrax", "url": "https://www.github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE881", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"1,0", "x":1, "y":0, "w":1.5}, {"label":"0,1", "x":2.5, "y":0}, {"label":"1,1", "x":3.5, "y":0}, {"label":"0,2", "x":4.5, "y":0}, {"label":"1,2", "x":5.5, "y":0}, {"label":"0,3", "x":6.5, "y":0}, {"label":"1,3", "x":7.5, "y":0}, {"label":"0,4", "x":8.5, "y":0}, {"label":"1,4", "x":9.5, "y":0}, {"label":"0,5", "x":10.5, "y":0}, {"label":"1,5", "x":11.5, "y":0}, {"label":"0,6", "x":12.5, "y":0}, {"label":"1,6", "x":13.5, "y":0}, {"label":"0,7", "x":14.5, "y":0, "w":1.5}, {"label":"1,7", "x":16, "y":0}, {"label":"2,0", "x":0, "y":1}, {"label":"3,0", "x":1, "y":1, "w":1.75}, {"label":"2,1", "x":2.75, "y":1}, {"label":"3,1", "x":3.75, "y":1}, {"label":"2,2", "x":4.75, "y":1}, {"label":"3,2", "x":5.75, "y":1}, {"label":"2,3", "x":6.75, "y":1}, {"label":"3,3", "x":7.75, "y":1}, {"label":"2,4", "x":8.75, "y":1}, {"label":"3,4", "x":9.75, "y":1}, {"label":"2,5", "x":10.75, "y":1}, {"label":"3,5", "x":11.75, "y":1}, {"label":"2,6", "x":12.75, "y":1}, {"label":"3,6", "x":13.75, "y":1, "w":2.25}, {"label":"2,7", "x":16, "y":1}, {"label":"4,0", "x":0, "y":2}, {"label":"5,0", "x":1, "y":2, "w":2.25}, {"label":"4,1", "x":3.25, "y":2}, {"label":"5,1", "x":4.25, "y":2}, {"label":"4,2", "x":5.25, "y":2}, {"label":"5,2", "x":6.25, "y":2}, {"label":"4,3", "x":7.25, "y":2}, {"label":"5,3", "x":8.25, "y":2}, {"label":"4,4", "x":9.25, "y":2}, {"label":"5,4", "x":10.25, "y":2}, {"label":"4,5", "x":11.25, "y":2}, {"label":"5,5", "x":12.25, "y":2}, {"label":"4,6", "x":13.25, "y":2, "w":1.75}, {"label":"5,6", "x":15, "y":2}, {"label":"4,7", "x":16, "y":2}, {"label":"6,0", "x":0, "y":3}, {"label":"7,0", "x":1, "y":3, "w":1.5}, {"label":"6,2", "x":3.88, "y":3, "w":1.5}, {"label":"7,2", "x":5.38, "y":3, "w":2.75}, {"label":"6,3", "x":8.13, "y":3}, {"label":"7,4", "x":9.13, "y":3, "w":2}, {"label":"6,5", "x":11.13, "y":3, "w":1.5}, {"label":"6,6", "x":14, "y":3}, {"label":"7,6", "x":15, "y":3}, {"label":"6,7", "x":16, "y":3}] diff --git a/keyboards/handwired/swiftrax/cowfish/config.h b/keyboards/handwired/swiftrax/cowfish/config.h index 422807b758..c3e13a27fe 100644 --- a/keyboards/handwired/swiftrax/cowfish/config.h +++ b/keyboards/handwired/swiftrax/cowfish/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEB53 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT CowFish - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/handwired/swiftrax/cowfish/info.json b/keyboards/handwired/swiftrax/cowfish/info.json index eb990e44a0..9dd2fde67d 100644 --- a/keyboards/handwired/swiftrax/cowfish/info.json +++ b/keyboards/handwired/swiftrax/cowfish/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CowFish", + "manufacturer": "Swiftrax", "url": "", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEB53", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}] diff --git a/keyboards/handwired/swiftrax/digicarp65/config.h b/keyboards/handwired/swiftrax/digicarp65/config.h index 1f11e310d1..d5336ec447 100644 --- a/keyboards/handwired/swiftrax/digicarp65/config.h +++ b/keyboards/handwired/swiftrax/digicarp65/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE7F1 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT DigiCarp65 /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/swiftrax/digicarp65/info.json b/keyboards/handwired/swiftrax/digicarp65/info.json index 48a4d31368..73c2cf3415 100644 --- a/keyboards/handwired/swiftrax/digicarp65/info.json +++ b/keyboards/handwired/swiftrax/digicarp65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "digicarp65", + "keyboard_name": "DigiCarp65", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE7F1", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/handwired/swiftrax/digicarpice/config.h b/keyboards/handwired/swiftrax/digicarpice/config.h index 30e62655fb..5ec256abb8 100644 --- a/keyboards/handwired/swiftrax/digicarpice/config.h +++ b/keyboards/handwired/swiftrax/digicarpice/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE79A -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT DigiCarpice /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/handwired/swiftrax/digicarpice/info.json b/keyboards/handwired/swiftrax/digicarpice/info.json index 762cc69af8..bbb62b101f 100644 --- a/keyboards/handwired/swiftrax/digicarpice/info.json +++ b/keyboards/handwired/swiftrax/digicarpice/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "DigiCarpice", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE79A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_unified_bs": { "layout": [ diff --git a/keyboards/handwired/swiftrax/equator/config.h b/keyboards/handwired/swiftrax/equator/config.h index 325cdde3c7..fe3af92e45 100644 --- a/keyboards/handwired/swiftrax/equator/config.h +++ b/keyboards/handwired/swiftrax/equator/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE984 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Equator /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/swiftrax/equator/info.json b/keyboards/handwired/swiftrax/equator/info.json index fdcfc44afa..e648e452c7 100644 --- a/keyboards/handwired/swiftrax/equator/info.json +++ b/keyboards/handwired/swiftrax/equator/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Equator", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE984", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_unified_bs_rshift": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":8.5, "y":0}, {"label":"*", "x":9.5, "y":0}, {"label":"(", "x":10.5, "y":0}, {"label":")", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"Backspace", "x":14.5, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":8, "y":1}, {"label":"U", "x":9, "y":1}, {"label":"I", "x":10, "y":1}, {"label":"O", "x":11, "y":1}, {"label":"P", "x":12, "y":1}, {"label":"{", "x":13, "y":1}, {"label":"}", "x":14, "y":1}, {"label":"|", "x":15, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":8.25, "y":2}, {"label":"J", "x":9.25, "y":2}, {"label":"K", "x":10.25, "y":2}, {"label":"L", "x":11.25, "y":2}, {"label":":", "x":12.25, "y":2}, {"label":"\"", "x":13.25, "y":2}, {"label":"Enter", "x":14.25, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"N", "x":8.75, "y":3}, {"label":"M", "x":9.75, "y":3}, {"label":"<", "x":10.75, "y":3}, {"label":">", "x":11.75, "y":3}, {"label":"?", "x":12.75, "y":3}, {"label":"Shift", "x":13.75, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":2.25}, {"x":7.75, "y":4, "w":2.75}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":12.75, "y":4, "w":1.25}, {"label":"Menu", "x":14, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.25, "y":4, "w":1.25}] diff --git a/keyboards/handwired/swiftrax/glacier/config.h b/keyboards/handwired/swiftrax/glacier/config.h index b8496d76a1..9bd74d2191 100644 --- a/keyboards/handwired/swiftrax/glacier/config.h +++ b/keyboards/handwired/swiftrax/glacier/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE890 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Digital Carpentry -#define PRODUCT Glacier /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 10 diff --git a/keyboards/handwired/swiftrax/glacier/info.json b/keyboards/handwired/swiftrax/glacier/info.json index f185e9f898..8e27f9cc44 100644 --- a/keyboards/handwired/swiftrax/glacier/info.json +++ b/keyboards/handwired/swiftrax/glacier/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Glacier", + "manufacturer": "Digital Carpentry", "url": "https://www.github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE890", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"1,0", "x":1.25, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"1,1", "x":3.25, "y":0}, {"label":"0,2", "x":4.25, "y":0}, {"label":"1,2", "x":5.5, "y":0}, {"label":"0,3", "x":6.5, "y":0}, {"label":"1,3", "x":7.5, "y":0}, {"label":"0,4", "x":8.5, "y":0}, {"label":"1,4", "x":9.75, "y":0}, {"label":"0,5", "x":10.75, "y":0}, {"label":"1,5", "x":11.75, "y":0}, {"label":"0,6", "x":12.75, "y":0}, {"label":"1,6", "x":14, "y":0}, {"label":"0,7", "x":15.25, "y":0}, {"label":"1,7", "x":16.5, "y":0}, {"label":"0,8", "x":17.5, "y":0}, {"label":"1,8", "x":18.5, "y":0}, {"label":"0,9", "x":19.5, "y":0}, {"label":"2,0", "x":0, "y":1.25}, {"label":"3,0", "x":1, "y":1.25}, {"label":"2,1", "x":2, "y":1.25}, {"label":"3,1", "x":3, "y":1.25}, {"label":"2,2", "x":4, "y":1.25}, {"label":"3,2", "x":5, "y":1.25}, {"label":"2,3", "x":6, "y":1.25}, {"label":"3,3", "x":7, "y":1.25}, {"label":"2,4", "x":8, "y":1.25}, {"label":"3,4", "x":9, "y":1.25}, {"label":"2,5", "x":10, "y":1.25}, {"label":"3,5", "x":11, "y":1.25}, {"label":"2,6", "x":12, "y":1.25}, {"label":"3,6", "x":13, "y":1.25}, {"label":"7,8", "x":14, "y":1.25}, {"label":"2,7", "x":15.25, "y":1.25}, {"label":"3,7", "x":16.5, "y":1.25}, {"label":"2,8", "x":17.5, "y":1.25}, {"label":"3,8", "x":18.5, "y":1.25}, {"label":"2,9", "x":19.5, "y":1.25}, {"label":"4,0", "x":0, "y":2.25, "w":1.5}, {"label":"5,0", "x":1.5, "y":2.25}, {"label":"4,1", "x":2.5, "y":2.25}, {"label":"5,1", "x":3.5, "y":2.25}, {"label":"4,2", "x":4.5, "y":2.25}, {"label":"5,2", "x":5.5, "y":2.25}, {"label":"4,3", "x":6.5, "y":2.25}, {"label":"5,3", "x":7.5, "y":2.25}, {"label":"4,4", "x":8.5, "y":2.25}, {"label":"5,4", "x":9.5, "y":2.25}, {"label":"4,5", "x":10.5, "y":2.25}, {"label":"5,5", "x":11.5, "y":2.25}, {"label":"4,6", "x":12.5, "y":2.25}, {"label":"5,6", "x":13.5, "y":2.25, "w":1.5}, {"label":"4,7", "x":15.25, "y":2.25}, {"label":"5,7", "x":16.5, "y":2.25}, {"label":"4,8", "x":17.5, "y":2.25}, {"label":"5,8", "x":18.5, "y":2.25}, {"label":"4,9", "x":19.5, "y":2.25, "h":2}, {"label":"6,0", "x":0, "y":3.25, "w":1.75}, {"label":"7,0", "x":1.75, "y":3.25}, {"label":"6,1", "x":2.75, "y":3.25}, {"label":"7,1", "x":3.75, "y":3.25}, {"label":"6,2", "x":4.75, "y":3.25}, {"label":"7,2", "x":5.75, "y":3.25}, {"label":"6,3", "x":6.75, "y":3.25}, {"label":"7,3", "x":7.75, "y":3.25}, {"label":"6,4", "x":8.75, "y":3.25}, {"label":"7,4", "x":9.75, "y":3.25}, {"label":"6,5", "x":10.75, "y":3.25}, {"label":"7,5", "x":11.75, "y":3.25}, {"label":"6,6", "x":12.75, "y":3.25, "w":2.25}, {"label":"6,7", "x":16.5, "y":3.25}, {"label":"7,7", "x":17.5, "y":3.25}, {"label":"6,8", "x":18.5, "y":3.25}, {"label":"8,0", "x":0, "y":4.25, "w":2.25}, {"label":"9,0", "x":2.25, "y":4.25}, {"label":"8,1", "x":3.25, "y":4.25}, {"label":"9,1", "x":4.25, "y":4.25}, {"label":"8,2", "x":5.25, "y":4.25}, {"label":"9,2", "x":6.25, "y":4.25}, {"label":"8,3", "x":7.25, "y":4.25}, {"label":"9,3", "x":8.25, "y":4.25}, {"label":"8,4", "x":9.25, "y":4.25}, {"label":"9,4", "x":10.25, "y":4.25}, {"label":"8,5", "x":11.25, "y":4.25}, {"label":"9,5", "x":12.25, "y":4.25, "w":1.75}, {"label":"9,6", "x":16.5, "y":4.25}, {"label":"8,7", "x":17.5, "y":4.25}, {"label":"9,7", "x":18.5, "y":4.25}, {"label":"8,8", "x":19.5, "y":4.25, "h":2}, {"label":"8,6", "x":14.25, "y":4.5}, {"label":"10,0", "x":0, "y":5.25, "w":1.25}, {"label":"11,0", "x":1.25, "y":5.25, "w":1.25}, {"label":"10,1", "x":2.5, "y":5.25, "w":1.25}, {"label":"11,3", "x":3.75, "y":5.25, "w":6.25}, {"label":"10,4", "x":10, "y":5.25, "w":1.5}, {"label":"11,4", "x":11.5, "y":5.25, "w":1.5}, {"label":"11,6", "x":16.5, "y":5.25, "w":2}, {"label":"10,7", "x":18.5, "y":5.25}, {"label":"10,5", "x":13.25, "y":5.5}, {"label":"11,5", "x":14.25, "y":5.5}, {"label":"10,6", "x":15.25, "y":5.5}] diff --git a/keyboards/handwired/swiftrax/joypad/config.h b/keyboards/handwired/swiftrax/joypad/config.h index da326086bf..8aca892618 100644 --- a/keyboards/handwired/swiftrax/joypad/config.h +++ b/keyboards/handwired/swiftrax/joypad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEA68 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Joypad - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/swiftrax/joypad/info.json b/keyboards/handwired/swiftrax/joypad/info.json index c3a4d98c5d..5916bb705d 100644 --- a/keyboards/handwired/swiftrax/joypad/info.json +++ b/keyboards/handwired/swiftrax/joypad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Joypad", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEA68", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_6x4": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":0, "y":2.25}, {"x":1, "y":2.25}, {"x":2, "y":2.25}, {"x":3, "y":2.25}, {"x":0, "y":3.25}, {"x":1, "y":3.25}, {"x":2, "y":3.25}, {"x":3, "y":3.25}, {"x":0, "y":4.25}, {"x":1, "y":4.25}, {"x":2, "y":4.25}, {"x":3, "y":4.25}, {"x":0, "y":5.25}, {"x":1, "y":5.25}, {"x":2, "y":5.25}, {"x":3, "y":5.25}] diff --git a/keyboards/handwired/swiftrax/koalafications/config.h b/keyboards/handwired/swiftrax/koalafications/config.h index 6da0b308d5..05e30ec982 100644 --- a/keyboards/handwired/swiftrax/koalafications/config.h +++ b/keyboards/handwired/swiftrax/koalafications/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEA44 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Koalafications /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/handwired/swiftrax/koalafications/info.json b/keyboards/handwired/swiftrax/koalafications/info.json index 99bd6828e6..35a8f73e39 100644 --- a/keyboards/handwired/swiftrax/koalafications/info.json +++ b/keyboards/handwired/swiftrax/koalafications/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Koalafications", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEA44", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.25, "y":0}, {"label":"0,2", "x":2.25, "y":0}, {"label":"0,3", "x":3.25, "y":0}, {"label":"0,4", "x":4.25, "y":0}, {"label":"0,5", "x":5.5, "y":0}, {"label":"0,6", "x":6.5, "y":0}, {"label":"0,7", "x":7.5, "y":0}, {"label":"0,8", "x":8.5, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,A", "x":10.75, "y":0}, {"label":"0,B", "x":11.75, "y":0}, {"label":"0,C", "x":12.75, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,A", "x":10, "y":1.25}, {"label":"1,B", "x":11, "y":1.25}, {"label":"1,C", "x":12, "y":1.25}, {"label":"1,D", "x":13, "y":1.25}, {"label":"3,D", "x":14, "y":1.25}, {"label":"1,E", "x":15, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,A", "x":10.5, "y":2.25}, {"label":"2,B", "x":11.5, "y":2.25}, {"label":"2,C", "x":12.5, "y":2.25}, {"label":"2,D", "x":13.5, "y":2.25, "w":1.5}, {"label":"2,E", "x":15, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,A", "x":10.75, "y":3.25}, {"label":"3,B", "x":11.75, "y":3.25}, {"label":"3,C", "x":12.75, "y":3.25, "w":2.25}, {"label":"3,E", "x":15, "y":3.25}, {"label":"4,0", "x":0, "y":4.25, "w":2.25}, {"label":"4,1", "x":2.25, "y":4.25}, {"label":"4,2", "x":3.25, "y":4.25}, {"label":"4,3", "x":4.25, "y":4.25}, {"label":"4,4", "x":5.25, "y":4.25}, {"label":"4,5", "x":6.25, "y":4.25}, {"label":"4,6", "x":7.25, "y":4.25}, {"label":"4,7", "x":8.25, "y":4.25}, {"label":"4,8", "x":9.25, "y":4.25}, {"label":"4,9", "x":10.25, "y":4.25}, {"label":"4,A", "x":11.25, "y":4.25}, {"label":"4,B", "x":12.25, "y":4.25, "w":1.75}, {"label":"4,C", "x":14, "y":4.25}, {"label":"4,E", "x":15, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,6", "x":3.75, "y":5.25, "w":6.25}, {"label":"5,8", "x":10, "y":5.25}, {"label":"5,9", "x":11, "y":5.25}, {"label":"5,A", "x":12, "y":5.25}, {"label":"5,B", "x":13, "y":5.25}, {"label":"5,C", "x":14, "y":5.25}, {"label":"5,E", "x":15, "y":5.25}] diff --git a/keyboards/handwired/swiftrax/nodu/config.h b/keyboards/handwired/swiftrax/nodu/config.h index 9de601784d..485ba97b46 100644 --- a/keyboards/handwired/swiftrax/nodu/config.h +++ b/keyboards/handwired/swiftrax/nodu/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEA6E -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Nodu /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/swiftrax/nodu/info.json b/keyboards/handwired/swiftrax/nodu/info.json index 8fc83c196d..40d0073fa7 100644 --- a/keyboards/handwired/swiftrax/nodu/info.json +++ b/keyboards/handwired/swiftrax/nodu/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Nodu", + "manufacturer": "Swiftrax", "url": "github.com/swiftrax", "maintainer": "Swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEA6E", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_60_ansi_split_bs_rshift" }, diff --git a/keyboards/handwired/swiftrax/pandamic/config.h b/keyboards/handwired/swiftrax/pandamic/config.h index 0916bbf1c7..9c5757f9c6 100644 --- a/keyboards/handwired/swiftrax/pandamic/config.h +++ b/keyboards/handwired/swiftrax/pandamic/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEB0E -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Pandamic - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/handwired/swiftrax/pandamic/info.json b/keyboards/handwired/swiftrax/pandamic/info.json index 230786008b..59008905dc 100644 --- a/keyboards/handwired/swiftrax/pandamic/info.json +++ b/keyboards/handwired/swiftrax/pandamic/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pandamic", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEB0E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":18.25, "y":0}, {"x":19.75, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1, "h":2}, {"x":4.25, "y":1, "w":1.5}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1}, {"x":16.75, "y":1}, {"x":17.75, "y":1, "w":1.5}, {"x":19.75, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":4.25, "y":2, "w":1.75}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":17, "y":2, "w":2.25}, {"x":19.75, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3, "h":2}, {"x":4.25, "y":3, "w":1.25}, {"x":5.5, "y":3}, {"x":6.5, "y":3}, {"x":7.5, "y":3}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3}, {"x":16.5, "y":3, "w":1.75}, {"x":18.5, "y":3.25}, {"x":19.75, "y":3}, {"x":0, "y":4, "w":2}, {"x":2, "y":4}, {"x":4.25, "y":4, "w":1.25}, {"x":5.5, "y":4, "w":1.25}, {"x":6.75, "y":4, "w":1.25}, {"x":8, "y":4, "w":6.25}, {"x":14.25, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}, {"x":17.5, "y":4.25}, {"x":18.5, "y":4.25}, {"x":19.5, "y":4.25}] diff --git a/keyboards/handwired/swiftrax/the_galleon/config.h b/keyboards/handwired/swiftrax/the_galleon/config.h index b37861c964..c20624f68a 100644 --- a/keyboards/handwired/swiftrax/the_galleon/config.h +++ b/keyboards/handwired/swiftrax/the_galleon/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEA2D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT The Galleon - /* key matrix size */ #define MATRIX_ROWS 14 #define MATRIX_COLS 9 diff --git a/keyboards/handwired/swiftrax/the_galleon/info.json b/keyboards/handwired/swiftrax/the_galleon/info.json index 7f93b9c98c..52a62f2620 100644 --- a/keyboards/handwired/swiftrax/the_galleon/info.json +++ b/keyboards/handwired/swiftrax/the_galleon/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "The Galleon", + "manufacturer": "Swiftrax", "url": "github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEA2D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/handwired/swiftrax/unsplit/config.h b/keyboards/handwired/swiftrax/unsplit/config.h index 95fdab280e..8d1cb90179 100644 --- a/keyboards/handwired/swiftrax/unsplit/config.h +++ b/keyboards/handwired/swiftrax/unsplit/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEAB1 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT UnSplit - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/swiftrax/unsplit/info.json b/keyboards/handwired/swiftrax/unsplit/info.json index a0aee45157..9f39a2857b 100644 --- a/keyboards/handwired/swiftrax/unsplit/info.json +++ b/keyboards/handwired/swiftrax/unsplit/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "UnSplit", + "manufacturer": "Swiftrax", "url": "github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEAB1", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":3, "y":0.25}, {"x":13, "y":0.25}, {"x":2, "y":0.5}, {"x":4, "y":0.5}, {"x":12, "y":0.5}, {"x":14, "y":0.5}, {"x":5, "y":0.625}, {"x":11, "y":0.625}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":15, "y":1}, {"x":16, "y":1}, {"x":3, "y":1.25}, {"x":13, "y":1.25}, {"x":2, "y":1.5}, {"x":4, "y":1.5}, {"x":12, "y":1.5}, {"x":14, "y":1.5}, {"x":5, "y":1.625}, {"x":11, "y":1.625}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":3, "y":2.25}, {"x":13, "y":2.25}, {"x":2, "y":2.5}, {"x":4, "y":2.5}, {"x":12, "y":2.5}, {"x":14, "y":2.5}, {"x":5, "y":2.625}, {"x":11, "y":2.625}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":15, "y":3}, {"x":16, "y":3}, {"x":2.5, "y":3.5}, {"x":13.5, "y":3.5}, {"x":3.5, "y":3.5}, {"x":12.5, "y":3.5}, {"x":4.5, "y":3.75}, {"x":11.5, "y":3.75}, {"x":5.5, "y":4}, {"x":10.5, "y":4}] diff --git a/keyboards/handwired/swiftrax/walter/config.h b/keyboards/handwired/swiftrax/walter/config.h index 8cf2d0d833..9797563edd 100644 --- a/keyboards/handwired/swiftrax/walter/config.h +++ b/keyboards/handwired/swiftrax/walter/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE964 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Swiftrax -#define PRODUCT Walter /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/swiftrax/walter/info.json b/keyboards/handwired/swiftrax/walter/info.json index e811bc51be..72f3ce4f40 100644 --- a/keyboards/handwired/swiftrax/walter/info.json +++ b/keyboards/handwired/swiftrax/walter/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "walter", + "keyboard_name": "Walter", + "manufacturer": "Swiftrax", "url": "https://github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE964", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/handwired/symmetry60/config.h b/keyboards/handwired/symmetry60/config.h index d3b1f18411..22cb401e8d 100644 --- a/keyboards/handwired/symmetry60/config.h +++ b/keyboards/handwired/symmetry60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Marhalloweenvt -#define PRODUCT Symmetry60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/symmetry60/info.json b/keyboards/handwired/symmetry60/info.json index 5202c61438..e585e367a8 100644 --- a/keyboards/handwired/symmetry60/info.json +++ b/keyboards/handwired/symmetry60/info.json @@ -1,7 +1,13 @@ { "Keyboard_name": "Symmetry60", + "manufacturer": "Marhalloweenvt", "url": "", "maintainer": "marhalloweenvt", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x14": { "layout": [ diff --git a/keyboards/handwired/t111/config.h b/keyboards/handwired/t111/config.h index 04c1ece0e5..6cd9616165 100644 --- a/keyboards/handwired/t111/config.h +++ b/keyboards/handwired/t111/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6FAA -#define DEVICE_VER 0x0001 -#define MANUFACTURER FUJITSU -#define PRODUCT T111 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/t111/info.json b/keyboards/handwired/t111/info.json index e02373fff5..ff231bb66a 100644 --- a/keyboards/handwired/t111/info.json +++ b/keyboards/handwired/t111/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "t111", + "keyboard_name": "T111", + "manufacturer": "FUJITSU", "url": "", "maintainer": "DmNosachev", + "usb": { + "vid": "0xFEED", + "pid": "0x6FAA", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Break", "x":0, "y":0}, {"label":"PF1", "x":2, "y":0}, {"label":"PF2", "x":3, "y":0}, {"label":"PF3", "x":4, "y":0}, {"label":"PF4", "x":5, "y":0}, {"label":"PF5", "x":6, "y":0}, {"label":"PF6", "x":7, "y":0}, {"label":"PF7", "x":8, "y":0}, {"label":"PF8", "x":9, "y":0}, {"label":"PF9", "x":10, "y":0}, {"label":"PF10", "x":11, "y":0}, {"label":"PF11", "x":12, "y":0}, {"label":"PF12", "x":13, "y":0}, {"label":"PF13", "x":14, "y":0}, {"label":"PF14", "x":15, "y":0}, {"label":"PF15", "x":16, "y":0}, {"label":"PF16", "x":17, "y":0}, {"label":"Esc", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"~", "x":13, "y":1.5}, {"label":"bkspc", "x":14, "y":1.5, "w":1.25}, {"label":"Ins", "x":15.5, "y":1.5}, {"label":"Cls", "x":16.5, "y":1.5}, {"label":"*", "x":17.75, "y":1.5}, {"label":"/", "x":18.75, "y":1.5}, {"label":"+", "x":19.75, "y":1.5}, {"label":"-", "x":20.75, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"El", "x":15.5, "y":2.5}, {"label":"Dup", "x":16.5, "y":2.5}, {"label":"7", "x":17.75, "y":2.5}, {"label":"8", "x":18.75, "y":2.5}, {"label":"9", "x":19.75, "y":2.5}, {"label":"=", "x":20.75, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"|", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":2.5, "w":1.5, "h":2}, {"label":"Del", "x":15.5, "y":3.5}, {"label":"Home", "x":16.5, "y":3.5}, {"label":"4", "x":17.75, "y":3.5}, {"label":"5", "x":18.75, "y":3.5}, {"label":"6", "x":19.75, "y":3.5}, {"label":",", "x":20.75, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"x":12.25, "y":4.5}, {"label":"Shift", "x":13.25, "y":4.5, "w":2}, {"label":"\u0432\u2020\u2018", "x":15.5, "y":4.5}, {"label":"\u0432\u2020\u201c", "x":16.5, "y":4.5}, {"label":"1", "x":17.75, "y":4.5}, {"label":"2", "x":18.75, "y":4.5}, {"label":"3", "x":19.75, "y":4.5}, {"label":"Enter", "x":20.75, "y":4.5, "h":2}, {"label":"Caps", "x":1.75, "y":5.5}, {"label":"Graph", "x":2.75, "y":5.5, "w":1.5}, {"x":4.25, "y":5.5, "w":8}, {"label":"Alt", "x":12.25, "y":5.5, "w":1.5}, {"label":"\u0432\u2020\u0452", "x":15.5, "y":5.5}, {"label":"\u0432\u2020\u2019", "x":16.5, "y":5.5}, {"label":"0", "x":17.75, "y":5.5, "w":2}, {"label":".", "x":19.75, "y":5.5}] diff --git a/keyboards/handwired/tennie/config.h b/keyboards/handwired/tennie/config.h index e74b9f2aee..4659804169 100644 --- a/keyboards/handwired/tennie/config.h +++ b/keyboards/handwired/tennie/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1EEE -#define PRODUCT_ID 0x1313 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jsck -#define PRODUCT Tennie - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/tennie/info.json b/keyboards/handwired/tennie/info.json index 6db07eafee..4a810d84d9 100644 --- a/keyboards/handwired/tennie/info.json +++ b/keyboards/handwired/tennie/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Tennie", + "manufacturer": "Jsck", "url": "https://github.com/StoutIEEE/macropad-workshop", "maintainer": "UW Stout IEEE, Jack Hildebrandt (onemorebyte)", + "usb": { + "vid": "0x1EEE", + "pid": "0x1313", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0.5, "y":0}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0.5, "y":2}, {"x":1.5, "y":2}, {"x":2.5, "y":2}] diff --git a/keyboards/handwired/terminus_mini/config.h b/keyboards/handwired/terminus_mini/config.h index 94c182eb4a..a2c843a79f 100644 --- a/keyboards/handwired/terminus_mini/config.h +++ b/keyboards/handwired/terminus_mini/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER James Morgan -#define PRODUCT terminus_mini - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/terminus_mini/info.json b/keyboards/handwired/terminus_mini/info.json index b3e4491b0f..79cbe720a3 100644 --- a/keyboards/handwired/terminus_mini/info.json +++ b/keyboards/handwired/terminus_mini/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "handwired/terminus_mini", + "keyboard_name": "Terminus Mini", + "manufacturer": "James Morgan", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c index 8d0631072f..8062aa711f 100644 --- a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c +++ b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c @@ -193,7 +193,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( - _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, QK_BOOT, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/handwired/trackpoint/config.h b/keyboards/handwired/trackpoint/config.h index cf8b5605f4..97bb0b905f 100644 --- a/keyboards/handwired/trackpoint/config.h +++ b/keyboards/handwired/trackpoint/config.h @@ -2,12 +2,6 @@ #include "config_common.h" -#define VENDOR_ID 0x1234 -#define PRODUCT_ID 0x5678 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK -#define PRODUCT TRACKPOINT-DEMO - #define MATRIX_ROWS 1 #define MATRIX_COLS 3 diff --git a/keyboards/handwired/trackpoint/info.json b/keyboards/handwired/trackpoint/info.json index 176a30e9a0..3f2d1f2290 100644 --- a/keyboards/handwired/trackpoint/info.json +++ b/keyboards/handwired/trackpoint/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Trackpoint", + "keyboard_name": "Trackpoint Demo", + "manufacturer": "QMK", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x1234", + "pid": "0x5678", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/info.json b/keyboards/handwired/tractyl_manuform/4x6_right/info.json index e3da8b444c..0681db1f3e 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/info.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/info.json @@ -3,7 +3,7 @@ "url": "", "maintainer": "drashna", "layouts": { - "LAYOUT_5x6_right": { + "LAYOUT_4x6_right": { "layout": [ {"label":"L00", "x":0, "y":0}, {"label":"L01", "x":1, "y":0}, @@ -41,32 +41,20 @@ {"label":"R23", "x":14, "y":2}, {"label":"R24", "x":15, "y":2}, {"label":"R25", "x":16, "y":2}, - {"label":"L30", "x":0, "y":3}, - {"label":"L31", "x":1, "y":3}, {"label":"L32", "x":2, "y":3}, {"label":"L33", "x":3, "y":3}, - {"label":"L34", "x":4, "y":3}, - {"label":"L35", "x":5, "y":3}, - {"label":"R30", "x":11, "y":3}, - {"label":"R31", "x":12, "y":3}, {"label":"R32", "x":13, "y":3}, {"label":"R33", "x":14, "y":3}, - {"label":"R34", "x":15, "y":3}, - {"label":"R35", "x":16, "y":3}, - {"label":"L42", "x":2, "y":4}, - {"label":"L43", "x":3, "y":4}, - {"label":"R42", "x":13, "y":4}, - {"label":"R43", "x":14, "y":4}, - {"label":"L44", "x":4, "y":5}, - {"label":"L45", "x":5, "y":5}, - {"label":"R41", "x":12, "y":5}, - {"label":"L54", "x":6, "y":6}, - {"label":"L55", "x":7, "y":6}, - {"label":"R51", "x":10, "y":6}, - {"label":"L52", "x":6, "y":7}, - {"label":"L53", "x":7, "y":7}, - {"label":"R52", "x":9, "y":7}, - {"label":"R53", "x":10, "y":7} + {"label":"L34", "x":4, "y":4}, + {"label":"L35", "x":5, "y":4}, + {"label":"R31", "x":12, "y":4}, + {"label":"L44", "x":6, "y":5}, + {"label":"L45", "x":7, "y":5}, + {"label":"R41", "x":10, "y":5}, + {"label":"L42", "x":6, "y":6}, + {"label":"L43", "x":7, "y":6}, + {"label":"R42", "x":9, "y":6}, + {"label":"R43", "x":10, "y":6} ] } } diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk index 0a4fbee0e5..dcbcc7ee7e 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu 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 31539062b3..daaad5f5e3 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h @@ -28,8 +28,3 @@ #define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 200 #define ENCODER_DEFAULT_POS 0x3 - -#define SECURE_UNLOCK_SEQUENCE \ - { \ - { 2, 1 }, { 2, 2 }, { 2, 3 }, { 2, 4 } \ - } diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c index 223649e8bf..1a46317a42 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c +++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c @@ -59,16 +59,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ ), - [_MOUSE] = LAYOUT_5x6_right( - _______, _______, _______, _______, _______, _______, DRGSCRL, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, SNP_TOG, - _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, - _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, - _______, _______, _______, _______, - _______, _______, KC_BTN3, - _______, _______, _______, - _______, _______, _______, _______ - ), [_GAMEPAD] = LAYOUT_5x6_right( KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______, KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, @@ -99,6 +89,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, _______, _______, KC_LCTL, KC_V, _______, _______ ), + [_MOUSE] = LAYOUT_5x6_right( + _______, _______, _______, _______, _______, _______, DRGSCRL, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, SNP_TOG, + _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, + _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, + _______, _______, _______, _______, + _______, _______, KC_BTN3, + _______, _______, _______, + _______, _______, _______, _______ + ), [_LOWER] = LAYOUT_5x6_right_wrapper( KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11, _______, _________________LOWER_L1__________________, _________________LOWER_R1__________________, _______, diff --git a/keyboards/handwired/traveller/config.h b/keyboards/handwired/traveller/config.h index 815ec7fdd5..ef68263c06 100644 --- a/keyboards/handwired/traveller/config.h +++ b/keyboards/handwired/traveller/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER You -#define PRODUCT traveller - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/handwired/traveller/info.json b/keyboards/handwired/traveller/info.json index 2a59527b89..143bf50b91 100644 --- a/keyboards/handwired/traveller/info.json +++ b/keyboards/handwired/traveller/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Traveller", + "manufacturer": "Unknown", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/traveller/keymaps/default/keymap.c b/keyboards/handwired/traveller/keymaps/default/keymap.c index 2cd57db35f..288acbe108 100644 --- a/keyboards/handwired/traveller/keymaps/default/keymap.c +++ b/keyboards/handwired/traveller/keymaps/default/keymap.c @@ -219,7 +219,7 @@ void LayerLEDSet(uint8_t layr) { uint8_t old_layer = _QW; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); if (old_layer != layer) { LayerLEDSet(layer); diff --git a/keyboards/handwired/tritium_numpad/config.h b/keyboards/handwired/tritium_numpad/config.h index ef835ad2aa..73c0201e03 100644 --- a/keyboards/handwired/tritium_numpad/config.h +++ b/keyboards/handwired/tritium_numpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0003 -#define MANUFACTURER Handwired -#define PRODUCT Tritium Numpad - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/tritium_numpad/info.json b/keyboards/handwired/tritium_numpad/info.json index d7190c197e..1a2f22a835 100644 --- a/keyboards/handwired/tritium_numpad/info.json +++ b/keyboards/handwired/tritium_numpad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Tritium_numpad", + "keyboard_name": "Tritium Numpad", + "manufacturer": "Handwired", "url": "https://www.thingiverse.com/thing:2855938", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_numpad_6x4": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k23", "x":3, "y":2, "h":2}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k50", "x":0, "y":5, "w":2}, {"label":"k52", "x":2, "y":5}, {"label":"k43", "x":3, "y":4, "h":2}] diff --git a/keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c b/keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c index 50bbf232b5..b618675295 100644 --- a/keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c +++ b/keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c @@ -9,7 +9,7 @@ void keyboard_pre_init_user(void) layer_state_t layer_state_set_user(layer_state_t state) { // Switch layer LED accordingly - switch (get_highest_layer(state)) { + switch (biton32(state)) { case 0: writePinHigh(B0); break; diff --git a/keyboards/handwired/twadlee/tp69/config.h b/keyboards/handwired/twadlee/tp69/config.h index f16444c119..0af5afa517 100644 --- a/keyboards/handwired/twadlee/tp69/config.h +++ b/keyboards/handwired/twadlee/tp69/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . //#include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBEEF -#define PRODUCT_ID 0xCACA -#define DEVICE_VER 0x0001 -#define MANUFACTURER Tracy Wadleigh -#define PRODUCT tp69 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/twadlee/tp69/info.json b/keyboards/handwired/twadlee/tp69/info.json index f51059014a..3669be349f 100644 --- a/keyboards/handwired/twadlee/tp69/info.json +++ b/keyboards/handwired/twadlee/tp69/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Twadlee TP69", + "keyboard_name": "TP69", + "manufacturer": "Tracy Wadleigh", "url": "https://github.com/twadleigh/qmk_firmware", "maintainer": "qmk", + "usb": { + "vid": "0xBEEF", + "pid": "0xCACA", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3}, {"x":13.25, "y":3, "w":2.75}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.75, "y":4, "w":2.25}, {"x":11, "y":4, "w":1.25}, {"x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4, "w":1.25}, {"x":14.75, "y":4, "w":1.25}] diff --git a/keyboards/handwired/unicomp_mini_m/config.h b/keyboards/handwired/unicomp_mini_m/config.h index 41676ec805..78b42577d8 100644 --- a/keyboards/handwired/unicomp_mini_m/config.h +++ b/keyboards/handwired/unicomp_mini_m/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER stevendlander -#define PRODUCT Unicomp Mini M - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 16 diff --git a/keyboards/handwired/unicomp_mini_m/info.json b/keyboards/handwired/unicomp_mini_m/info.json index d1a0558aa2..ea2ab10b1b 100644 --- a/keyboards/handwired/unicomp_mini_m/info.json +++ b/keyboards/handwired/unicomp_mini_m/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Unicomp Mini M", - "maintainer": "stevendlander", + "manufacturer": "stevendlander", "url": "", + "maintainer": "stevendlander", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/uthol/rev3/config.h b/keyboards/handwired/uthol/rev3/config.h index 84ca3f0cc6..90880998b7 100644 --- a/keyboards/handwired/uthol/rev3/config.h +++ b/keyboards/handwired/uthol/rev3/config.h @@ -57,7 +57,6 @@ #define LOCKING_RESYNC_ENABLE #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD // RGB Stuff #define RGB_DI_PIN B0 diff --git a/keyboards/handwired/uthol/rev3/rules.mk b/keyboards/handwired/uthol/rev3/rules.mk index b64e4ec8d1..8752bb87eb 100644 --- a/keyboards/handwired/uthol/rev3/rules.mk +++ b/keyboards/handwired/uthol/rev3/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/videowriter/config.h b/keyboards/handwired/videowriter/config.h index b4909ffba1..ad54ca3c13 100644 --- a/keyboards/handwired/videowriter/config.h +++ b/keyboards/handwired/videowriter/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x515A // "QZ" -#define PRODUCT_ID 0x5657 // "VW" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Magnavox -#define PRODUCT Videowriter - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/videowriter/info.json b/keyboards/handwired/videowriter/info.json index bf7603e3db..23f8b712e5 100644 --- a/keyboards/handwired/videowriter/info.json +++ b/keyboards/handwired/videowriter/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "videowriter", + "keyboard_name": "Videowriter", + "manufacturer": "Magnavox", "url": "https://deskthority.net/viewtopic.php?f=7&t=20210", "maintainer": "DmNosachev", + "usb": { + "vid": "0x515A", + "pid": "0x5657", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/handwired/wabi/config.h b/keyboards/handwired/wabi/config.h index 68700d4873..63068c6bc0 100644 --- a/keyboards/handwired/wabi/config.h +++ b/keyboards/handwired/wabi/config.h @@ -16,14 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xB07D -#define DEVICE_VER 0x0002 -#define MANUFACTURER Montsinger -#define PRODUCT Wabi - /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/handwired/wabi/info.json b/keyboards/handwired/wabi/info.json index 7d58bd3634..624bc739f2 100644 --- a/keyboards/handwired/wabi/info.json +++ b/keyboards/handwired/wabi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Wabi", + "manufacturer": "Montsinger", "url": "www.montsinger.net", "maintainer": "Montsinger", + "usb": { + "vid": "0xFEED", + "pid": "0xB07D", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":1.25, "y":0}, {"label":"1", "x":2.25, "y":0}, {"label":"2", "x":3.25, "y":0}, {"label":"3", "x":4.25, "y":0}, {"label":"4", "x":5.25, "y":0}, {"label":"5", "x":6.25, "y":0}, {"label":"6", "x":8.75, "y":0}, {"label":"7", "x":9.75, "y":0}, {"label":"8", "x":10.75, "y":0}, {"label":"9", "x":11.75, "y":0}, {"label":"0", "x":12.75, "y":0}, {"label":"-", "x":13.75, "y":0}, {"label":"=", "x":14.75, "y":0}, {"label":"Backspace", "x":15.75, "y":0, "w":2}, {"label":"Tab", "x":0.75, "y":1, "w":1.5}, {"label":"Q", "x":2.25, "y":1}, {"label":"W", "x":3.25, "y":1}, {"label":"E", "x":4.25, "y":1}, {"label":"R", "x":5.25, "y":1}, {"label":"T", "x":6.25, "y":1}, {"label":"Y", "x":8.75, "y":1}, {"label":"U", "x":9.75, "y":1}, {"label":"I", "x":10.75, "y":1}, {"label":"O", "x":11.75, "y":1}, {"label":"P", "x":12.75, "y":1}, {"label":"[", "x":13.75, "y":1}, {"label":"]", "x":14.75, "y":1}, {"label":"\\", "x":15.75, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.5, "y":2, "w":1.75}, {"label":"A", "x":2.25, "y":2}, {"label":"S", "x":3.25, "y":2}, {"label":"D", "x":4.25, "y":2}, {"label":"F", "x":5.25, "y":2}, {"label":"G", "x":6.25, "y":2}, {"label":"H", "x":8.75, "y":2}, {"label":"J", "x":9.75, "y":2}, {"label":"K", "x":10.75, "y":2}, {"label":"L", "x":11.75, "y":2}, {"label":";", "x":12.75, "y":2}, {"label":"'", "x":13.75, "y":2}, {"label":"Enter", "x":14.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":8.75, "y":3}, {"label":"M", "x":9.75, "y":3}, {"label":",", "x":10.75, "y":3}, {"label":".", "x":11.75, "y":3}, {"label":"/", "x":12.75, "y":3}, {"label":"Shift", "x":13.75, "y":3, "w":2.75}, {"label":"Up", "x":16.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":4, "y":4, "w":1.25}, {"label":"Space", "x":5.25, "y":4}, {"label":"Page Down", "x":6.25, "y":4, "w":1.25}, {"label":"Enter", "x":8.5, "y":4, "w":1.25}, {"label":"Space", "x":9.75, "y":4}, {"label":"Backspace", "x":10.75, "y":4, "w":1.25}, {"label":"Left", "x":15.5, "y":4}, {"label":"Down", "x":16.5, "y":4}, {"label":"Right", "x":17.5, "y":4}] } diff --git a/keyboards/handwired/woodpad/config.h b/keyboards/handwired/woodpad/config.h index 9b92798d96..163f7db6ae 100644 --- a/keyboards/handwired/woodpad/config.h +++ b/keyboards/handwired/woodpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6069 -#define DEVICE_VER 0x0001 -#define MANUFACTURER WoodKeys.click -#define PRODUCT Woodpad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/handwired/woodpad/info.json b/keyboards/handwired/woodpad/info.json index fe5e5a943a..3e82a0cc42 100644 --- a/keyboards/handwired/woodpad/info.json +++ b/keyboards/handwired/woodpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Woodpad", + "manufacturer": "WoodKeys.click", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6069", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x4": { "layout": [ diff --git a/keyboards/handwired/wulkan/config.h b/keyboards/handwired/wulkan/config.h index 72e2c9e373..3f35e214e4 100644 --- a/keyboards/handwired/wulkan/config.h +++ b/keyboards/handwired/wulkan/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Wulkan -#define PRODUCT Handwired48Keys - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/handwired/wulkan/info.json b/keyboards/handwired/wulkan/info.json index afb9611e2b..bef51cdb2b 100644 --- a/keyboards/handwired/wulkan/info.json +++ b/keyboards/handwired/wulkan/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "wulkan", + "keyboard_name": "Handwired48Keys", + "manufacturer": "Wulkan", "url": "", "maintainer": "Napoleon Wulkan", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] diff --git a/keyboards/handwired/xealousbrown/config.h b/keyboards/handwired/xealousbrown/config.h index cb787ba0c2..c9093342c4 100644 --- a/keyboards/handwired/xealousbrown/config.h +++ b/keyboards/handwired/xealousbrown/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x606A -#define DEVICE_VER 0x0002 -#define MANUFACTURER XeaL -#define PRODUCT XeaLous Brown Keyboard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/handwired/xealousbrown/info.json b/keyboards/handwired/xealousbrown/info.json index cecd7e9e2e..372158baad 100644 --- a/keyboards/handwired/xealousbrown/info.json +++ b/keyboards/handwired/xealousbrown/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Xealous-Brown", + "keyboard_name": "XeaLous Brown Keyboard", + "manufacturer": "XeaL", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x606A", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/handwired/z150/config.h b/keyboards/handwired/z150/config.h index 5d11c31a2a..5f0a321db6 100644 --- a/keyboards/handwired/z150/config.h +++ b/keyboards/handwired/z150/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ALPS -#define PRODUCT Z150 /* key matrix size */ #define MATRIX_ROWS 11 #define MATRIX_COLS 8 diff --git a/keyboards/handwired/z150/info.json b/keyboards/handwired/z150/info.json index 17b94b521d..823467b694 100644 --- a/keyboards/handwired/z150/info.json +++ b/keyboards/handwired/z150/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "z150", + "keyboard_name": "Z150", + "manufacturer": "ALPS", "url": "", "maintainer": "DmNosachev", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"F1", "x":0, "y":0}, {"label":"F2", "x":1, "y":0}, {"label":"Esc", "x":2.5, "y":0}, {"label":"!", "x":3.5, "y":0}, {"label":"@", "x":4.5, "y":0}, {"label":"#", "x":5.5, "y":0}, {"label":"$", "x":6.5, "y":0}, {"label":"%", "x":7.5, "y":0}, {"label":"^", "x":8.5, "y":0}, {"label":"&", "x":9.5, "y":0}, {"label":"*", "x":10.5, "y":0}, {"label":"(", "x":11.5, "y":0}, {"label":")", "x":12.5, "y":0}, {"label":"_", "x":13.5, "y":0}, {"label":"+", "x":14.5, "y":0}, {"label":"Backspace", "x":15.5, "y":0, "w":1.75}, {"label":"", "x":17.25, "y":0}, {"label":"", "x":18.25, "y":0, "w":1.5}, {"label":"", "x":19.75, "y":0, "w":1.5}, {"label":"F3", "x":0, "y":1}, {"label":"F4", "x":1, "y":1}, {"label":"Tab", "x":2.5, "y":1, "w":1.5}, {"label":"Q", "x":4, "y":1}, {"label":"W", "x":5, "y":1}, {"label":"E", "x":6, "y":1}, {"label":"R", "x":7, "y":1}, {"label":"T", "x":8, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15, "y":1, "w":1.25}, {"label":"7", "x":17.25, "y":1}, {"label":"8", "x":18.25, "y":1}, {"label":"9", "x":19.25, "y":1}, {"label":"PrtSc", "x":20.25, "y":1}, {"label":"F5", "x":0, "y":2}, {"label":"F6", "x":1, "y":2}, {"label":"Ctrl", "x":2.5, "y":2, "w":1.75}, {"label":"A", "x":4.25, "y":2}, {"label":"S", "x":5.25, "y":2}, {"label":"D", "x":6.25, "y":2}, {"label":"F", "x":7.25, "y":2}, {"label":"G", "x":8.25, "y":2}, {"label":"H", "x":9.25, "y":2}, {"label":"J", "x":10.25, "y":2}, {"label":"K", "x":11.25, "y":2}, {"label":"L", "x":12.25, "y":2}, {"label":":", "x":13.25, "y":2}, {"label":"\"", "x":14.25, "y":2}, {"label":"Enter", "x":15.25, "y":2, "w":2}, {"label":"4", "x":17.25, "y":2}, {"label":"5", "x":18.25, "y":2}, {"label":"6", "x":19.25, "y":2}, {"label":"\u0432\u0402\u201c", "x":20.25, "y":2}, {"label":"F7", "x":0, "y":3}, {"label":"F8", "x":1, "y":3}, {"label":"Shift", "x":2.5, "y":3, "w":2.25}, {"label":"Z", "x":4.75, "y":3}, {"label":"X", "x":5.75, "y":3}, {"label":"C", "x":6.75, "y":3}, {"label":"V", "x":7.75, "y":3}, {"label":"B", "x":8.75, "y":3}, {"label":"N", "x":9.75, "y":3}, {"label":"M", "x":10.75, "y":3}, {"label":"<", "x":11.75, "y":3}, {"label":">", "x":12.75, "y":3}, {"label":"?", "x":13.75, "y":3}, {"label":"Shift", "x":14.75, "y":3, "w":1.5}, {"label":"|", "x":16.25, "y":3}, {"label":"1", "x":17.25, "y":3}, {"label":"2", "x":18.25, "y":3}, {"label":"6", "x":19.25, "y":3}, {"label":"+", "x":20.25, "y":3, "h":2}, {"label":"F9", "x":0, "y":4}, {"label":"F10", "x":1, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.75}, {"label":"~", "x":4.25, "y":4}, {"x":5.25, "y":4, "w":9}, {"label":"CapsLock", "x":14.25, "y":4, "w":2}, {"label":"0", "x":16.25, "y":4, "w":2}, {"label":".", "x":18.25, "y":4, "w":2}] diff --git a/keyboards/handwired/zergo/config.h b/keyboards/handwired/zergo/config.h index 8bac9970a6..9ede839248 100644 --- a/keyboards/handwired/zergo/config.h +++ b/keyboards/handwired/zergo/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xB92B -#define DEVICE_VER 0x0001 -#define MANUFACTURER GreenJack -#define PRODUCT zErgo - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/handwired/zergo/info.json b/keyboards/handwired/zergo/info.json index 2b59b48de6..cec0c8954d 100644 --- a/keyboards/handwired/zergo/info.json +++ b/keyboards/handwired/zergo/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "zergo", + "keyboard_name": "zErgo", + "manufacturer": "GreenJack", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/zergo", "maintainer": "greenjack", + "usb": { + "vid": "0xFEED", + "pid": "0xB92B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/hardlineworks/otd_plus/config.h b/keyboards/hardlineworks/otd_plus/config.h index 15e6df7588..77b340c893 100644 --- a/keyboards/hardlineworks/otd_plus/config.h +++ b/keyboards/hardlineworks/otd_plus/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x484C // "HL" -#define PRODUCT_ID 0x0087 // "TKL" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hardlineworks -#define PRODUCT OTD-PLUS - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/hardlineworks/otd_plus/info.json b/keyboards/hardlineworks/otd_plus/info.json index 59668dc243..d61987b65f 100644 --- a/keyboards/hardlineworks/otd_plus/info.json +++ b/keyboards/hardlineworks/otd_plus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "OTD-PLUS", + "manufacturer": "Hardlineworks", "url": "", "maintainer": "Hardlineworks", + "usb": { + "vid": "0x484C", + "pid": "0x0087", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi_wkl": { "layout": [ diff --git a/keyboards/heliar/wm1_hotswap/config.h b/keyboards/heliar/wm1_hotswap/config.h index d25527ab35..88f1b246ef 100644 --- a/keyboards/heliar/wm1_hotswap/config.h +++ b/keyboards/heliar/wm1_hotswap/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xD070 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Heliar -#define PRODUCT wm1 hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/heliar/wm1_hotswap/info.json b/keyboards/heliar/wm1_hotswap/info.json index 165dad94bc..bee3c03ab2 100644 --- a/keyboards/heliar/wm1_hotswap/info.json +++ b/keyboards/heliar/wm1_hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "wm1", + "keyboard_name": "wm1 hotswap", + "manufacturer": "Heliar", "url": "", "maintainer": "heliar", + "usb": { + "vid": "0xFEED", + "pid": "0xD070", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/helix/pico/config.h b/keyboards/helix/pico/config.h index b08865d0a4..461fbd426b 100644 --- a/keyboards/helix/pico/config.h +++ b/keyboards/helix/pico/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3265 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Yushakobo -#define PRODUCT HelixPico - #define TAPPING_FORCE_HOLD #define TAPPING_TERM 100 diff --git a/keyboards/helix/pico/info.json b/keyboards/helix/pico/info.json index b9b573a37d..9c69f52fcd 100644 --- a/keyboards/helix/pico/info.json +++ b/keyboards/helix/pico/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "HelixPico", + "manufacturer": "Yushakobo", "url": "https://github.com/MakotoKurauchi/helix", "maintainer": "MakotoKurauchi", + "usb": { + "vid": "0x3265", + "pid": "0x0001", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/helix/pico/keymaps/mtei/config.h b/keyboards/helix/pico/keymaps/mtei/config.h index a633105ff9..1a4dc2c842 100644 --- a/keyboards/helix/pico/keymaps/mtei/config.h +++ b/keyboards/helix/pico/keymaps/mtei/config.h @@ -13,6 +13,8 @@ #undef TAPPING_TERM #define TAPPING_TERM 300 #define PERMISSIVE_HOLD +/* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD. + see tmk_core/common/action_tapping.c */ // If you need more program area, try select and reduce rgblight modes to use. diff --git a/keyboards/helix/pico/keymaps/mtei/keymap.c b/keyboards/helix/pico/keymaps/mtei/keymap.c index f641829292..b703ca376d 100644 --- a/keyboards/helix/pico/keymaps/mtei/keymap.c +++ b/keyboards/helix/pico/keymaps/mtei/keymap.c @@ -242,7 +242,7 @@ float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); static int current_default_layer; -layer_state_t default_layer_state_set_kb(layer_state_t state) { +uint32_t default_layer_state_set_kb(uint32_t state) { // 1<<_QWERTY - 1 == 1 - 1 == _QWERTY (=0) // 1<<_COLEMAK - 1 == 2 - 1 == _COLEMAK (=1) current_default_layer = state - 1; diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h index 8c6210bae4..c7e9e35db5 100644 --- a/keyboards/helix/rev2/config.h +++ b/keyboards/helix/rev2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3265 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yushakobo -#define PRODUCT Helix Beta - #define TAPPING_FORCE_HOLD #define TAPPING_TERM 100 diff --git a/keyboards/helix/rev2/info.json b/keyboards/helix/rev2/info.json index f46508de5a..9efe7fdb53 100644 --- a/keyboards/helix/rev2/info.json +++ b/keyboards/helix/rev2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Helix rev. 2", + "keyboard_name": "Helix Beta", + "manufacturer": "Yushakobo", "url": "https://github.com/MakotoKurauchi/helix", "maintainer": "MakotoKurauchi", + "usb": { + "vid": "0x3265", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/helix/rev2/keymaps/default/oled_display.c b/keyboards/helix/rev2/keymaps/default/oled_display.c index 384356bd14..ad5558869f 100644 --- a/keyboards/helix/rev2/keymaps/default/oled_display.c +++ b/keyboards/helix/rev2/keymaps/default/oled_display.c @@ -86,7 +86,7 @@ static void render_layer_status(void) { break; default: oled_write_P(PSTR("Undef-"), false); - snprintf(buf,sizeof(buf), "%u", layer_state); + snprintf(buf,sizeof(buf), "%ld", layer_state); oled_write(buf, false); } oled_write_P(PSTR("\n"), false); diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c b/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c index 80d0392ffb..5de00cb14c 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c +++ b/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c @@ -5,9 +5,9 @@ // keymaps definitions are moved to keymap_Xrows.c. #ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_keymap(layer_state_t state) { +uint32_t layer_state_set_keymap(uint32_t state) { rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - switch (get_highest_layer(state)) { + switch (biton32(state)) { case L_EDVORAKJP_LOWER: rgblight_sethsv_noeeprom_red(); break; diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c b/keyboards/helix/rev2/keymaps/edvorakjp/oled.c index 14e3e5533b..207aebc423 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c +++ b/keyboards/helix/rev2/keymaps/edvorakjp/oled.c @@ -19,7 +19,7 @@ void render_layer_state(void) { char layer_name[17]; oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case L_EDVORAKJP_BASE: oled_write_ln_P(PSTR("Default"), false); break; diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h index 43f14aaf2c..4aae9b5cac 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/config.h +++ b/keyboards/helix/rev2/keymaps/five_rows/config.h @@ -6,6 +6,8 @@ #undef TAPPING_TERM #define TAPPING_TERM 300 #define PERMISSIVE_HOLD +/* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD. + see tmk_core/common/action_tapping.c */ #undef OLED_UPDATE_INTERVAL #ifdef DEBUG_MATRIX_SCAN_RATE diff --git a/keyboards/helix/rev2/keymaps/five_rows/keymap.c b/keyboards/helix/rev2/keymaps/five_rows/keymap.c index 4d9dc16a9e..d992425de7 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/keymap.c +++ b/keyboards/helix/rev2/keymaps/five_rows/keymap.c @@ -379,8 +379,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { int current_default_layer; -layer_state_t default_layer_state_set_user(layer_state_t state) { - current_default_layer = get_highest_layer(state); +uint32_t default_layer_state_set_user(uint32_t state) { + current_default_layer = biton32(state); return state; } diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h index 1c0ec4d36c..50d9aa3306 100644 --- a/keyboards/helix/rev3_4rows/config.h +++ b/keyboards/helix/rev3_4rows/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" #include -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3265 //yushakobo -#define PRODUCT_ID 0x0004 //Helix rev3 4rows -#define DEVICE_VER 0x0001 -#define MANUFACTURER yushakobo -#define PRODUCT Helix rev3 4rows - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 7 diff --git a/keyboards/helix/rev3_4rows/info.json b/keyboards/helix/rev3_4rows/info.json index 7e825ff90c..e5c19a02b5 100644 --- a/keyboards/helix/rev3_4rows/info.json +++ b/keyboards/helix/rev3_4rows/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Helix rev3 4rows", + "manufacturer": "yushakobo", "url": "", "maintainer": "yushakobo", + "usb": { + "vid": "0x3265", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h index c880e27c88..589ffda25b 100644 --- a/keyboards/helix/rev3_5rows/config.h +++ b/keyboards/helix/rev3_5rows/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" #include -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3265 //yushakobo -#define PRODUCT_ID 0x0003 //Helix rev3 5rows -#define DEVICE_VER 0x0001 -#define MANUFACTURER yushakobo -#define PRODUCT Helix rev3 5rows - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/helix/rev3_5rows/info.json b/keyboards/helix/rev3_5rows/info.json index 5a1e35d8b2..95580e0c08 100644 --- a/keyboards/helix/rev3_5rows/info.json +++ b/keyboards/helix/rev3_5rows/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Helix rev3 5rows", + "manufacturer": "yushakobo", "url": "", "maintainer": "yushakobo", + "usb": { + "vid": "0x3265", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h index a6fd32c613..ab679d14b9 100644 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h +++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h @@ -6,6 +6,8 @@ #undef TAPPING_TERM #define TAPPING_TERM 300 #define PERMISSIVE_HOLD +/* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD. + see tmk_core/common/action_tapping.c */ #undef OLED_UPDATE_INTERVAL #ifdef DEBUG_MATRIX_SCAN_RATE diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c b/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c index 4d9dc16a9e..d992425de7 100644 --- a/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c +++ b/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c @@ -379,8 +379,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { int current_default_layer; -layer_state_t default_layer_state_set_user(layer_state_t state) { - current_default_layer = get_highest_layer(state); +uint32_t default_layer_state_set_user(uint32_t state) { + current_default_layer = biton32(state); return state; } diff --git a/keyboards/hhkb/ansi/32u2/rules.mk b/keyboards/hhkb/ansi/32u2/rules.mk new file mode 100644 index 0000000000..0c0b4c37c2 --- /dev/null +++ b/keyboards/hhkb/ansi/32u2/rules.mk @@ -0,0 +1,5 @@ +# MCU name +MCU = atmega32u2 + +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration diff --git a/keyboards/hhkb/ansi/config.h b/keyboards/hhkb/ansi/config.h index 8307fc1679..f2ba9fd74a 100644 --- a/keyboards/hhkb/ansi/config.h +++ b/keyboards/hhkb/ansi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4848 // HH = happy hacking -#define PRODUCT_ID 0x0001 // ANSI HHKB -#define DEVICE_VER 0x0104 -#define MANUFACTURER q.m.k -#define PRODUCT HHKB mod - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/hhkb/ansi/hhkb_avr.h b/keyboards/hhkb/ansi/hhkb_avr.h index f9446deef7..a805445e9b 100644 --- a/keyboards/hhkb/ansi/hhkb_avr.h +++ b/keyboards/hhkb/ansi/hhkb_avr.h @@ -78,6 +78,60 @@ static inline void KEY_SELECT(uint8_t ROW, uint8_t COL) } +#elif defined(__AVR_ATmega32U2__) +/* + * For TMK HHKB alt controller(ATMega32U4) + * + * row: PB0-2 + * col: PB3-5,6 + * key: PD3(pull-uped) + * prev: PB7 + * power: PD4(L:off/H:on) + * row-ext: PC6,7 for HHKB JP(active low) + */ +static inline void KEY_ENABLE(void) { (PORTB &= ~(1<<6)); } +static inline void KEY_UNABLE(void) { (PORTB |= (1<<6)); } +static inline bool KEY_STATE(void) { return (PIND & (1<<3)); } +static inline void KEY_PREV_ON(void) { (PORTB |= (1<<7)); } +static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); } +#ifdef HHKB_POWER_SAVING +static inline void KEY_POWER_ON(void) { + DDRB = 0xFF; PORTB = 0x40; // change pins output + DDRD |= (1<<4); PORTD |= (1<<4); // MOS FET switch on + /* Without this wait you will miss or get false key events. */ + _delay_ms(5); // wait for powering up +} +static inline void KEY_POWER_OFF(void) { + /* input with pull-up consumes less than without it when pin is open. */ + DDRB = 0x00; PORTB = 0xFF; // change pins input with pull-up + DDRD |= (1<<4); PORTD &= ~(1<<4); // MOS FET switch off +} +static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); } +#else +static inline void KEY_POWER_ON(void) {} +static inline void KEY_POWER_OFF(void) {} +static inline bool KEY_POWER_STATE(void) { return true; } +#endif +static inline void KEY_INIT(void) +{ + /* row,col,prev: output */ + DDRB = 0xFF; + PORTB = 0x40; // unable + /* key: input with pull-up */ + DDRD &= ~0x80; + PORTD |= 0x80; + + KEY_UNABLE(); + KEY_PREV_OFF(); + + KEY_POWER_OFF(); +} +static inline void KEY_SELECT(uint8_t ROW, uint8_t COL) +{ + PORTB = (PORTB & 0xC0) | (((COL) & 0x07)<<3) | ((ROW) & 0x07); + +} + #elif defined(__AVR_AT90USB1286__) /* diff --git a/keyboards/hhkb/ansi/info.json b/keyboards/hhkb/ansi/info.json index d2a6e42318..fdc8363141 100644 --- a/keyboards/hhkb/ansi/info.json +++ b/keyboards/hhkb/ansi/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "HHKB", + "keyboard_name": "ANSI", + "manufacturer": "HHKB", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4848", + "pid": "0x0001", + "device_version": "1.0.4" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/hhkb/ansi/rules.mk b/keyboards/hhkb/ansi/rules.mk index 0b110d6561..40a34662bc 100644 --- a/keyboards/hhkb/ansi/rules.mk +++ b/keyboards/hhkb/ansi/rules.mk @@ -14,9 +14,9 @@ CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration CUSTOM_MATRIX = yes # Custom matrix file for the HHKB NKRO_ENABLE = no # Enable N-Key Rollover -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -# HHKB_RN42_ENABLE = yes # Enable support for hasu's BT alt controller -- code borrowed from tmk source tree. +HHKB_RN42_ENABLE = no # Enable support for hasu's BT alt controller -- code borrowed from tmk source tree. # Either uncomment the HHKB_RN42_ENABLE line above, or run make enabling the # feature. Be sure to clean any existing build before trying to enable rn42 diff --git a/keyboards/hhkb/jp/config.h b/keyboards/hhkb/jp/config.h index 04ee61c768..a3e7dbd3a6 100644 --- a/keyboards/hhkb/jp/config.h +++ b/keyboards/hhkb/jp/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4848 // HH = happy hacking -#define PRODUCT_ID 0x0002 // HHKB JP -#define DEVICE_VER 0x0104 -#define MANUFACTURER q.m.k -#define PRODUCT HHKB mod - /* key matrix size */ #define MATRIX_ROWS 16 #define MATRIX_COLS 8 diff --git a/keyboards/hhkb/jp/info.json b/keyboards/hhkb/jp/info.json index ee9d1de53a..dd1cfbc870 100644 --- a/keyboards/hhkb/jp/info.json +++ b/keyboards/hhkb/jp/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "HHKB JP", + "keyboard_name": "JP", + "manufacturer": "HHKB", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4848", + "pid": "0x0002", + "device_version": "1.0.4" + }, "layouts": { "LAYOUT_jp": { "layout": [ diff --git a/keyboards/hhkb/yang/config.h b/keyboards/hhkb/yang/config.h new file mode 100644 index 0000000000..e1fa406a0b --- /dev/null +++ b/keyboards/hhkb/yang/config.h @@ -0,0 +1,123 @@ +/* +Copyright 2020 Kan-Ru Chen +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 + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +/* matrix power saving */ +#define MATRIX_POWER_SAVE_TIMEOUT_MS 10000 +#define MATRIX_POWER_SAVE_TIMEOUT_L2_MS 1800000 +#define MATRIX_POWER_SAVE_TIMEOUT_L3_MS 7200000 + +#define LED_CAPS_LOCK_PIN F4 + +#ifdef BLUETOOTH_ENABLE +# define OUTPUT_DEFAULT OUTPUT_AUTO + +# undef SERIAL_UART_BAUD +# undef SERIAL_UART_DATA +# undef SERIAL_UART_UBRR +# undef SERIAL_UART_RXD_VECT +# undef SERIAL_UART_TXD_READY +# undef SERIAL_UART_INIT + +# define SERIAL_UART_BAUD 76800 +# define SERIAL_UART_DATA UDR1 +# define SERIAL_UART_UBRR (F_CPU / (8UL * SERIAL_UART_BAUD) - 1) +# define SERIAL_UART_RXD_VECT USART1_RX_vect +# define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) +# define SERIAL_UART_INIT() \ + do { \ + cli(); \ + /* baud rate */ \ + UBRR1L = SERIAL_UART_UBRR; \ + /* baud rate */ \ + UBRR1H = SERIAL_UART_UBRR >> 8; \ + /* enable TX */ \ + UCSR1B |= (0 << TXCIE1) | (1 << TXEN1); \ + /* enable RX */ \ + UCSR1B |= (1 << RXCIE1) | (1 << RXEN1); \ + /* parity: none(00), even(01), odd(11) */ \ + UCSR1C |= (0 << UPM11) | (0 << UPM10); \ + /* 2x speed (error = 0.2%) */ \ + UCSR1A |= (1 << U2X1); \ + sei(); \ + } while (0) +#endif + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +//#define DEBUG_MATRIX_SCAN_RATE + +// Disable debounce +#define DEBOUNCE 0 diff --git a/keyboards/hhkb/yang/info.json b/keyboards/hhkb/yang/info.json new file mode 100644 index 0000000000..23e26fe2cb --- /dev/null +++ b/keyboards/hhkb/yang/info.json @@ -0,0 +1,77 @@ +{ + "keyboard_name": "HHKB BLE", + "manufacturer": "YANG", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0x4848", + "pid": "0x0001", + "device_version": "1.0.4" + }, + "layouts": { + "LAYOUT_60_hhkb": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "!", "x": 1, "y": 0 }, + { "label": "@", "x": 2, "y": 0 }, + { "label": "#", "x": 3, "y": 0 }, + { "label": "$", "x": 4, "y": 0 }, + { "label": "%", "x": 5, "y": 0 }, + { "label": "^", "x": 6, "y": 0 }, + { "label": "&", "x": 7, "y": 0 }, + { "label": "*", "x": 8, "y": 0 }, + { "label": "(", "x": 9, "y": 0 }, + { "label": ")", "x": 10, "y": 0 }, + { "label": "_", "x": 11, "y": 0 }, + { "label": "+", "x": 12, "y": 0 }, + { "label": "|", "x": 13, "y": 0 }, + { "label": "~", "x": 14, "y": 0 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "{", "x": 11.5, "y": 1 }, + { "label": "}", "x": 12.5, "y": 1 }, + { "label": "Delete", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Control", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ":", "x": 10.75, "y": 2 }, + { "label": "\"", "x": 11.75, "y": 2 }, + { "label": "Return", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": "<", "x": 9.25, "y": 3 }, + { "label": ">", "x": 10.25, "y": 3 }, + { "label": "?", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "Fn", "x": 14, "y": 3 }, + { "label": "", "x": 1.5, "y": 4 }, + { "label": "", "x": 2.5, "y": 4, "w": 1.5 }, + { "x": 4, "y": 4, "w": 6 }, + { "label": "", "x": 10, "y": 4, "w": 1.5 }, + { "label": "", "x": 11.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/hhkb/yang/keymaps/default/keymap.c b/keyboards/hhkb/yang/keymaps/default/keymap.c new file mode 100644 index 0000000000..f91e1fc243 --- /dev/null +++ b/keyboards/hhkb/yang/keymaps/default/keymap.c @@ -0,0 +1,73 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + * + * Copyright 2021 Kan-Ru Chen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum custom_layers { + BASE, + HHKB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BASE Level: Default Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [BASE] = LAYOUT_60_hhkb( // default layer + KC_ESC, KC_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_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_RSFT, MO(HHKB), + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + /* Layer HHKB: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [HHKB] = LAYOUT_60_hhkb( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; diff --git a/keyboards/hhkb/yang/keymaps/kanru/config.h b/keyboards/hhkb/yang/keymaps/kanru/config.h new file mode 100644 index 0000000000..81fef2ea5e --- /dev/null +++ b/keyboards/hhkb/yang/keymaps/kanru/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 Kan-Ru Chen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define MOUSEKEY_DELAY 90 +#define MOUSEKEY_INTERVAL 16 +#define MOUSEKEY_MAX_SPEED 4 +#define MOUSEKEY_WHEEL_INTERVAL 50 diff --git a/keyboards/hhkb/yang/keymaps/kanru/keymap.c b/keyboards/hhkb/yang/keymaps/kanru/keymap.c new file mode 100644 index 0000000000..c5d57c4cb3 --- /dev/null +++ b/keyboards/hhkb/yang/keymaps/kanru/keymap.c @@ -0,0 +1,126 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * kanru's HHKB Layout + * + * Copyright 2021 Kan-Ru Chen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 + +enum custom_layers { + BASE, + HHKB, + MOUSE, +}; + +#define BATTERY_FULL 550 +#define BATTERY_EMPTY 326 + +enum my_keycodes { KC_VBAT = SAFE_RANGE }; + +uint32_t adafruit_ble_read_battery_voltage(void); + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { +#ifdef BLUETOOTH_ENABLE + case KC_VBAT: + if (record->event.pressed) { + char vbat[8]; + uint8_t level = (adafruit_ble_read_battery_voltage() - BATTERY_EMPTY) / (float)(BATTERY_FULL - BATTERY_EMPTY) * 100; + snprintf(vbat, sizeof(vbat), "%d", level); + send_string(vbat); + } + return false; +#endif + default: + return true; + } +} + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BASE Level: Default Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [BASE] = LAYOUT_60_hhkb( // default layer + LT(MOUSE, KC_ESC), KC_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_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_RSFT, MO(HHKB), + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + /* Layer HHKB: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | BAT | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [HHKB] = LAYOUT_60_hhkb( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, KC_TRNS, KC_TRNS, KC_VBAT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + /* Layer MOUSE: Mouse Key mode (ESC) + |------+------+------+-----+----+----+----+----+----+----+-----+-----+-------+-------+----- | + | | | | | | | | | | | | | | | | + |------+------+------+-----+----+----+----+----+----+----+-----+-----+-------+-------+-----| + | | BTN1 | WH_U | | | | | | | | | | | | | + |------+------+------+-----+----+----+----+----+----+----+-----+-----+-------+-------+-----| + | | BTN2 | WH_D | | | |MS_L|MS_D|MS_U|MS_R| | | | | | + |------+------+------+-----+----+----+----+----+----+----+-----+-----+-------+-------+-----| + | | BTN3 | | | | | | | | | | | | | | + |------+------+------+-----+----+----+----+----+----+----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [MOUSE] = LAYOUT_60_hhkb( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN1, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN2, KC_WH_D, KC_TRNS, 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_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/hhkb/yang/matrix.c b/keyboards/hhkb/yang/matrix.c new file mode 100644 index 0000000000..f0eccc899d --- /dev/null +++ b/keyboards/hhkb/yang/matrix.c @@ -0,0 +1,173 @@ +/* +Copyright 2011 Jun Wako +Copyright 2020 Kan-Ru Chen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public 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 BLUETOOTH_ENABLE +# include "adafruit_ble.h" +#endif + +#define RELAX_TIME_US 5 +#define ADC_READ_TIME_US 5 + +uint8_t power_save_level; + +static uint32_t matrix_last_modified = 0; + +static inline void key_strobe_high(void) { writePinLow(B6); } +static inline void key_strobe_low(void) { writePinHigh(B6); } +static inline bool key_state(void) { return readPin(D7); } +static inline void key_prev_on(void) { writePinHigh(B7); } +static inline void key_prev_off(void) { writePinLow(B7); } +static inline bool key_power_state(void) { return !readPin(D6); } + +static inline void suspend_power_down_longer(void) { + uint8_t times = 60; + while (--times) suspend_power_down(); +} + +void matrix_power_up(void) { + dprint("[matrix_on]\n"); + // change pins output + DDRB = 0xFF; + PORTB = 0x40; + // switch MOS FET on + setPinOutput(D6); + writePinLow(D6); +} + +void matrix_power_down(void) { + dprint("[matrix_off]\n"); + // input with pull-up consumes less than without it when pin is open + DDRB = 0x00; + PORTB = 0xFF; + // switch MOS FET off + setPinOutput(D6); + writePinHigh(D6); +} + +static inline void key_select_row(uint8_t row) { PORTB = (PORTB & 0b11111000) | ((row)&0b111); } +static inline void key_select_col(uint8_t col) { PORTB = (PORTB & 0b11000111) | (((col)&0b111) << 3); } +static inline bool key_prev_was_on(matrix_row_t matrix[], uint8_t row, uint8_t col) { return matrix[row] & (1 << col); } + +void matrix_init_custom(void) { power_save_level = 0; } + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool matrix_has_changed = false; + + // power on + if (!key_power_state()) { + matrix_power_up(); + } + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + matrix_row_t last_row_value = current_matrix[row]; + + key_select_row(row); + wait_us(RELAX_TIME_US); + + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + // Hysteresis control: assert(1) when previous key state is on + if (key_prev_was_on(current_matrix, row, col)) { + key_prev_on(); + } else { + key_prev_off(); + } + + // Disable interrupts to encure the ADC timing is correct + cli(); + + // strobe + key_select_col(col); + key_strobe_high(); + + // Wait for ADC to outputs its value. + // 1us was ok on one HHKB, but not worked on another. + // no wait doesn't work on Teensy++ with pro(1us works) + // no wait does work on tmk PCB(8MHz) with pro2 + // 1us wait does work on both of above + // 1us wait doesn't work on tmk(16MHz) + // 5us wait does work on tmk(16MHz) + // 5us wait does work on tmk(16MHz/2) + // 5us wait does work on tmk(8MHz) + // 10us wait does work on Teensy++ with pro + // 10us wait does work on 328p+iwrap with pro + // 10us wait doesn't work on tmk PCB(8MHz) with pro2(very lagged scan) + wait_us(ADC_READ_TIME_US); + + if (key_state()) { + current_matrix[row] &= ~(1 << col); + } else { + current_matrix[row] |= (1 << col); + } + + key_strobe_low(); + sei(); + + // Make sure enough time has elapsed since the last call + // This is to ensure the matrix voltages have relaxed + wait_us(RELAX_TIME_US); + } + if (current_matrix[row] ^ last_row_value) { + matrix_has_changed = true; + matrix_last_modified = timer_read32(); + } + } + + // Power saving + uint32_t time_diff = timer_elapsed32(matrix_last_modified); + if (time_diff > MATRIX_POWER_SAVE_TIMEOUT_L3_MS) { + power_save_level = 3; + suspend_power_down_longer(); + } else if (time_diff > MATRIX_POWER_SAVE_TIMEOUT_L2_MS) { + power_save_level = 2; +#ifdef BLUETOOTH_ENABLE + if (!adafruit_ble_is_connected()) { + power_save_level = 3; + } +#endif + suspend_power_down_longer(); + } else if (time_diff > MATRIX_POWER_SAVE_TIMEOUT_MS) { + power_save_level = 1; + suspend_power_down(); + } else { + if (power_save_level != 0) { + power_save_level = 0; + suspend_wakeup_init(); + } + } + + return matrix_has_changed; +} + +bool adafruit_ble_delbonds(void); +bool adafruit_ble_reconnect(void); + +bool command_extra(uint8_t code) { + switch (code) { +#ifdef BLUETOOTH_ENABLE + case KC_R: + adafruit_ble_delbonds(); + return true; + case KC_S: + adafruit_ble_reconnect(); + return true; +#endif + default: + return false; + } +} diff --git a/keyboards/hhkb/yang/memo.md b/keyboards/hhkb/yang/memo.md new file mode 100644 index 0000000000..5c710482b3 --- /dev/null +++ b/keyboards/hhkb/yang/memo.md @@ -0,0 +1,135 @@ +## Hardware Information + +The YANG HHKB BLE controller design is similiar to hasu's +controller. Most pins are compatiable. + +**MCU**: ATmega32U4 +**Bluetooth**: MDBT40 (nRF51822-based), with Adafruit Bluefruit LE UART Friend firmware. +**Power**: 3.3V +**CPU Frequency**: 8MHz +**Bootloader**: Lufa MassStorage + +## Pin usage + +| Description | HASU pin usage | YANG mod changed | +|:------------------------------------ | ---------------------- | -------------------------- | +| ~KEY: Lo(0) when key is pressed | PD7 input(with pullup) | | +| Hysteresis: Hi(1) if key was pressed | PB7 output | | +| Row selector bit0 | PB0 output | | +| Row selector bit1 | PB1 output | | +| Row selector bit2 | PB2 output | | +| Col selector bit0 | PB3 output | | +| Col selector bit1 | PB4 output | | +| Col selector bit2 | PB5 output | | +| Key unable | PB6 output | | +| Switch power | PD4 output | PD6 output (PMOS FET) | +| Bluetooth UART Rx | PC4 input | PD2 | +| Bluetooth UART Tx | PC5 output | PD3 | +| Bluetooth power | | PD5 output (low: power on) | +| LED 0 | | PF4 | +| LED 2 | | PF1 | +| LED 4 | | PF0 | +| Unused for PRO2 | PC6 | | +| Unused for PRO2 | PC7 | | +| Inner USB power | | PF7 | + +## How to flash LUFA MassStorage bootloader on Linux + +The FAT filesystem on Linux very often cannot flush the write cache, +leading to broken firmware in the flash. + +We can use `dd` to write to the virtual block storage directly to +bypass the vfs layer. + +``` +dd if=FLASH.bin of= seek=4 +``` + +Skip 4 sectors because the default sector size of the virtual device +and dd is 512 bytes and the emulated flash file starts at 5th sector. + +## How to find the path of the virtual block device + +After the keyboard boots into flash mode, on Linux system you should +be able to find the block device in `dmesg` logs. + +For exmaple if you type + +``` +sudo dmesg +``` + +You should find something like + +``` +[357885.143593] usb 1-1.4: USB disconnect, device number 24 +[357885.627740] usb 1-1.4: new full-speed USB device number 25 using xhci_hcd +[357885.729486] usb 1-1.4: New USB device found, idVendor=03eb, idProduct=1962, bcdDevice= 0.01 +[357885.729492] usb 1-1.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +[357885.745620] SCSI subsystem initialized +[357885.746712] usb-storage 1-1.4:1.0: USB Mass Storage device detected +[357885.746818] scsi host0: usb-storage 1-1.4:1.0 +[357885.746919] usbcore: registered new interface driver usb-storage +[357885.747689] usbcore: registered new interface driver uas +[357886.766755] scsi 0:0:0:0: Direct-Access LUFA Bootloader 0.00 PQ: 0 ANSI: 0 +[357886.773216] scsi 0:0:0:0: Attached scsi generic sg0 type 0 +[357886.777474] sd 0:0:0:0: [sdx] 134 512-byte logical blocks: (68.6 kB/67.0 KiB) +[357886.780300] sd 0:0:0:0: [sdx] Write Protect is off +[357886.780302] sd 0:0:0:0: [sdx] Mode Sense: 00 00 00 00 +[357886.783113] sd 0:0:0:0: [sdx] Asking for cache data failed +[357886.783114] sd 0:0:0:0: [sdx] Assuming drive cache: write through +[357886.842676] sdx: +[357886.859528] sd 0:0:0:0: [sdx] Attached SCSI removable disk +``` + +The `sdx` is the block device name and the full path is at `/dev/sdx` +The above flash command will become + +``` +dd if=FLASH.bin of=/dev/sdx seek=4 +``` + +## Adafruit Bluefruit LE UART configuraton + +The default baud rate used by the firmware is 76800 although adafruit +do not recommend using higher baudrates than 9600 because the nRF51 +UART can drop characters. + +Double speed mode to get more accurate async reading because the F_CPU +speed is 8MHz. + +## Power saving mode design + +Power saving is only enabled when USB is detached and using battery +power. Here we define several levels of power saving mode, each saves +more power but takes longer to resume operation. + +1. Level 1: idle mode is activated after a short configurable time + (MATRIX_POWER_SAVE_TIMEOUT_MS) MCU is put into sleep mode and only + scan the matrix per 15ms. PORTB pins are set to input with pull-up + to save power. Sensing PCB is powered down between scans. + +2. Level 2: after idling for longer (MATRIX_POWER_SAVE_TIMEOUT_L2_MS) + we entry this state. Matrix scan is skipped until the time lapses + 900ms. + +2. Level 3: sleep mode is activated after a longer timeout + (MATRIX_POWER_SAVE_TIMEOUT_L3_MS) Bluetooth module is powered down. + +## Battery reading + +VBAT is connected to AIN6 pin on the MDBT40 module and the AREF pin is +the reference voltage. Doing a ADC with AT+HWDAC=6 will return the +difference between VBAT and VREF. + +It seems when fully charged the ADC read is 550. Likely VREF is 3311mV +and the fully charged VBAT is thus 3861mV. + +Enable battery service with AT+BLEBATTEN=1 first then we can update the +battery level by using AT+BLEBATTVAL=%d + +## References + +* https://github.com/joric/qmk/wiki/hhkb_ble +* https://github.com/tomsmalley/custom-topre-guide +* https://github.com/abcminiuser/lufa/blob/master/Bootloaders/MassStorage/Lib/VirtualFAT.h diff --git a/keyboards/hhkb/yang/readme.md b/keyboards/hhkb/yang/readme.md new file mode 100644 index 0000000000..6f85c0f198 --- /dev/null +++ b/keyboards/hhkb/yang/readme.md @@ -0,0 +1,118 @@ +# HHKB Alternate Controller (YANG HHKB BLE Mod) + +![YANG HHKB BLE Mod](https://i.imgur.com/aZP1GYc.jpeg) + +An alternative controler for the HHKB designed by YANG (yangdigi) +based on the hasu controller. + +* Keyboard Maintainer: [Kan-Ru Chen](https://github.com/kanru) +* Hardware Supported: YANG HHKB BLE Controller +* Hardware Availability: https://kbdfans.com/products/hhkb-ble-mod-upgrade-module + +Make example for this keyboard (after setting up your build environment): + + make hhkb/yang:default + +To flash, first boot your keyboard into bootloader (hold ESC and attach usb cable) +then a virtual USB storage should appear. You can copy the `hhkb_yang_default.bin` +file to the virtual USB storage and override the `HHKB_BLE.BIN` file in there. + +Make sure to unmount and eject the virtual USB storage. + +## Features: + +- [x] QMK (via USB) +- [x] Bluetooth (BLE) +- [x] Power saving mode + - [x] Idle mode + - [x] Deep sleep mode +- [x] LEDs +- [x] Battery service +- [x] Special commands + - [x] Switch BT peer + +## Entering flash mode + +Different ways to enter flash mode: + +* Press and hold the ESC key. Insert the USB cable to enter the flash + mode. When the OS shows the drive disk, you can release the key. + +* Use the magic command LSHIFT+RSHIFT+B to reboot to bootloader then + quickly hold the ESC key. + +If you reflash the wrong firmware or did not reflash successfully, you +can no longer enter the flash mode, especially the wireless keyboard +with battery. You need to turn off the keyboard's power switch, and +re-enter the flash mode, reflash the correct firmware. + +After entering the bootloader(flash mode), three indicators on the top +right of the HHKB BLE controller will flash. LED3(green) will flash +quickly when writing firmware to the controller. + +If these three leds are not soldered or your hhkb case is black, you +can't know their status, but you can still see LED3 under the right +USB port. + +## How to reliably flash LUFA MassStorage bootloader on Linux + +The FAT filesystem on Linux very often cannot flush the write cache, +leading to broken firmware in the flash. + +We can use `dd` to write to the virtual block storage directly to +bypass the vfs layer. + +``` +dd if=FLASH.bin of= seek=4 +``` + +Skip 4 sectors because the default sector size of the virtual device +and dd is 512 bytes and the emulated flash file starts at 5th sector. + +## How to find the path of the virtual block device + +After the keyboard boots into flash mode, on Linux system you should +be able to find the block device in `dmesg` logs. + +For exmaple if you type + +``` +sudo dmesg +``` + +You should find something like + +``` +[357885.143593] usb 1-1.4: USB disconnect, device number 24 +[357885.627740] usb 1-1.4: new full-speed USB device number 25 using xhci_hcd +[357885.729486] usb 1-1.4: New USB device found, idVendor=03eb, idProduct=1962, bcdDevice= 0.01 +[357885.729492] usb 1-1.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +[357885.745620] SCSI subsystem initialized +[357885.746712] usb-storage 1-1.4:1.0: USB Mass Storage device detected +[357885.746818] scsi host0: usb-storage 1-1.4:1.0 +[357885.746919] usbcore: registered new interface driver usb-storage +[357885.747689] usbcore: registered new interface driver uas +[357886.766755] scsi 0:0:0:0: Direct-Access LUFA Bootloader 0.00 PQ: 0 ANSI: 0 +[357886.773216] scsi 0:0:0:0: Attached scsi generic sg0 type 0 +[357886.777474] sd 0:0:0:0: [sdx] 134 512-byte logical blocks: (68.6 kB/67.0 KiB) +[357886.780300] sd 0:0:0:0: [sdx] Write Protect is off +[357886.780302] sd 0:0:0:0: [sdx] Mode Sense: 00 00 00 00 +[357886.783113] sd 0:0:0:0: [sdx] Asking for cache data failed +[357886.783114] sd 0:0:0:0: [sdx] Assuming drive cache: write through +[357886.842676] sdx: +[357886.859528] sd 0:0:0:0: [sdx] Attached SCSI removable disk +``` + +The `sdx` is the block device name and the full path is at `/dev/sdx` +The above flash command will become + +``` +dd if=FLASH.bin of=/dev/sdx seek=4 +``` + +**Caution**: if set to incorrect device it may wipe out +your actual disk. + +## Help page of original firmware + +http://help.ydkb.io/doku.php?id=en:kb-mods:hhkb-ble diff --git a/keyboards/hhkb/yang/rules.mk b/keyboards/hhkb/yang/rules.mk new file mode 100644 index 0000000000..6027a07176 --- /dev/null +++ b/keyboards/hhkb/yang/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# MCU frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = lufa-ms + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = no # USB Nkey Rollover + +LAYOUTS = 60_hhkb + +# 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/hhkb/yang/yang.c b/keyboards/hhkb/yang/yang.c new file mode 100644 index 0000000000..7ae0d76390 --- /dev/null +++ b/keyboards/hhkb/yang/yang.c @@ -0,0 +1,118 @@ +/* Copyright 2021 Kan-Ru Chen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "yang.h" + +extern uint8_t power_save_level; + +void hhkb_led_on(uint8_t led) { + switch (led) { + case 1: + writePinHigh(F4); + break; + case 2: + writePinHigh(F2); + break; + case 3: + writePinHigh(F0); + break; + } +} + +void hhkb_led_off(uint8_t led) { + switch (led) { + case 1: + writePinLow(F4); + break; + case 2: + writePinLow(F2); + break; + case 3: + writePinLow(F0); + break; + } +} + +void keyboard_pre_init_kb(void) { + // BT power up + setPinOutput(D5); + writePinLow(D5); + + // Row selectors + setPinOutput(B0); + setPinOutput(B1); + setPinOutput(B2); + + // Col selectors + setPinOutput(B3); + setPinOutput(B4); + setPinOutput(B5); + + // Key strobe + setPinOutput(B6); + writePinHigh(B6); + + // Key: input with pull-up + setPinInputHigh(D7); + + // Unused pins on Pro2 ANSI + // Input with pull up to save power + setPinInputHigh(C6); + setPinInputHigh(C7); + + // LED pin configuration + setPinOutput(F0); + setPinOutput(F1); + setPinOutput(F4); + writePinLow(F0); + writePinLow(F1); + writePinLow(F4); + + // Turn on switch PCB + setPinOutput(D6); + writePinLow(D6); + + keyboard_pre_init_user(); +} + +void suspend_power_down_kb(void) { + if (power_save_level > 2) { + // Disable UART TX to avoid current leakage + UCSR1B &= ~_BV(TXEN1); + // Power down BLE module + writePinHigh(D5); + } + + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + // Power up BLE module + writePinLow(D5); + // Enable UART TX + UCSR1B |= _BV(TXEN1); + + suspend_wakeup_init_user(); +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + state = layer_state_set_user(state); + + writePin(F1, IS_LAYER_ON_STATE(state, 1)); + writePin(F0, IS_LAYER_ON_STATE(state, 2)); + + return state; +} diff --git a/keyboards/hhkb/yang/yang.h b/keyboards/hhkb/yang/yang.h new file mode 100644 index 0000000000..4858c18554 --- /dev/null +++ b/keyboards/hhkb/yang/yang.h @@ -0,0 +1,36 @@ +/* Copyright 2021 Kan-Ru Chen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_60_hhkb( \ + K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \ + K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \ + K33, K04, K03, K14, K15, K24, K25, K45, K44, K65, K64, K74, K53, \ + K34, K05, K06, K07, K16, K17, K26, K46, K66, K76, K75, K55, K54, \ + K35, K36, K37, K57, K56) \ + \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, KC_NO }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, KC_NO }, \ + { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ +} diff --git a/keyboards/hhkb_lite_2/config.h b/keyboards/hhkb_lite_2/config.h index d9dd641951..4909bb5e8a 100644 --- a/keyboards/hhkb_lite_2/config.h +++ b/keyboards/hhkb_lite_2/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x88B2 -#define PRODUCT_ID 0x88B2 -#define DEVICE_VER 0x0002 -#define MANUFACTURER PFU -#define PRODUCT HHKB Lite 2 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 14 diff --git a/keyboards/hhkb_lite_2/info.json b/keyboards/hhkb_lite_2/info.json index 0793adafd1..bceac58ba4 100644 --- a/keyboards/hhkb_lite_2/info.json +++ b/keyboards/hhkb_lite_2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "HHKB Lite 2", + "manufacturer": "PFU", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x88B2", + "pid": "0x88B2", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/hidtech/bastyl/config.h b/keyboards/hidtech/bastyl/config.h index f89e993abe..22bdc6c8bd 100644 --- a/keyboards/hidtech/bastyl/config.h +++ b/keyboards/hidtech/bastyl/config.h @@ -18,11 +18,6 @@ #pragma once #include "config_common.h" -#define VENDOR_ID 0xA8F7 -#define PRODUCT_ID 0x1827 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HID Technologies -#define PRODUCT Bastyl #define MATRIX_ROWS 10 #define MATRIX_COLS 6 diff --git a/keyboards/hidtech/bastyl/info.json b/keyboards/hidtech/bastyl/info.json index 5730cf5af2..a15d5efcf0 100644 --- a/keyboards/hidtech/bastyl/info.json +++ b/keyboards/hidtech/bastyl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bastyl", + "manufacturer": "HID Technologies", "url": "https://www.hidtech.ca/?product=bastyl-black", "maintainer": "HID-Technologies", + "usb": { + "vid": "0xA8F7", + "pid": "0x1827", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/hifumi/config.h b/keyboards/hifumi/config.h index cdbc9ea4f1..45b72bd163 100644 --- a/keyboards/hifumi/config.h +++ b/keyboards/hifumi/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER riconken -#define PRODUCT hifumi - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/hifumi/info.json b/keyboards/hifumi/info.json index 27310fc8ef..5f9821a7d8 100644 --- a/keyboards/hifumi/info.json +++ b/keyboards/hifumi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "hifumi", + "manufacturer": "riconken", "url": "https://github.com/zk-phi/1x2x3-keyboard", "maintainer": "riconken", + "usb": { + "vid": "0xFEED", + "pid": "0x3060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"F5", "x":0, "y":0}, {"label":"Up", "x":1, "y":0}, {"label":"PrSc", "x":2, "y":0}, {"label":"Left", "x":0, "y":1}, {"label":"Down", "x":1, "y":1}, {"label":"Right", "x":2, "y":1}] diff --git a/keyboards/hineybush/h08_ocelot/config.h b/keyboards/hineybush/h08_ocelot/config.h index 80f1a1df1e..4b10abc1e3 100644 --- a/keyboards/hineybush/h08_ocelot/config.h +++ b/keyboards/hineybush/h08_ocelot/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE8E9 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hiney LLC -#define PRODUCT h08 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/hineybush/h08_ocelot/info.json b/keyboards/hineybush/h08_ocelot/info.json index 2e8dd25a87..94de718a3e 100644 --- a/keyboards/hineybush/h08_ocelot/info.json +++ b/keyboards/hineybush/h08_ocelot/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "h08", + "manufacturer": "Hiney LLC", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xE8E9", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}] diff --git a/keyboards/hineybush/h10/config.h b/keyboards/hineybush/h10/config.h index eafcd95eef..7c878f4f3d 100644 --- a/keyboards/hineybush/h10/config.h +++ b/keyboards/hineybush/h10/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEBD8 -#define DEVICE_VER 0x0001 -#define MANUFACTURER hineybush -#define PRODUCT h10 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/hineybush/h10/info.json b/keyboards/hineybush/h10/info.json index ecc8bd4c39..6570e0af49 100644 --- a/keyboards/hineybush/h10/info.json +++ b/keyboards/hineybush/h10/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "h10", + "manufacturer": "hineybush", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xEBD8", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_6x4": { "layout": [ diff --git a/keyboards/hineybush/h60/config.h b/keyboards/hineybush/h60/config.h index 00c238a860..3a2109067c 100644 --- a/keyboards/hineybush/h60/config.h +++ b/keyboards/hineybush/h60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEBBE -#define DEVICE_VER 0x0001 -#define MANUFACTURER hineybush keyboards -#define PRODUCT h60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/hineybush/h60/info.json b/keyboards/hineybush/h60/info.json index 81b4757a77..b32da796d7 100644 --- a/keyboards/hineybush/h60/info.json +++ b/keyboards/hineybush/h60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "h60", + "manufacturer": "hineybush", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xEBBE", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/hineybush/h65/config.h b/keyboards/hineybush/h65/config.h index 19c9c5b5d8..e205822ee3 100644 --- a/keyboards/hineybush/h65/config.h +++ b/keyboards/hineybush/h65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE9E4 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hiney LLC -#define PRODUCT h65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/hineybush/h65/info.json b/keyboards/hineybush/h65/info.json index dcca3f4868..500843fe07 100644 --- a/keyboards/hineybush/h65/info.json +++ b/keyboards/hineybush/h65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "h65", + "manufacturer": "Hiney LLC", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xE9E4", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/hineybush/h65_hotswap/config.h b/keyboards/hineybush/h65_hotswap/config.h index f266003a88..e205822ee3 100644 --- a/keyboards/hineybush/h65_hotswap/config.h +++ b/keyboards/hineybush/h65_hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE8B7 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hiney LLC -#define PRODUCT h65 hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/hineybush/h65_hotswap/info.json b/keyboards/hineybush/h65_hotswap/info.json index 46b5192d68..c2472e6879 100644 --- a/keyboards/hineybush/h65_hotswap/info.json +++ b/keyboards/hineybush/h65_hotswap/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "h65 hotswap", + "manufacturer": "Hiney LLC", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xE8B7", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/hineybush/h660s/config.h b/keyboards/hineybush/h660s/config.h index 45a1c53508..64548b60e4 100644 --- a/keyboards/hineybush/h660s/config.h +++ b/keyboards/hineybush/h660s/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEB1B -#define DEVICE_VER 0x0001 -#define MANUFACTURER hineybush keyboards -#define PRODUCT h660s - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/hineybush/h660s/info.json b/keyboards/hineybush/h660s/info.json index 6671a8d777..f3a5f7aaf4 100644 --- a/keyboards/hineybush/h660s/info.json +++ b/keyboards/hineybush/h660s/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "h660-s", + "keyboard_name": "h660s", + "manufacturer": "hineybush", "url": "", "maintainer": "Josh Hinnebusch", + "usb": { + "vid": "0x04D8", + "pid": "0xEB1B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_66_ansi": { "layout": [ diff --git a/keyboards/hineybush/h75_singa/config.h b/keyboards/hineybush/h75_singa/config.h index c8b3ab7285..ab5cae00d9 100644 --- a/keyboards/hineybush/h75_singa/config.h +++ b/keyboards/hineybush/h75_singa/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEC9A -#define DEVICE_VER 0x0001 -#define MANUFACTURER Singa Keyboards -#define PRODUCT h75_singa - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/hineybush/h75_singa/info.json b/keyboards/hineybush/h75_singa/info.json index 89a3c34667..ba2f50b355 100644 --- a/keyboards/hineybush/h75_singa/info.json +++ b/keyboards/hineybush/h75_singa/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "h75_singa", + "manufacturer": "Singa Keyboards", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xEC9A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "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":"!", "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}, {"x":14, "y":1}, {"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":"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}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"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":"\u2191", "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}, {"x":3.75, "y":5, "w":2.75}, {"x":6.5, "y":5, "w":1.25}, {"x":7.75, "y":5, "w":2.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] diff --git a/keyboards/hineybush/h87a/config.h b/keyboards/hineybush/h87a/config.h index e6aeb38707..8059e54cb9 100644 --- a/keyboards/hineybush/h87a/config.h +++ b/keyboards/hineybush/h87a/config.h @@ -15,13 +15,6 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xECE9 -#define DEVICE_VER 0x0001 -#define MANUFACTURER hineybush keyboards -#define PRODUCT h87a - #define CONFIG_H #include "config_common.h" diff --git a/keyboards/hineybush/h87a/info.json b/keyboards/hineybush/h87a/info.json index 40f844335a..e9164edfcd 100644 --- a/keyboards/hineybush/h87a/info.json +++ b/keyboards/hineybush/h87a/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "h87a", + "manufacturer": "hineybush", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xECE9", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"label":"Bksp", "x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c b/keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c index d505d5171d..d59438f6b3 100644 --- a/keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c +++ b/keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c @@ -245,7 +245,7 @@ void matrix_scan_user(void) { } layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _BL: custom_backlight_level(0); rgblight_sethsv_noeeprom(180,100,255); diff --git a/keyboards/hineybush/h88/config.h b/keyboards/hineybush/h88/config.h index 89af18b6e3..c86c41fcf6 100644 --- a/keyboards/hineybush/h88/config.h +++ b/keyboards/hineybush/h88/config.h @@ -19,15 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xECA2 -#define DEVICE_VER 0x0001 -#define MANUFACTURER hineybush keyboards -#define PRODUCT h88 - - - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/hineybush/h88/info.json b/keyboards/hineybush/h88/info.json index 07aa168f48..559e7a2027 100644 --- a/keyboards/hineybush/h88/info.json +++ b/keyboards/hineybush/h88/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "h88a", + "keyboard_name": "h88", + "manufacturer": "hineybush", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xECA2", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"F13", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"x":13, "y":1.25}, {"label":"Bksp", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"x":12.75, "y":3.25}, {"label":"Enter", "x":13.75, "y":3.25, "w":1.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] diff --git a/keyboards/hineybush/hbcp/config.h b/keyboards/hineybush/hbcp/config.h index 5b7948883b..b5ca670a7f 100644 --- a/keyboards/hineybush/hbcp/config.h +++ b/keyboards/hineybush/hbcp/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xECE8 -#define DEVICE_VER 0x0001 -#define MANUFACTURER hineybush keyboards -#define PRODUCT hbcp - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/hineybush/hbcp/info.json b/keyboards/hineybush/hbcp/info.json index d6f7c84bbc..d63e293bb5 100644 --- a/keyboards/hineybush/hbcp/info.json +++ b/keyboards/hineybush/hbcp/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "hbcp", + "manufacturer": "hineybush", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xECE8", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/hineybush/hineyg80/config.h b/keyboards/hineybush/hineyg80/config.h index 1567609ff7..b5bf45e31f 100644 --- a/keyboards/hineybush/hineyg80/config.h +++ b/keyboards/hineybush/hineyg80/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER hineybush -#define PRODUCT hineyG80 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/hineybush/hineyg80/info.json b/keyboards/hineybush/hineyg80/info.json index 68462b827e..40c54ebe40 100644 --- a/keyboards/hineybush/hineyg80/info.json +++ b/keyboards/hineybush/hineyg80/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "hineyg80", + "keyboard_name": "hineyG80", + "manufacturer": "hineybush", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Pause", "x":15.5, "y":0}, {"label":"Insert", "x":16.5, "y":0}, {"label":"Home", "x":17.5, "y":0}, {"label":"PgUp", "x":18.5, "y":0}, {"label":"Scroll Lock", "x":15.5, "y":1}, {"label":"Delete", "x":16.5, "y":1}, {"label":"End", "x":17.5, "y":1}, {"label":"PgDn", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"label":"Bksp", "x":13, "y":2}, {"x":14, "y":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"-", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"+", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"\"", "x":11.75, "y":4}, {"x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":4, "w":1.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":1.25}, {"x":1.25, "y":5}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6}, {"label":"Win", "x":1, "y":6}, {"label":"Alt", "x":2, "y":6}, {"x":3, "y":6, "w":6}, {"label":"Alt", "x":9, "y":6}, {"label":"Win", "x":10, "y":6}, {"label":"Menu", "x":11, "y":6}, {"label":"Ctrl", "x":12, "y":6}, {"label":"\u2190", "x":13.25, "y":6.25}, {"label":"\u2193", "x":14.25, "y":6.25}, {"label":"\u2192", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}] diff --git a/keyboards/hineybush/physix/config.h b/keyboards/hineybush/physix/config.h index 87c49270b3..c423e0328b 100644 --- a/keyboards/hineybush/physix/config.h +++ b/keyboards/hineybush/physix/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEC81 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LZ -#define PRODUCT PhysiX - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/hineybush/physix/info.json b/keyboards/hineybush/physix/info.json index 4d5133945f..274f9bb725 100644 --- a/keyboards/hineybush/physix/info.json +++ b/keyboards/hineybush/physix/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "physix", + "keyboard_name": "PhysiX", + "manufacturer": "LZ", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xEC81", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/hineybush/sm68/config.h b/keyboards/hineybush/sm68/config.h index 89541179c2..daec667868 100644 --- a/keyboards/hineybush/sm68/config.h +++ b/keyboards/hineybush/sm68/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEC9F -#define DEVICE_VER 0x0001 -#define MANUFACTURER hineybush keyboards -#define PRODUCT sm68 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/hineybush/sm68/info.json b/keyboards/hineybush/sm68/info.json index ec4227af86..a3b9e4c051 100644 --- a/keyboards/hineybush/sm68/info.json +++ b/keyboards/hineybush/sm68/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "sm68", + "manufacturer": "hineybush", "url": "", "maintainer": "hineybush", + "usb": { + "vid": "0x04D8", + "pid": "0xEC9F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_68_ansi_split_bs_rshift": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"x":16.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.5, "y":1}, {"x":16.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"\u2191", "x":15.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.5, "y":4}, {"label":"\u2193", "x":15.5, "y":4}, {"label":"\u2192", "x":16.5, "y":4}] diff --git a/keyboards/hnahkb/freyr/config.h b/keyboards/hnahkb/freyr/config.h index 9658793aa2..ed4d97c0bb 100644 --- a/keyboards/hnahkb/freyr/config.h +++ b/keyboards/hnahkb/freyr/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1895 -#define DEVICE_VER 0x0002 -#define MANUFACTURER HnahKB -#define PRODUCT Freyr - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/hnahkb/freyr/info.json b/keyboards/hnahkb/freyr/info.json index e2b1c6c2c0..4bb8ae739d 100644 --- a/keyboards/hnahkb/freyr/info.json +++ b/keyboards/hnahkb/freyr/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "freyr", + "keyboard_name": "Freyr", + "manufacturer": "HnahKB", "url": "", "maintainer": "vuhopkep", + "usb": { + "vid": "0xFEED", + "pid": "0x1895", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/hnahkb/stella/config.h b/keyboards/hnahkb/stella/config.h index 2ca475c38c..b213467ac7 100644 --- a/keyboards/hnahkb/stella/config.h +++ b/keyboards/hnahkb/stella/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0AB7 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HnahKB -#define PRODUCT Stella - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/hnahkb/stella/info.json b/keyboards/hnahkb/stella/info.json index da36b6b264..bd3870bd4e 100644 --- a/keyboards/hnahkb/stella/info.json +++ b/keyboards/hnahkb/stella/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Stella", + "manufacturer": "HnahKB", "url": "", "maintainer": "VGS", + "usb": { + "vid": "0xFEED", + "pid": "0x0AB7", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/hnahkb/vn66/config.h b/keyboards/hnahkb/vn66/config.h index 1f6387fafa..52c03503ae 100644 --- a/keyboards/hnahkb/vn66/config.h +++ b/keyboards/hnahkb/vn66/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCA2C -#define DEVICE_VER 0x0001 -#define MANUFACTURER HnahKB -#define PRODUCT VN66 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/hnahkb/vn66/info.json b/keyboards/hnahkb/vn66/info.json index a1063ce993..bff3ba596d 100644 --- a/keyboards/hnahkb/vn66/info.json +++ b/keyboards/hnahkb/vn66/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "vn66", + "keyboard_name": "VN66", + "manufacturer": "HnahKB", "url": "fb.com/groups/VietNamMechKey/", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xCA2C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/holyswitch/southpaw75/config.h b/keyboards/holyswitch/southpaw75/config.h index c9971625ad..eebe290e14 100644 --- a/keyboards/holyswitch/southpaw75/config.h +++ b/keyboards/holyswitch/southpaw75/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x484F // "HO" short for Holy Switch -#define PRODUCT_ID 0x5350 // "SP" short for Southpaw -#define DEVICE_VER 0x0001 -#define MANUFACTURER drewguy -#define PRODUCT southpaw default - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 9 diff --git a/keyboards/holyswitch/southpaw75/info.json b/keyboards/holyswitch/southpaw75/info.json index ff993260ba..f96a75e3cc 100644 --- a/keyboards/holyswitch/southpaw75/info.json +++ b/keyboards/holyswitch/southpaw75/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Southpaw75", + "keyboard_name": "southpaw default", + "manufacturer": "drewguy", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x484F", + "pid": "0x5350", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/horizon/config.h b/keyboards/horizon/config.h index bb0a6dcbfc..5ab65f31dc 100644 --- a/keyboards/horizon/config.h +++ b/keyboards/horizon/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Steven Karrmann -#define PRODUCT Horizon - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 14 diff --git a/keyboards/horizon/info.json b/keyboards/horizon/info.json index ea5f9cb034..c0dc63c1f1 100644 --- a/keyboards/horizon/info.json +++ b/keyboards/horizon/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Horizon", + "manufacturer": "Steven Karrmann", "url": "https://github.com/skarrmann/horizon", "maintainer": "Steven Karrmann", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/horrortroll/chinese_pcb/black_e65/config.h b/keyboards/horrortroll/chinese_pcb/black_e65/config.h index c3b5ff75a5..f544206b81 100644 --- a/keyboards/horrortroll/chinese_pcb/black_e65/config.h +++ b/keyboards/horrortroll/chinese_pcb/black_e65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7516 -#define PRODUCT_ID 0x6003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HorrorTroll -#define PRODUCT Black E6.5 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/horrortroll/chinese_pcb/black_e65/info.json b/keyboards/horrortroll/chinese_pcb/black_e65/info.json index 6e53613d4c..f08cdf109f 100644 --- a/keyboards/horrortroll/chinese_pcb/black_e65/info.json +++ b/keyboards/horrortroll/chinese_pcb/black_e65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Devil68 Pro", + "keyboard_name": "Black E6.5", + "manufacturer": "HorrorTroll", "url": "", "maintainer": "HorrorTroll", + "usb": { + "vid": "0x7516", + "pid": "0x6003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/config.h b/keyboards/horrortroll/chinese_pcb/devil68_pro/config.h index af7affbb83..82465cf99c 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/config.h +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7516 -#define PRODUCT_ID 0x6001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HorrorTroll -#define PRODUCT Devil68 Pro - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/info.json b/keyboards/horrortroll/chinese_pcb/devil68_pro/info.json index 9e7f4524a3..ff541f7ef2 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/info.json +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Devil68 Pro", + "manufacturer": "HorrorTroll", "url": "", "maintainer": "HorrorTroll", + "usb": { + "vid": "0x7516", + "pid": "0x6001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/horrortroll/handwired_k552/config.h b/keyboards/horrortroll/handwired_k552/config.h index 3caaee51e5..09e89b13c4 100644 --- a/keyboards/horrortroll/handwired_k552/config.h +++ b/keyboards/horrortroll/handwired_k552/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7516 -#define PRODUCT_ID 0x5104 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HorrorTroll -#define PRODUCT K552 Kumara - /* Key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/horrortroll/handwired_k552/info.json b/keyboards/horrortroll/handwired_k552/info.json index 2db30bb552..825493738a 100644 --- a/keyboards/horrortroll/handwired_k552/info.json +++ b/keyboards/horrortroll/handwired_k552/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Handwired K552 Kumara", + "keyboard_name": "K552 Kumara", + "manufacturer": "HorrorTroll", "url": "", "maintainer": "HorrorTroll", + "usb": { + "vid": "0x7516", + "pid": "0x5104", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/horrortroll/lemon40/config.h b/keyboards/horrortroll/lemon40/config.h index 8bc8f01d4c..600ef01657 100644 --- a/keyboards/horrortroll/lemon40/config.h +++ b/keyboards/horrortroll/lemon40/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7516 -#define PRODUCT_ID 0x2434 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HorrorTroll -#define PRODUCT Lemon40 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 7 diff --git a/keyboards/horrortroll/lemon40/info.json b/keyboards/horrortroll/lemon40/info.json index 322fcc3a0c..9aa73df1fa 100644 --- a/keyboards/horrortroll/lemon40/info.json +++ b/keyboards/horrortroll/lemon40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Lemon40", + "manufacturer": "HorrorTroll", "url": "", "maintainer": "HorrorTroll", + "usb": { + "vid": "0x7516", + "pid": "0x2434", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/horrortroll/paws60/config.h b/keyboards/horrortroll/paws60/config.h index d502ee985c..7bd3ac8be3 100644 --- a/keyboards/horrortroll/paws60/config.h +++ b/keyboards/horrortroll/paws60/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7516 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HorrorTroll -#define PRODUCT Paws 60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/horrortroll/paws60/info.json b/keyboards/horrortroll/paws60/info.json index 78cb1a7938..2a67134750 100644 --- a/keyboards/horrortroll/paws60/info.json +++ b/keyboards/horrortroll/paws60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Paws 60", + "manufacturer": "HorrorTroll", "url": "https://github.com/HorrorTroll/KeebProj/tree/default/paws60/pcb/Hotswap", "maintainer": "HorrorTroll", + "usb": { + "vid": "0x7516", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ diff --git a/keyboards/hotdox/config.h b/keyboards/hotdox/config.h index b72faa613c..7dc6840c4b 100644 --- a/keyboards/hotdox/config.h +++ b/keyboards/hotdox/config.h @@ -2,15 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0x414B // 'AK' for Alpaca Keyboards -#define PRODUCT_ID 0x0001 // sequentially numbered - -#define DEVICE_VER 0x0001 -#define MANUFACTURER Alpaca Keyboards -#define PRODUCT ErgoDox 76 "HotDox" - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/hotdox/info.json b/keyboards/hotdox/info.json index 953c12f712..0303f1eb1e 100644 --- a/keyboards/hotdox/info.json +++ b/keyboards/hotdox/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "HotDox", + "keyboard_name": "Ergodox 76 \"HotDox\"", + "manufacturer": "Alpaca Keyboards", "maintainer": "layne001365", + "usb": { + "vid": "0x414B", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ergodox": { diff --git a/keyboards/hotdox/keymaps/default/keymap.c b/keyboards/hotdox/keymaps/default/keymap.c index eb4692a4c2..fe07e6f91d 100644 --- a/keyboards/hotdox/keymaps/default/keymap.c +++ b/keyboards/hotdox/keymaps/default/keymap.c @@ -163,7 +163,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_right_led_1_off(); ergodox_right_led_2_off(); diff --git a/keyboards/hotdox/keymaps/eozaki/keymap.c b/keyboards/hotdox/keymaps/eozaki/keymap.c index d4b8f491fd..3516f20303 100644 --- a/keyboards/hotdox/keymaps/eozaki/keymap.c +++ b/keyboards/hotdox/keymaps/eozaki/keymap.c @@ -170,7 +170,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/hotdox/keymaps/kloki/keymap.c b/keyboards/hotdox/keymaps/kloki/keymap.c index 2550b68978..f858effd54 100644 --- a/keyboards/hotdox/keymaps/kloki/keymap.c +++ b/keyboards/hotdox/keymaps/kloki/keymap.c @@ -189,7 +189,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/hp69/config.h b/keyboards/hp69/config.h index ba6e55f86d..3bb4793186 100644 --- a/keyboards/hp69/config.h +++ b/keyboards/hp69/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x416B -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0011 -#define MANUFACTURER Desiboards -#define PRODUCT hp69 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/hp69/info.json b/keyboards/hp69/info.json index dac0887fbf..c026ca99e7 100644 --- a/keyboards/hp69/info.json +++ b/keyboards/hp69/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "hp69", + "manufacturer": "Desiboards", "url": "", "maintainer": "Ananya Kirti", + "usb": { + "vid": "0x416B", + "pid": "0x0001", + "device_version": "0.1.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/hs60/v1/config.h b/keyboards/hs60/v1/config.h index b3444db38d..3e47dbef77 100644 --- a/keyboards/hs60/v1/config.h +++ b/keyboards/hs60/v1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0257 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT HS60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/hs60/v1/info.json b/keyboards/hs60/v1/info.json index fe2d998311..34c0be67d9 100644 --- a/keyboards/hs60/v1/info.json +++ b/keyboards/hs60/v1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "HS60", + "manufacturer": "Yiancar-Designs", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0257", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_iso": { "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/hs60/v2/ansi/config.h b/keyboards/hs60/v2/ansi/config.h index 9f4fab42f7..04c7d8c701 100644 --- a/keyboards/hs60/v2/ansi/config.h +++ b/keyboards/hs60/v2/ansi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4854 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT HS60 V2 - #define HS60_ANSI /* key matrix size */ diff --git a/keyboards/hs60/v2/ansi/info.json b/keyboards/hs60/v2/ansi/info.json index 2aae7c7472..89812b210d 100644 --- a/keyboards/hs60/v2/ansi/info.json +++ b/keyboards/hs60/v2/ansi/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "HS60v2", - "maintainer": "yiancar", + "keyboard_name": "HS60 V2", + "manufacturer": "Yiancar-Designs", "url": "", + "maintainer": "yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x4854", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/hs60/v2/hhkb/config.h b/keyboards/hs60/v2/hhkb/config.h index c7b8c57b72..4dac657b39 100644 --- a/keyboards/hs60/v2/hhkb/config.h +++ b/keyboards/hs60/v2/hhkb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4855 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT HS60 V2 - #define HS60_HHKB /* key matrix size */ diff --git a/keyboards/hs60/v2/hhkb/info.json b/keyboards/hs60/v2/hhkb/info.json index 1a7f509758..5e43f8bdba 100644 --- a/keyboards/hs60/v2/hhkb/info.json +++ b/keyboards/hs60/v2/hhkb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "HS60v2", - "maintainer": "yiancar", + "keyboard_name": "HS60 V2", + "manufacturer": "Yiancar-Designs", "url": "", + "maintainer": "yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x4855", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_60_hhkb": { "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.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/hs60/v2/iso/config.h b/keyboards/hs60/v2/iso/config.h index 70e4e166fd..da918955c3 100644 --- a/keyboards/hs60/v2/iso/config.h +++ b/keyboards/hs60/v2/iso/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4853 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT HS60 V2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/hs60/v2/iso/info.json b/keyboards/hs60/v2/iso/info.json index 89b9912c79..8f207ac9c3 100644 --- a/keyboards/hs60/v2/iso/info.json +++ b/keyboards/hs60/v2/iso/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "HS60v2", - "maintainer": "yiancar", + "keyboard_name": "HS60 V2", + "manufacturer": "Yiancar-Designs", "url": "", + "maintainer": "yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x4853", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_60_iso": { "layout": [ diff --git a/keyboards/hub16/config.h b/keyboards/hub16/config.h index eeaa5f1a77..e88fba018b 100755 --- a/keyboards/hub16/config.h +++ b/keyboards/hub16/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6A6A -#define PRODUCT_ID 0x4810 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Josh Johnson -#define PRODUCT Hub16 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/hub16/info.json b/keyboards/hub16/info.json index e6546f6cbd..a7ba0ae895 100644 --- a/keyboards/hub16/info.json +++ b/keyboards/hub16/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Hub16", + "manufacturer": "Josh Johnson", "url": "https://joshajohnson.com/hub16-keyboard/", "maintainer": "Josh Johnson", + "usb": { + "vid": "0x6A6A", + "pid": "0x4810", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/hub20/config.h b/keyboards/hub20/config.h index aca3d7acce..24bcdb0061 100644 --- a/keyboards/hub20/config.h +++ b/keyboards/hub20/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6A6A // JJ -#define PRODUCT_ID 0x4414 // H20 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Josh Johnson -#define PRODUCT Hub20 - /* key matrix */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/hub20/info.json b/keyboards/hub20/info.json index 2b44836728..3f829a3c7b 100644 --- a/keyboards/hub20/info.json +++ b/keyboards/hub20/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Hub20", + "manufacturer": "Josh Johnson", "url": "https://github.com/joshajohnson/hub20", "maintainer": "joshajohnson", + "usb": { + "vid": "0x6A6A", + "pid": "0x4414", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ianklug/grooveboard/config.h b/keyboards/ianklug/grooveboard/config.h index 4103759d02..007a86529c 100644 --- a/keyboards/ianklug/grooveboard/config.h +++ b/keyboards/ianklug/grooveboard/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B4C // "KL" = klug -#define PRODUCT_ID 0x4742 // "GB" = grooveboard -#define DEVICE_VER 0x0001 -#define MANUFACTURER ianklug -#define PRODUCT grooveboard - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 4 diff --git a/keyboards/ianklug/grooveboard/info.json b/keyboards/ianklug/grooveboard/info.json index e08cf62574..a4bb849952 100644 --- a/keyboards/ianklug/grooveboard/info.json +++ b/keyboards/ianklug/grooveboard/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "grooveboard", + "manufacturer": "ianklug", "url": "https://github.com/ianklug/grooveboard", "maintainer": "ianklug", + "usb": { + "vid": "0x4B4C", + "pid": "0x4742", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ibnuda/alicia_cook/config.h b/keyboards/ibnuda/alicia_cook/config.h index 28db5f3420..04f368dce6 100644 --- a/keyboards/ibnuda/alicia_cook/config.h +++ b/keyboards/ibnuda/alicia_cook/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6955 -#define DEVICE_VER 0x0899 -#define MANUFACTURER Ibnu D. Aji -#define PRODUCT Alicia Cook - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/ibnuda/alicia_cook/info.json b/keyboards/ibnuda/alicia_cook/info.json index c07be77190..3ce8256003 100644 --- a/keyboards/ibnuda/alicia_cook/info.json +++ b/keyboards/ibnuda/alicia_cook/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Alicia Cook", + "manufacturer": "Ibnu D. Aji", "url": "https://github.com/ibnuda/alicia-cook", "maintainer": "ibnuda", + "usb": { + "vid": "0xFEED", + "pid": "0x6955", + "device_version": "8.9.9" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ibnuda/gurindam/config.h b/keyboards/ibnuda/gurindam/config.h index a79ea6c5db..da86f8557e 100644 --- a/keyboards/ibnuda/gurindam/config.h +++ b/keyboards/ibnuda/gurindam/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1209 -#define PRODUCT_ID 0x6974 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ibnu D. Aji -#define PRODUCT Gurindam - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 8 diff --git a/keyboards/ibnuda/gurindam/info.json b/keyboards/ibnuda/gurindam/info.json index a196f066e0..4c7db56fd9 100644 --- a/keyboards/ibnuda/gurindam/info.json +++ b/keyboards/ibnuda/gurindam/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "gurindam", + "keyboard_name": "Gurindam", + "manufacturer": "Ibnu D. Aji", "url": "https://github.com/ibnuda/gurindam", "maintainer": "Ibnu D. Aji", + "usb": { + "vid": "0x1209", + "pid": "0x6974", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/idb/idb_60/config.h b/keyboards/idb/idb_60/config.h index 81dcfa854e..eaaaf45d7d 100644 --- a/keyboards/idb/idb_60/config.h +++ b/keyboards/idb/idb_60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x494B // "IB" for idb Keyboards -#define PRODUCT_ID 0x0001 // idb 60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER idb Keyboards -#define PRODUCT idb 60 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/idb/idb_60/info.json b/keyboards/idb/idb_60/info.json index d78c848c6d..675fce4582 100644 --- a/keyboards/idb/idb_60/info.json +++ b/keyboards/idb/idb_60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "idb 60", + "manufacturer": "idb Keyboards", "url": "https://idb-keyboards.xyz/60", "maintainer": "itspngu", + "usb": { + "vid": "0x494B", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all", "LAYOUT_default": "LAYOUT_60_ansi_wkl_split_rshift" diff --git a/keyboards/idobao/id63/config.h b/keyboards/idobao/id63/config.h new file mode 100644 index 0000000000..10fb9d5f08 --- /dev/null +++ b/keyboards/idobao/id63/config.h @@ -0,0 +1,102 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* NB: Most configuration information resides in `info.json` */ + +/* ---------------- + * RGB Matrix stuff + * ---------------- */ + +#define RGB_DI_PIN B7 + +// RGB Matrix config +#if defined(RGB_DI_PIN) && defined(RGB_MATRIX_ENABLE) + + /* Denwir case is solid back. Please disable underglow at compile with compile command line: + * + * `make idobao/id63:default UNDERGLOW=off` + * + * */ + #ifndef ID63_DISABLE_UNDERGLOW + #define DRIVER_LED_TOTAL 75 + #else + #define DRIVER_LED_TOTAL (75 - 12) + #endif + + #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 RGB_MATRIX_KEYPRESSES + // do not enable RGB_MATRIX_FRAMEBUFFER_EFFECTS as these effects don't work will with this LED placement + + // changes to this list will break the sequence set in the VIA `json` file. + /* Standard animation set */ + #define ENABLE_RGB_MATRIX_SOLID_COLOR // Static single color + #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 // ** do not enable + // #define ENABLE_RGB_MATRIX_PIXEL_FLOW // ** do not enable + // #define ENABLE_RGB_MATRIX_PIXEL_RAIN // ** do not enable + + /* RGB_MATRIX_FRAMEBUFFER_EFFECTS */ + // #define ENABLE_RGB_MATRIX_TYPING_HEATMAP // ** do not enable + // #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // ** do not enable + + /* RGB_MATRIX_KEYPRESSES */ + #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 // RGB_MATRIX_ENABLE + +/* ----------------------- + * Feature disable options + * These options are also useful to firmware size reduction. + * ----------------------- */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +// #define NO_ACTION_LAYER +// #define NO_ACTION_TAPPING +// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id63/id63.c b/keyboards/idobao/id63/id63.c new file mode 100644 index 0000000000..d9b7fdef39 --- /dev/null +++ b/keyboards/idobao/id63/id63.c @@ -0,0 +1,68 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "id63.h" + +#define __ NO_LED + +#ifdef RGB_MATRIX_ENABLE + +/* Pre-key LED addresses + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │62 │61 │60 │59 │58 │57 │56 │55 │54 │53 │52 │51 │50 │ 49 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ 48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │36 │ 35 │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ 34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │ 22 │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ + * │ 21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │ 11 │10 │ 9 │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ + * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + * + * Underglow LED addresses (as seen from top / [Esc] = top left) + * ┌────┬────┬────┬────┬────┬────┐ + * │ 63 │ 64 │ 65 │ 66 │ 67 │ 68 │ + * ├────┴────┴────┴────┴────┴────┤ + * ├────┬────┬────┬────┬────┬────┤ + * │ 74 │ 73 │ 72 │ 71 │ 70 │ 69 │ + * └────┴────┴────┴────┴────┴────┘ + */ + +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49 }, + { 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35 }, + { 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, __, 22 }, + { 21, __, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9 }, + { 8, 7, __, 6, __, __, 5, __, __, 4, 3, 2, 1, 0 }, +}, { + // LED Index to Physical Position + // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser + /* NB: Reverse & upside-down order! */ + {224,64 }, {208,64 }, {192,64 }, {176,64 }, {160,64 }, {102,64 }, { 42,64 }, { 22,64 }, { 2,64 }, + {224,48 }, {208,48 }, {186,48 }, {164,48 }, {148,48 }, {132,48 }, {116,48 }, {100,48 }, { 84,48 }, { 68,48 }, { 52,48 }, { 36,48 }, { 10,48 }, + {214,32 }, {188,32 }, {172,32 }, {156,32 }, {140,32 }, {124,32 }, {108,32 }, { 92,32 }, { 76,32 }, { 60,32 }, { 44,32 }, { 28,32 }, { 6,32 }, + {220,16 }, {200,16 }, {184,16 }, {168,16 }, {152,16 }, {136,16 }, {120,16 }, {104,16 }, { 88,16 }, { 72,16 }, { 56,16 }, { 40,16 }, { 24,16 }, { 4,16 }, + {216,0 }, {192,0 }, {176,0 }, {160,0 }, {144,0 }, {128,0 }, {112,0 }, { 96,0 }, { 80,0 }, { 64,0 }, { 48,0 }, { 32,0 }, { 16,0 }, { 0,0 } + // underglow LEDs (positions pushed to nearest edge to match edge key colors) + #ifndef ID63_DISABLE_UNDERGLOW + , { 0,0 }, { 45,0 }, { 90,0 }, {134,0 }, {179,0 }, {224,0 }, + {224,64 }, {179,64 }, {134,64 }, { 90,64 }, { 45,64 }, { 0,64 } + #endif +}, { + // LED Index to Flag + /* NB: Reverse & upside-down order! */ + 4, 4, 4, 1, 1, 4, 1, 1, 1, + 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 + // underglow LEDs + #ifndef ID63_DISABLE_UNDERGLOW + , 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2 + #endif +} }; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id63/id63.h b/keyboards/idobao/id63/id63.h new file mode 100644 index 0000000000..d9bef6d021 --- /dev/null +++ b/keyboards/idobao/id63/id63.h @@ -0,0 +1,6 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" diff --git a/keyboards/idobao/id63/info.json b/keyboards/idobao/id63/info.json new file mode 100644 index 0000000000..ab34c2a676 --- /dev/null +++ b/keyboards/idobao/id63/info.json @@ -0,0 +1,106 @@ +{ + "manufacturer": "IDOBAO", + "keyboard_name": "ID63", + "maintainer": "vinorodrigues", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "debounce": 5, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "backlight": false, + "rgblight": false + }, + "matrix_pins": { + "cols": ["C7", "F6", "F5", "F4", "F1", "B3", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7"], + "rows": ["B0", "B1", "B2", "E6", "F7"] + }, + "processor": "atmega32u4", + "url": "https://idobao.net/search?type=product&q=id63*", + "usb": { + "device_version": "1.0.0", + "pid": "0x0063", + "vid": "0x6964" + }, + "layout_aliases": { + "LAYOUT_63_ansi": "LAYOUT_60_ansi_arrow" + }, + "community_layouts": ["60_ansi_arrow"], + "layouts": { + "LAYOUT_60_ansi_arrow": { + "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": [1, 13], "x": 13.5, "y": 1, "w": 1.5 }, + + { "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], "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": "Shift", "matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75 }, + { "label": "\u2191", "matrix": [3, 12], "x": 13, "y": 3 }, + { "label": "/?", "matrix": [3, 13], "x": 14, "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, 3], "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, 9], "x": 10, "y": 4 }, + { "label": "Menu", "matrix": [4, 10], "x": 11, "y": 4 }, + { "label": "\u2190", "matrix": [4, 11], "x": 12, "y": 4 }, + { "label": "\u2193", "matrix": [4, 12], "x": 13, "y": 4 }, + { "label": "\u2192", "matrix": [4, 13], "x": 14, "y": 4 } + ] + } + } +} diff --git a/keyboards/idobao/id63/keymaps/default/keymap.c b/keyboards/idobao/id63/keymaps/default/keymap.c new file mode 100644 index 0000000000..617a876b80 --- /dev/null +++ b/keyboards/idobao/id63/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// 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 │ - │ = │Backspc│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ 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 │ , │ . │Shift │Up │ / │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ + * │Ctrl│Win │Alt │ │Fn │Mnu│Lf │Dn │Rt │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_60_ansi_arrow( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Del │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │tog│up │mod│hu+│hu-│sa+│sa-│br+│br-│prn│slk│pus│ Ins │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │lf │dn │rt │ │ │ │ │sp+│sp-│ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ + * │ │ │ │ │ │Rst│NKR│ │ │ │ │PUp│ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │Hom│PDn│End│ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + [1] = LAYOUT_60_ansi_arrow( + 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, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, _______, QK_BOOT, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) +}; diff --git a/keyboards/idobao/id63/keymaps/idobao/config.h b/keyboards/idobao/id63/keymaps/idobao/config.h new file mode 100644 index 0000000000..01d96f9dcd --- /dev/null +++ b/keyboards/idobao/id63/keymaps/idobao/config.h @@ -0,0 +1,7 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Denwir D60 has solid back case - no underglow LED's are visible. */ +#define ID63_DISABLE_UNDERGLOW diff --git a/keyboards/idobao/id63/keymaps/idobao/keymap.c b/keyboards/idobao/id63/keymaps/idobao/keymap.c new file mode 100644 index 0000000000..f49304fb24 --- /dev/null +++ b/keyboards/idobao/id63/keymaps/idobao/keymap.c @@ -0,0 +1,359 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// Copyright 2022 IDOBAO (@idobaokb) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* ------------------------------------------------------------------ + * This is the IDOBAO factory default keymap ;) + * ------------------------------------------------------------------ */ + +#include QMK_KEYBOARD_H +#include "version.h" + +#ifdef RGB_MATRIX_ENABLE + +typedef union { + uint32_t raw; + struct { + bool rgb_disable_perkey:1; + #ifndef ID63_DISABLE_UNDERGLOW + bool rgb_disable_underglow:1; + #endif // ID63_DISABLE_UNDERGLOW + }; +} user_config_t; + +#endif // RGB_MATRIX_ENABLE + +enum { + _BASE = 0, + _FN1, + _FN2, + _FN3 +}; + +enum { + KC_MCON = USER00, // macOS Open Mission Control + KC_LPAD, // macOS Open Launchpad + #ifdef RGB_MATRIX_ENABLE + RGB_TPK, // Toggle Per-Key + #ifndef ID63_DISABLE_UNDERGLOW + RGB_TUG, // Toggle Underglow + #endif // ID63_DISABLE_UNDERGLOW + #endif // RGB_MATRIX_ENABLE + KB_VRSN = USER09 // debug, type version +}; + +#ifndef RGB_MATRIX_ENABLE + #define RGB_TPK _______ + #define RGB_TUG _______ +#else + #ifdef ID63_DISABLE_UNDERGLOW + #define RGB_TUG _______ + #endif // ID63_DISABLE_UNDERGLOW +#endif // RGB_MATRIX_ENABLE + +enum macos_consumer_usages { + _AC_SHOW_ALL_WINDOWS = 0x29F, // mapped to KC_MCON + _AC_SHOW_ALL_APPS = 0x2A0 // mapped to KC_LPAD +}; + +/* Special Keys */ +#define SK_LT1C LT(_FN1, KC_CAPS) // Layer Tap 1, i.e., Tap = Caps Lock, Hold = Layer 1 +#define SK_LT2A LT(_FN2, KC_APP) // Layer Tap 2, i.e., Tap = Menu, Hold = Layer 2 + +/* key matrix */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Backspc│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │*Caps*│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ *Caps* => Tap = Caps Lock, Hold = Layer 1 (Fn1) + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │Shift │Up │ / │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ + * │Ctrl│Win │Alt │ │Fn1│*M*│Lf │Dn │Rt │ *M* => Tap = Menu, Hold = Layer 2 (Fn2) + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + [_BASE] = LAYOUT_60_ansi_arrow( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + SK_LT1C, KC_A, KC_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_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, FN_MO13, SK_LT2A, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Del │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ ↑ │ │ │Tog│Hu+│Sa+│Br+│Sp+│prn│slk│pus│ Ins │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ ← │ ↓ │ → │ │Mod│Hu-│Sa-│Br-│Sp-│ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ + * │ │ │ │ │Ver│Rst│NKR│ │ │ │ │PUp│ / │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │Hom│PDn│End│ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + [_FN1] = LAYOUT_60_ansi_arrow( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, KC_UP, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, KB_VRSN, QK_BOOT, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, MO(_FN3), KC_HOME, KC_PGDN, KC_END + ), + + [_FN2] = LAYOUT_60_ansi_arrow( + KC_ESC, KC_BRID, KC_BRIU, KC_MCON, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_POWER, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(_FN3), _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_60_ansi_arrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +uint8_t mod_state; +bool delkey_registered; + +#ifdef RGB_MATRIX_ENABLE + +/* + * RGB Stuff + */ + +#define ID63_CAPS_LOCK_KEY_INDEX 34 // position of Caps Lock key + +#define ID63_CAPS_LOCK_MAX_BRIGHTNESS 0xFF +#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS + #undef ID63_CAPS_LOCK_MAX_BRIGHTNESS + #define ID63_CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS +#endif + +#define ID63_CAPS_LOCK_VAL_STEP 8 +#ifdef RGB_MATRIX_VAL_STEP + #undef ID63_CAPS_LOCK_VAL_STEP + #define ID63_CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP +#endif + +user_config_t user_config; + +void id63_update_rgb_mode(void) { + uint8_t flags = LED_FLAG_ALL; + + if (user_config.rgb_disable_perkey + #ifndef ID63_DISABLE_UNDERGLOW + && user_config.rgb_disable_underglow + #endif // ID63_DISABLE_UNDERGLOW + ) { + flags = 0; // All OFF Condition + } else { + if (user_config.rgb_disable_perkey) { + #ifndef ID63_DISABLE_UNDERGLOW + flags = LED_FLAG_UNDERGLOW | 0xF0; + #else + flags = 0xF0; + #endif // ID63_DISABLE_UNDERGLOW + } + #ifndef ID63_DISABLE_UNDERGLOW + if (user_config.rgb_disable_underglow) { + flags = LED_FLAG_MODIFIER | LED_FLAG_KEYLIGHT | LED_FLAG_INDICATOR | 0xF0; + } + #endif // ID63_DISABLE_UNDERGLOW + } + + if (flags == 0) { + rgb_matrix_set_flags(0); + rgb_matrix_set_color_all(HSV_OFF); + } else { + rgb_matrix_set_flags(flags); + rgb_matrix_enable_noeeprom(); + } + + eeconfig_update_kb(user_config.raw); // write back to EEPROM +} + +void id63_get_rgb_mode(void) { + user_config.raw = eeconfig_read_kb(); // read config from EEPROM + id63_update_rgb_mode(); +} + +void keyboard_post_init_user(void) { + id63_get_rgb_mode(); +} + +void eeconfig_init_user(void) { + // EEPROM is getting reset! + user_config.raw = 0; + id63_update_rgb_mode(); +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + // Caps Lock key stuff + + if (host_keyboard_led_state().caps_lock) { + uint8_t v = rgb_matrix_get_val(); + if (v < ID63_CAPS_LOCK_VAL_STEP) { + v = ID63_CAPS_LOCK_VAL_STEP; + } else if (v < (ID63_CAPS_LOCK_MAX_BRIGHTNESS - ID63_CAPS_LOCK_VAL_STEP)) { + if (!user_config.rgb_disable_perkey) { + v += ID63_CAPS_LOCK_VAL_STEP; // inc. by one more step than current brightness + } // else leave as current brightness + } else { + v = ID63_CAPS_LOCK_MAX_BRIGHTNESS; + } + rgb_matrix_set_color(ID63_CAPS_LOCK_KEY_INDEX, v, v, v); // white, brightness adjusted + } else if (user_config.rgb_disable_perkey) { + rgb_matrix_set_color(ID63_CAPS_LOCK_KEY_INDEX, HSV_OFF); // off + } +} + +#endif // RGB_MATRIX_ENABLE + +/* + * Extra keys and RGB Toggle handler + */ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + mod_state = get_mods(); + + switch (keycode) { + + // handle RGB toggle key - this ensures caps lock always works + #ifdef RGB_MATRIX_ENABLE + + case QK_BOOT: + if (record->event.pressed) { + rgb_matrix_set_color_all(RGB_MATRIX_MAXIMUM_BRIGHTNESS, 0, 0); // All red + rgb_matrix_driver.flush(); + } + return true; + + case RGB_TOG: + /* roll through the LED modes + * | Level | Per-key | Underglow | + * |-------------|---------|-----------| + * | 0 (default) | on | on | + * | 1 | OFF | on | + * | 2 | on | OFF | + * | 3 | OFF | OFF | + * + * for ID63_DISABLE_UNDERGLOW + * | Level | Per-key | + * |-------------|---------| + * | 0 (default) | on | + * | 1 | OFF | + */ + if (record->event.pressed) { + if ( (!user_config.rgb_disable_perkey) + #ifndef ID63_DISABLE_UNDERGLOW + && (!user_config.rgb_disable_underglow) + #endif // ID63_DISABLE_UNDERGLOW + ) { + user_config.rgb_disable_perkey = 1; + + #ifndef ID63_DISABLE_UNDERGLOW + + } else if ( user_config.rgb_disable_perkey && (!user_config.rgb_disable_underglow) ) { + user_config.rgb_disable_perkey = 0; + user_config.rgb_disable_underglow = 1; + + } else if ( (!user_config.rgb_disable_perkey) && user_config.rgb_disable_underglow ) { + user_config.rgb_disable_perkey = 1; + + #endif // ID63_DISABLE_UNDERGLOW + + } else { + user_config.rgb_disable_perkey = 0; + #ifndef ID63_DISABLE_UNDERGLOW + user_config.rgb_disable_underglow = 0; + #endif // ID63_DISABLE_UNDERGLOW + } + id63_update_rgb_mode(); + } + return false; + + case RGB_TPK: + if (record->event.pressed) { + user_config.rgb_disable_perkey ^= 1; + id63_update_rgb_mode(); + } + return false; + + #ifndef ID63_DISABLE_UNDERGLOW + + case RGB_TUG: + if (record->event.pressed) { + user_config.rgb_disable_underglow ^= 1; + id63_update_rgb_mode(); + } + return false; + + #endif // ID63_DISABLE_UNDERGLOW + + case EE_CLR: + if (!record->event.pressed) { // on release + id63_get_rgb_mode(); + } + return true; // let this one pass on + + #endif // RGB_MATRIX_ENABLE + + // print firmware version + case KB_VRSN: + if (!get_mods()) { + if (!record->event.pressed) { + SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " (v" QMK_VERSION ")"); + } + } + return false; + + // @see: https://github.com/qmk/qmk_firmware/issues/10111#issuecomment-752300353 + case KC_MCON: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_WINDOWS); + } else { + host_consumer_send(0); + } + return false; + + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(_AC_SHOW_ALL_APPS); + } else { + host_consumer_send(0); + } + return false; + + // Shift + Backspace = Delete, see: https://docs.qmk.fm/#/feature_advanced_keycodes?id=shift-backspace-for-delete + case KC_BSPC: + if (record->event.pressed) { + if (mod_state & MOD_MASK_SHIFT) { + del_mods(MOD_MASK_SHIFT); + register_code(KC_DEL); + delkey_registered = true; + set_mods(mod_state); + return false; + } + } else { + if (delkey_registered) { + unregister_code(KC_DEL); + delkey_registered = false; + return false; + } + } + return true; + + default: + return true; /* Process all other keycodes normally */ + } +} diff --git a/keyboards/idobao/id63/keymaps/idobao/rules.mk b/keyboards/idobao/id63/keymaps/idobao/rules.mk new file mode 100644 index 0000000000..974ef99660 --- /dev/null +++ b/keyboards/idobao/id63/keymaps/idobao/rules.mk @@ -0,0 +1,3 @@ + +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id63/keymaps/via/keymap.c b/keyboards/idobao/id63/keymaps/via/keymap.c new file mode 100644 index 0000000000..e8ad0eb82a --- /dev/null +++ b/keyboards/idobao/id63/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +// Copyright 2022 Vino Rodrigues (@vinorodrigues) +// 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 │ - │ = │Backspc│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ 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 │ , │ . │Shift │Up │ / │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ + * │Ctrl│Win │Alt │ │Fn │Mnu│Lf │Dn │Rt │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_60_ansi_arrow( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Del │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │tog│up │mod│hu+│hu-│sa+│sa-│br+│br-│prn│slk│pus│ Ins │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │lf │dn │rt │ │ │ │ │sp+│sp-│ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ + * │ │ │ │ │ │Rst│NRK│ │ │ │ │PUp│ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │Hom│PDn│End│ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + [1] = LAYOUT_60_ansi_arrow( + 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, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, _______, _______, _______, _______, QK_BOOT, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + + [2] = LAYOUT_60_ansi_arrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_60_ansi_arrow( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/idobao/id63/keymaps/via/rules.mk b/keyboards/idobao/id63/keymaps/via/rules.mk new file mode 100644 index 0000000000..974ef99660 --- /dev/null +++ b/keyboards/idobao/id63/keymaps/via/rules.mk @@ -0,0 +1,3 @@ + +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/idobao/id63/post_rules.mk b/keyboards/idobao/id63/post_rules.mk new file mode 100644 index 0000000000..1a465397fd --- /dev/null +++ b/keyboards/idobao/id63/post_rules.mk @@ -0,0 +1,8 @@ +# The Denwir D60 case has a sealed/solid undercase, +# this enables switching off thoes LEDs +# Usage: `make idobao/id63:default UNDERGLOW=off` + +UNDERGLOW ?= yes +ifneq ($(strip $(UNDERGLOW)), yes) + OPT_DEFS += -DID63_DISABLE_UNDERGLOW +endif diff --git a/keyboards/idobao/id63/readme.md b/keyboards/idobao/id63/readme.md new file mode 100644 index 0000000000..15ed24824c --- /dev/null +++ b/keyboards/idobao/id63/readme.md @@ -0,0 +1,39 @@ +# IDOBAO ID63 + +![IDOBAO ID63](https://i.imgur.com/DxlOr9xh.png) + +*The ID63 Keyboard Kit brings a tailored gasket-mounted build to an ultra-compact 60% layout with a unique ribbed side texture.* + +## ANSI Support + +* Keyboard Maintainer: [Vino Rodrigues](https://github.com/vinorodrigues) +* Hardware Supported: **IDOBAO ID63** +* Hardware Availability: [Drop.com](https://drop.com/buy/idobao-id63-60-gasket-hot-swappable-aluminum-mechanical-keyboard-kit) & [IDOBAO.net](https://idobao.net/search?type=product&q=id63*) + +## Layout + +![IDOBAO ID63](https://idobao.github.io/kle/idobao-id63.png) + +## Compiling and Flashing + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb idobao/id63 -km default + +*{..or..}* + + make idobao/id63:default + +Flashing example for this keyboard: + + make idobao/id63: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 [Escape] 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 `RESET`, default is [Fn]+[B] diff --git a/keyboards/idobao/id63/rules.mk b/keyboards/idobao/id63/rules.mk new file mode 100644 index 0000000000..eab741fd0a --- /dev/null +++ b/keyboards/idobao/id63/rules.mk @@ -0,0 +1,5 @@ +# This file intentionally left blank +# ** settings are data driven & stored in `info.json` ** + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/idobao/id67/config.h b/keyboards/idobao/id67/config.h index f94606c9e7..64b0001cfb 100644 --- a/keyboards/idobao/id67/config.h +++ b/keyboards/idobao/id67/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 /* "id" */ -#define PRODUCT_ID 0x0067 -#define DEVICE_VER 0x0002 -#define MANUFACTURER IDOBAO -#define PRODUCT ID67 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/idobao/id67/info.json b/keyboards/idobao/id67/info.json index 545cd863d8..f626bd88e5 100644 --- a/keyboards/idobao/id67/info.json +++ b/keyboards/idobao/id67/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ID67", + "manufacturer": "IDOBAO", "url": "https://idobao.net", "maintainer": "thewerther", + "usb": { + "vid": "0x6964", + "pid": "0x0067", + "device_version": "0.0.2" + }, "layout_aliases": { "LAYOUT": "LAYOUT_65_ansi_blocker" }, diff --git a/keyboards/idobao/id67/keymaps/thewerther/config.h b/keyboards/idobao/id67/keymaps/thewerther/config.h index 85498d91b8..a63a92b171 100644 --- a/keyboards/idobao/id67/keymaps/thewerther/config.h +++ b/keyboards/idobao/id67/keymaps/thewerther/config.h @@ -18,7 +18,6 @@ #define DRIVER_LED_UNDERGLOW 10 #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD #if defined(RGB_MATRIX_ENABLE) #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/idobao/id75/v1/config.h b/keyboards/idobao/id75/v1/config.h index 918dc16481..16cffdfbad 100644 --- a/keyboards/idobao/id75/v1/config.h +++ b/keyboards/idobao/id75/v1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // ID -#define PRODUCT_ID 0x0075 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT ID75 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/idobao/id75/v1/info.json b/keyboards/idobao/id75/v1/info.json index bacdc42235..cb1e21e554 100644 --- a/keyboards/idobao/id75/v1/info.json +++ b/keyboards/idobao/id75/v1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "IDOBO", + "keyboard_name": "ID75", + "manufacturer": "IDOBAO", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6964", + "pid": "0x0075", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x15": { "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}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] diff --git a/keyboards/idobao/id75/v2/config.h b/keyboards/idobao/id75/v2/config.h index c2e54f611d..a36ba404a6 100644 --- a/keyboards/idobao/id75/v2/config.h +++ b/keyboards/idobao/id75/v2/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // ID -#define PRODUCT_ID 0x0075 -#define DEVICE_VER 0x0002 -#define MANUFACTURER IDOBAO -#define PRODUCT ID75 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/idobao/id75/v2/info.json b/keyboards/idobao/id75/v2/info.json index fe24920f81..b1afe268de 100644 --- a/keyboards/idobao/id75/v2/info.json +++ b/keyboards/idobao/id75/v2/info.json @@ -1,10 +1,96 @@ { - "keyboard_name": "idobao/id75/v2", - "url": "", - "maintainer": "qmk", - "layouts": { - "LAYOUT_ortho_5x15": { - "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}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] - } - } + "keyboard_name": "ID75", + "manufacturer": "IDOBAO", + "url": "", + "maintainer": "peepeetee", + "usb": { + "vid": "0x6964", + "pid": "0x0075", + "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT_ortho_5x15": { + "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}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + } + } } diff --git a/keyboards/idobao/id80/v3/config.h b/keyboards/idobao/id80/v3/config.h index 4b2fb8d056..e962cf1922 100644 --- a/keyboards/idobao/id80/v3/config.h +++ b/keyboards/idobao/id80/v3/config.h @@ -20,14 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 /* "id" */ -#define PRODUCT_ID 0x0080 -#define DEVICE_VER 0x0003 -#define MANUFACTURER IDOBAO -#define PRODUCT ID80 v3 - - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 11 diff --git a/keyboards/idobao/id80/v3/info.json b/keyboards/idobao/id80/v3/info.json index 0dc8efaf02..b011e1d6e6 100644 --- a/keyboards/idobao/id80/v3/info.json +++ b/keyboards/idobao/id80/v3/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ID80 v3", + "manufacturer": "IDOBAO", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6964", + "pid": "0x0080", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/idobao/id87/v1/config.h b/keyboards/idobao/id87/v1/config.h index a268091d40..6ae4cee1b5 100644 --- a/keyboards/idobao/id87/v1/config.h +++ b/keyboards/idobao/id87/v1/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // "id" -#define PRODUCT_ID 0x0087 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT IDOBAO ID87 - /* key matrix size */ #define MATRIX_ROWS 11 #define MATRIX_COLS 9 diff --git a/keyboards/idobao/id87/v1/info.json b/keyboards/idobao/id87/v1/info.json index f154bbd940..9f7c94619f 100644 --- a/keyboards/idobao/id87/v1/info.json +++ b/keyboards/idobao/id87/v1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ID87", + "manufacturer": "IDOBAO", "url": "https://www.idobao.net/products/idobao-id87-80-hot-swappable-mechanical-keyboard-kit", "maintainer": "qmk", + "usb": { + "vid": "0x6964", + "pid": "0x0087", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/idobao/id87/v2/config.h b/keyboards/idobao/id87/v2/config.h index f094ef0638..a9d00d518b 100644 --- a/keyboards/idobao/id87/v2/config.h +++ b/keyboards/idobao/id87/v2/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // "id" -#define PRODUCT_ID 0x0087 -#define DEVICE_VER 0x0002 -#define MANUFACTURER IDOBAO -#define PRODUCT ID87 - /* key matrix size */ #define MATRIX_ROWS 11 #define MATRIX_COLS 9 diff --git a/keyboards/idobao/id87/v2/info.json b/keyboards/idobao/id87/v2/info.json index e4e252aa64..ef18643d70 100644 --- a/keyboards/idobao/id87/v2/info.json +++ b/keyboards/idobao/id87/v2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ID87", + "manufacturer": "IDOBAO", "url": "https://www.idobao.net/products/idobao-id87-80-hot-swappable-mechanical-keyboard-kit", "maintainer": "qmk", + "usb": { + "vid": "0x6964", + "pid": "0x0087", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/idobao/id96/config.h b/keyboards/idobao/id96/config.h index 6bf1f14c43..3b0d9afc16 100644 --- a/keyboards/idobao/id96/config.h +++ b/keyboards/idobao/id96/config.h @@ -20,13 +20,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // "id" -#define PRODUCT_ID 0x0096 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT ID96 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/idobao/id96/info.json b/keyboards/idobao/id96/info.json index f972af64a2..0732bce154 100644 --- a/keyboards/idobao/id96/info.json +++ b/keyboards/idobao/id96/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "id96", + "keyboard_name": "ID96", + "manufacturer": "IDOBAO", "url": "https://www.idobao.net/collections/90/products/idobao-id96-aluminum-keyboard-kit", "maintainer": "vinorodrigues", + "usb": { + "vid": "0x6964", + "pid": "0x0096", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/idobao/montex/v1/config.h b/keyboards/idobao/montex/v1/config.h index 2321ce364e..c21dda65a7 100644 --- a/keyboards/idobao/montex/v1/config.h +++ b/keyboards/idobao/montex/v1/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Idobao -#define PRODUCT Montex - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 5 diff --git a/keyboards/idobao/montex/v1/info.json b/keyboards/idobao/montex/v1/info.json index c205e0027a..f683456174 100644 --- a/keyboards/idobao/montex/v1/info.json +++ b/keyboards/idobao/montex/v1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "montex numpad", + "keyboard_name": "Montex", + "manufacturer": "IDOBAO", "url": "https://www.idobao.net/products/ldobao-montex-pad-hot-swappable-mechanical-keyboard-kit", "maintainer": "NachoxMacho", + "usb": { + "vid": "0x6964", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_6x5": { "layout": [ diff --git a/keyboards/idobao/montex/v1rgb/config.h b/keyboards/idobao/montex/v1rgb/config.h index 609aeb417e..670b43462b 100755 --- a/keyboards/idobao/montex/v1rgb/config.h +++ b/keyboards/idobao/montex/v1rgb/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6964 // "id" -#define PRODUCT_ID 0x0127 -#define DEVICE_VER 0x0001 -#define MANUFACTURER IDOBAO -#define PRODUCT Montex RGB - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 5 diff --git a/keyboards/idobao/montex/v1rgb/info.json b/keyboards/idobao/montex/v1rgb/info.json index 27144e499c..9001a3dfec 100755 --- a/keyboards/idobao/montex/v1rgb/info.json +++ b/keyboards/idobao/montex/v1rgb/info.json @@ -1,5 +1,11 @@ { - "keyboard_name": "IDOBAO MONTEX RGB", + "keyboard_name": "Montex RGB", + "manufacturer": "IDOBAO", + "usb": { + "vid": "0x6964", + "pid": "0x0127", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_6x5": { "layout": [ diff --git a/keyboards/illuminati/is0/config.h b/keyboards/illuminati/is0/config.h index cd7a7ce28f..9416fd592f 100644 --- a/keyboards/illuminati/is0/config.h +++ b/keyboards/illuminati/is0/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0012 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Illuminati Works -#define PRODUCT iS0 - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 diff --git a/keyboards/illuminati/is0/info.json b/keyboards/illuminati/is0/info.json index f47cd753a9..f56850ca85 100644 --- a/keyboards/illuminati/is0/info.json +++ b/keyboards/illuminati/is0/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "iS0", + "manufacturer": "Illuminati Works", "url": "", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0012", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0.25, "y":0, "w":1.25, "h":2}] diff --git a/keyboards/illusion/rosa/config.h b/keyboards/illusion/rosa/config.h index 5ad421ecbe..16f5198907 100644 --- a/keyboards/illusion/rosa/config.h +++ b/keyboards/illusion/rosa/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x694B // iK -> illusion keyboards -#define PRODUCT_ID 0x6952 // iR -> illusion Rosa -#define DEVICE_VER 0x0001 -#define MANUFACTURER illusion keyboards -#define PRODUCT Rosa - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/illusion/rosa/info.json b/keyboards/illusion/rosa/info.json index 60e285d66f..9b9a613d01 100644 --- a/keyboards/illusion/rosa/info.json +++ b/keyboards/illusion/rosa/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Rosa", + "manufacturer": "illusion keyboards", "url": "", "maintainer": "illusion", + "usb": { + "vid": "0x694B", + "pid": "0x6952", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_tsangan": { "layout": [ diff --git a/keyboards/ilumkb/primus75/config.h b/keyboards/ilumkb/primus75/config.h index 4b6901d096..3abd1b219a 100644 --- a/keyboards/ilumkb/primus75/config.h +++ b/keyboards/ilumkb/primus75/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x445A -#define PRODUCT_ID 0x1014 -#define DEVICE_VER 0x0001 -#define MANUFACTURER moyi4681 -#define PRODUCT Primus75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/ilumkb/primus75/info.json b/keyboards/ilumkb/primus75/info.json index 56f2be0c81..30a970a5c9 100644 --- a/keyboards/ilumkb/primus75/info.json +++ b/keyboards/ilumkb/primus75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Primus75", + "manufacturer": "moyi4681", "url": "", "maintainer": "moyi4681", + "usb": { + "vid": "0x445A", + "pid": "0x1014", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.5, "y":0}, {"label":"F2", "x":2.5, "y":0}, {"label":"F3", "x":3.5, "y":0}, {"label":"F4", "x":4.5, "y":0}, {"label":"F5", "x":6, "y":0}, {"label":"F6", "x":7, "y":0}, {"label":"F7", "x":8, "y":0}, {"label":"F8", "x":9, "y":0}, {"label":"F9", "x":10.5, "y":0}, {"label":"F10", "x":11.5, "y":0}, {"label":"F11", "x":12.5, "y":0}, {"label":"F12", "x":13.5, "y":0}, {"label":"PrtSc", "x":15, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"x":13, "y":1.25}, {"label":"Backspace", "x":14, "y":1.25}, {"label":"Home", "x":15, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Page Up", "x":15, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Page Down", "x":15, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Up", "x":14, "y":4.25}, {"label":"End", "x":15, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25}, {"label":"Fn", "x":11, "y":5.25}, {"label":"Ctrl", "x":12, "y":5.25}, {"label":"Left", "x":13, "y":5.25}, {"label":"Down", "x":14, "y":5.25}, {"label":"Right", "x":15, "y":5.25}] diff --git a/keyboards/ilumkb/simpler61/config.h b/keyboards/ilumkb/simpler61/config.h index ae737bd1b6..26b7f603d4 100644 --- a/keyboards/ilumkb/simpler61/config.h +++ b/keyboards/ilumkb/simpler61/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC3C3 -#define PRODUCT_ID 0xC361 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Equalz -#define PRODUCT Simpler - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/ilumkb/simpler61/info.json b/keyboards/ilumkb/simpler61/info.json index 01dc02797f..7c2e0dd3af 100644 --- a/keyboards/ilumkb/simpler61/info.json +++ b/keyboards/ilumkb/simpler61/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Simpler61", + "manufacturer": "Equalz", "url": "", "maintainer": "Equalz", + "usb": { + "vid": "0xC3C3", + "pid": "0xC361", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_61_ansi": { "layout": [ diff --git a/keyboards/ilumkb/simpler64/config.h b/keyboards/ilumkb/simpler64/config.h index faf8fd152d..475e0d63c9 100644 --- a/keyboards/ilumkb/simpler64/config.h +++ b/keyboards/ilumkb/simpler64/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC3C3 -#define PRODUCT_ID 0xC364 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Equalz -#define PRODUCT Simpler - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/ilumkb/simpler64/info.json b/keyboards/ilumkb/simpler64/info.json index c0fd4800cc..0b99efb820 100644 --- a/keyboards/ilumkb/simpler64/info.json +++ b/keyboards/ilumkb/simpler64/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Simpler64", + "manufacturer": "Equalz", "url": "", "maintainer": "Equalz", + "usb": { + "vid": "0xC3C3", + "pid": "0xC364", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_64_ansi": { "layout": [ diff --git a/keyboards/ilumkb/volcano660/config.h b/keyboards/ilumkb/volcano660/config.h index 9fb7b03c2b..a64bcf64ba 100644 --- a/keyboards/ilumkb/volcano660/config.h +++ b/keyboards/ilumkb/volcano660/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x445A // "DZ" -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DZTECH -#define PRODUCT VOLCANO660 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/ilumkb/volcano660/info.json b/keyboards/ilumkb/volcano660/info.json index db26ee3859..a48cabf720 100644 --- a/keyboards/ilumkb/volcano660/info.json +++ b/keyboards/ilumkb/volcano660/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "volcano660", + "keyboard_name": "Volcano660", + "manufacturer": "DZTech", "url": "", "maintainer": "dztech", + "usb": { + "vid": "0x445A", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"label":"Shift", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index f516473cfa..2602dc8286 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -20,13 +20,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x694E //'iN' -#define PRODUCT_ID 0x5336 //'S6' -#define DEVICE_VER 0x0001 -#define MANUFACTURER iNETT Studio -#define PRODUCT SQUARE.X - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/inett_studio/sqx/hotswap/info.json b/keyboards/inett_studio/sqx/hotswap/info.json index f2d36a5035..6941c4c7d8 100644 --- a/keyboards/inett_studio/sqx/hotswap/info.json +++ b/keyboards/inett_studio/sqx/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "sqx", + "keyboard_name": "SQUARE.X", + "manufacturer": "iNETT Studio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x694E", + "pid": "0x5336", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_tsangan_hhkb": { "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.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index d1fbf8f7a1..921f2b85ec 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -20,13 +20,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x694E //'iN' -#define PRODUCT_ID 0x5336 //'S6' -#define DEVICE_VER 0x0001 -#define MANUFACTURER iNETT Studio -#define PRODUCT SQUARE.X - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/inett_studio/sqx/universal/info.json b/keyboards/inett_studio/sqx/universal/info.json index 4588b27d58..8a2750f5ba 100644 --- a/keyboards/inett_studio/sqx/universal/info.json +++ b/keyboards/inett_studio/sqx/universal/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "sqx", + "keyboard_name": "SQUARE.X", + "manufacturer": "iNETT Studio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x694E", + "pid": "0x5336", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_tsangan_split_rshift": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/input_club/ergodox_infinity/config.h b/keyboards/input_club/ergodox_infinity/config.h index debf9a62b9..458b2d1042 100644 --- a/keyboards/input_club/ergodox_infinity/config.h +++ b/keyboards/input_club/ergodox_infinity/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1c11 -#define PRODUCT_ID 0xb04d -#define DEVICE_VER 0x0001 -#define MANUFACTURER Input Club -#define PRODUCT Infinity_Ergodox/QMK - #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 #define MOUSEKEY_TIME_TO_MAX 60 diff --git a/keyboards/input_club/ergodox_infinity/info.json b/keyboards/input_club/ergodox_infinity/info.json index 22b20eec39..dd6b3ac9aa 100644 --- a/keyboards/input_club/ergodox_infinity/info.json +++ b/keyboards/input_club/ergodox_infinity/info.json @@ -1,5 +1,11 @@ { - "keyboard_name": "Infinity Ergodox", + "keyboard_name": "Infinity Ergodox (QMK)", + "manufacturer": "Input:Club", + "usb": { + "vid": "0x1C11", + "pid": "0xB04D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ergodox": { "layout": [ diff --git a/keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c index 6f9967b46e..cd65001803 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c @@ -167,7 +167,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/input_club/ergodox_infinity/keymaps/gordon/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/gordon/keymap.c index 50e3238a7d..c321d546fb 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/gordon/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/gordon/keymap.c @@ -335,7 +335,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_on(); ergodox_led_all_on(); diff --git a/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c index c8498fe9e9..3870dd8ffd 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c @@ -492,7 +492,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/input_club/ergodox_infinity/keymaps/input_club/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/input_club/keymap.c index e941cee154..545429fca0 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/input_club/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/input_club/keymap.c @@ -223,7 +223,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c index 184eb638c9..dd721e9a78 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c @@ -659,7 +659,7 @@ void matrix_setup(void) { } void matrix_scan_user(void) { - // uint8_t layer = get_highest_layer(layer_state); + // uint8_t layer = biton32(layer_state); // ergodox_board_led_off(); // ergodox_right_led_1_off(); diff --git a/keyboards/input_club/ergodox_infinity/keymaps/nordic_ergo/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/nordic_ergo/keymap.c index 70f49bb5c9..d08b96cc6e 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/nordic_ergo/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/nordic_ergo/keymap.c @@ -221,7 +221,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/input_club/ergodox_infinity/keymaps/rask/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/rask/keymap.c index b202823c77..e31c1c5d6b 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/rask/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/rask/keymap.c @@ -179,7 +179,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/input_club/ergodox_infinity/keymaps/rjhilgefort/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/rjhilgefort/keymap.c index c322222baf..31d218ebfb 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/rjhilgefort/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/rjhilgefort/keymap.c @@ -309,7 +309,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/input_club/ergodox_infinity/keymaps/trulyergonomic/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/trulyergonomic/keymap.c index bbc24ea27f..02f409ad9e 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/trulyergonomic/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/trulyergonomic/keymap.c @@ -137,7 +137,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/input_club/infinity60/config.h b/keyboards/input_club/infinity60/config.h index 18fedcb219..a9901ce1e8 100644 --- a/keyboards/input_club/infinity60/config.h +++ b/keyboards/input_club/infinity60/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1C11 -#define PRODUCT_ID 0xB04D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Input Club -#define PRODUCT Infinity 60% (QMK) - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 9 diff --git a/keyboards/input_club/infinity60/info.json b/keyboards/input_club/infinity60/info.json index 3fbd8b1b25..8ec3f7dc68 100644 --- a/keyboards/input_club/infinity60/info.json +++ b/keyboards/input_club/infinity60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Infinity 60%", + "keyboard_name": "Infinity 60% (QMK)", + "manufacturer": "Input:Club", "url": "https://input.club/devices/infinity-keyboard/", "maintainer": "qmk", + "usb": { + "vid": "0x1C11", + "pid": "0xB04D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ diff --git a/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c b/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c index a19be6664c..3c2e0d4da8 100644 --- a/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c @@ -239,7 +239,7 @@ void matrix_scan_user(void) { //Turn on layer indicator or page depending on mode switch(led_mode_global) { case MODE_FLASH: //flash preset page leds then single indicator - page = get_highest_layer(layer_state) > max_pages ? 7 : get_highest_layer(layer_state); + page = biton32(layer_state) > max_pages ? 7 : biton32(layer_state); msg=(page << 8) | DISPLAY_PAGE; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); chThdSleepMilliseconds(500); @@ -254,7 +254,7 @@ void matrix_scan_user(void) { break; case MODE_PAGE: //display pre-defined led page - page = get_highest_layer(layer_state) > max_pages ? 7 : get_highest_layer(layer_state); + page = biton32(layer_state) > max_pages ? 7 : biton32(layer_state); msg=(page << 8) | DISPLAY_PAGE; chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); break; diff --git a/keyboards/input_club/k_type/config.h b/keyboards/input_club/k_type/config.h index 8502ba7046..d55bf89236 100644 --- a/keyboards/input_club/k_type/config.h +++ b/keyboards/input_club/k_type/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1C11 -#define PRODUCT_ID 0xB04D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Input:Club -#define PRODUCT K-Type (QMK) - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/input_club/k_type/info.json b/keyboards/input_club/k_type/info.json index cf0c9253bd..6c9e1ebc16 100644 --- a/keyboards/input_club/k_type/info.json +++ b/keyboards/input_club/k_type/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "K-Type", + "keyboard_name": "K-Type (QMK)", + "manufacturer": "Input:Club", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x1C11", + "pid": "0xB04D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/input_club/whitefox/config.h b/keyboards/input_club/whitefox/config.h index 4ea7e7806f..fde568ddae 100644 --- a/keyboards/input_club/whitefox/config.h +++ b/keyboards/input_club/whitefox/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1C11 -#define PRODUCT_ID 0xB04D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Input:Club -#define PRODUCT WhiteFox (QMK) - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 9 diff --git a/keyboards/input_club/whitefox/info.json b/keyboards/input_club/whitefox/info.json index a920d7c129..ed46ce1702 100644 --- a/keyboards/input_club/whitefox/info.json +++ b/keyboards/input_club/whitefox/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "Whitefox", + "keyboard_name": "Whitefox (QMK)", + "manufacturer": "Input:Club", "maintainer": "qmk", + "usb": { + "vid": "0x1C11", + "pid": "0xB04D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/io_mini1800/config.h b/keyboards/io_mini1800/config.h index ea7efd8ff4..88636c2825 100644 --- a/keyboards/io_mini1800/config.h +++ b/keyboards/io_mini1800/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER jpuerto96 -#define PRODUCT io_mini1800 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/io_mini1800/info.json b/keyboards/io_mini1800/info.json index 13a5fb3262..0db951f44a 100644 --- a/keyboards/io_mini1800/info.json +++ b/keyboards/io_mini1800/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "io_mini1800", + "manufacturer": "jpuerto96", "url": "https://github.com/jpuerto96", "maintainer": "jpuerto96 (s8erdude)", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_625u": { "layout": [ diff --git a/keyboards/irene/config.h b/keyboards/irene/config.h index 34093e33a1..9b745d1c1d 100644 --- a/keyboards/irene/config.h +++ b/keyboards/irene/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1434 -#define PRODUCT_ID 0x3000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Andrei Collado -#define PRODUCT Irene - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/irene/info.json b/keyboards/irene/info.json index 1219010915..1500f81ca2 100644 --- a/keyboards/irene/info.json +++ b/keyboards/irene/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Irene", + "manufacturer": "Andrei Collado", "url": "", "maintainer": "Andrei Collado", + "usb": { + "vid": "0x1434", + "pid": "0x3000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/iriskeyboards/config.h b/keyboards/iriskeyboards/config.h index 8757c407b2..2d06e9f05c 100644 --- a/keyboards/iriskeyboards/config.h +++ b/keyboards/iriskeyboards/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x494B // IK (IrisKeyboards) -#define PRODUCT_ID 0x3031 // 01 (PCB no.01) -#define DEVICE_VER 0x0001 -#define MANUFACTURER SonOfAres -#define PRODUCT IrisRev0 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/iriskeyboards/info.json b/keyboards/iriskeyboards/info.json index 480fb0428e..9091531538 100644 --- a/keyboards/iriskeyboards/info.json +++ b/keyboards/iriskeyboards/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "iriskeyboards", + "keyboard_name": "Iris Rev0", + "manufacturer": "SonOfAres", "url": "", "maintainer": "SonOfAres", + "usb": { + "vid": "0x494B", + "pid": "0x3031", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/iron180/config.h b/keyboards/iron180/config.h index cc5c81a50c..2f69d00937 100644 --- a/keyboards/iron180/config.h +++ b/keyboards/iron180/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8384 //SR for Smith and Rune -#define PRODUCT_ID 0x1180 -#define DEVICE_VER 0x0001 -#define MANUFACTURER SmithRune -#define PRODUCT IRON180 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/iron180/info.json b/keyboards/iron180/info.json index 64ee4b4ee3..cd68970641 100644 --- a/keyboards/iron180/info.json +++ b/keyboards/iron180/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Iron180", + "manufacturer": "SmithRune", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x8384", + "pid": "0x1180", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/j80/config.h b/keyboards/j80/config.h index 3aaeb26dad..1ad00356fe 100644 --- a/keyboards/j80/config.h +++ b/keyboards/j80/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0001 -#define MANUFACTURER JER -#define PRODUCT J80 - #define MATRIX_ROWS 7 #define MATRIX_COLS 14 diff --git a/keyboards/j80/info.json b/keyboards/j80/info.json index 6c14139bd7..bbb86f66f7 100644 --- a/keyboards/j80/info.json +++ b/keyboards/j80/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "J80", + "manufacturer": "JER", "url": "", "maintainer": "oeywil", + "usb": { + "vid": "0x20A0", + "pid": "0x422D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/jacky_studio/bear_65/config.h b/keyboards/jacky_studio/bear_65/config.h index e68ed4a928..92a6a5b60a 100644 --- a/keyboards/jacky_studio/bear_65/config.h +++ b/keyboards/jacky_studio/bear_65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA13B // Jacky's vendor ID, arbitrarily selected by MudkipMao -#define PRODUCT_ID 0x000A -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jacky -#define PRODUCT Jacky Bear 65 Ergo - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/jacky_studio/bear_65/info.json b/keyboards/jacky_studio/bear_65/info.json index 5f7f059696..151fd6fa5f 100644 --- a/keyboards/jacky_studio/bear_65/info.json +++ b/keyboards/jacky_studio/bear_65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bear 65", + "manufacturer": "Jacky", "url": "https://qmk.fm/keyboards", "maintainer": "qmk", + "usb": { + "vid": "0xA13B", + "pid": "0x000A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0.5, "y":0}, {"label":"~", "x":1.75, "y":0}, {"label":"!", "x":2.75, "y":0}, {"label":"@", "x":3.75, "y":0}, {"label":"#", "x":4.75, "y":0}, {"label":"$", "x":5.75, "y":0}, {"label":"%", "x":6.75, "y":0}, {"label":"^", "x":7.75, "y":0}, {"label":"&", "x":11.25, "y":0}, {"label":"*", "x":12.25, "y":0}, {"label":"(", "x":13.25, "y":0}, {"label":")", "x":14.25, "y":0}, {"label":"_", "x":15.25, "y":0}, {"label":"+", "x":16.25, "y":0}, {"label":"|", "x":17.25, "y":0}, {"label":"~", "x":18.25, "y":0}, {"label":"Del", "x":19.75, "y":0}, {"label":"PgUp", "x":0.25, "y":1}, {"label":"Tab", "x":1.75, "y":1, "w":1.5}, {"label":"Q", "x":3.25, "y":1}, {"label":"W", "x":4.25, "y":1}, {"label":"E", "x":5.25, "y":1}, {"label":"R", "x":6.25, "y":1}, {"label":"T", "x":7.25, "y":1}, {"label":"Y", "x":10.75, "y":1}, {"label":"U", "x":11.75, "y":1}, {"label":"I", "x":12.75, "y":1}, {"label":"O", "x":13.75, "y":1}, {"label":"P", "x":14.75, "y":1}, {"label":"{", "x":15.75, "y":1}, {"label":"}", "x":16.75, "y":1}, {"label":"Backspace", "x":17.75, "y":1, "w":1.5}, {"label":"PgDn", "x":0, "y":2}, {"label":"Caps Lock", "x":1.75, "y":2, "w":1.75}, {"label":"A", "x":3.5, "y":2}, {"label":"S", "x":4.5, "y":2}, {"label":"D", "x":5.5, "y":2}, {"label":"F", "x":6.5, "y":2}, {"label":"G", "x":7.5, "y":2}, {"label":"H", "x":11, "y":2}, {"label":"J", "x":12, "y":2}, {"label":"K", "x":13, "y":2}, {"label":"L", "x":14, "y":2}, {"label":":", "x":15, "y":2}, {"label":"\"", "x":16, "y":2}, {"label":"Enter", "x":17, "y":2, "w":2.25}, {"label":"Shift", "x":1.75, "y":3, "w":2.25}, {"label":"Z", "x":4, "y":3}, {"label":"X", "x":5, "y":3}, {"label":"C", "x":6, "y":3}, {"label":"V", "x":7, "y":3}, {"label":"B", "x":8, "y":3}, {"label":"B", "x":10.5, "y":3}, {"label":"N", "x":11.5, "y":3}, {"label":"M", "x":12.5, "y":3}, {"label":"<", "x":13.5, "y":3}, {"label":">", "x":14.5, "y":3}, {"label":"?", "x":15.5, "y":3}, {"label":"Shift", "x":16.5, "y":3, "w":1.75}, {"label":"Up", "x":18.25, "y":3}, {"label":"Ctrl", "x":1.75, "y":4, "w":1.5}, {"label":"Alt", "x":4.75, "y":4, "w":1.25}, {"x":6, "y":4, "w":2.25}, {"label":"Win", "x":8.25, "y":4}, {"x":10.5, "y":4, "w":2.75}, {"label":"Alt", "x":13.25, "y":4, "w":1.5}, {"label":"Left", "x":17.25, "y":4}, {"label":"Down", "x":18.25, "y":4}, {"label":"Right", "x":19.25, "y":4}] diff --git a/keyboards/jacky_studio/s7_elephant/rev1/config.h b/keyboards/jacky_studio/s7_elephant/rev1/config.h index 76c4c7d406..96f8d57ede 100644 --- a/keyboards/jacky_studio/s7_elephant/rev1/config.h +++ b/keyboards/jacky_studio/s7_elephant/rev1/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA13B // Hexidecimal A13B will be Jacky's vendor ID -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER jacky -#define PRODUCT S7 Elephant - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/jacky_studio/s7_elephant/rev1/info.json b/keyboards/jacky_studio/s7_elephant/rev1/info.json index b47f326456..b1621eecd7 100644 --- a/keyboards/jacky_studio/s7_elephant/rev1/info.json +++ b/keyboards/jacky_studio/s7_elephant/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "S7 Elephant", + "keyboard_name": "S7 Elephant Rev1", + "manufacturer": "Jacky", "url": "https://geekhack.org/index.php?topic=96434.0", "maintainer": "qmk", + "usb": { + "vid": "0xA13B", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/jacky_studio/s7_elephant/rev2/config.h b/keyboards/jacky_studio/s7_elephant/rev2/config.h index 246479dd37..41a8c77f9d 100644 --- a/keyboards/jacky_studio/s7_elephant/rev2/config.h +++ b/keyboards/jacky_studio/s7_elephant/rev2/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA13B // Hexidecimal A13B will be Jacky's vendor ID -#define PRODUCT_ID 0x0008 // 8 for S7++ -#define DEVICE_VER 0x0002 -#define MANUFACTURER Jacky -#define PRODUCT Jacky S7 Elephant Rev 2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/jacky_studio/s7_elephant/rev2/info.json b/keyboards/jacky_studio/s7_elephant/rev2/info.json index e3be4afe38..c9f45edca9 100644 --- a/keyboards/jacky_studio/s7_elephant/rev2/info.json +++ b/keyboards/jacky_studio/s7_elephant/rev2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "S7 Elephant Rev2", + "manufacturer": "Jacky", "url": "https://geekhack.org/index.php?topic=103148.0", "maintainer": "qmk", + "usb": { + "vid": "0xA13B", + "pid": "0x0008", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/jadookb/jkb2/config.h b/keyboards/jadookb/jkb2/config.h index ac5808f236..21ec68ad9b 100644 --- a/keyboards/jadookb/jkb2/config.h +++ b/keyboards/jadookb/jkb2/config.h @@ -16,12 +16,6 @@ #pragma once #include "config_common.h" -#define VENDOR_ID 0x4A4B // "JK" -#define PRODUCT_ID 0x3225 // "2%" -#define DEVICE_VER 0x0001 -#define MANUFACTURER JadooKB -#define PRODUCT JKB2 - #define MATRIX_ROWS 1 #define MATRIX_COLS 2 diff --git a/keyboards/jadookb/jkb2/info.json b/keyboards/jadookb/jkb2/info.json index ed818d6412..ef27783c7a 100644 --- a/keyboards/jadookb/jkb2/info.json +++ b/keyboards/jadookb/jkb2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "jkb2", + "keyboard_name": "JKB2", + "manufacturer": "JadooKB", "url": "https://jadookb.com/", "maintainer": "Wizard-GG", + "usb": { + "vid": "0x4A4B", + "pid": "0x3225", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ {"label":"z","x": 0, "y": 0 }, {"label":"x","x": 1, "y": 0 }] diff --git a/keyboards/jae/j01/config.h b/keyboards/jae/j01/config.h index 552f6930cb..1804dfeb4e 100644 --- a/keyboards/jae/j01/config.h +++ b/keyboards/jae/j01/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4705 -#define PRODUCT_ID 0x0143 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Evyd13 -#define PRODUCT J-01 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/jae/j01/info.json b/keyboards/jae/j01/info.json index 03c18c46d1..94363e3aa5 100644 --- a/keyboards/jae/j01/info.json +++ b/keyboards/jae/j01/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "J01", + "keyboard_name": "J-01", + "manufacturer": "Evyd13", "url": "", "maintainer": "MechMerlin", + "usb": { + "vid": "0x4705", + "pid": "0x0143", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":18, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2.5, "y":1, "w":1.5}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1, "w":1.5}, {"x":18, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2.5, "y":2, "w":1.75}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"x":11.25, "y":2}, {"x":12.25, "y":2}, {"x":13.25, "y":2}, {"x":14.25, "y":2}, {"x":15.25, "y":2, "w":2.25}, {"x":18, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2.5, "y":3, "w":2.25}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3}, {"x":14.75, "y":3, "w":1.75}, {"x":16.75, "y":3.25}, {"x":18, "y":3}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":1.25}, {"x":6.25, "y":4, "w":6.25}, {"x":12.5, "y":4, "w":1.5}, {"x":14, "y":4, "w":1.5}, {"x":15.75, "y":4.25}, {"x":16.75, "y":4.25}, {"x":17.75, "y":4.25}] diff --git a/keyboards/jagdpietr/drakon/config.h b/keyboards/jagdpietr/drakon/config.h index 611b107137..e6c205e61c 100644 --- a/keyboards/jagdpietr/drakon/config.h +++ b/keyboards/jagdpietr/drakon/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x7776 -#define DEVICE_VER 0x0001 -#define MANUFACTURER jagdpietr -#define PRODUCT drakon - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/jagdpietr/drakon/info.json b/keyboards/jagdpietr/drakon/info.json index 8208fa22bb..48945eaf3e 100644 --- a/keyboards/jagdpietr/drakon/info.json +++ b/keyboards/jagdpietr/drakon/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "drakon", + "manufacturer": "jagdpietr", "url": "", "maintainer": "jagdpietr", + "usb": { + "vid": "0xFEED", + "pid": "0x7776", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":16.25, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15.25, "y":1}, {"x":16.25, "y":1}, {"x":17.25, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":16.25, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.25}, {"x":13.75, "y":3.25}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.75, "y":4.25}, {"x":13.75, "y":4.25}, {"x":14.75, "y":4.25}] diff --git a/keyboards/jc65/v32a/config.h b/keyboards/jc65/v32a/config.h index b4cef251b5..01b73b34db 100644 --- a/keyboards/jc65/v32a/config.h +++ b/keyboards/jc65/v32a/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x1234 -#define PRODUCT_ID 0x5679 -#define DEVICE_VER 0x0200 -#define MANUFACTURER RAMA -#define PRODUCT JC65 BMC - /* matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 15 diff --git a/keyboards/jc65/v32a/info.json b/keyboards/jc65/v32a/info.json index 9c22289d8f..a6130b77c6 100644 --- a/keyboards/jc65/v32a/info.json +++ b/keyboards/jc65/v32a/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "jc65", + "keyboard_name": "JC65 BMC", + "manufacturer": "RAMA", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x1234", + "pid": "0x5679", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/jc65/v32u4/config.h b/keyboards/jc65/v32u4/config.h index 108e4126be..f4b4963236 100644 --- a/keyboards/jc65/v32u4/config.h +++ b/keyboards/jc65/v32u4/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0002 -#define MANUFACTURER dou -#define PRODUCT KEYCLACK65-V1 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/jc65/v32u4/info.json b/keyboards/jc65/v32u4/info.json index 84d832eede..83e248fc30 100644 --- a/keyboards/jc65/v32u4/info.json +++ b/keyboards/jc65/v32u4/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "jc65", + "keyboard_name": "JC65", + "manufacturer": "dou", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c b/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c index 453cd2360d..7572b9e073 100644 --- a/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c +++ b/keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c @@ -224,7 +224,7 @@ void matrix_scan_user(void) { } layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _BL: custom_backlight_level(0); rgblight_sethsv_noeeprom(180,100,255); diff --git a/keyboards/jd40/config.h b/keyboards/jd40/config.h index dd6984f108..3645e86984 100644 --- a/keyboards/jd40/config.h +++ b/keyboards/jd40/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER geekhack -#define PRODUCT jd40v2 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/jd40/info.json b/keyboards/jd40/info.json index 6cfdcdc3ee..b94e9076f7 100644 --- a/keyboards/jd40/info.json +++ b/keyboards/jd40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "jd40", + "manufacturer": "geekhack", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/jd45/config.h b/keyboards/jd45/config.h index 3deea19740..ec4628fccb 100644 --- a/keyboards/jd45/config.h +++ b/keyboards/jd45/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER geekhack -#define PRODUCT JD45 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/jd45/info.json b/keyboards/jd45/info.json index 99059b0960..3fa16119f6 100644 --- a/keyboards/jd45/info.json +++ b/keyboards/jd45/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "jd45", + "keyboard_name": "JD45", + "manufacturer": "geekhack", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/jels/jels60/config.h b/keyboards/jels/jels60/config.h index 6805018dd7..ab9c51335b 100644 --- a/keyboards/jels/jels60/config.h +++ b/keyboards/jels/jels60/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor paramater */ -#define VENDOR_ID 0x006A //Jels (J) -#define PRODUCT_ID 0x0060 //Jels 60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER jels -#define PRODUCT jels60 - /* Define Matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/jels/jels60/info.json b/keyboards/jels/jels60/info.json index b958bb6905..d8c6590ccb 100644 --- a/keyboards/jels/jels60/info.json +++ b/keyboards/jels/jels60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Jels60", + "manufacturer": "Jels", "url": "", "maintainer": "Jels", + "usb": { + "vid": "0x006A", + "pid": "0x0060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/jels/jels88/config.h b/keyboards/jels/jels88/config.h index 3018e15c86..54c2fecc5c 100644 --- a/keyboards/jels/jels88/config.h +++ b/keyboards/jels/jels88/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor paramater */ -#define VENDOR_ID 0x006a // Jels (J) -#define PRODUCT_ID 0x0088 // Jels 88 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jels -#define PRODUCT Jels88 - /* Define Matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/jels/jels88/info.json b/keyboards/jels/jels88/info.json index 827e911494..dc4887cbb7 100644 --- a/keyboards/jels/jels88/info.json +++ b/keyboards/jels/jels88/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Jels88", + "manufacturer": "Jels", "url": "", "maintainer": "Jels", + "usb": { + "vid": "0x006A", + "pid": "0x0088", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/jiran/config.h b/keyboards/jiran/config.h index da100292e2..0579f44a77 100644 --- a/keyboards/jiran/config.h +++ b/keyboards/jiran/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1209 -#define PRODUCT_ID 0x3735 -#define DEVICE_VER 0x0300 -#define MANUFACTURER Ladniy -#define PRODUCT Jiran - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/jiran/info.json b/keyboards/jiran/info.json index 8dd6a43fe8..93b8ad11ce 100644 --- a/keyboards/jiran/info.json +++ b/keyboards/jiran/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "jiran", + "keyboard_name": "Jiran", + "manufacturer": "Ladniy", "url": "t.me/s/ladniys", "maintainer": "Ladniy", + "usb": { + "vid": "0x1209", + "pid": "0x3735", + "device_version": "3.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/jkdlab/binary_monkey/config.h b/keyboards/jkdlab/binary_monkey/config.h index ba8bfcd8d1..1c12761600 100644 --- a/keyboards/jkdlab/binary_monkey/config.h +++ b/keyboards/jkdlab/binary_monkey/config.h @@ -20,12 +20,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4934 -#define PRODUCT_ID 0x0101 -#define DEVICE_VER 0x0001 -#define MANUFACTURER JKDLAB. -#define PRODUCT Binary_Monkey - #define MATRIX_ROWS 1 #define MATRIX_COLS 3 #define MATRIX_ROW_PINS { D0 } diff --git a/keyboards/jkdlab/binary_monkey/info.json b/keyboards/jkdlab/binary_monkey/info.json index 9d563c0b12..24671d285d 100644 --- a/keyboards/jkdlab/binary_monkey/info.json +++ b/keyboards/jkdlab/binary_monkey/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Binary_Monkey", + "manufacturer": "JKDLAB.", "url": "https://gumroad.com/jkdlab", "maintainer": "JKDLAB.", + "usb": { + "vid": "0x4934", + "pid": "0x0101", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/jm60/config.h b/keyboards/jm60/config.h index 113c6b4dfb..d3b5ec7243 100644 --- a/keyboards/jm60/config.h +++ b/keyboards/jm60/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 -#define MANUFACTURER JMWS -#define PRODUCT JM60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/jm60/info.json b/keyboards/jm60/info.json index cdb0da4671..5ad1053aa9 100644 --- a/keyboards/jm60/info.json +++ b/keyboards/jm60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "JM60", + "manufacturer": "JMWS", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6464", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/jolofsor/denial75/config.h b/keyboards/jolofsor/denial75/config.h index 702fee324f..a5d8b9fe59 100644 --- a/keyboards/jolofsor/denial75/config.h +++ b/keyboards/jolofsor/denial75/config.h @@ -17,13 +17,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4A48 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER jsor-hpoli -#define PRODUCT denial75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/jolofsor/denial75/info.json b/keyboards/jolofsor/denial75/info.json index 71c9651a8a..0224187eff 100644 --- a/keyboards/jolofsor/denial75/info.json +++ b/keyboards/jolofsor/denial75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "denial75", + "manufacturer": "jsor-hpoli", "url": "", "maintainer": "jolofsor", + "usb": { + "vid": "0x4A48", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_denial75_ansi": { "layout": [ diff --git a/keyboards/jones/v03/config.h b/keyboards/jones/v03/config.h index 706c1d05e9..9123005ac4 100644 --- a/keyboards/jones/v03/config.h +++ b/keyboards/jones/v03/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xB9DD -#define PRODUCT_ID 0x175A -#define DEVICE_VER 0x0030 -#define MANUFACTURER jpskenn -#define PRODUCT Jones - /* key matrix size */ // Same size for Jones' custom Round-Robin matrix. #define MATRIX_ROWS 11 diff --git a/keyboards/jones/v03/info.json b/keyboards/jones/v03/info.json index c3d0477afc..c2884886b6 100644 --- a/keyboards/jones/v03/info.json +++ b/keyboards/jones/v03/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Jones", + "manufacturer": "jpskenn", "url": "https://github.com/jpskenn/Jones", "maintainer": "jpskenn", + "usb": { + "vid": "0xB9DD", + "pid": "0x175A", + "device_version": "0.3.0" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/jones/v03/keymaps/default_jp/config.h b/keyboards/jones/v03/keymaps/default_jp/config.h index 7545003ac7..aa06121c1c 100644 --- a/keyboards/jones/v03/keymaps/default_jp/config.h +++ b/keyboards/jones/v03/keymaps/default_jp/config.h @@ -21,4 +21,3 @@ // time for long press #define TAPPING_TERM 200 -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/jones/v03/keymaps/default_jp/keymap.c b/keyboards/jones/v03/keymaps/default_jp/keymap.c index bdcb9e88b1..3f5b10208c 100644 --- a/keyboards/jones/v03/keymaps/default_jp/keymap.c +++ b/keyboards/jones/v03/keymaps/default_jp/keymap.c @@ -51,18 +51,9 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data); // Tap Dance definitions qk_tap_dance_action_t tap_dance_actions[] = { [TD_LSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), - [TD_ESC_NUM] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ql_finished, ql_reset), + [TD_ESC_NUM] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275), }; -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_NUM): - return 275; - default: - return TAPPING_TERM; - } -} - // Defines the keycodes used by our macros in process_record_user enum custom_keycodes { MAC = SAFE_RANGE, @@ -312,7 +303,7 @@ static tap ql_tap_state = { // Functions that control what our tap dance key does void ql_finished(qk_tap_dance_state_t *state, void *user_data) { ql_tap_state.state = cur_dance(state); - switch(TAP_DANCE_KEYCODE(state)) { + switch(state->keycode) { case TD(TD_ESC_NUM): // ESC key action switch (ql_tap_state.state) { case SINGLE_TAP: @@ -341,7 +332,7 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) { } void ql_reset(qk_tap_dance_state_t *state, void *user_data) { - switch(TAP_DANCE_KEYCODE(state)) { + switch(state->keycode) { case TD(TD_ESC_NUM): // If the key was held down and now is released then switch off the layer if (ql_tap_state.state == TAP_HOLD) { diff --git a/keyboards/jones/v03_1/config.h b/keyboards/jones/v03_1/config.h index 33dd0994a5..e73bb22850 100644 --- a/keyboards/jones/v03_1/config.h +++ b/keyboards/jones/v03_1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xB9DD -#define PRODUCT_ID 0x175A -#define DEVICE_VER 0x0031 -#define MANUFACTURER jpskenn -#define PRODUCT Jones - /* key matrix size */ // Same size for Jones' custom Round-Robin matrix. #define MATRIX_ROWS 11 diff --git a/keyboards/jones/v03_1/info.json b/keyboards/jones/v03_1/info.json index c3d0477afc..365178b9d5 100644 --- a/keyboards/jones/v03_1/info.json +++ b/keyboards/jones/v03_1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Jones", + "manufacturer": "jpskenn", "url": "https://github.com/jpskenn/Jones", "maintainer": "jpskenn", + "usb": { + "vid": "0xB9DD", + "pid": "0x175A", + "device_version": "0.3.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/jones/v03_1/keymaps/default_ansi/config.h b/keyboards/jones/v03_1/keymaps/default_ansi/config.h index ee7b09a90c..0b51190bbe 100644 --- a/keyboards/jones/v03_1/keymaps/default_ansi/config.h +++ b/keyboards/jones/v03_1/keymaps/default_ansi/config.h @@ -21,7 +21,6 @@ // time for long press #define TAPPING_TERM 200 -#define TAPPING_TERM_PER_KEY // music map for music-mode #define MUSIC_MAP diff --git a/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c b/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c index a592418c4d..5b1486bb86 100644 --- a/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c +++ b/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c @@ -50,18 +50,9 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data); // Tap Dance definitions qk_tap_dance_action_t tap_dance_actions[] = { [TD_LSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), - [TD_ESC_NUM] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ql_finished, ql_reset), + [TD_ESC_NUM] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275), }; -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_NUM): - return 275; - default: - return TAPPING_TERM; - } -} - // Defines the keycodes used by our macros in process_record_user enum custom_keycodes { MAC = SAFE_RANGE, @@ -253,7 +244,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } if (index == 1) { /* Second encoder, Left side */ - switch(get_highest_layer(layer_state)) { + switch(biton32(layer_state)) { case _LOWER: if (clockwise) { rgblight_decrease_hue(); @@ -331,7 +322,7 @@ static tap ql_tap_state = { // Functions that control what our tap dance key does void ql_finished(qk_tap_dance_state_t *state, void *user_data) { ql_tap_state.state = cur_dance(state); - switch(TAP_DANCE_KEYCODE(state)) { + switch(state->keycode) { case TD(TD_ESC_NUM): // ESC key action switch (ql_tap_state.state) { case SINGLE_TAP: @@ -360,7 +351,7 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) { } void ql_reset(qk_tap_dance_state_t *state, void *user_data) { - switch(TAP_DANCE_KEYCODE(state)) { + switch(state->keycode) { case TD(TD_ESC_NUM): // If the key was held down and now is released then switch off the layer if (ql_tap_state.state == TAP_HOLD) { diff --git a/keyboards/jones/v03_1/keymaps/default_jp/config.h b/keyboards/jones/v03_1/keymaps/default_jp/config.h index ee7b09a90c..0b51190bbe 100644 --- a/keyboards/jones/v03_1/keymaps/default_jp/config.h +++ b/keyboards/jones/v03_1/keymaps/default_jp/config.h @@ -21,7 +21,6 @@ // time for long press #define TAPPING_TERM 200 -#define TAPPING_TERM_PER_KEY // music map for music-mode #define MUSIC_MAP diff --git a/keyboards/jones/v03_1/keymaps/default_jp/keymap.c b/keyboards/jones/v03_1/keymaps/default_jp/keymap.c index 56f51d56ce..436586a721 100644 --- a/keyboards/jones/v03_1/keymaps/default_jp/keymap.c +++ b/keyboards/jones/v03_1/keymaps/default_jp/keymap.c @@ -51,18 +51,9 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data); // Tap Dance definitions qk_tap_dance_action_t tap_dance_actions[] = { [TD_LSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), - [TD_ESC_NUM] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ql_finished, ql_reset), + [TD_ESC_NUM] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275), }; -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_NUM): - return 275; - default: - return TAPPING_TERM; - } -} - // Defines the keycodes used by our macros in process_record_user enum custom_keycodes { MAC = SAFE_RANGE, @@ -255,7 +246,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } if (index == 1) { /* Second encoder, Left side */ - switch(get_highest_layer(layer_state)) { + switch(biton32(layer_state)) { case _LOWER: if (clockwise) { rgblight_decrease_hue(); @@ -333,7 +324,7 @@ static tap ql_tap_state = { // Functions that control what our tap dance key does void ql_finished(qk_tap_dance_state_t *state, void *user_data) { ql_tap_state.state = cur_dance(state); - switch(TAP_DANCE_KEYCODE(state)) { + switch(state->keycode) { case TD(TD_ESC_NUM): // ESC key action switch (ql_tap_state.state) { case SINGLE_TAP: @@ -362,7 +353,7 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) { } void ql_reset(qk_tap_dance_state_t *state, void *user_data) { - switch(TAP_DANCE_KEYCODE(state)) { + switch(state->keycode) { case TD(TD_ESC_NUM): // If the key was held down and now is released then switch off the layer if (ql_tap_state.state == TAP_HOLD) { diff --git a/keyboards/jones/v1/config.h b/keyboards/jones/v1/config.h index 16610eef4a..0d4ab90a60 100644 --- a/keyboards/jones/v1/config.h +++ b/keyboards/jones/v1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xB9DD -#define PRODUCT_ID 0x175A -#define DEVICE_VER 0x0100 -#define MANUFACTURER jpskenn -#define PRODUCT Jones - /* key matrix size */ // Same number for Round-Robin matrix. #define MATRIX_ROWS 10 diff --git a/keyboards/jones/v1/info.json b/keyboards/jones/v1/info.json index 6aba4fd74b..e323445fc9 100644 --- a/keyboards/jones/v1/info.json +++ b/keyboards/jones/v1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Jones", + "manufacturer": "jpskenn", "url": "https://github.com/jpskenn/Jones", "maintainer": "jpskenn", + "usb": { + "vid": "0xB9DD", + "pid": "0x175A", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/jorne/keymaps/manna-harbour_miryoku/config.h b/keyboards/jorne/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..76b24aa99e --- /dev/null +++ b/keyboards/jorne/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,21 @@ +// Copyright 2022 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, XXX, \ + XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ + XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ + K32, K33, K34, K35, K36, K37 \ +) diff --git a/keyboards/jorne/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/jorne/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/keyboards/jorne/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/k34/config.h b/keyboards/k34/config.h index 4d9910d50d..692940a16d 100644 --- a/keyboards/k34/config.h +++ b/keyboards/k34/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER jp_smasher -#define PRODUCT k34 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/k34/info.json b/keyboards/k34/info.json index 0917e44961..fe80b8b999 100644 --- a/keyboards/k34/info.json +++ b/keyboards/k34/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "k34", + "manufacturer": "jp_smasher", "url": "https://github.com/wongjingping/k34", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kabedon/kabedon78s/config.h b/keyboards/kabedon/kabedon78s/config.h index e0076afed8..fe34ddf67c 100644 --- a/keyboards/kabedon/kabedon78s/config.h +++ b/keyboards/kabedon/kabedon78s/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B44 //KD -#define PRODUCT_ID 0x3738 //78 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kabe_Don -#define PRODUCT 78S - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/kabedon/kabedon78s/info.json b/keyboards/kabedon/kabedon78s/info.json index beaf71bd14..83668c5458 100644 --- a/keyboards/kabedon/kabedon78s/info.json +++ b/keyboards/kabedon/kabedon78s/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KabeDon78s", + "keyboard_name": "78S", + "manufacturer": "Kabe_Don", "url": "", "maintainer": "370490639", + "usb": { + "vid": "0x4B44", + "pid": "0x3738", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kabedon/kabedon980/config.h b/keyboards/kabedon/kabedon980/config.h index db93dfcf85..7da74f6c92 100644 --- a/keyboards/kabedon/kabedon980/config.h +++ b/keyboards/kabedon/kabedon980/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B44 //KD -#define PRODUCT_ID 0x3938 //98 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kabe_Don -#define PRODUCT 980 - - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 13 diff --git a/keyboards/kabedon/kabedon980/info.json b/keyboards/kabedon/kabedon980/info.json index 5be1ee11dd..879ea537be 100644 --- a/keyboards/kabedon/kabedon980/info.json +++ b/keyboards/kabedon/kabedon980/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KabeDon980", + "keyboard_name": "980", + "manufacturer": "Kabe_Don", "url": "https://kabedon.taobao.com", "maintainer": "370490639", + "usb": { + "vid": "0x4B44", + "pid": "0x3938", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kabedon/kabedon98e/config.h b/keyboards/kabedon/kabedon98e/config.h index a34e99bccd..e5cd98c40b 100644 --- a/keyboards/kabedon/kabedon98e/config.h +++ b/keyboards/kabedon/kabedon98e/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B44 -#define PRODUCT_ID 0x3935 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Kabe_Don -#define PRODUCT 98e - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 11 diff --git a/keyboards/kabedon/kabedon98e/info.json b/keyboards/kabedon/kabedon98e/info.json index de8f975b2d..60a1cd25c6 100644 --- a/keyboards/kabedon/kabedon98e/info.json +++ b/keyboards/kabedon/kabedon98e/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KabeDon98E", + "keyboard_name": "98e", + "manufacturer": "Kabe_Don", "url": "", "maintainer": "370490639", + "usb": { + "vid": "0x4B44", + "pid": "0x3935", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kagizaraya/chidori/config.h b/keyboards/kagizaraya/chidori/config.h index fba0ab1e39..69ec346794 100644 --- a/keyboards/kagizaraya/chidori/config.h +++ b/keyboards/kagizaraya/chidori/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3942 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kagizaraya -#define PRODUCT Chidori - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 6 diff --git a/keyboards/kagizaraya/chidori/info.json b/keyboards/kagizaraya/chidori/info.json index 9c879c7649..a57b82bf04 100644 --- a/keyboards/kagizaraya/chidori/info.json +++ b/keyboards/kagizaraya/chidori/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Chidori", + "manufacturer": "Kagizaraya", "url": "", "maintainer": "ka2hiro", + "usb": { + "vid": "0xFEED", + "pid": "0x3942", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kagizaraya/halberd/config.h b/keyboards/kagizaraya/halberd/config.h index 085688e335..a559f1a1fe 100644 --- a/keyboards/kagizaraya/halberd/config.h +++ b/keyboards/kagizaraya/halberd/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kagizaraya -#define PRODUCT Halberd - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/kagizaraya/halberd/info.json b/keyboards/kagizaraya/halberd/info.json index cd8ae3b27a..e345972680 100644 --- a/keyboards/kagizaraya/halberd/info.json +++ b/keyboards/kagizaraya/halberd/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Halberd", + "manufacturer": "Kagizaraya", "url": "", "maintainer": "ka2hiro", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"!", "x":0, "y":0}, {"label":"@", "x":1, "y":0}, {"label":"#", "x":2, "y":0}, {"label":"$", "x":3, "y":0}, {"label":"%", "x":4, "y":0}, {"label":"Tab", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"Tab", "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":"BkSp", "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":"Caps", "x":0, "y":2}, {"label":"-", "x":1, "y":2}, {"label":"=", "x":2, "y":2}, {"label":"\\", "x":3, "y":2}, {"label":"`", "x":4, "y":2}, {"label":"Enter", "x":5, "y":2}, {"label":";", "x":6, "y":2}, {"label":"'", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":"[", "x":9, "y":2}, {"label":"]", "x":10, "y":2}, {"label":"GUI", "x":2, "y":3}, {"label":"Lower", "x":3, "y":3}, {"label":"Esc", "x":4, "y":3}, {"x":5, "y":3}, {"label":"Shift", "x":6, "y":3}, {"label":"Raise", "x":7, "y":3}, {"label":"Alt", "x":8, "y":3}] diff --git a/keyboards/kagizaraya/scythe/config.h b/keyboards/kagizaraya/scythe/config.h index fb75e32b62..36515c172f 100644 --- a/keyboards/kagizaraya/scythe/config.h +++ b/keyboards/kagizaraya/scythe/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3941 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kagizaraya -#define PRODUCT Scythe - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/kagizaraya/scythe/info.json b/keyboards/kagizaraya/scythe/info.json index 23151ea841..8b91a851ec 100644 --- a/keyboards/kagizaraya/scythe/info.json +++ b/keyboards/kagizaraya/scythe/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Scythe", + "manufacturer": "Kagizaraya", "url": "", "maintainer": "ka2hiro", + "usb": { + "vid": "0xFEED", + "pid": "0x3941", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":2, "y":0}, {"label":"1", "x":3, "y":0}, {"label":"2", "x":4, "y":0}, {"label":"3", "x":5, "y":0}, {"label":"4", "x":6, "y":0}, {"label":"5", "x":7, "y":0}, {"label":"_", "x":8, "y":0}, {"label":"+", "x":9.5, "y":0}, {"label":"6", "x":10.5, "y":0}, {"label":"7", "x":11.5, "y":0}, {"label":"8", "x":12.5, "y":0}, {"label":"9", "x":13.5, "y":0}, {"label":"0", "x":14.5, "y":0}, {"label":"\\", "x":15.5, "y":0}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"{", "x":7.75, "y":1}, {"label":"}", "x":9.75, "y":1}, {"label":"Y", "x":10.75, "y":1}, {"label":"U", "x":11.75, "y":1}, {"label":"I", "x":12.75, "y":1}, {"label":"O", "x":13.75, "y":1}, {"label":"P", "x":14.75, "y":1}, {"label":"Backace", "x":15.75, "y":1, "w":1.5}, {"label":"Control", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"~", "x":7.5, "y":2}, {"label":"\"", "x":10, "y":2}, {"label":"H", "x":11, "y":2}, {"label":"J", "x":12, "y":2}, {"label":"K", "x":13, "y":2}, {"label":"L", "x":14, "y":2}, {"label":":", "x":15, "y":2}, {"label":"Return", "x":16, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"Caps", "x":7.25, "y":3}, {"label":"Del", "x":10.25, "y":3}, {"label":"N", "x":11.25, "y":3}, {"label":"M", "x":12.25, "y":3}, {"label":"<", "x":13.25, "y":3}, {"label":">", "x":14.25, "y":3}, {"label":"?", "x":15.25, "y":3}, {"label":"Shift", "x":16.25, "y":3, "w":1.75}, {"label":"Fn", "x":18, "y":3}, {"label":"", "x":2.75, "y":4, "w":1.25}, {"label":"", "x":4, "y":4, "w":1.25}, {"label":"Fn", "x":5.25, "y":4, "w":1.25}, {"x":6.5, "y":4, "w":2}, {"x":10, "y":4, "w":2}, {"label":"Fn", "x":12, "y":4, "w":1.25}, {"label":"", "x":13.25, "y":4, "w":1.25}, {"label":"", "x":14.5, "y":4, "w":1.25}] diff --git a/keyboards/kakunpc/angel64/alpha/config.h b/keyboards/kakunpc/angel64/alpha/config.h index d2057266ce..6f17407e8a 100644 --- a/keyboards/kakunpc/angel64/alpha/config.h +++ b/keyboards/kakunpc/angel64/alpha/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0A64 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kakunpc -#define PRODUCT angel64 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 6 diff --git a/keyboards/kakunpc/angel64/alpha/info.json b/keyboards/kakunpc/angel64/alpha/info.json index 6fceff4490..a73004f092 100644 --- a/keyboards/kakunpc/angel64/alpha/info.json +++ b/keyboards/kakunpc/angel64/alpha/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "angel64_alpha", + "keyboard_name": "angel64 alpha", + "manufacturer": "kakunpc", "url": "https://kakunpc.booth.pm/", "maintainer": "kakunpc", + "usb": { + "vid": "0xFEED", + "pid": "0x0A64", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"back", "x":13, "y":0}, {"label":"Q", "x":0, "y":1, "w":1.5}, {"label":"W", "x":1.5, "y":1}, {"label":"E", "x":2.5, "y":1}, {"label":"R", "x":3.5, "y":1}, {"label":"T", "x":4.5, "y":1}, {"label":"Y", "x":5.5, "y":1}, {"label":"U", "x":6.5, "y":1}, {"label":"I", "x":7.5, "y":1}, {"label":"O", "x":8.5, "y":1}, {"label":"P", "x":9.5, "y":1}, {"label":"[", "x":10.5, "y":1}, {"label":"]", "x":11.5, "y":1}, {"label":"|", "x":12.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";:", "x":10, "y":2}, {"label":"`", "x":11, "y":2}, {"label":"Enter", "x":12, "y":2, "w":2}, {"label":"Shift", "x":0, "y":3, "w":1.5}, {"label":"Z", "x":1.5, "y":3}, {"label":"X", "x":2.5, "y":3}, {"label":"C", "x":3.5, "y":3}, {"label":"V", "x":4.5, "y":3}, {"label":"B", "x":5.5, "y":3}, {"label":"N", "x":6.5, "y":3}, {"label":"M", "x":7.5, "y":3}, {"label":"<", "x":8.5, "y":3}, {"label":">", "x":9.5, "y":3}, {"label":"?", "x":10.5, "y":3}, {"label":"\u2191", "x":11.5, "y":3}, {"label":"Fn", "x":12.5, "y":3, "w":1.5}, {"label":"Caps", "x":0, "y":4}, {"label":"Alt", "x":1, "y":4}, {"label":"Start", "x":2, "y":4, "w":1.5}, {"label":"Ctrl", "x":3.5, "y":4, "w":1.5}, {"label":"Space", "x":5, "y":4, "w":2}, {"label":"Ctrl", "x":7, "y":4, "w":1.5}, {"label":"Alt", "x":8.5, "y":4, "w":1.5}, {"label":"\u2190", "x":10, "y":4}, {"label":"\u2193", "x":11, "y":4}, {"label":"\u2192", "x":12, "y":4}, {"label":"Alt", "x":13, "y":4}] diff --git a/keyboards/kakunpc/angel64/alpha/keymaps/default/keymap.c b/keyboards/kakunpc/angel64/alpha/keymaps/default/keymap.c index 92dfa7da6e..0f2a8dada1 100644 --- a/keyboards/kakunpc/angel64/alpha/keymaps/default/keymap.c +++ b/keyboards/kakunpc/angel64/alpha/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef OLED_ENABLE bool oled_task_user(void) { oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case BASE: oled_write_P(PSTR("Default\n"), false); break; diff --git a/keyboards/kakunpc/angel64/rev1/config.h b/keyboards/kakunpc/angel64/rev1/config.h index d2057266ce..6f17407e8a 100644 --- a/keyboards/kakunpc/angel64/rev1/config.h +++ b/keyboards/kakunpc/angel64/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0A64 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kakunpc -#define PRODUCT angel64 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 6 diff --git a/keyboards/kakunpc/angel64/rev1/info.json b/keyboards/kakunpc/angel64/rev1/info.json index fe6b4f5e05..688674c8c7 100644 --- a/keyboards/kakunpc/angel64/rev1/info.json +++ b/keyboards/kakunpc/angel64/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "angel64_rev1", + "keyboard_name": "angel64 rev1", + "manufacturer": "kakunpc", "url": "https://kakunpc.booth.pm/", "maintainer": "kakunpc", + "usb": { + "vid": "0xFEED", + "pid": "0x0A64", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":2}, {"label":"A", "x":2, "y":2}, {"label":"S", "x":3, "y":2}, {"label":"D", "x":4, "y":2}, {"label":"F", "x":5, "y":2}, {"label":"G", "x":6, "y":2}, {"label":"H", "x":7, "y":2}, {"label":"J", "x":8, "y":2}, {"label":"K", "x":9, "y":2}, {"label":"L", "x":10, "y":2}, {"label":":", "x":11, "y":2}, {"label":"\"", "x":12, "y":2}, {"label":"Enter", "x":13, "y":2, "w":2}, {"label":"Shift", "x":0, "y":3, "w":2.5}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":"<", "x":9.5, "y":3}, {"label":">", "x":10.5, "y":3}, {"label":"?", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":2.5}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Alt", "x":1.25, "y":4, "w":1.5}, {"label":"Win", "x":2.75, "y":4, "w":1.5}, {"x":4.25, "y":4}, {"x":5.25, "y":4, "w":1.5}, {"x":6.75, "y":4, "w":1.5}, {"x":8.25, "y":4, "w":1.5}, {"x":9.75, "y":4}, {"label":"Alt", "x":10.75, "y":4, "w":1.5}, {"label":"Menu", "x":12.25, "y":4, "w":1.5}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/kakunpc/angel64/rev1/keymaps/kakunpc/keymap.c b/keyboards/kakunpc/angel64/rev1/keymaps/kakunpc/keymap.c index 601bf5f02f..6c5184c1b3 100644 --- a/keyboards/kakunpc/angel64/rev1/keymaps/kakunpc/keymap.c +++ b/keyboards/kakunpc/angel64/rev1/keymaps/kakunpc/keymap.c @@ -175,7 +175,7 @@ void matrix_scan_user(void) { #ifdef OLED_ENABLE bool oled_task_user(void) { oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case BASE: oled_write_P(PSTR("Default\n"), false); break; diff --git a/keyboards/kakunpc/business_card/alpha/config.h b/keyboards/kakunpc/business_card/alpha/config.h index e7b5f7147d..62c3bc180e 100644 --- a/keyboards/kakunpc/business_card/alpha/config.h +++ b/keyboards/kakunpc/business_card/alpha/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kakunpc -#define PRODUCT business_card - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/kakunpc/business_card/alpha/info.json b/keyboards/kakunpc/business_card/alpha/info.json index 57f0fbd9a6..efa3ad965a 100644 --- a/keyboards/kakunpc/business_card/alpha/info.json +++ b/keyboards/kakunpc/business_card/alpha/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "business_card alpha", + "manufacturer": "kakunpc", "url": "", "maintainer": "kakunpc", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kakunpc/business_card/beta/config.h b/keyboards/kakunpc/business_card/beta/config.h index 2bee5f5337..f91c78f3bd 100644 --- a/keyboards/kakunpc/business_card/beta/config.h +++ b/keyboards/kakunpc/business_card/beta/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kakunpc -#define PRODUCT business_card - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 2 diff --git a/keyboards/kakunpc/business_card/beta/info.json b/keyboards/kakunpc/business_card/beta/info.json index 58f2a5b20d..87c8c07930 100644 --- a/keyboards/kakunpc/business_card/beta/info.json +++ b/keyboards/kakunpc/business_card/beta/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "business_card beta", + "manufacturer": "kakunpc", "url": "", "maintainer": "kakunpc", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kakunpc/choc_taro/config.h b/keyboards/kakunpc/choc_taro/config.h index e81abe07a6..c4d1ac1eda 100644 --- a/keyboards/kakunpc/choc_taro/config.h +++ b/keyboards/kakunpc/choc_taro/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter - VID & PID are lisenced from microchip sublisence program, Don't use other project! */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEB60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kakunpc -#define PRODUCT choc_taro - /* key matrix size */ #define MATRIX_ROWS 16 #define MATRIX_COLS 5 diff --git a/keyboards/kakunpc/choc_taro/info.json b/keyboards/kakunpc/choc_taro/info.json index 3a193ee05e..d08b6a093d 100644 --- a/keyboards/kakunpc/choc_taro/info.json +++ b/keyboards/kakunpc/choc_taro/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "choc_taro", + "manufacturer": "kakunpc", "url": "https://kakunpc.booth.pm/", "maintainer": "kakunpc", + "usb": { + "vid": "0x04D8", + "pid": "0xEB60", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kakunpc/rabbit_capture_plan/config.h b/keyboards/kakunpc/rabbit_capture_plan/config.h index a115454fcc..9324d3e739 100644 --- a/keyboards/kakunpc/rabbit_capture_plan/config.h +++ b/keyboards/kakunpc/rabbit_capture_plan/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter - VID & PID are lisenced from microchip sublisence program, Don't use other project! */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEB59 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kakunpc -#define PRODUCT rabbit_capture_plan - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/kakunpc/rabbit_capture_plan/info.json b/keyboards/kakunpc/rabbit_capture_plan/info.json index 4a660cf85e..d587ec1797 100644 --- a/keyboards/kakunpc/rabbit_capture_plan/info.json +++ b/keyboards/kakunpc/rabbit_capture_plan/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "rabbit_capture_plan", + "manufacturer": "kakunpc", "url": "https://kakunpc.booth.pm/", "maintainer": "kakunpc", + "usb": { + "vid": "0x04D8", + "pid": "0xEB59", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kakunpc/suihankey/alpha/config.h b/keyboards/kakunpc/suihankey/alpha/config.h index 3d821566ae..00f04c0d32 100644 --- a/keyboards/kakunpc/suihankey/alpha/config.h +++ b/keyboards/kakunpc/suihankey/alpha/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kakunpc -#define PRODUCT Suihankey - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 5 diff --git a/keyboards/kakunpc/suihankey/alpha/info.json b/keyboards/kakunpc/suihankey/alpha/info.json index 70029e17c9..299c847aab 100644 --- a/keyboards/kakunpc/suihankey/alpha/info.json +++ b/keyboards/kakunpc/suihankey/alpha/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "suihankey", + "keyboard_name": "Suihankey", + "manufacturer": "kakunpc", "url": "https://kakunpc.booth.pm/", "maintainer": "kakunpc", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kakunpc/suihankey/alpha/keymaps/default/keymap.c b/keyboards/kakunpc/suihankey/alpha/keymaps/default/keymap.c index d937b68813..b682f0f15d 100644 --- a/keyboards/kakunpc/suihankey/alpha/keymaps/default/keymap.c +++ b/keyboards/kakunpc/suihankey/alpha/keymaps/default/keymap.c @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef OLED_ENABLE bool oled_task_user(void) { oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case BASE: oled_write_P(PSTR("Default\n"), false); break; diff --git a/keyboards/kakunpc/suihankey/rev1/config.h b/keyboards/kakunpc/suihankey/rev1/config.h index 106cfc2c3b..3ff2fdb27b 100644 --- a/keyboards/kakunpc/suihankey/rev1/config.h +++ b/keyboards/kakunpc/suihankey/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kakunpc -#define PRODUCT Suihankey - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/kakunpc/suihankey/rev1/info.json b/keyboards/kakunpc/suihankey/rev1/info.json index 70029e17c9..299c847aab 100644 --- a/keyboards/kakunpc/suihankey/rev1/info.json +++ b/keyboards/kakunpc/suihankey/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "suihankey", + "keyboard_name": "Suihankey", + "manufacturer": "kakunpc", "url": "https://kakunpc.booth.pm/", "maintainer": "kakunpc", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kakunpc/suihankey/rev1/keymaps/default/keymap.c b/keyboards/kakunpc/suihankey/rev1/keymaps/default/keymap.c index d937b68813..b682f0f15d 100644 --- a/keyboards/kakunpc/suihankey/rev1/keymaps/default/keymap.c +++ b/keyboards/kakunpc/suihankey/rev1/keymaps/default/keymap.c @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef OLED_ENABLE bool oled_task_user(void) { oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case BASE: oled_write_P(PSTR("Default\n"), false); break; diff --git a/keyboards/kakunpc/thedogkeyboard/config.h b/keyboards/kakunpc/thedogkeyboard/config.h index fdf0336f5f..51ae24ae03 100644 --- a/keyboards/kakunpc/thedogkeyboard/config.h +++ b/keyboards/kakunpc/thedogkeyboard/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kakunpc -#define PRODUCT thedogkeyboard - /* key matrix size */ #define MATRIX_ROWS 20 #define MATRIX_COLS 6 diff --git a/keyboards/kakunpc/thedogkeyboard/info.json b/keyboards/kakunpc/thedogkeyboard/info.json index df6cc6ffdc..5712db3d1b 100644 --- a/keyboards/kakunpc/thedogkeyboard/info.json +++ b/keyboards/kakunpc/thedogkeyboard/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "TheDogKeyboard", + "manufacturer": "kakunpc", "url": "https://kakunpc.booth.pm/", "maintainer": "kakunpc", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"1", "x":0, "y":0}, {"label":"7", "x":2, "y":0}, {"label":"13", "x":3, "y":0}, {"label":"19", "x":4, "y":0}, {"label":"24", "x":5, "y":0}, {"label":"29", "x":6.5, "y":0}, {"label":"35", "x":7.5, "y":0}, {"label":"40", "x":8.5, "y":0}, {"label":"45", "x":9.5, "y":0}, {"label":"50", "x":11, "y":0}, {"label":"56", "x":12, "y":0}, {"label":"62", "x":13, "y":0}, {"label":"66", "x":14, "y":0}, {"label":"70", "x":15.25, "y":0}, {"label":"76", "x":16.25, "y":0}, {"label":"82", "x":17.25, "y":0}, {"label":"2", "x":0, "y":1.5}, {"label":"8", "x":1, "y":1.5}, {"label":"14", "x":2, "y":1.5}, {"label":"20", "x":3, "y":1.5}, {"label":"25", "x":4, "y":1.5}, {"label":"30", "x":5, "y":1.5}, {"label":"36", "x":6, "y":1.5}, {"label":"41", "x":7, "y":1.5}, {"label":"46", "x":8, "y":1.5}, {"label":"51", "x":9, "y":1.5}, {"label":"57", "x":10, "y":1.5}, {"label":"63", "x":11, "y":1.5}, {"label":"67", "x":12, "y":1.5}, {"label":"71", "x":13, "y":1.5, "w":2}, {"label":"77", "x":15.25, "y":1.5}, {"label":"84", "x":16.25, "y":1.5}, {"label":"83", "x":17.25, "y":1.5}, {"label":"88", "x":18.5, "y":1.5}, {"label":"93", "x":19.5, "y":1.5}, {"label":"97", "x":20.5, "y":1.5}, {"label":"102", "x":21.5, "y":1.5}, {"label":"3", "x":0, "y":2.5, "w":1.5}, {"label":"9", "x":1.5, "y":2.5}, {"label":"15", "x":2.5, "y":2.5}, {"label":"21", "x":3.5, "y":2.5}, {"label":"26", "x":4.5, "y":2.5}, {"label":"31", "x":5.5, "y":2.5}, {"label":"37", "x":6.5, "y":2.5}, {"label":"42", "x":7.5, "y":2.5}, {"label":"47", "x":8.5, "y":2.5}, {"label":"52", "x":9.5, "y":2.5}, {"label":"58", "x":10.5, "y":2.5}, {"label":"64", "x":11.5, "y":2.5}, {"label":"68", "x":12.5, "y":2.5}, {"label":"72", "x":13.5, "y":2.5, "w":1.5}, {"label":"78", "x":15.25, "y":2.5}, {"label":"86", "x":16.25, "y":2.5}, {"label":"85", "x":17.25, "y":2.5}, {"label":"89", "x":18.5, "y":2.5}, {"label":"94", "x":19.5, "y":2.5}, {"label":"98", "x":20.5, "y":2.5}, {"label":"103", "x":21.5, "y":2.5}, {"label":"4", "x":0, "y":3.5, "w":1.75}, {"label":"10", "x":1.75, "y":3.5}, {"label":"16", "x":2.75, "y":3.5}, {"label":"22", "x":3.75, "y":3.5}, {"label":"27", "x":4.75, "y":3.5}, {"label":"32", "x":5.75, "y":3.5}, {"label":"38", "x":6.75, "y":3.5}, {"label":"43", "x":7.75, "y":3.5}, {"label":"48", "x":8.75, "y":3.5}, {"label":"53", "x":9.75, "y":3.5}, {"label":"59", "x":10.75, "y":3.5}, {"label":"65", "x":11.75, "y":3.5}, {"label":"73", "x":12.75, "y":3.5, "w":2.25}, {"label":"90", "x":18.5, "y":3.5}, {"label":"95", "x":19.5, "y":3.5}, {"label":"99", "x":20.5, "y":3.5}, {"label":"110", "x":21.5, "y":3.5}, {"label":"5", "x":0, "y":4.5, "w":2.25}, {"label":"11", "x":2.25, "y":4.5}, {"label":"17", "x":3.25, "y":4.5}, {"label":"23", "x":4.25, "y":4.5}, {"label":"28", "x":5.25, "y":4.5}, {"label":"33", "x":6.25, "y":4.5}, {"label":"39", "x":7.25, "y":4.5}, {"label":"44", "x":8.25, "y":4.5}, {"label":"49", "x":9.25, "y":4.5}, {"label":"54", "x":10.25, "y":4.5}, {"label":"60", "x":11.25, "y":4.5}, {"label":"74", "x":12.25, "y":4.5, "w":2.75}, {"label":"87", "x":16.25, "y":4.5}, {"label":"91", "x":18.5, "y":4.5}, {"label":"96", "x":19.5, "y":4.5}, {"label":"100", "x":20.5, "y":4.5}, {"label":"104", "x":21.5, "y":4.5}, {"label":"6", "x":0, "y":5.5, "w":1.25}, {"label":"12", "x":1.25, "y":5.5, "w":1.25}, {"label":"18", "x":2.5, "y":5.5, "w":1.25}, {"label":"105", "x":3.75, "y":5.5, "w":1.25}, {"label":"106", "x":5, "y":5.5, "w":1.25}, {"label":"34", "x":6.25, "y":5.5, "w":1.25}, {"label":"107", "x":7.5, "y":5.5, "w":1.25}, {"label":"108", "x":8.75, "y":5.5, "w":1.25}, {"label":"55", "x":10, "y":5.5, "w":1.25}, {"label":"61", "x":11.25, "y":5.5, "w":1.25}, {"label":"69", "x":12.5, "y":5.5, "w":1.25}, {"label":"75", "x":13.75, "y":5.5, "w":1.25}, {"label":"79", "x":15.25, "y":5.5}, {"label":"80", "x":16.25, "y":5.5}, {"label":"81", "x":17.25, "y":5.5}, {"label":"92", "x":18.5, "y":5.5}, {"label":"109", "x":19.5, "y":5.5}, {"label":"101", "x":20.5, "y":5.5}, {"label":"111", "x":21.5, "y":5.5}] diff --git a/keyboards/kapcave/arya/config.h b/keyboards/kapcave/arya/config.h index c6b6c61cf5..32bc9f3aa5 100644 --- a/keyboards/kapcave/arya/config.h +++ b/keyboards/kapcave/arya/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B43 -#define PRODUCT_ID 0x4152 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KapCave -#define PRODUCT Arya - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 8 diff --git a/keyboards/kapcave/arya/info.json b/keyboards/kapcave/arya/info.json index 72ee2e1d74..8efa84b8b0 100644 --- a/keyboards/kapcave/arya/info.json +++ b/keyboards/kapcave/arya/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Arya", + "manufacturer": "KapCave", "url": "https://kapcave.com/products/arya", "maintainer": "nachie", + "usb": { + "vid": "0x4B43", + "pid": "0x4152", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/kapcave/gskt00/config.h b/keyboards/kapcave/gskt00/config.h index 91c34182e7..3730df5ea3 100755 --- a/keyboards/kapcave/gskt00/config.h +++ b/keyboards/kapcave/gskt00/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B43 -#define PRODUCT_ID 0x6061 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KapCave -#define PRODUCT GSKT00 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/kapcave/gskt00/info.json b/keyboards/kapcave/gskt00/info.json index ba1455fae9..5c011e4e1b 100644 --- a/keyboards/kapcave/gskt00/info.json +++ b/keyboards/kapcave/gskt00/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GSKT-00", + "manufacturer": "KapCave", "url": "https://kapcave.com/products/gskt-00-pcb-usb-c", "maintainer": "nachie", + "usb": { + "vid": "0x4B43", + "pid": "0x6061", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_tsangan": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/kapcave/paladin64/config.h b/keyboards/kapcave/paladin64/config.h index 7c3d1a0fa1..37fee46aaa 100755 --- a/keyboards/kapcave/paladin64/config.h +++ b/keyboards/kapcave/paladin64/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B43 -#define PRODUCT_ID 0x5036 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KapCave -#define PRODUCT paladin64 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/kapcave/paladin64/info.json b/keyboards/kapcave/paladin64/info.json index 207010c24e..c207cbb062 100644 --- a/keyboards/kapcave/paladin64/info.json +++ b/keyboards/kapcave/paladin64/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Paladin64", + "manufacturer": "KapCave", "url": "https://kapcave.com/products/paladin64-pcb", "maintainer": "nachie", + "usb": { + "vid": "0x4B43", + "pid": "0x5036", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/kb58/config.h b/keyboards/kb58/config.h index 81d946aaab..ea1aad06e2 100644 --- a/keyboards/kb58/config.h +++ b/keyboards/kb58/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER beanaccle -#define PRODUCT kb58 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/kb58/info.json b/keyboards/kb58/info.json index 5114eec6ae..1ee4082433 100644 --- a/keyboards/kb58/info.json +++ b/keyboards/kb58/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "KB58", + "manufacturer": "beanaccle", "url": "https://github.com/beanaccle/kb58_pico", "maintainer": "beanaccle", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kb_elmo/67mk_e/config.h b/keyboards/kb_elmo/67mk_e/config.h index 60c90ed522..9d0ab1a10c 100644 --- a/keyboards/kb_elmo/67mk_e/config.h +++ b/keyboards/kb_elmo/67mk_e/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0xD03E -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb_elmo -#define PRODUCT 67mk_E - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kb_elmo/67mk_e/info.json b/keyboards/kb_elmo/67mk_e/info.json index fd417097b8..ca0437811e 100644 --- a/keyboards/kb_elmo/67mk_e/info.json +++ b/keyboards/kb_elmo/67mk_e/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "67mk_e", + "keyboard_name": "67mk_E", + "manufacturer": "kb_elmo", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0xD03E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kb_elmo/aek2_usb/config.h b/keyboards/kb_elmo/aek2_usb/config.h index 9cad5d5c72..5251a5d91e 100644 --- a/keyboards/kb_elmo/aek2_usb/config.h +++ b/keyboards/kb_elmo/aek2_usb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0xDB52 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb-elmo -#define PRODUCT AEK II USB - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 14 diff --git a/keyboards/kb_elmo/aek2_usb/info.json b/keyboards/kb_elmo/aek2_usb/info.json index 82050e6fae..ef94b0994e 100644 --- a/keyboards/kb_elmo/aek2_usb/info.json +++ b/keyboards/kb_elmo/aek2_usb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "aek 2 usb", + "keyboard_name": "AEK II USB", + "manufacturer": "kb-elmo", "url": "https://github.com/kb-elmo/aek2_usb", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0xDB52", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kb_elmo/elmopad/config.h b/keyboards/kb_elmo/elmopad/config.h index 1dd6cff5b3..de2711bbc3 100644 --- a/keyboards/kb_elmo/elmopad/config.h +++ b/keyboards/kb_elmo/elmopad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0x8B35 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb-elmo -#define PRODUCT ElmoPad - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/kb_elmo/elmopad/info.json b/keyboards/kb_elmo/elmopad/info.json index 6193342c6b..bfe97e3161 100644 --- a/keyboards/kb_elmo/elmopad/info.json +++ b/keyboards/kb_elmo/elmopad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "elmopad", + "keyboard_name": "ElmoPad", + "manufacturer": "kb-elmo", "url": "https://github.com/kb-elmo/numpad", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0x8B35", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_6x4": { "layout": [ diff --git a/keyboards/kb_elmo/isolation/config.h b/keyboards/kb_elmo/isolation/config.h index 2f083955b0..493714310a 100644 --- a/keyboards/kb_elmo/isolation/config.h +++ b/keyboards/kb_elmo/isolation/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0x4EE6 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb-elmo -#define PRODUCT ISOlation - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 diff --git a/keyboards/kb_elmo/isolation/info.json b/keyboards/kb_elmo/isolation/info.json index 1cca4610d7..4042b2677c 100644 --- a/keyboards/kb_elmo/isolation/info.json +++ b/keyboards/kb_elmo/isolation/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "isolation", + "keyboard_name": "ISOlation", + "manufacturer": "kb-elmo", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0x4EE6", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kb_elmo/m0110a_usb/config.h b/keyboards/kb_elmo/m0110a_usb/config.h index 0010f0d27e..18a3a405d7 100644 --- a/keyboards/kb_elmo/m0110a_usb/config.h +++ b/keyboards/kb_elmo/m0110a_usb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0xDB4B -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb-elmo -#define PRODUCT M0110A USB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/kb_elmo/m0110a_usb/info.json b/keyboards/kb_elmo/m0110a_usb/info.json index 1970c4960c..e515a1e142 100644 --- a/keyboards/kb_elmo/m0110a_usb/info.json +++ b/keyboards/kb_elmo/m0110a_usb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "m0110a usb", + "keyboard_name": "M0110A USB", + "manufacturer": "kb-elmo", "url": "https://github.com/kb-elmo/m0110a_usb", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0xDB4B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kb_elmo/m0116_usb/config.h b/keyboards/kb_elmo/m0116_usb/config.h index 693d3ab6a8..28c82ddb33 100644 --- a/keyboards/kb_elmo/m0116_usb/config.h +++ b/keyboards/kb_elmo/m0116_usb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0x8F7E -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb-elmo -#define PRODUCT M0116 USB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/kb_elmo/m0116_usb/info.json b/keyboards/kb_elmo/m0116_usb/info.json index 9a5386b838..1b52a8c0e6 100644 --- a/keyboards/kb_elmo/m0116_usb/info.json +++ b/keyboards/kb_elmo/m0116_usb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "m0116 usb", + "keyboard_name": "M0116 USB", + "manufacturer": "kb-elmo", "url": "https://github.com/kb-elmo/m0116_usb", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0x8F7E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kb_elmo/noah_avr/config.h b/keyboards/kb_elmo/noah_avr/config.h index 5c6dfe8b5e..07dec2e1c1 100644 --- a/keyboards/kb_elmo/noah_avr/config.h +++ b/keyboards/kb_elmo/noah_avr/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0x1DB0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb-elmo -#define PRODUCT Noah AVR - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kb_elmo/noah_avr/info.json b/keyboards/kb_elmo/noah_avr/info.json index 6bc9b32b07..91875a6505 100644 --- a/keyboards/kb_elmo/noah_avr/info.json +++ b/keyboards/kb_elmo/noah_avr/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Noah AVR", + "manufacturer": "kb-elmo", "url": "https://github.com/kb-elmo/noah_avr", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0x1DB0", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_ansi": "LAYOUT_65_ansi_blocker", "LAYOUT_ansi_splitbs": "LAYOUT_65_ansi_blocker_split_bs", diff --git a/keyboards/kb_elmo/qez/config.h b/keyboards/kb_elmo/qez/config.h index 055ebe2a4b..4b51eb3ff4 100644 --- a/keyboards/kb_elmo/qez/config.h +++ b/keyboards/kb_elmo/qez/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0x675F -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb_elmo -#define PRODUCT QEZ - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/kb_elmo/qez/info.json b/keyboards/kb_elmo/qez/info.json index a7cdd219d4..a0c2da02f9 100644 --- a/keyboards/kb_elmo/qez/info.json +++ b/keyboards/kb_elmo/qez/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "qez", + "keyboard_name": "QEZ", + "manufacturer": "kb_elmo", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0x675F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_space": { "layout": [ diff --git a/keyboards/kb_elmo/sesame/config.h b/keyboards/kb_elmo/sesame/config.h index 5015cc87b9..20e19ea60d 100644 --- a/keyboards/kb_elmo/sesame/config.h +++ b/keyboards/kb_elmo/sesame/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0xE2BD -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb-elmo -#define PRODUCT Sesame - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 @@ -46,3 +39,6 @@ along with this program. If not, see . /* Bootmagic Lite key configuration */ #define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_COLUMN 1 + +/* Workaround for https://github.com/qmk/qmk_firmware/issues/11389 */ +#define IGNORE_ATOMIC_BLOCK diff --git a/keyboards/kb_elmo/sesame/info.json b/keyboards/kb_elmo/sesame/info.json index 639c8b4d7c..d537ed1973 100644 --- a/keyboards/kb_elmo/sesame/info.json +++ b/keyboards/kb_elmo/sesame/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "sesame", + "keyboard_name": "Sesame", + "manufacturer": "kb-elmo", "url": "https://github.com/kb-elmo/sesame", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0xE2BD", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice": { "layout": [ diff --git a/keyboards/kb_elmo/twelvekey/config.h b/keyboards/kb_elmo/twelvekey/config.h index 4be5f4f313..2ffc1e4589 100644 --- a/keyboards/kb_elmo/twelvekey/config.h +++ b/keyboards/kb_elmo/twelvekey/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0x9879 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb-elmo -#define PRODUCT Twelvekey - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/kb_elmo/twelvekey/info.json b/keyboards/kb_elmo/twelvekey/info.json index c44d88ce45..27a67923d0 100644 --- a/keyboards/kb_elmo/twelvekey/info.json +++ b/keyboards/kb_elmo/twelvekey/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "twelvekey", + "keyboard_name": "Twelvekey", + "manufacturer": "kb-elmo", "url": "https://github.com/kb-elmo/twelvekey", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0x9879", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_3x4": { "layout": [{"x":0, "y":0}, diff --git a/keyboards/kb_elmo/vertex/config.h b/keyboards/kb_elmo/vertex/config.h index 9d8eafe5bf..b532b63745 100644 --- a/keyboards/kb_elmo/vertex/config.h +++ b/keyboards/kb_elmo/vertex/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA68C -#define PRODUCT_ID 0x6B47 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kb_elmo -#define PRODUCT Vertex - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/kb_elmo/vertex/info.json b/keyboards/kb_elmo/vertex/info.json index a7bea40772..e443ae5f72 100644 --- a/keyboards/kb_elmo/vertex/info.json +++ b/keyboards/kb_elmo/vertex/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "vertex", + "keyboard_name": "Vertex", + "manufacturer": "kb_elmo", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0xA68C", + "pid": "0x6B47", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_8keys": { "layout": [ diff --git a/keyboards/kbdclack/kaishi65/config.h b/keyboards/kbdclack/kaishi65/config.h index d9ac9b8137..52b86d3f12 100644 --- a/keyboards/kbdclack/kaishi65/config.h +++ b/keyboards/kbdclack/kaishi65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1A81 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDClack -#define PRODUCT kaishi65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kbdclack/kaishi65/info.json b/keyboards/kbdclack/kaishi65/info.json index f1e30b7e5e..e8d1ad8699 100644 --- a/keyboards/kbdclack/kaishi65/info.json +++ b/keyboards/kbdclack/kaishi65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "kaishi65", + "manufacturer": "KBDClack", "url": "https://github.com/powerlemming/KBDClack", "maintainer": "KBDClack", + "usb": { + "vid": "0xFEED", + "pid": "0x1A81", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [{"label":"esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Home", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Pg up", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"up", "x":14, "y":3}, {"label":"Pg dn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"left", "x":13, "y":4}, {"label":"down", "x":14, "y":4}, {"label":"right", "x":15, "y":4}] diff --git a/keyboards/kbdfans/baguette66/rgb/config.h b/keyboards/kbdfans/baguette66/rgb/config.h new file mode 100644 index 0000000000..27c8fbc0e5 --- /dev/null +++ b/keyboards/kbdfans/baguette66/rgb/config.h @@ -0,0 +1,83 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +#define MATRIX_ROW_PINS { F0, F1, F4, F5, B6 } +#define MATRIX_COL_PINS { C6, C7, F7, F6, B0, B1, B2, B3, D0, D1, D2, D3, D5, D4, D6} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 +/* disable these deprecated features by default */ +#define USB_SUSPEND_WAKEUP_DELAY 5000 +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 + +#define RGB_DI_PIN E6 +#define RGBLED_NUM 66 +#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGB_MATRIX_KEYPRESSES +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_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_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_PIXEL_FLOW +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspendedz +#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_STARTUP_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 new file mode 100644 index 0000000000..c9b4c545a9 --- /dev/null +++ b/keyboards/kbdfans/baguette66/rgb/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Baguette66 RGB", + "manufacturer": "KBDfans", + "maintainer": "DZTECH", + "usb": { + "vid": "0x4B42", + "pid": "0x0106", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.25}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":6.25}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Win", "x":11, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] + } + } +} diff --git a/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c b/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c new file mode 100644 index 0000000000..8468136234 --- /dev/null +++ b/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_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_GRAVE, 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_BSLASH, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), + [1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGDN, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + [2] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGDN, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + [3] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGDN, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), +}; diff --git a/keyboards/kbdfans/baguette66/rgb/keymaps/via/keymap.c b/keyboards/kbdfans/baguette66/rgb/keymaps/via/keymap.c new file mode 100644 index 0000000000..4595606c5d --- /dev/null +++ b/keyboards/kbdfans/baguette66/rgb/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_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_GRAVE, 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_BSLASH, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), + [1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGDN, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + [2] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGDN, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + [3] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGDN, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), +}; diff --git a/keyboards/mechwild/mokulua/keymaps/silly/rules.mk b/keyboards/kbdfans/baguette66/rgb/keymaps/via/rules.mk similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/silly/rules.mk rename to keyboards/kbdfans/baguette66/rgb/keymaps/via/rules.mk diff --git a/keyboards/kbdfans/baguette66/rgb/readme.md b/keyboards/kbdfans/baguette66/rgb/readme.md new file mode 100644 index 0000000000..d8054ea8a7 --- /dev/null +++ b/keyboards/kbdfans/baguette66/rgb/readme.md @@ -0,0 +1,23 @@ +# BAGUETTE66_RGB + +A customizable 66% RGB keyboard. + +* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) +* Hardware Supported: KBDFANS +* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/) + + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + + +Make example for this keyboard (after setting up your build environment): + + make kbdfans/baguette66/rgb:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbdfans/baguette66/rgb/rgb.c b/keyboards/kbdfans/baguette66/rgb/rgb.c new file mode 100644 index 0000000000..def3e10c97 --- /dev/null +++ b/keyboards/kbdfans/baguette66/rgb/rgb.c @@ -0,0 +1,48 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "rgb.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, + { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16 }, + { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,NO_LED, 14 }, + { 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED}, + { NO_LED, 58, 59, NO_LED, NO_LED, 60, NO_LED, NO_LED, 61, NO_LED, 62, NO_LED, 63, 64, 65 } +}, { + {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{195,0}, {210,0},{224,0}, + {224,16}, {206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16},{68,16},{53,16},{38,16},{23,16},{4,16}, + {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32}, + {220,48},{205,48},{187,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48}, + {21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} +}, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 1, 1, 1 +} }; + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) +{ + if (host_keyboard_led_state().caps_lock) + { + rgb_matrix_set_color(31, 0xFF, 0xFF, 0xFF); + } +} +#endif diff --git a/keyboards/kbdfans/baguette66/rgb/rgb.h b/keyboards/kbdfans/baguette66/rgb/rgb.h new file mode 100644 index 0000000000..1ba364d8bd --- /dev/null +++ b/keyboards/kbdfans/baguette66/rgb/rgb.h @@ -0,0 +1,32 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#define XXX KC_NO +#include "quantum.h" +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2E,K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K41, K42, K45, K48, K4A, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX }, \ + { XXX, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, XXX, K4C, K4D, K4E } \ +} diff --git a/keyboards/kbdfans/baguette66/rgb/rules.mk b/keyboards/kbdfans/baguette66/rgb/rules.mk new file mode 100644 index 0000000000..17a78c939f --- /dev/null +++ b/keyboards/kbdfans/baguette66/rgb/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # 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 # Use RGB matrix +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/kbdfans/baguette66/soldered/config.h b/keyboards/kbdfans/baguette66/soldered/config.h new file mode 100644 index 0000000000..624dfadca8 --- /dev/null +++ b/keyboards/kbdfans/baguette66/soldered/config.h @@ -0,0 +1,37 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +#define MATRIX_ROW_PINS { F0, F1, F4, F5, B6 } +#define MATRIX_COL_PINS { C6, C7, F7, F6, B0, B1, B2, B3, D0, D1, D2, D3, D5, D4, D6} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 +/* disable these deprecated features by default */ +#define USB_SUSPEND_WAKEUP_DELAY 5000 +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 + +#define LED_CAPS_LOCK_PIN B7 +#define LED_PIN_ON_STATE 0 diff --git a/keyboards/kbdfans/baguette66/soldered/info.json b/keyboards/kbdfans/baguette66/soldered/info.json new file mode 100644 index 0000000000..dbad08e260 --- /dev/null +++ b/keyboards/kbdfans/baguette66/soldered/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Baguette66 Soldered", + "manufacturer": "KBDfans", + "maintainer": "DZTECH", + "usb": { + "vid": "0x4B42", + "pid": "0x0107", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.25}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":6.25}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Win", "x":11, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] + } + } +} diff --git a/keyboards/kbdfans/baguette66/soldered/keymaps/default/keymap.c b/keyboards/kbdfans/baguette66/soldered/keymaps/default/keymap.c new file mode 100644 index 0000000000..3acdc0eb26 --- /dev/null +++ b/keyboards/kbdfans/baguette66/soldered/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_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_GRAVE, 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_BSLASH, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), + [1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, 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, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + [2] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, 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, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + [3] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, 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, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), +}; diff --git a/keyboards/kbdfans/baguette66/soldered/keymaps/via/keymap.c b/keyboards/kbdfans/baguette66/soldered/keymaps/via/keymap.c new file mode 100644 index 0000000000..3acdc0eb26 --- /dev/null +++ b/keyboards/kbdfans/baguette66/soldered/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_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_GRAVE, 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_BSLASH, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), + [1] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, 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, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + [2] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, 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, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + [3] = LAYOUT_all( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, 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, EEP_RST, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), +}; diff --git a/keyboards/mechwild/mokulua/keymaps/via/rules.mk b/keyboards/kbdfans/baguette66/soldered/keymaps/via/rules.mk similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/via/rules.mk rename to keyboards/kbdfans/baguette66/soldered/keymaps/via/rules.mk diff --git a/keyboards/kbdfans/baguette66/soldered/readme.md b/keyboards/kbdfans/baguette66/soldered/readme.md new file mode 100644 index 0000000000..5118864331 --- /dev/null +++ b/keyboards/kbdfans/baguette66/soldered/readme.md @@ -0,0 +1,23 @@ +# BAGUETTE66_SOLDERED + +A customizable 66% Mechnical keyboard. + +* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) +* Hardware Supported: KBDFANS +* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/) + + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + + +Make example for this keyboard (after setting up your build environment): + + make kbdfans/baguette66/soldered:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbdfans/baguette66/soldered/rules.mk b/keyboards/kbdfans/baguette66/soldered/rules.mk new file mode 100644 index 0000000000..e0403a960b --- /dev/null +++ b/keyboards/kbdfans/baguette66/soldered/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/kbdfans/baguette66/soldered/soldered.c b/keyboards/kbdfans/baguette66/soldered/soldered.c new file mode 100644 index 0000000000..f2848c1b32 --- /dev/null +++ b/keyboards/kbdfans/baguette66/soldered/soldered.c @@ -0,0 +1,17 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "soldered.h" diff --git a/keyboards/kbdfans/baguette66/soldered/soldered.h b/keyboards/kbdfans/baguette66/soldered/soldered.h new file mode 100644 index 0000000000..1ba364d8bd --- /dev/null +++ b/keyboards/kbdfans/baguette66/soldered/soldered.h @@ -0,0 +1,32 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#define XXX KC_NO +#include "quantum.h" +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2E,K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K41, K42, K45, K48, K4A, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX }, \ + { XXX, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, XXX, K4C, K4D, K4E } \ +} diff --git a/keyboards/kbdfans/bella/rgb/config.h b/keyboards/kbdfans/bella/rgb/config.h index 18add4d136..74c8c99ed5 100644 --- a/keyboards/kbdfans/bella/rgb/config.h +++ b/keyboards/kbdfans/bella/rgb/config.h @@ -16,12 +16,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0008 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT BELLA RGB ANSI /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/kbdfans/bella/rgb/info.json b/keyboards/kbdfans/bella/rgb/info.json index 2db8efb3f8..1e080471ce 100644 --- a/keyboards/kbdfans/bella/rgb/info.json +++ b/keyboards/kbdfans/bella/rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BELLA RGB ANSI", + "keyboard_name": "Bella RGB ANSI", + "manufacturer": "KBDfans", "url": "", "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x0008", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"~", "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.25, "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":"Page Up", "x":15.25, "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 Down", "x":15.25, "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.25, "y":4.25}, {"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}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Fn", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.25}, {"label":"\u2193", "x":14.25, "y":5.25}, {"label":"\u2192", "x":15.25, "y":5.25}] diff --git a/keyboards/kbdfans/bella/rgb_iso/config.h b/keyboards/kbdfans/bella/rgb_iso/config.h index 78082a0a01..ac2cba6036 100644 --- a/keyboards/kbdfans/bella/rgb_iso/config.h +++ b/keyboards/kbdfans/bella/rgb_iso/config.h @@ -16,12 +16,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0009 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT BELLA RGB ISO /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/kbdfans/bella/rgb_iso/info.json b/keyboards/kbdfans/bella/rgb_iso/info.json index bca3e220ce..632f41a09e 100644 --- a/keyboards/kbdfans/bella/rgb_iso/info.json +++ b/keyboards/kbdfans/bella/rgb_iso/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BELLA RGB ISO", + "keyboard_name": "Bella RGB ISO", + "manufacturer": "KBDfans", "url": "", "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x0009", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"Page Up", "x":15.25, "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":"Insert", "x":15.25, "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":"Delete", "x":15.25, "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.25, "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":"\u2191", "x":14.25, "y":4.25}, {"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}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Fn", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.25}, {"label":"\u2193", "x":14.25, "y":5.25}, {"label":"\u2192", "x":15.25, "y":5.25}] diff --git a/keyboards/kbdfans/bella/soldered/config.h b/keyboards/kbdfans/bella/soldered/config.h index 0d729bebe8..5992ddaa2c 100755 --- a/keyboards/kbdfans/bella/soldered/config.h +++ b/keyboards/kbdfans/bella/soldered/config.h @@ -16,12 +16,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT BELLA SOLDERED /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/kbdfans/bella/soldered/info.json b/keyboards/kbdfans/bella/soldered/info.json index 4a967e2685..c958b17d4a 100644 --- a/keyboards/kbdfans/bella/soldered/info.json +++ b/keyboards/kbdfans/bella/soldered/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "bella_soldered", + "keyboard_name": "Bella Soldered", + "manufacturer": "KBDfans", "url": "", "maintainer": "kbdfans", + "usb": { + "vid": "0x4B42", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h index b74da64e20..726e7b2962 100644 --- a/keyboards/kbdfans/boop65/rgb/config.h +++ b/keyboards/kbdfans/boop65/rgb/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x1000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT BOOP65RGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kbdfans/boop65/rgb/info.json b/keyboards/kbdfans/boop65/rgb/info.json index 8cec411098..97eddd4fe4 100644 --- a/keyboards/kbdfans/boop65/rgb/info.json +++ b/keyboards/kbdfans/boop65/rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "boop65_rgb", + "keyboard_name": "Boop65 RGB", + "manufacturer": "KBDfans", "url": "", "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x1000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/kbdfans/bounce/75/hotswap/config.h b/keyboards/kbdfans/bounce/75/hotswap/config.h new file mode 100644 index 0000000000..95e7bc3052 --- /dev/null +++ b/keyboards/kbdfans/bounce/75/hotswap/config.h @@ -0,0 +1,57 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 +#define MATRIX_ROW_PINS { E6, B0, B1, B2, B3, B6 } +#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, D0, D1, D2, D3, D5, D4, D6, D7, B4, B5} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN C6 +#define LED_PIN_ON_STATE 0 + +#define RGB_DI_PIN F0 +#ifdef RGB_DI_PIN +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define 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 +#endif +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/75/hotswap/hotswap.c b/keyboards/kbdfans/bounce/75/hotswap/hotswap.c new file mode 100644 index 0000000000..702a9b096d --- /dev/null +++ b/keyboards/kbdfans/bounce/75/hotswap/hotswap.c @@ -0,0 +1,16 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "hotswap.h" \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/75/hotswap/hotswap.h b/keyboards/kbdfans/bounce/75/hotswap/hotswap.h new file mode 100644 index 0000000000..7f9f64a9d6 --- /dev/null +++ b/keyboards/kbdfans/bounce/75/hotswap/hotswap.h @@ -0,0 +1,34 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, \ + K500, K501, K502, K505, K508, K510, K511, K513, K514 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO}, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, K508, KC_NO, K510, K511, KC_NO, K513, K514 } \ +} diff --git a/keyboards/kbdfans/bounce/75/hotswap/info.json b/keyboards/kbdfans/bounce/75/hotswap/info.json new file mode 100644 index 0000000000..bc9622f874 --- /dev/null +++ b/keyboards/kbdfans/bounce/75/hotswap/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Bounce75 Hotswap", + "manufacturer": "KBDfans", + "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x7001", + "device_version": "0.0.3" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"PrtSc", "x":14, "y":0}, {"label":"Pause", "x":15.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Home", "x":15.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Page Up", "x":15.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Page Down", "x":15.25, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.5}, {"label":"\u2193", "x":14.25, "y":5.5}, {"label":"\u2192", "x":15.25, "y":5.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/75/hotswap/keymaps/default/keymap.c b/keyboards/kbdfans/bounce/75/hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..48dabe15ad --- /dev/null +++ b/keyboards/kbdfans/bounce/75/hotswap/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_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_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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/kbdfans/bounce/75/hotswap/keymaps/via/keymap.c b/keyboards/kbdfans/bounce/75/hotswap/keymaps/via/keymap.c new file mode 100644 index 0000000000..48dabe15ad --- /dev/null +++ b/keyboards/kbdfans/bounce/75/hotswap/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_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_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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/kbdfans/bounce/75/hotswap/keymaps/via/rules.mk b/keyboards/kbdfans/bounce/75/hotswap/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/kbdfans/bounce/75/hotswap/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kbdfans/bounce/75/hotswap/readme.md b/keyboards/kbdfans/bounce/75/hotswap/readme.md new file mode 100644 index 0000000000..eb6b8e6fc0 --- /dev/null +++ b/keyboards/kbdfans/bounce/75/hotswap/readme.md @@ -0,0 +1,21 @@ +# BOUNCE75 HOTSWAP + +A customizable 75% HOTSWAP keyboard. + +* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) +* Hardware Supported: KBDFANS +* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/) + +Make example for this keyboard (after setting up your build environment): + + make kbdfans/bounce/75/hotswap:default + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/kbdfans/bounce/75/hotswap/rules.mk b/keyboards/kbdfans/bounce/75/hotswap/rules.mk new file mode 100644 index 0000000000..85eec9079f --- /dev/null +++ b/keyboards/kbdfans/bounce/75/hotswap/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/kbdfans/bounce/75/soldered/config.h b/keyboards/kbdfans/bounce/75/soldered/config.h new file mode 100644 index 0000000000..f21ddb9d0b --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/config.h @@ -0,0 +1,57 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 +#define MATRIX_ROW_PINS { E6, B0, B1, B2, B3, B6 } +#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, D0, D1, D2, D3, D5, D4, D6, D7, B4, B5} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN C6 +#define LED_PIN_ON_STATE 0 + +#define RGB_DI_PIN B7 +#ifdef RGB_DI_PIN +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define 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 +#endif +#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 new file mode 100644 index 0000000000..00ae5d3f6f --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/info.json @@ -0,0 +1,469 @@ +{ + "keyboard_name": "Bounce75 Soldered", + "manufacturer": "KBDfans", + "url": "", + "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x7000", + "device_version": "0.0.3" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + {"label":"Pause", "x":15.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace2", "x":13, "y":1.25}, + {"label":"Backspace", "x":14, "y":1.25}, + {"label":"Home", "x":15.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Page Up", "x":15.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + {"label":"Page Down", "x":15.25, "y":3.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":13.25, "y":5.5}, + {"label":"\u2193", "x":14.25, "y":5.5}, + {"label":"\u2192", "x":15.25, "y":5.5} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + {"label":"Pause", "x":15.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Home", "x":15.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Page Up", "x":15.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + {"label":"Page Down", "x":15.25, "y":3.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":13.25, "y":5.5}, + {"label":"\u2193", "x":14.25, "y":5.5}, + {"label":"\u2192", "x":15.25, "y":5.5} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + {"label":"Pause", "x":15.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25}, + {"label":"Backspace", "x":14, "y":1.25}, + {"label":"Home", "x":15.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Page Up", "x":15.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + {"label":"Page Down", "x":15.25, "y":3.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":13.25, "y":5.5}, + {"label":"\u2193", "x":14.25, "y":5.5}, + {"label":"\u2192", "x":15.25, "y":5.5} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + {"label":"Pause", "x":15.25, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2\"", "x":2, "y":1.25}, + {"label":"3\u00a3", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Home", "x":15.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Page Up", "x":15.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'@", "x":11.75, "y":3.25}, + {"label":"#~", "x":12.75, "y":3.25}, + {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"label":"Page Down", "x":15.25, "y":3.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"label":"AltGr", "x":10, "y":5.25, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":13.25, "y":5.5}, + {"label":"\u2193", "x":14.25, "y":5.5}, + {"label":"\u2192", "x":15.25, "y":5.5} + ] + }, + "LAYOUT_iso_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"PrtSc", "x":14, "y":0}, + {"label":"Pause", "x":15.25, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2\"", "x":2, "y":1.25}, + {"label":"3\u00a3", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25}, + {"label":"Backspace", "x":14, "y":1.25}, + {"label":"Home", "x":15.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Page Up", "x":15.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'@", "x":11.75, "y":3.25}, + {"label":"#~", "x":12.75, "y":3.25}, + {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2}, + {"label":"Page Down", "x":15.25, "y":3.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"\u2191", "x":14.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"label":"AltGr", "x":10, "y":5.25, "w":1.5}, + {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":13.25, "y":5.5}, + {"label":"\u2193", "x":14.25, "y":5.5}, + {"label":"\u2192", "x":15.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/kbdfans/bounce/75/soldered/keymaps/default/keymap.c b/keyboards/kbdfans/bounce/75/soldered/keymaps/default/keymap.c new file mode 100644 index 0000000000..9f33f3ecd0 --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_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_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_DEL, 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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/kbdfans/bounce/75/soldered/keymaps/default_ansi/keymap.c b/keyboards/kbdfans/bounce/75/soldered/keymaps/default_ansi/keymap.c new file mode 100644 index 0000000000..4b8c07c0da --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/keymaps/default_ansi/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_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_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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/kbdfans/bounce/75/soldered/keymaps/default_ansi_split_bs/keymap.c b/keyboards/kbdfans/bounce/75/soldered/keymaps/default_ansi_split_bs/keymap.c new file mode 100644 index 0000000000..fc47b724cf --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/keymaps/default_ansi_split_bs/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_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_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_DEL, 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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/kbdfans/bounce/75/soldered/keymaps/default_iso/keymap.c b/keyboards/kbdfans/bounce/75/soldered/keymaps/default_iso/keymap.c new file mode 100644 index 0000000000..6916ebf4bb --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/keymaps/default_iso/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_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_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/kbdfans/bounce/75/soldered/keymaps/default_iso_split_bs/keymap.c b/keyboards/kbdfans/bounce/75/soldered/keymaps/default_iso_split_bs/keymap.c new file mode 100644 index 0000000000..5c50423bcb --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/keymaps/default_iso_split_bs/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_iso_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_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_DEL, 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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_iso_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_iso_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_iso_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/kbdfans/bounce/75/soldered/keymaps/via/keymap.c b/keyboards/kbdfans/bounce/75/soldered/keymaps/via/keymap.c new file mode 100644 index 0000000000..9f33f3ecd0 --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_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_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_DEL, 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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/kbdfans/bounce/75/soldered/keymaps/via/rules.mk b/keyboards/kbdfans/bounce/75/soldered/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kbdfans/bounce/75/soldered/readme.md b/keyboards/kbdfans/bounce/75/soldered/readme.md new file mode 100644 index 0000000000..fb0b364d19 --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/readme.md @@ -0,0 +1,21 @@ +# BOUNCE75 SOLDERED + +A customizable 75% HOTSWAP keyboard. + +* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) +* Hardware Supported: KBDFANS +* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/) + +Make example for this keyboard (after setting up your build environment): + + make kbdfans/bounce/75/soldered:default + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/kbdfans/bounce/75/soldered/rules.mk b/keyboards/kbdfans/bounce/75/soldered/rules.mk new file mode 100644 index 0000000000..cb5238f27d --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/75/soldered/soldered.c b/keyboards/kbdfans/bounce/75/soldered/soldered.c new file mode 100644 index 0000000000..a24bc9a36c --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/soldered.c @@ -0,0 +1,17 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "soldered.h" \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/75/soldered/soldered.h b/keyboards/kbdfans/bounce/75/soldered/soldered.h new file mode 100644 index 0000000000..01fe2df7f9 --- /dev/null +++ b/keyboards/kbdfans/bounce/75/soldered/soldered.h @@ -0,0 +1,121 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "quantum.h" + +#define ___ KC_NO + +/* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + * │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 │3C │1D ││1E │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┤ └─┬─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D ││2E │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ ┌──┴┐3D │ ISO Enter + * LShift │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D ││3E │ │2D │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ └───┴────┘ + * │40 │ │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │┌───┐ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│4D │ + * │50 │51 │52 │56 │5A │5B │┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴─────┴─────┘│5C │5D │5E │ + * └───┴───┴───┘ + * ┌────┬───┬────┬───────────────────────────┬────┬────┐ + * │50 │51 │52 │56 │5A │5B │ 7u Spacebar + * └────┴───┴────┴───────────────────────────┴────┴────┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K3C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_ansi_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K3C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E } \ +} + +#define LAYOUT_iso_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K3C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___ }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E } \ +} diff --git a/keyboards/kbdfans/bounce/pad/config.h b/keyboards/kbdfans/bounce/pad/config.h new file mode 100644 index 0000000000..aee424ac39 --- /dev/null +++ b/keyboards/kbdfans/bounce/pad/config.h @@ -0,0 +1,30 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "config_common.h" + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 +#define MATRIX_ROW_PINS { C7, B7, B6, B0, B1, B2 } +#define MATRIX_COL_PINS { B5, B4, D0, C2 } +#define UNUSED_PINS +#define DIODE_DIRECTION COL2ROW +#define LED_NUM_LOCK_PIN C6 +#define LED_PIN_ON_STATE 1 +#define DEBOUNCE 5 +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/kbdfans/bounce/pad/info.json b/keyboards/kbdfans/bounce/pad/info.json new file mode 100644 index 0000000000..9857f94cb4 --- /dev/null +++ b/keyboards/kbdfans/bounce/pad/info.json @@ -0,0 +1,42 @@ +{ + "keyboard_name": "Bounce Pad", + "manufacturer": "KBDfans", + "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x7002", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_numpad_6x4": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"Ctrl", "x":1, "y":0}, + {"label":"Alt", "x":2, "y":0}, + {"label":"Backspace", "x":3, "y":0}, + + {"label":"Num Lock", "x":0, "y":1.25}, + {"label":"/", "x":1, "y":1.25}, + {"label":"*", "x":2, "y":1.25}, + {"label":"-", "x":3, "y":1.25}, + + {"label":"7", "x":0, "y":2.25}, + {"label":"8", "x":1, "y":2.25}, + {"label":"9", "x":2, "y":2.25}, + + {"label":"4", "x":0, "y":3.25}, + {"label":"5", "x":1, "y":3.25}, + {"label":"6", "x":2, "y":3.25}, + {"label":"+", "x":3, "y":2.25, "h":2}, + + {"label":"1", "x":0, "y":4.25}, + {"label":"2", "x":1, "y":4.25}, + {"label":"3", "x":2, "y":4.25}, + + {"label":"0", "x":0, "y":5.25, "w":2}, + {"label":".", "x":2, "y":5.25}, + {"label":"Enter", "x":3, "y":4.25, "h":2} + ] + } + } +} diff --git a/keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c b/keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c new file mode 100644 index 0000000000..118c74debb --- /dev/null +++ b/keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_numpad_6x4( /* Base */ + KC_ESC, KC_LCTL, KC_LALT, KC_BSPC, + KC_NLCK, 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 + ), +}; \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/pad/keymaps/via/keymap.c b/keyboards/kbdfans/bounce/pad/keymaps/via/keymap.c new file mode 100644 index 0000000000..12916db402 --- /dev/null +++ b/keyboards/kbdfans/bounce/pad/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_numpad_6x4( /* Base */ + KC_ESC, KC_LCTL, KC_LALT, KC_BSPC, + KC_NLCK, 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( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), + [2] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), + [3] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______ + ), +}; \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/pad/keymaps/via/rules.mk b/keyboards/kbdfans/bounce/pad/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/kbdfans/bounce/pad/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kbdfans/bounce/pad/pad.c b/keyboards/kbdfans/bounce/pad/pad.c new file mode 100644 index 0000000000..18c18838ca --- /dev/null +++ b/keyboards/kbdfans/bounce/pad/pad.c @@ -0,0 +1,16 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "pad.h" \ No newline at end of file diff --git a/keyboards/kbdfans/bounce/pad/pad.h b/keyboards/kbdfans/bounce/pad/pad.h new file mode 100644 index 0000000000..a4bf9af55b --- /dev/null +++ b/keyboards/kbdfans/bounce/pad/pad.h @@ -0,0 +1,35 @@ +/* Copyright 2022 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_numpad_6x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, \ + K30, K31, K32, K33, \ + K40, K41, K42, \ + K51, K52, K53 \ +) \ +{ \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, KC_NO }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, KC_NO }, \ + { KC_NO,K51, K52, K53 } \ +} diff --git a/keyboards/kbdfans/bounce/pad/readme.md b/keyboards/kbdfans/bounce/pad/readme.md new file mode 100644 index 0000000000..ae0276ed28 --- /dev/null +++ b/keyboards/kbdfans/bounce/pad/readme.md @@ -0,0 +1,21 @@ +# BOUNCE PAD + +A customizable pad keyboard, include hotswap and soldered version. + +* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) +* Hardware Supported: KBDFANS +* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/) + +Make example for this keyboard (after setting up your build environment): + + make kbdfans/bounce/pad:default + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/kbdfans/bounce/pad/rules.mk b/keyboards/kbdfans/bounce/pad/rules.mk new file mode 100644 index 0000000000..e71a8b4313 --- /dev/null +++ b/keyboards/kbdfans/bounce/pad/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = numpad_6x4 diff --git a/keyboards/kbdfans/kbd19x/config.h b/keyboards/kbdfans/kbd19x/config.h index e738f77177..436ceb4b1c 100644 --- a/keyboards/kbdfans/kbd19x/config.h +++ b/keyboards/kbdfans/kbd19x/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0191 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFans -#define PRODUCT kbd19x - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 13 diff --git a/keyboards/kbdfans/kbd19x/info.json b/keyboards/kbdfans/kbd19x/info.json index 68832438d0..d5c0c68197 100644 --- a/keyboards/kbdfans/kbd19x/info.json +++ b/keyboards/kbdfans/kbd19x/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "KBD19x", + "manufacturer": "KBDfans", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd19x", "maintainer": "jshuf, mechmerlin", + "usb": { + "vid": "0x4B42", + "pid": "0x0191", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/kbdfans/kbd4x/config.h b/keyboards/kbdfans/kbd4x/config.h index 86989e2b08..70c4683242 100644 --- a/keyboards/kbdfans/kbd4x/config.h +++ b/keyboards/kbdfans/kbd4x/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFans -#define PRODUCT KBD4x - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/kbdfans/kbd4x/info.json b/keyboards/kbdfans/kbd4x/info.json index 939420c971..0a776250a2 100644 --- a/keyboards/kbdfans/kbd4x/info.json +++ b/keyboards/kbdfans/kbd4x/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "kbd4x", + "keyboard_name": "KBD4x", + "manufacturer": "KBDfans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_planck_mit": { "layout": [ diff --git a/keyboards/kbdfans/kbd66/config.h b/keyboards/kbdfans/kbd66/config.h index 2a10bf08ae..9737a9c6d8 100644 --- a/keyboards/kbdfans/kbd66/config.h +++ b/keyboards/kbdfans/kbd66/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xBD66 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFans -#define PRODUCT KBD66 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kbdfans/kbd66/info.json b/keyboards/kbdfans/kbd66/info.json index 5e4d9aacf3..bed764ef6a 100644 --- a/keyboards/kbdfans/kbd66/info.json +++ b/keyboards/kbdfans/kbd66/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "KBD66", + "manufacturer": "KBDfans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xBD66", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.25}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":2.75}, {"x":6.75, "y":4, "w":2.75}, {"label":"Alt", "x":9.5, "y":4, "w":1.5}, {"label":"Win", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] diff --git a/keyboards/kbdfans/kbd67/hotswap/config.h b/keyboards/kbdfans/kbd67/hotswap/config.h index 4c0e0b794d..1fca508a87 100644 --- a/keyboards/kbdfans/kbd67/hotswap/config.h +++ b/keyboards/kbdfans/kbd67/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x6065 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFans -#define PRODUCT KBD67 Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kbdfans/kbd67/hotswap/info.json b/keyboards/kbdfans/kbd67/hotswap/info.json index cf27cfe231..4a115a31bc 100644 --- a/keyboards/kbdfans/kbd67/hotswap/info.json +++ b/keyboards/kbdfans/kbd67/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "kbd67 hotswap", + "keyboard_name": "KBD67 Hotswap", + "manufacturer": "KBDFans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B42", + "pid": "0x6065", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/config.h b/keyboards/kbdfans/kbd67/mkii_soldered/config.h index ef47d33292..f955e82c6f 100644 --- a/keyboards/kbdfans/kbd67/mkii_soldered/config.h +++ b/keyboards/kbdfans/kbd67/mkii_soldered/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 // ai03 -#define PRODUCT_ID 0x0013 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDfans -#define PRODUCT KBD67-MKII - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/info.json b/keyboards/kbdfans/kbd67/mkii_soldered/info.json index c31fb4f3fb..3a0ffe0943 100644 --- a/keyboards/kbdfans/kbd67/mkii_soldered/info.json +++ b/keyboards/kbdfans/kbd67/mkii_soldered/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KBD67 MKII Soldered Variant", + "keyboard_name": "KBD67-MKII Soldered", + "manufacturer": "KBDfans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xA103", + "pid": "0x0013", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"~", "x":0, "y":0}, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/config.h b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/config.h new file mode 100644 index 0000000000..2d2dc00132 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/config.h @@ -0,0 +1,41 @@ +/* Copyright 2022 spx01 (@spx01) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* --- custom defines only used in my own code --- */ + +/* easily switch on debugging features */ +#define CUSTOM_DEBUG false + +/* hexrgb mode special keys, these shouldn't be KC_A to KC_F or KC_0 to KC_9 */ +/* keycode that triggers saving the current rgb_static color into eeprom */ +#define HEXRGB_SAVE_KC KC_S +/* keycode that triggers resetting rgb_static to the color saved in the eeprom */ +#define HEXRGB_RESET_KC KC_R + +/* --- keyboard configuration macros --- */ + +#if CUSTOM_DEBUG +# define NO_DEBUG +# define NO_PRINT +#endif + +#define RETRO_TAPPING +#define PERMISSIVE_HOLD + +#undef RGB_MATRIX_STARTUP_MODE +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CUSTOM_RGB_STATIC diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/keymap.c new file mode 100644 index 0000000000..ca90c77b42 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/keymap.c @@ -0,0 +1,158 @@ +/* Copyright 2022 spx01 (@spx01) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "print.h" + +enum CustomKeycodes { + CK_HEXRGB = SAFE_RANGE, + /* esc when shift is held, grave otherwise; particularly useful for windows' task manager shortcut */ + CK_ESCG, +}; + +enum Layers { + _LAYER1, + _LAYER2, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [_LAYER1] = 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_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_BSLASH, KC_PGUP, + LT(_LAYER2, KC_CAPS), KC_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_RIGHT), + [_LAYER2] = LAYOUT_65_ansi_blocker( + CK_ESCG, KC_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, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, RESET, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, CK_HEXRGB, KC_MPLY, KC_VOLU, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + /* [] = 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 +}; + +/* exported by the rgb_static effect */ +void RGB_STATIC_save_eeprom(void); +void RGB_STATIC_reset(void); +extern uint8_t g_rgb_static_color[3]; + +/* returns number corresponding to hex digit represented by keycode or -1 if keycode isn't a valid hex digit */ +static int8_t key_hexdigit(uint16_t keycode) { + if (keycode >= KC_A && keycode <= KC_F) { + return keycode - KC_A + 10; + } + if (keycode >= KC_1 && keycode <= KC_0) { + int8_t res = keycode - KC_1 + 1; + /* mod 10 considering res is between 1 and 10 */ + res *= res != 10; + return res; + } + return -1; +} + +typedef struct { + bool active; + uint8_t color[3]; + uint8_t count; +} RGBHexState; +static RGBHexState hexrgb; + +/* handles input mode for an rgb value */ +static void hexrgb_input(uint16_t keycode) { + /* only check for special keys when input mode has just been triggered */ + if (hexrgb.count == 0) { + switch (keycode) { + case HEXRGB_SAVE_KC: + RGB_STATIC_save_eeprom(); + hexrgb.active = false; + return; + case HEXRGB_RESET_KC: + RGB_STATIC_reset(); + hexrgb.active = false; + return; + default: + } + } + + int8_t digit = key_hexdigit(keycode); + /* exit input mode if an invalid key has been pressed */ + if (digit == -1) { + hexrgb.count = 0; + hexrgb.active = false; + return; + } + + /* append digit to current color */ + uint8_t idx = hexrgb.count / 2; + hexrgb.color[idx] <<= 4; + hexrgb.color[idx] |= digit; + + ++hexrgb.count; + /* done with input */ + if (hexrgb.count == 6) { + hexrgb.active = false; + hexrgb.count = 0; + /* copy color to rgb_static's buffer */ + for (int8_t i = 0; i < 3; ++i) { + g_rgb_static_color[i] = hexrgb.color[i]; + hexrgb.color[i] = 0; + } + } +} + +void keyboard_post_init_user(void) { +#if CUSTOM_DEBUG + debug_enable = true; + debug_matrix = true; +#endif +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + /* shift status last time ck_escg was pressed so that the correct key can be released */ + static bool ck_escg_last_shifted; + + if (hexrgb.active && record->event.pressed) { + hexrgb_input(keycode); + /* while in input mode nothing passes through */ + return false; + } + + switch (keycode) { + case CK_HEXRGB: + hexrgb.active = record->event.pressed; + return false; + case CK_ESCG: + /* if pressed, inject key, otherwise delete it */ + if (record->event.pressed) { + bool shifted = get_mods() & MOD_BIT(KC_LSHIFT); + add_key(shifted ? KC_ESC : KC_GRV); + ck_escg_last_shifted = shifted; + } else { + del_key(ck_escg_last_shifted ? KC_ESC : KC_GRV); + } + send_keyboard_report(); + return false; + default: + } + return true; +} diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/readme.md b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/readme.md new file mode 100644 index 0000000000..86b90772b0 --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/readme.md @@ -0,0 +1,23 @@ +# spx01's KBD67 MKIIRGB Layout + +This is a fairly simple QWERTY 2 layer layout, full list of particularities below: + +* Besides Fn acting like a standard layer switch, CapsLock is set to switch to layer 2 while held and activate CapsLock when tapped. +* The Esc key/grave key (top left) is set to QMK's "Grave Escape" (sends Esc when tapped alone, Grave when tapped together with Shift/Ctrl/GUI), but on the 2nd layer it's set to the CK_ESCG custom keycode, acting like grave when tapped alone and as Esc when Shift is also held down. This means that there is easy access to both the characters (grave and tilde) and the Esc key while also allowing for shortcuts such as Ctrl+Shift+Esc with Ctrl+Shift+Caps+Esc (the Windows Task Manager shortcut). +* The default RGB Matrix effect is set to a custom one, RGB_STATIC, which sets a solid RGB color based on a global variable, featuring EEPROM saving and automatic loading independent on the HSV EEPROM memory that the standard effects use. This was done in order to accomodate the next feature. +* The HexRGB mode is triggered by pressing the '/' key in the second layer (CK_HEXRGB) and enables the user to type a 6 digit hexadecimal color code that is then stored as the color for the RGB_STATIC effect. If any invalid key is pressed during color input, the keymap will go back to its normal behavior without any changes to RGB. +* Besides keys representing hexadecimal digits (0-9 and a-f), there are also 2 more keys that provide functionality in the HexRGB input mode (only as a first keypress). HEXRGB_SAVE_KC (set by default to S) triggers the RGB_STATIC effect to save the currently set RGB color to EEPROM and the HEXRGB_RESET_KC (set by default to R) resets the RGB color to the one currently saved in EEPROM. These 2 keys can be reassigned in config.h. + +Various 2nd layer keys: +* 1 to '+' for F1-12 +* P for PrtSc/Print +* Backspace for Delete +* Home (top right key) for Insert +* E for resetting EEPROM +* '\\' for bootloader mode +* Space for toggling RGB on or off +* Right Shift for pausing media +* Left/Right for previous track/next track +* Up/Down for volume up/down + +**Note: I disabled VIA in rules.mk because I don't use it, but there is enough memory space for it to be enabled.** diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/rgb_matrix_user.inc b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/rgb_matrix_user.inc new file mode 100644 index 0000000000..85c4dc2cad --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/rgb_matrix_user.inc @@ -0,0 +1,68 @@ +/* Copyright 2022 spx01 (@spx01) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +RGB_MATRIX_EFFECT(RGB_STATIC) + +#define UNWRAP_RGB_PARAMS(x) x[0], x[1], x[2] +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +/* eeprom saved data structure */ +typedef struct { + union { + uint32_t whole; + uint8_t rgb[3]; + }; +} UserData; + +uint8_t g_rgb_static_color[3]; + +/* save current colors to eeprom */ +void RGB_STATIC_save_eeprom(void) { + UserData data = {0}; + for (int8_t i = 0; i < 3; ++i) { + data.rgb[i] = g_rgb_static_color[i]; + } + eeconfig_update_user(data.whole); +} + +/* initialize by loading the eeprom colors */ +static void RGB_STATIC_init(void) { + UserData data; + data.whole = eeconfig_read_user(); + for (int8_t i = 0; i < 3; ++i) { + g_rgb_static_color[i] = data.rgb[i]; + } +} + +/* reset colors to eeprom values */ +void RGB_STATIC_reset(void) { + RGB_STATIC_init(); +} + +static bool RGB_STATIC(effect_params_t *params) { + if (params->init) { + RGB_STATIC_init(); + } + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + RGB_MATRIX_TEST_LED_FLAGS(); + rgb_matrix_set_color(i, UNWRAP_RGB_PARAMS(g_rgb_static_color)); + } + return rgb_matrix_check_finished_leds(led_max); +} + +#endif +#undef UNWRAP_RGB_PARAMS diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/rules.mk new file mode 100644 index 0000000000..2700c035cc --- /dev/null +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = no +LTO_ENABLE = yes +CONSOLE_ENABLE = no +RGB_MATRIX_CUSTOM_USER = yes diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h b/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h index 0877d04cca..03b806821f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0105 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT KBD67MKIIRGB_ISO - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json b/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json index 36ff2f1fe5..26eabc6293 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "kbd67mkiirgb_iso", + "keyboard_name": "KBD67MKIIRGB ISO", + "manufacturer": "KBDfans", "url": "", "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x0105", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_iso_blocker": { "layout": [ diff --git a/keyboards/kbdfans/kbd67/rev1/config.h b/keyboards/kbdfans/kbd67/rev1/config.h index b7ad8de4e2..dbe7f03503 100644 --- a/keyboards/kbdfans/kbd67/rev1/config.h +++ b/keyboards/kbdfans/kbd67/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x6066 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kbdfans -#define PRODUCT kbd67 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kbdfans/kbd67/rev1/info.json b/keyboards/kbdfans/kbd67/rev1/info.json index 6b7219f891..78d36aeeb2 100644 --- a/keyboards/kbdfans/kbd67/rev1/info.json +++ b/keyboards/kbdfans/kbd67/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "kbd67", + "keyboard_name": "KBD67 Rev1", + "manufacturer": "KBDfans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B42", + "pid": "0x6066", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/kbdfans/kbd67/rev2/config.h b/keyboards/kbdfans/kbd67/rev2/config.h index ce6c990d69..9a68b4b08e 100644 --- a/keyboards/kbdfans/kbd67/rev2/config.h +++ b/keyboards/kbdfans/kbd67/rev2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x6067 -#define DEVICE_VER 0x0002 -#define MANUFACTURER KBDFans -#define PRODUCT KBD67v2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kbdfans/kbd67/rev2/info.json b/keyboards/kbdfans/kbd67/rev2/info.json index 7e23e70c40..089d0571b2 100644 --- a/keyboards/kbdfans/kbd67/rev2/info.json +++ b/keyboards/kbdfans/kbd67/rev2/info.json @@ -1,7 +1,16 @@ { - "keyboard_name": "kbd67v2", + "keyboard_name": "KBD67 Rev2", + "manufacturer": "KBDfans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B42", + "pid": "0x6067", + "device_version": "0.0.2" + }, + "layout_aliases": { + "LAYOUT_65_ansi_blocker_splitbs": "LAYOUT_65_ansi_blocker_split_bs" + }, "layouts": { "LAYOUT_all": { "layout": [ @@ -536,6 +545,163 @@ {"x":15, "y":4} ] }, + "LAYOUT_65_iso_split_bs": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_iso_split_space": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":2.25}, + {"x":6, "y":4, "w":1.25}, + {"x":7.25, "y":4, "w":2.75}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, "LAYOUT_65_ansi_split_space": { "layout": [ {"x":0, "y":0}, diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c new file mode 100644 index 0000000000..27fbf0be53 --- /dev/null +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c @@ -0,0 +1,58 @@ +/* Copyright 2018 '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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |GESC| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp| Del| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ent |PgUp| + * |-------------------------------------------------------. |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '| | |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|End | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |MS3| Space |Alt |MO1|Ctrl|Lef|Dow|Rig| + * `----------------------------------------------------------------' + */ +[0] = LAYOUT_65_iso_split_space( + 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_DELETE, + KC_TAB, KC_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_MS_BTN3, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap Fn Layer + * ,----------------------------------------------------------------. + * |~ `|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del |Mute| + * |----------------------------------------------------------------| + * | | |Up | | | | | | | | | | | |Vol+| + * |----------------------------------------------------------------| + * | |Lef|Dow|Rig| | | | | | | | | |Vol-| + * |----------------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |----------------------------------------------------------------| + * | | | | Space |Space| Space | | | | | | | + * `----------------------------------------------------------------' + */ +[1] = LAYOUT_65_iso_split_space( + 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_MUTE, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_SPC, KC_SPC, KC_SPC, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md new file mode 100644 index 0000000000..d7b9c29e38 --- /dev/null +++ b/keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/readme.md @@ -0,0 +1,4 @@ +# Not the default keymap for kbd67 + + - this is my personnal layout, but is meant to be used as a base for the new layout LAYOUT_65_iso_split_space + - 3 splitted space bar. (Space - Mouse click 3 - Space) diff --git a/keyboards/kbdfans/kbd67/rev2/rev2.h b/keyboards/kbdfans/kbd67/rev2/rev2.h index 1c1c0bf418..7e6a176ef1 100644 --- a/keyboards/kbdfans/kbd67/rev2/rev2.h +++ b/keyboards/kbdfans/kbd67/rev2/rev2.h @@ -115,6 +115,21 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, KC_NO, K4B, K4D, K4E, K4F }, \ } +#define LAYOUT_65_iso_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + #define LAYOUT_65_iso( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ @@ -130,6 +145,22 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ } +#define LAYOUT_65_iso_split_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F }, \ + { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, KC_NO, K43, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + + #define LAYOUT_65_ansi_split_space( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ @@ -144,5 +175,3 @@ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ { K40, K41, KC_NO, K43, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F }, \ } - -#define LAYOUT_65_ansi_blocker_splitbs LAYOUT_65_ansi_blocker_split_bs diff --git a/keyboards/kbdfans/kbd6x/config.h b/keyboards/kbdfans/kbd6x/config.h index 080bdb33b2..e7160abd95 100644 --- a/keyboards/kbdfans/kbd6x/config.h +++ b/keyboards/kbdfans/kbd6x/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x3658 -#define DEVICE_VER 0x0001 -#define MANUFACTURER You -#define PRODUCT kbd6x - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kbdfans/kbd6x/info.json b/keyboards/kbdfans/kbd6x/info.json index 2781eead10..a6e410878c 100644 --- a/keyboards/kbdfans/kbd6x/info.json +++ b/keyboards/kbdfans/kbd6x/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "kbd6x", + "keyboard_name": "KBD6X", + "manufacturer": "KBDfans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B42", + "pid": "0x3658", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] diff --git a/keyboards/kbdfans/kbd6x/keymaps/othi/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/othi/keymap.c index ce341509a6..6bbbdd87c1 100644 --- a/keyboards/kbdfans/kbd6x/keymaps/othi/keymap.c +++ b/keyboards/kbdfans/kbd6x/keymaps/othi/keymap.c @@ -38,7 +38,7 @@ void eeconfig_init_user(void) { #define DE_UDIA_CAP UC(0x00DC) layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case NM_MODE: rgblight_setrgb (0x00, 0x66, 0x00); break; @@ -187,3 +187,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______ ), }; + diff --git a/keyboards/kbdfans/kbd75/keymaps/edulpn/keymap.c b/keyboards/kbdfans/kbd75/keymaps/edulpn/keymap.c index 5a6d760355..998f1a25d2 100644 --- a/keyboards/kbdfans/kbd75/keymaps/edulpn/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/edulpn/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case WINDOWS_LAYER: rgblight_setrgb_blue(); break; diff --git a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c index 87cab80f59..de656357f9 100644 --- a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 James Young (@noroadsleft) +/* Copyright 2020-2022 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 @@ -16,22 +16,6 @@ #include "noroadsleft.h" -#define LAYOUT_75_ansi_wkl( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ - K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K501, K506, K510, K512, K513, K514, K515 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ - { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, K501, KC_NO, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ -} - enum layer_names { _DV, _QW, @@ -88,13 +72,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, DM_REC1, _______, KC_CALC, KC_APP, G_PUSH, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, DM_REC2, - _______, M_SALL, _______, G_FTCH, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, + _______, M_SALL, _______, G_FTCH, G_PWD, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, _______, M_UNDO, M_CUT, M_COPY, M_PASTE, G_BRCH, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, DM_PLY2, _______, _______, _______, _______, _______, _______, _______, _______ ), [_SY] = LAYOUT_75_ansi_wkl( - TG(_SY), TO(_DV), TO(_QW), XXXXXXX, TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET, EEP_RST, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, + TG(_SY), TO(_DV), TO(_QW), XXXXXXX, TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, EE_CLR, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/kbdfans/kbd75hs/config.h b/keyboards/kbdfans/kbd75hs/config.h index bf14934d2b..a06de0dda8 100644 --- a/keyboards/kbdfans/kbd75hs/config.h +++ b/keyboards/kbdfans/kbd75hs/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x6062 -#define DEVICE_VER 0x0003 -#define MANUFACTURER KBDFANS -#define PRODUCT KBD75_HOTSWAP - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/kbdfans/kbd75hs/info.json b/keyboards/kbdfans/kbd75hs/info.json index f1d3368827..d9982d3d6f 100644 --- a/keyboards/kbdfans/kbd75hs/info.json +++ b/keyboards/kbdfans/kbd75hs/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "KBD75HS", + "keyboard_name": "KBD75 Hotswap", + "manufacturer": "KBDfans", "maintainer": "DZTECH", + "usb": { + "vid": "0x4B42", + "pid": "0x6062", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_75_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "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":"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":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "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":"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}, {"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}] diff --git a/keyboards/kbdfans/kbd8x/config.h b/keyboards/kbdfans/kbd8x/config.h index b53a898a27..33376c800a 100644 --- a/keyboards/kbdfans/kbd8x/config.h +++ b/keyboards/kbdfans/kbd8x/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFans -#define PRODUCT kbd8x - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/kbdfans/kbd8x/info.json b/keyboards/kbdfans/kbd8x/info.json index fb2e97a296..8749577d63 100644 --- a/keyboards/kbdfans/kbd8x/info.json +++ b/keyboards/kbdfans/kbd8x/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KBD 8X", + "keyboard_name": "KBD8X", + "manufacturer": "KBDfans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/kbdfans/kbd8x_mk2/config.h b/keyboards/kbdfans/kbd8x_mk2/config.h index 010bba4617..a33c328a8b 100644 --- a/keyboards/kbdfans/kbd8x_mk2/config.h +++ b/keyboards/kbdfans/kbd8x_mk2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0005 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDfans -#define PRODUCT KBD8X-MKII - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/kbdfans/kbd8x_mk2/info.json b/keyboards/kbdfans/kbd8x_mk2/info.json index 82aacc550d..162b037dc2 100644 --- a/keyboards/kbdfans/kbd8x_mk2/info.json +++ b/keyboards/kbdfans/kbd8x_mk2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "kbd8x_mk2", + "keyboard_name": "KBD8X-MKII", + "manufacturer": "KBDfans", "url": "https://kb.ai03.me/projects/kbd8x-mkii.html", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0005", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kbdfans/kbdmini/config.h b/keyboards/kbdfans/kbdmini/config.h index a3e0a0237e..d3da84af14 100644 --- a/keyboards/kbdfans/kbdmini/config.h +++ b/keyboards/kbdfans/kbdmini/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x2001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DZTECH -#define PRODUCT KBDMINI - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/kbdfans/kbdmini/info.json b/keyboards/kbdfans/kbdmini/info.json index c3d04c9d16..4b2bac56a9 100644 --- a/keyboards/kbdfans/kbdmini/info.json +++ b/keyboards/kbdfans/kbdmini/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KBDMini", + "keyboard_name": "KBDMINI", + "manufacturer": "DZTECH", "url": "", "maintainer": "KBDFans", + "usb": { + "vid": "0xFEED", + "pid": "0x2001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kbdfans/kbdpad/mk1/config.h b/keyboards/kbdfans/kbdpad/mk1/config.h index 80a1abef57..28ce21e88e 100644 --- a/keyboards/kbdfans/kbdpad/mk1/config.h +++ b/keyboards/kbdfans/kbdpad/mk1/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0200 -#define MANUFACTURER KBDfans -#define PRODUCT KBDPAD Mk. I - #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/kbdfans/kbdpad/mk1/info.json b/keyboards/kbdfans/kbdpad/mk1/info.json index 760d1d94ea..97736cf44f 100644 --- a/keyboards/kbdfans/kbdpad/mk1/info.json +++ b/keyboards/kbdfans/kbdpad/mk1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KBDfans KBDPad MKI", + "keyboard_name": "KBDPAD Mk. I", + "manufacturer": "KBDfans", "url": "https://kbdfans.com/products/kbdfans-pad-custom-mechanical-keyboard-diy-kit", "maintainer": "qmk", + "usb": { + "vid": "0x20A0", + "pid": "0x422D", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kbdfans/kbdpad/mk2/config.h b/keyboards/kbdfans/kbdpad/mk2/config.h index 99f3792d55..711d1b03e5 100644 --- a/keyboards/kbdfans/kbdpad/mk2/config.h +++ b/keyboards/kbdfans/kbdpad/mk2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0006 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDfans -#define PRODUCT KBDPAD-MKII - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/kbdfans/kbdpad/mk2/info.json b/keyboards/kbdfans/kbdpad/mk2/info.json index 2f61318575..11522e14f8 100644 --- a/keyboards/kbdfans/kbdpad/mk2/info.json +++ b/keyboards/kbdfans/kbdpad/mk2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "kbdpad_mk2", + "keyboard_name": "KBDPAD-MKII", + "manufacturer": "KBDfans", "url": "https://kb.ai03.me/projects/kbdpad-mkii.html", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0006", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_6x4": { "layout": [ diff --git a/keyboards/kbdfans/maja/config.h b/keyboards/kbdfans/maja/config.h index 19a5e1dfa4..0800de1ece 100755 --- a/keyboards/kbdfans/maja/config.h +++ b/keyboards/kbdfans/maja/config.h @@ -2,12 +2,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x6068 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT MAJA - #define MATRIX_ROWS 5 #define MATRIX_COLS 15 #define MATRIX_ROW_PINS { F0, B6, B5, B4, D7 } diff --git a/keyboards/kbdfans/maja/info.json b/keyboards/kbdfans/maja/info.json index 3245687689..edd26a26fe 100644 --- a/keyboards/kbdfans/maja/info.json +++ b/keyboards/kbdfans/maja/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MAJA", + "keyboard_name": "Maja", + "manufacturer": "KBDFans", "url": "", "maintainer": "DZTECH", + "usb": { + "vid": "0x4B42", + "pid": "0x6068", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kbdfans/maja_soldered/config.h b/keyboards/kbdfans/maja_soldered/config.h index bc284893d5..62a0201c17 100755 --- a/keyboards/kbdfans/maja_soldered/config.h +++ b/keyboards/kbdfans/maja_soldered/config.h @@ -17,12 +17,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x6069 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT MAJA_SOLDERED - #define MATRIX_ROWS 5 #define MATRIX_COLS 15 #define MATRIX_ROW_PINS { F0, B6, D6, B4, D7 } diff --git a/keyboards/kbdfans/maja_soldered/info.json b/keyboards/kbdfans/maja_soldered/info.json index 407a189f60..296ece294c 100644 --- a/keyboards/kbdfans/maja_soldered/info.json +++ b/keyboards/kbdfans/maja_soldered/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MAJA_SOLDERED", + "keyboard_name": "Maja Soldered", + "manufacturer": "KBDFans", "url": "", "maintainer": "DZTECH", + "usb": { + "vid": "0x4B42", + "pid": "0x6069", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kbdfans/niu_mini/config.h b/keyboards/kbdfans/niu_mini/config.h index 82f23e3d5c..3eafcd24cf 100644 --- a/keyboards/kbdfans/niu_mini/config.h +++ b/keyboards/kbdfans/niu_mini/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6E6D -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFans -#define PRODUCT NIU Mini - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/kbdfans/niu_mini/info.json b/keyboards/kbdfans/niu_mini/info.json index 1c4310576e..12a004d63e 100644 --- a/keyboards/kbdfans/niu_mini/info.json +++ b/keyboards/kbdfans/niu_mini/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "NIU Mini", + "manufacturer": "KBDFans", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6E6D", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x12": { "layout": [ diff --git a/keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c index 8c03ae2df2..935dd5c506 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c @@ -8,7 +8,7 @@ * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . @@ -103,8 +103,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, S(KC_EQL), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_E), KC_RBRC, RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), KC_LSFT, KC_NUBS, RALT(KC_NUBS), S(KC_NUBS), DGRMCRO, XXXXXXX, XXXXXXX, RALT(KC_M), KC_RBRC, S(KC_RBRC), RALT(KC_RBRC), _______, _______, _______, KC_RALT, _______,TO(_ADJUST), _______, _______, _______, _______, _______, _______, TO(_QWERTY) -), - +), + /* Lower * ,-----------------------------------------------------------------------------------. @@ -257,10 +257,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } else { workmode = false; - return false; - } + return false; + } } - + } return true; } @@ -293,7 +293,7 @@ void rgbflag(uint8_t r, uint8_t g, uint8_t b) { layer_state_t layer_state_set_user(layer_state_t state) { // if(rgblight_get_mode() == 1) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _QWERTY: if(!workmode){ rgblight_mode(9); @@ -312,7 +312,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { tap_code(KC_NLCK); } rgbflag(0xFF, 0x00, 0x00); - + break; case _ADJUST: rgblight_mode(1); @@ -350,7 +350,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgblight_mode(1); if(bnumlock) { tap_code(KC_NLCK); - } + } rgbflag(0xFF, 0xFF, 0xFF); break; } @@ -363,8 +363,8 @@ layer_state_t layer_state_set_user(layer_state_t state) { //Layer LED indicators uint32_t layer = layer_state; - - + + if (layer & (1<<2)) { if(!bnumlock) { numlock_changed = true; @@ -373,10 +373,10 @@ layer_state_t layer_state_set_user(layer_state_t state) { bnumlock = true; } } -} +} */ - - + + void led_set_user(uint8_t usb_led) { if (usb_led & (1 << USB_LED_NUM_LOCK)) { @@ -410,4 +410,4 @@ void led_set_user(uint8_t usb_led) { } -} +} \ No newline at end of file diff --git a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c index d3c6102b16..bfda812738 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c @@ -187,7 +187,7 @@ void rgbflag(uint8_t r, uint8_t g, uint8_t b, uint8_t rr, uint8_t gg, uint8_t bb void set_state_leds(void) { if (rgblight_get_mode() == 1) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _RAISE: rgbflag(C_BLU, C_GRN); break; diff --git a/keyboards/kbdfans/odin/rgb/config.h b/keyboards/kbdfans/odin/rgb/config.h index 9e2a12fcca..81572cee6e 100644 --- a/keyboards/kbdfans/odin/rgb/config.h +++ b/keyboards/kbdfans/odin/rgb/config.h @@ -15,12 +15,6 @@ */ #include "config_common.h" -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0102 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT ODIN_RGB - #define MATRIX_ROWS 6 #define MATRIX_COLS 20 diff --git a/keyboards/kbdfans/odin/rgb/info.json b/keyboards/kbdfans/odin/rgb/info.json index d5c63b5700..b4845f9468 100644 --- a/keyboards/kbdfans/odin/rgb/info.json +++ b/keyboards/kbdfans/odin/rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ODIN_RGB", - "maintainer": "moyi4681", + "keyboard_name": "Odin RGB", + "manufacturer": "KBDFans", "url": "", + "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x0102", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kbdfans/odin/soldered/config.h b/keyboards/kbdfans/odin/soldered/config.h index d51dd06e82..0731524dad 100644 --- a/keyboards/kbdfans/odin/soldered/config.h +++ b/keyboards/kbdfans/odin/soldered/config.h @@ -15,13 +15,6 @@ */ #include "config_common.h" -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0101 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT ODIN_SOLDERED - - #define MATRIX_ROWS 6 #define MATRIX_COLS 20 diff --git a/keyboards/kbdfans/odin/soldered/info.json b/keyboards/kbdfans/odin/soldered/info.json index 1e4da0d275..bfc6f6f1bc 100644 --- a/keyboards/kbdfans/odin/soldered/info.json +++ b/keyboards/kbdfans/odin/soldered/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ODIN_SOLDERED", - "maintainer": "moyi4681", + "keyboard_name": "Odin Soldered", + "manufacturer": "KBDFans", "url": "", + "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x0101", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kbdfans/phaseone/config.h b/keyboards/kbdfans/phaseone/config.h index 42fcdedc6a..d1ab30f614 100644 --- a/keyboards/kbdfans/phaseone/config.h +++ b/keyboards/kbdfans/phaseone/config.h @@ -16,12 +16,7 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0103 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFans -#define PRODUCT phaseone + /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kbdfans/phaseone/info.json b/keyboards/kbdfans/phaseone/info.json index 31f64801c9..45ad884530 100644 --- a/keyboards/kbdfans/phaseone/info.json +++ b/keyboards/kbdfans/phaseone/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Phase One", + "manufacturer": "KBDFans", "url": "", "maintainer": "moyi4681", + "usb": { + "vid": "0x4B42", + "pid": "0x0103", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_65_ansi_wkl": "LAYOUT_65_ansi_blocker_tsangan_wkl" }, diff --git a/keyboards/kbdfans/tiger80/config.h b/keyboards/kbdfans/tiger80/config.h index ea68effd4f..c1092c11e9 100644 --- a/keyboards/kbdfans/tiger80/config.h +++ b/keyboards/kbdfans/tiger80/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0011 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KBDFANS -#define PRODUCT TIGER80 - - #define MATRIX_ROWS 6 #define MATRIX_COLS 16 #define MATRIX_ROW_PINS { B0, E6, B1, B4, D1, D2 } diff --git a/keyboards/kbdfans/tiger80/info.json b/keyboards/kbdfans/tiger80/info.json index 2d331500c5..42ed680b28 100644 --- a/keyboards/kbdfans/tiger80/info.json +++ b/keyboards/kbdfans/tiger80/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "tiger80", + "keyboard_name": "Tiger80", + "manufacturer": "KBDFans", "url": "", "maintainer": "kbdfans", + "usb": { + "vid": "0x4B42", + "pid": "0x0011", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_all": "LAYOUT_tkl_f13_ansi_tsangan" }, diff --git a/keyboards/kc60/config.h b/keyboards/kc60/config.h index c536ab83f0..602a4cc35d 100644 --- a/keyboards/kc60/config.h +++ b/keyboards/kc60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x530A -#define PRODUCT_ID 0x6FFC -#define DEVICE_VER 0x0001 -#define MANUFACTURER NPKC -#define PRODUCT KC60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kc60/info.json b/keyboards/kc60/info.json index a92a72f6a1..e3c4efa411 100644 --- a/keyboards/kc60/info.json +++ b/keyboards/kc60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "KC60", + "manufacturer": "NPKC", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x530A", + "pid": "0x6FFC", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kc60/keymaps/noroadsleft/keymap.c b/keyboards/kc60/keymaps/noroadsleft/keymap.c index 1721861b9a..37091fccdd 100644 --- a/keyboards/kc60/keymaps/noroadsleft/keymap.c +++ b/keyboards/kc60/keymaps/noroadsleft/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2018-2021 James Young (@noroadsleft) +/* Copyright 2018-2022 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 @@ -101,13 +101,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MA] = LAYOUT_60_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______, _______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP, - _______, _______, _______, G_FTCH, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, G_FTCH, G_PWD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, G_BRCH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_SY] = LAYOUT_60_ansi( - TG(_SY), TO(_DV), TO(_QW), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, + TG(_SY), TO(_DV), TO(_QW), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/kc60se/config.h b/keyboards/kc60se/config.h index 876aa891df..88a4afa9d3 100644 --- a/keyboards/kc60se/config.h +++ b/keyboards/kc60se/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Unknown -#define PRODUCT kc60se - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kc60se/info.json b/keyboards/kc60se/info.json index 1c8cde0989..f36972e0a0 100644 --- a/keyboards/kc60se/info.json +++ b/keyboards/kc60se/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "kc60se", + "manufacturer": "Unknown", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/keebio/bamfk1/config.h b/keyboards/keebio/bamfk1/config.h index 5cd86a9d16..908b969da9 100644 --- a/keyboards/keebio/bamfk1/config.h +++ b/keyboards/keebio/bamfk1/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1111 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keebio -#define PRODUCT BAMFK-1 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/keebio/bamfk1/info.json b/keyboards/keebio/bamfk1/info.json index 817eb98af0..858dcfc948 100644 --- a/keyboards/keebio/bamfk1/info.json +++ b/keyboards/keebio/bamfk1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BAMFK-1", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x1111", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/bdn9/keymaps/vosechu-ksp/keymap.c b/keyboards/keebio/bdn9/keymaps/vosechu-ksp/keymap.c index 3b92657d4d..a449c3ec3d 100644 --- a/keyboards/keebio/bdn9/keymaps/vosechu-ksp/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/vosechu-ksp/keymap.c @@ -64,7 +64,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { flight_mode = false; rcs_mode = false; - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _PANIC: panic_mode = true; // For use in encoder evaluation rgblight_sethsv_noeeprom(HSV_RED); diff --git a/keyboards/keebio/bfo9000/config.h b/keyboards/keebio/bfo9000/config.h index 7bb150d8cf..74d8bfbc46 100644 --- a/keyboards/keebio/bfo9000/config.h +++ b/keyboards/keebio/bfo9000/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1169 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT BFO-9000 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 12 diff --git a/keyboards/keebio/bfo9000/info.json b/keyboards/keebio/bfo9000/info.json index c492ccae18..3e455b3d6e 100644 --- a/keyboards/keebio/bfo9000/info.json +++ b/keyboards/keebio/bfo9000/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Keebio BFO-9000", + "keyboard_name": "BFO-9000", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "Keebio", + "usb": { + "vid": "0xCB10", + "pid": "0x1169", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c b/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c index ad56226ac6..29531b9973 100644 --- a/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c +++ b/keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c @@ -42,7 +42,7 @@ void matrix_post_init_user(void) { } layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _LIST: rgblight_sethsv_noeeprom(0,255,255); rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL); @@ -87,3 +87,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } } + + + diff --git a/keyboards/keebio/bigswitchseat/config.h b/keyboards/keebio/bigswitchseat/config.h index dbf8311c8d..ff4896c056 100644 --- a/keyboards/keebio/bigswitchseat/config.h +++ b/keyboards/keebio/bigswitchseat/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1011 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keebio -#define PRODUCT Big Switch Seat - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 diff --git a/keyboards/keebio/bigswitchseat/info.json b/keyboards/keebio/bigswitchseat/info.json index 10328da26f..d66ef5b5ce 100644 --- a/keyboards/keebio/bigswitchseat/info.json +++ b/keyboards/keebio/bigswitchseat/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Big Switch Seat", + "manufacturer": "Keebio", "url": "https://robotcandy.company/", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x1011", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x": 0, "y": 0, "w": 4, "h": 4}] diff --git a/keyboards/keebio/choconum/config.h b/keyboards/keebio/choconum/config.h index dcd116534a..afad80daef 100644 --- a/keyboards/keebio/choconum/config.h +++ b/keyboards/keebio/choconum/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1154 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT Choconum - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/keebio/choconum/info.json b/keyboards/keebio/choconum/info.json index b036cf0b79..b6408f31cd 100644 --- a/keyboards/keebio/choconum/info.json +++ b/keyboards/keebio/choconum/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Choconum", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "Keebio", + "usb": { + "vid": "0xCB10", + "pid": "0x1154", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/keebio/chocopad/config.h b/keyboards/keebio/chocopad/config.h index e07bd5da5b..bbbc022849 100644 --- a/keyboards/keebio/chocopad/config.h +++ b/keyboards/keebio/chocopad/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1144 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT Chocopad - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/keebio/chocopad/info.json b/keyboards/keebio/chocopad/info.json index 6fbbbbd4fc..426d9d72e8 100644 --- a/keyboards/keebio/chocopad/info.json +++ b/keyboards/keebio/chocopad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Chocopad", + "manufacturer": "Keebio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCB10", + "pid": "0x1144", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}] diff --git a/keyboards/keebio/dilly/config.h b/keyboards/keebio/dilly/config.h index 9d7b08509d..d56c572a4d 100644 --- a/keyboards/keebio/dilly/config.h +++ b/keyboards/keebio/dilly/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x113a -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT Dilly - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 5 diff --git a/keyboards/keebio/dilly/info.json b/keyboards/keebio/dilly/info.json index fd12fce337..af8a7a8416 100644 --- a/keyboards/keebio/dilly/info.json +++ b/keyboards/keebio/dilly/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Dilly", + "manufacturer": "Keebio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCB10", + "pid": "0x113A", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_ortho_3x10": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}] diff --git a/keyboards/keebio/ergodicity/config.h b/keyboards/keebio/ergodicity/config.h index 014eb13759..975a456300 100644 --- a/keyboards/keebio/ergodicity/config.h +++ b/keyboards/keebio/ergodicity/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x125F -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keebio -#define PRODUCT Ergodicity - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/keebio/ergodicity/info.json b/keyboards/keebio/ergodicity/info.json index 83b5049e20..55090a01dc 100644 --- a/keyboards/keebio/ergodicity/info.json +++ b/keyboards/keebio/ergodicity/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ergodicity", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "Keebio", + "usb": { + "vid": "0xCB10", + "pid": "0x125F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/fourier/config.h b/keyboards/keebio/fourier/config.h index faa3ef4004..ca55824404 100644 --- a/keyboards/keebio/fourier/config.h +++ b/keyboards/keebio/fourier/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1247 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT Fourier - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/keebio/fourier/info.json b/keyboards/keebio/fourier/info.json index 2449a399dd..598ca2af78 100644 --- a/keyboards/keebio/fourier/info.json +++ b/keyboards/keebio/fourier/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Fourier", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x1247", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c b/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c index 013d6c00a5..0c0fc5a746 100644 --- a/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c +++ b/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c @@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_init_keymap() {} #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT -layer_state_t layer_state_set_keymap(layer_state_t state) { +uint32_t layer_state_set_keymap(uint32_t state) { rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - switch (get_highest_layer(state)) { + switch (biton32(state)) { case L_EDVORAKJP_LOWER: rgblight_sethsv_noeeprom_red(); break; diff --git a/keyboards/keebio/iris/keymaps/emp/config.h b/keyboards/keebio/iris/keymaps/emp/config.h new file mode 100644 index 0000000000..a08db4d170 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/emp/config.h @@ -0,0 +1,97 @@ +/* +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 + +/* Use I2C or Serial, not both */ +#undef USE_I2C +#define USE_SERIAL + +/* Select hand configuration */ +#undef MASTER_LEFT +#undef MASTER_RIGHT +#define EE_HANDS + +/* disable debugging features */ +#ifndef NO_DEBUG +#define NO_DEBUG +#endif // #ifndef NO_DEBUG + +/* disable printing features */ +#ifndef NO_PRINT +#define NO_PRINT +#endif // #ifndef NO_PRINT + +/* force n-key rollover to be enabled every boot */ +#undef FORCE_NKRO + +/* disable tap dance and other tapping features */ +#undef NO_ACTION_TAPPING + +/* disable one-shot modifiers */ +#undef NO_ACTION_ONESHOT + +/* PERMISSIVE_HOLD + * when on: tap-hold keys are held when typed fast, so long as the modifier key + * is pressed before and released after the rodified key(s) + * when off: tap-hold keys are both tapped when typed fast (within tapping term) + */ +#undef PERMISSIVE_HOLD + +/* IGNORE_MOD_TAP_INTERRUPT + * when on: rolling tap-hold keys taps all keys + * when off: rolling tap-hold keys modifies keys +*/ +#undef IGNORE_MOD_TAP_INTERRUPT + +/* TAPPING_TERM x (ms) + * how long before a tap becomes a hold. if set above 500, a key tapped during + * the tapping term will turn it into a hold too + */ +#define TAPPING_TERM 200 + +/* TAPPING_TOGGLE x (count) + * If you hold a TT key down, layer is activated, and then is de-activated when + * you let go (like MO()). If you repeatedly tap it, the layer will be toggled + * on or off (like TG()). It needs 5 taps by default, but you can change this by + * defining TAPPING_TOGGLE to another number. + */ +// #define TAPPING_TOGGLE 1 + +/* RETRO_TAPPING + * tap anyway, even after TAPPING_TERM, if there was no other key interruption + * between press and release + */ +#undef RETRO_TAPPING + +/* ONESHOT_TIMEOUT x (ms) + * how long before oneshot times out + */ +// #define ONESHOT_TIMEOUT 2000 + +/* TAP_CODE_DELAY x (ms) + * how long tapped keycodes are held down for + */ +// #define TAP_CODE_DELAY 100 + +/* NO_USB_STARTUP_CHECK + * according to: + * https://github.com/qmk/qmk_firmware/issues/12732 + * defining this can help with boards not being recognized by virtual keymapping + * software + */ +#define NO_USB_STARTUP_CHECK diff --git a/keyboards/keebio/iris/keymaps/emp/keymap.c b/keyboards/keebio/iris/keymaps/emp/keymap.c new file mode 100644 index 0000000000..d89477ed96 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/emp/keymap.c @@ -0,0 +1,277 @@ +/* Copyright 2022 elliotpatros + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 definitions +enum custom_layers { + _COLEMAK, + _FUNCTION, +}; + +// Custom keycodes, implemented later, in function: process_record_user() +enum custom_keycodes { + CTL_ESC = SAFE_RANGE, // mod tap: left control / esc + SFT_ENT, // mod tap: left shift / enter + LST_PRN, // mod tap: left shift / left parenthesis + RST_PRN, // mod tap: right shift / right parenthesis +}; + +// Shorthand keycode definitions +#define OSM_CAG OSM(MOD_LCTL | MOD_LALT | MOD_LGUI) +#define LT_BSFN LT(_FUNCTION, KC_BSLS) + +// The layout +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Default layer + [_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_MINS, +// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_EQL, +// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + LST_PRN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_SPC, KC_ENT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RST_PRN, +// └────────┴────────┴────────┴────────┼────────┼────────┼────────┘└────────┼────────┴────────┴────────┴────────┴────────┴────────┘ + KC_LALT, KC_LGUI, SFT_ENT, KC_SPC, LT_BSFN, KC_BSPC +// └────────┴────────┴────────┘└────────┴────────┴────────┘ + ), + + // Function (and I guess also media & navigation) layer + [_FUNCTION] = LAYOUT ( + +// ┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_GRV, KC_LPRN, KC_RPRN, KC_F11, KC_F12, KC_INS, KC_HOME, KC_UP, KC_PGUP, _______, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, OSM_CAG, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_VOLD, KC_DEL, KC_END, KC_PGDN, _______, _______, +// └────────┴────────┴────────┴────────┼────────┼────────┼────────┘└────────┼────────┴────────┴────────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______ +// └────────┴────────┴────────┘└────────┴────────┴────────┘ + ) + +}; + +static inline bool dualfunckey_was_tapped(const uint16_t time_when_pressed) { + return timer_elapsed(time_when_pressed) < TAPPING_TERM; +} + +bool process_record_user(uint16_t keycode, keyrecord_t* record) { + + // Static variables + static uint16_t timer_control_escape = 0; + static uint16_t timer_shift_enter = 0; + static uint16_t timer_shift_lparen = 0; + static uint16_t timer_shift_rparen = 0; + + static bool dualfunckey_pending = false; + + static bool shift_enter_is_pressed = false; + static bool shift_lparen_is_pressed = false; + + // Was this function called to handle a keydown? If not, it was called by a + // key up. + const bool pressed = record->event.pressed; + + // Any keydown (at all) spends a pending dual function key check. Why? If, + // for example, you use shift to type a capital letter, and shift keys down + // and up faster than the tapping term, did you mean to call shift's tapping + // key? No. You just meant to call shift. + if (pressed) { + dualfunckey_pending = false; + } + + // Only keycodes >= SAFE_RANGE are handled in this function + if (keycode < SAFE_RANGE) { + // This keypress was not handled + return true; + } + + // Handle custom keypresses here + switch (keycode) { + + // ------------------------------------------------------------------------- + // Dual function key (hold: left shift; tap: enter) + // ------------------------------------------------------------------------- + case SFT_ENT: + + // There are multiple keys that are mapped to left shift. Keep track of + // which are pressed + shift_enter_is_pressed = pressed; + + // Handle keypress routine + if (pressed) { + + // The [left shift/enter] key was pressed + register_code(KC_LSFT); + + // Save keydown time for checking hold/tap on keyup + timer_shift_enter = timer_read(); + + // Pressing a dual function key requires a hold/tap check on key up + dualfunckey_pending = true; + + } else { + + // The [left shift/enter] key was unpressed + // Note: unregister shift before pressing ENT so that ENT registers + // correctly + + // If no other left shift keys are currently pressed, unregister it + if (! shift_lparen_is_pressed) { + unregister_code(KC_LSFT); + } + + // If a pending dual function key hasn't been used yet, use it here + if (dualfunckey_pending && dualfunckey_was_tapped(timer_shift_enter)) { + tap_code(KC_ENT); + dualfunckey_pending = false; + } + } + + // This keypress was handled + return false; + + // ------------------------------------------------------------------------- + // Dual function key (hold: left control; tap: escape) + // ------------------------------------------------------------------------- + case CTL_ESC: + + // Handle keypress routine + if (pressed) { + + // Control/escape key was pressed + register_code(KC_LCTL); + + // Save keydown time for checking hold/tap on keyup + timer_control_escape = timer_read(); + + // Pressing a dual function key requires a hold/tap check on key up + dualfunckey_pending = true; + + } else { + + // Control/escape key was unpressed + unregister_code(KC_LCTL); + + // If a pending dual function key hasn't been used yet, use it here + if (dualfunckey_pending && dualfunckey_was_tapped(timer_control_escape)) { + tap_code(KC_ESC); + dualfunckey_pending = false; + } + } + + // This keypress was handled + return false; + + // ------------------------------------------------------------------------- + // Dual function key (hold: left shift; tap: left parenthesis) + // ------------------------------------------------------------------------- + case LST_PRN: + + // There are multiple keys that are mapped to left shift. Keep track of + // which are pressed + shift_lparen_is_pressed = pressed; + + // Handle keypress routine + if (pressed) { + + // The [left shift/left parenthesis] key was pressed + register_code(KC_LSFT); + + // Save keydown time for checking hold/tap on keyup + timer_shift_lparen = timer_read(); + + // Pressing a dual function key requires a hold/tap check on key up + dualfunckey_pending = true; + + } else { + + // The [left shift/left parenthesis] key was unpressed + // Note: unregister shift after tapping 9 so that left parenthesis + // registers correctly + + // If a pending dual function key hasn't been used yet, use it here + if (dualfunckey_pending && dualfunckey_was_tapped(timer_shift_lparen)) { + tap_code(KC_9); + dualfunckey_pending = false; + } + + // If no other left shift keys are currently pressed, unregister it + if (! shift_enter_is_pressed) { + unregister_code(KC_LSFT); + } + } + + // This keypress was handled + return false; + + // ------------------------------------------------------------------------- + // Dual function key (hold: right shift; tap: right parenthesis) + // ------------------------------------------------------------------------- + case RST_PRN: + + // Handle keypress routine + if (pressed) { + + // The [right shift/right parenthesis] key was pressed + register_code(KC_RSFT); + + // Save keydown time for checking hold/tap on keyup + timer_shift_rparen = timer_read(); + + // Pressing a dual function key requires a hold/tap check on key up + dualfunckey_pending = true; + + } else { + + // The [right shift/right parenthesis] key was unpressed + // Note: unregister shift after tapping 0 so that right parenthesis + // registers correctly + + // If a pending dual function key hasn't been used yet, use it here + if (dualfunckey_pending && dualfunckey_was_tapped(timer_shift_rparen)) { + + // Space cadet shift: If the [left shift/left parenthesis] key + // is currently pressed, then tap the sequence () + if (shift_lparen_is_pressed) { + tap_code(KC_9); + } + + tap_code(KC_0); + dualfunckey_pending = false; + } + + unregister_code(KC_RSFT); + } + + // This keypress was handled + return false; + + // ------------------------------------------------------------------------- + // Some other key was pressed (this shouldn't happen) + // ------------------------------------------------------------------------- + default: + // This keypress was not handled + return true; + } +} diff --git a/keyboards/keebio/iris/keymaps/jerryhcooke/keymap.c b/keyboards/keebio/iris/keymaps/jerryhcooke/keymap.c index bc04f9fbfd..e0c09638b2 100644 --- a/keyboards/keebio/iris/keymaps/jerryhcooke/keymap.c +++ b/keyboards/keebio/iris/keymaps/jerryhcooke/keymap.c @@ -11,7 +11,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {[0] = LAYOUT(KC_GE #ifdef ENCODER_ENABLE bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _LOWER: clockwise ? tap_code(KC_MS_WH_UP) : tap_code(KC_MS_WH_DOWN); break; @@ -23,7 +23,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { break; } } else if (index == 1) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _LOWER: clockwise ? tap_code(KC_UP) : tap_code(KC_DOWN); break; diff --git a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h index 2a737462dd..17a89bb1e1 100644 --- a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/keebio/iris/keymaps/radlinskii/config.h b/keyboards/keebio/iris/keymaps/radlinskii/config.h new file mode 100644 index 0000000000..c3d6b34070 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/radlinskii/config.h @@ -0,0 +1,37 @@ +// Copyright 2022 Ignacy Radliński (@radlinskii) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// #define USE_I2C +#define EE_HANDS + +#define TAPPING_TOGGLE 1 // tap just once for TT() to toggle the layer +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT + +#define RGBLIGHT_LAYERS + +#define RGBLIGHT_DEFAULT_HUE 85 +#define RGBLIGHT_DEFAULT_SAT 255 + +#undef RGBLIGHT_DEFAULT_MODE +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT + +#undef RGBLIGHT_ANIMATIONS +#undef RGBLIGHT_EFFECT_BREATHING // fading in and out +#undef RGBLIGHT_EFFECT_RAINBOW_MOOD // rainbow all keys at the same time +#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL // rainbow top bottom +#undef RGBLIGHT_EFFECT_SNAKE +#undef RGBLIGHT_EFFECT_KNIGHT +#undef RGBLIGHT_EFFECT_CHRISTMAS +#undef RGBLIGHT_EFFECT_STATIC_GRADIENT +#undef RGBLIGHT_EFFECT_RGB_TEST // red -> green -> blue +#undef RGBLIGHT_EFFECT_ALTERNATING // blinking +#undef RGBLIGHT_EFFECT_TWINKLE // randomly fading in and out single keys + +#define MOUSEKEY_DELAY 20 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 5 +#define MOUSEKEY_TIME_TO_MAX 40 +#define MOUSEKEY_WHEEL_MAX_SPEED 10 diff --git a/keyboards/keebio/iris/keymaps/radlinskii/keymap.c b/keyboards/keebio/iris/keymaps/radlinskii/keymap.c new file mode 100644 index 0000000000..380ff82a3c --- /dev/null +++ b/keyboards/keebio/iris/keymaps/radlinskii/keymap.c @@ -0,0 +1,193 @@ +// Copyright 2022 Ignacy Radliński (@radlinskii) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#include "light_layers.h" + +enum my_layers { + _COLEMAK, + _QWERTY, + _NUM_SYM, + _NAV, + _MOUSE, + _MEDIA_MISC, +}; + +enum custom_keycodes { + COLEMAK = SAFE_RANGE, + QWERTY, + DEFAULT +}; + +#define LALT_KA LALT_T(KC_A) +#define LCTL_KS LCTL_T(KC_S) +#define LGUI_KD LGUI_T(KC_D) +#define LSFT_KF LSFT_T(KC_F) +#define RSFT_KJ RSFT_T(KC_J) +#define RGUI_KK RGUI_T(KC_K) +#define RCTL_KL RCTL_T(KC_L) +#define RA_SCLN RALT_T(KC_SCLN) + +#define LALT_K1 LALT_T(KC_1) +#define LCTL_K2 LCTL_T(KC_2) +#define LGUI_K3 LGUI_T(KC_3) +#define LSFT_K4 LSFT_T(KC_4) +#define RSFT_K7 RSFT_T(KC_7) +#define RGUI_K8 RGUI_T(KC_8) +#define RCTL_K9 RCTL_T(KC_9) +#define RALT_K0 RALT_T(KC_0) + +#define LCTL_KR LCTL_T(KC_R) +#define LGUI_KS LGUI_T(KC_S) +#define LSFT_KT LSFT_T(KC_T) +#define RSFT_KN RSFT_T(KC_N) +#define RGUI_KE RGUI_T(KC_E) +#define RCTL_KI RCTL_T(KC_I) +#define RALT_KO RALT_T(KC_O) + +#define LGUI_BS LGUI_T(KC_BSPC) +#define RALT_TB RALT_T(KC_TAB) + +#define TT_N_S TT(_NUM_SYM) +#define TT_NAV TT(_NAV) +#define TO_QWRT TO(_QWERTY) +#define TO_N_S TO(_NUM_SYM) +#define TO_NAV TO(_NAV) +#define TO_MOUSE TO(_MOUSE) +#define TO_M_M TO(_MEDIA_MISC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_COLEMAK] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, XXXXXXX, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_CAPS, LALT_KA, LCTL_KR, LGUI_KS, LSFT_KT, KC_G, KC_M, RSFT_KN, RGUI_KE, RCTL_KI, RALT_KO, KC_QUOT, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + XXXXXXX, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_DEL, KC_ESC, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + KC_BSPC, TT_N_S, KC_ENT, KC_SPC, TT_NAV, KC_TAB + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + + [_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_GRV, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + 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, LALT_KA, LCTL_KS, LGUI_KD, LSFT_KF, KC_G, KC_H, RSFT_KJ, RGUI_KK, RCTL_KL, RA_SCLN, KC_QUOT, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DEL, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + LGUI_BS, TT_N_S, KC_ENT, KC_SPC, TT_NAV, RALT_TB + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + + [_NUM_SYM] = 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_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_PLUS, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, LALT_K1, LCTL_K2, LGUI_K3, LSFT_K4, KC_5, KC_6, RSFT_K7, RGUI_K8, RCTL_K9, RALT_K0, KC_PIPE, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, KC_GRV, KC_LPRN, KC_LCBR, KC_LBRC, _______, _______, KC_RBRC, KC_RCBR, KC_RPRN, KC_MINS, KC_EQL, _______, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, DEFAULT, _______, _______, TO_NAV, _______ + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_NAV] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, DEFAULT, _______, _______, TO_MOUSE, _______ + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_MOUSE] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, KC_WH_R, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, TO_M_M, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, DEFAULT, KC_BTN2, KC_BTN1, TO_NAV, _______ + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_MEDIA_MISC] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + RESET, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_CAPS, KC_MPLY, KC_MNXT, KC_VOLU, KC_BRIU, _______, _______, _______, _______, _______, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, KC_MSTP, KC_MPRV, KC_VOLD, KC_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, DEFAULT, _______, _______, DEFAULT, _______ + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ) +}; + +void keyboard_post_init_user(void) { + rgblight_layers = MY_LIGHT_LAYERS; +} + +layer_state_t default_layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(_COLEMAK, layer_state_cmp(state, _COLEMAK)); + rgblight_set_layer_state(_QWERTY, layer_state_cmp(state, _QWERTY)); + + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(_NUM_SYM, layer_state_cmp(state, _NUM_SYM)); + rgblight_set_layer_state(_NAV, layer_state_cmp(state, _NAV)); + rgblight_set_layer_state(_MOUSE, layer_state_cmp(state, _MOUSE)); + rgblight_set_layer_state(_MEDIA_MISC, layer_state_cmp(state, _MEDIA_MISC)); + + return state; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + layer_move(_COLEMAK); + } + return false; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + layer_move(_QWERTY); + } + return false; + case DEFAULT: + if (record->event.pressed) { + if (layer_state_cmp(default_layer_state, _COLEMAK)) { + layer_move(_COLEMAK); + } else if (layer_state_cmp(default_layer_state, _QWERTY)) { + layer_move(_QWERTY); + } + } + return false; + } + return true; +} diff --git a/keyboards/keebio/iris/keymaps/radlinskii/light_layers.h b/keyboards/keebio/iris/keymaps/radlinskii/light_layers.h new file mode 100644 index 0000000000..a1b754545a --- /dev/null +++ b/keyboards/keebio/iris/keymaps/radlinskii/light_layers.h @@ -0,0 +1,179 @@ +// Copyright 2022 Ignacy Radliński (@radlinskii) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + +LED index mapping: + + (31) (32) (33) (67) (66) (65) +┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ +│0 │1 │2 │3 │4 │5 │ │39 │38 │37 │36 │35 │34 │ +├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ +│11 │10 │9 │8 │7 │6 │ │40 │41 │42 │43 │44 │45 │ +├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ +│12 │13 │14 │15 │16 │17 │ │51 │50 │49 │48 │47 │46 │ +├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +│23 │22 │21 │20 │19 │18 │27 │ │61 │52 │53 │54 │55 │56 │57 │ +└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + │24 │25 │26 │ │60 │59 │58 │ + └────────┴────────┴────────┘ └────────┴────────┴────────┘ + (30) (29) (28) (62) (63) (64) + +*/ + +const rgblight_segment_t PROGMEM COLEMAK_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS( + // left side + {0, 6, 127, 255, 255}, + {6, 6, 115, 255, 255}, + {12, 6, 97, 255, 255}, + {18, 6, 90, 255, 255}, + {24, 1, 85, 255, 255}, + {25, 1, 169, 255, 255}, // TT(_NUM_SYM) + {26, 2, 85, 255, 255}, + {28, 3, 85, 255, 255}, // underglow + {31, 3, 127, 255, 255}, // underglow + // right side + {34, 6, 127, 255, 255}, + {40, 6, 115, 255, 255}, + {46, 6, 97, 255, 255}, + {52, 6, 90, 255, 255}, + {58, 1, 85, 255, 255}, + {59, 1, 201, 255, 255}, // TT(_NAV) + {60, 2, 85, 255, 255}, + {62, 3, 85, 255, 255}, // underglow + {65, 3, 127, 255, 255} // underglow +); + +const rgblight_segment_t PROGMEM QWERTY_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS( + // left side + {0, 6, 85, 0, 255}, + {6, 6, 85, 70, 255}, + {12, 6, 85, 150, 255}, + {18, 6, 85, 240, 255}, + {24, 1, 85, 255, 255}, + {25, 1, 169, 255, 255}, // TT(_NUM_SYM) + {26, 2, 85, 255, 255}, + {28, 3, 85, 255, 255}, // underglow + {31, 3, 85, 0, 255}, // underglow + // right side + {34, 6, 85, 0, 255}, + {40, 6, 85, 70, 255}, + {46, 6, 85, 150, 255}, + {52, 6, 85, 240, 255}, + {58, 1, 85, 255, 255}, + {59, 1, 201, 255, 255}, // TT(_NAV) + {60, 2, 85, 255, 255}, + {62, 3, 85, 255, 255}, // underglow + {65, 3, 85, 0, 255} // underglow +); + +const rgblight_segment_t PROGMEM NUM_SYM_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS( + // left side + {0, 6, 201, 255, 255}, + {6, 6, 191, 255, 255}, + {12, 6, 181, 255, 255}, + {18, 6, 171, 255, 255}, + {24, 1, 169, 255, 255}, + {25, 1, 85, 255, 255}, // TO(DEFAULT) + {26, 2, 169, 255, 255}, + {28, 3, 169, 255, 255}, // underglow + {31, 3, 201, 255, 255}, // underglow + // right side + {34, 6, 201, 255, 255}, + {40, 6, 191, 255, 255}, + {46, 6, 181, 255, 255}, + {52, 6, 171, 255, 255}, + {58, 1, 169, 255, 255}, + {59, 1, 201, 255, 255}, // TO(_NAV) + {60, 2, 169, 255, 255}, + {62, 3, 169, 255, 255}, // underglow + {65, 3, 201, 255, 255} // underglow +); + +const rgblight_segment_t PROGMEM NAV_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS( + // left side + {0, 6, 248, 255, 255}, + {6, 6, 240, 255, 255}, + {12, 6, 225, 255, 255}, + {18, 6, 210, 255, 255}, + {24, 1, 201, 255, 255}, + {25, 1, 85, 255, 255}, // TO(DEFAULT) + {26, 2, 201, 255, 255}, + {28, 3, 201, 255, 255}, // underglow + {31, 3, 248, 255, 255}, // underglow + // right side + {34, 6, 248, 255, 255}, + {40, 6, 240, 255, 255}, + {46, 6, 225, 255, 255}, + {52, 6, 210, 255, 255}, + {58, 1, 201, 255, 255}, + {59, 1, 43, 255, 255}, // TO(_MOUSE) + {60, 2, 201, 255, 255}, + {62, 3, 201, 255, 255}, // underglow + {65, 3, 248, 255, 255} // underglow +); + +const rgblight_segment_t PROGMEM MOUSE_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS( + // left side + {0, 6, 4, 255, 255}, + {6, 6, 10, 255, 255}, + {12, 6, 25, 255, 255}, + {18, 6, 40, 255, 255}, + {24, 1, 43, 255, 255}, + {25, 1, 85, 255, 255}, // TO(DEFAULT) + {26, 2, 43, 255, 255}, + {28, 3, 43, 255, 255}, // underglow + {31, 3, 4, 255, 255}, // underglow + // right side + {34, 6, 4, 255, 255}, + {40, 6, 10, 255, 255}, + {46, 1, 0, 255, 255}, // TO(_MEDIA_MISC) + {47, 5, 25, 255, 255}, + {52, 6, 40, 255, 255}, + {58, 1, 43, 255, 255}, + {59, 1, 201, 255, 255}, // TO(_NAV) + {60, 2, 43, 255, 255}, + {62, 3, 43, 255, 255}, // underglow + {65, 3, 4, 255, 255} // underglow +); + +const rgblight_segment_t PROGMEM MEDIA_MISC_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS( + // both sides + {0, 1, 0, 255, 255}, // RESET + {1, 4, 0, 0, 0}, + {5, 1, 85, 0, 255}, // set QWERTY as default + {6, 2, 0, 0, 0}, + {8, 1, 160, 150, 150}, // MUTE + {9, 3, 0, 0, 0}, + {12, 1, 201, 255, 255}, // CAPS + {13, 1, 120, 255, 255}, // PLAY + {14, 1, 0, 255, 255}, // NEXT + {15, 1, 160, 255, 255}, // VOLUME_UP + {16, 1, 43, 255, 255}, // BRIGHTNESS_UP + {17, 2, 0, 0, 0}, + {19, 1, 43, 200, 200}, // BRIGHTNESS_DOWN + {20, 1, 160, 220, 200}, // VOLUME_DOWN + {21, 1, 0, 220, 200}, // PREV + {22, 1, 120, 220, 200}, // STOP + {23, 2, 0, 0, 0}, + {25, 1, 85, 255, 255}, // TO(DEFAULT) + {26, 2, 0, 0, 0}, + {28, 6, 0, 255, 255}, // underglow + {34, 5, 0, 0, 0}, + {39, 1, 127, 255, 255}, // set COLEMAK as default + {40, 19, 0, 0, 0}, + {59, 1, 85, 255, 255}, // TO(DEFAULT) + {60, 2, 0, 0, 0}, + {62, 6, 0, 255, 255} // underglow +); + +const rgblight_segment_t* const PROGMEM MY_LIGHT_LAYERS[] = RGBLIGHT_LAYERS_LIST( + COLEMAK_LIGHT_LAYER, + QWERTY_LIGHT_LAYER, + NUM_SYM_LIGHT_LAYER, + NAV_LIGHT_LAYER, + MOUSE_LIGHT_LAYER, + MEDIA_MISC_LIGHT_LAYER +); diff --git a/keyboards/keebio/iris/keymaps/radlinskii/readme.md b/keyboards/keebio/iris/keymaps/radlinskii/readme.md new file mode 100644 index 0000000000..5a0e929991 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/radlinskii/readme.md @@ -0,0 +1,137 @@ +# Iris rev. 6 keymap by radlinskii + +![iris rev. 6 by radlinskii lightning demo](https://user-images.githubusercontent.com/26116041/171883033-3c5ababe-88ae-4c9d-8436-3d6ab83dbf4b.gif) + +## Features: + +- [RGB Lightning layers](https://docs.qmk.fm/#/feature_rgblight?id=lighting-layers) +- [MOUSE KEYS](https://docs.qmk.fm/#/keycodes?id=mouse-keys) +- [MOD-TAPS](https://docs.qmk.fm/#/mod_tap) + +## Layers: + +### colemak - default + +> [Colemak DH](https://colemakmods.github.io/mod-dh/) keyboard layout. + +
+ + keymap + + +colemak layer keymap + +
+
+ + lightning + + + +colemak layer lightning + +
+ +### qwerty - alternative default + +> Can be set as persistent default layer. + +
+ + keymap + + +qwerty layer keymap + +
+
+ + lightning + + +qwerty layer lightning + +
+ +### numeric + symbols + +
+ + keymap + + +numeric and symbols layer keymap + +
+
+ + lightning + + +numeric and symbols layer lightning + +
+ +### navigation + +> Layer with arrow navigation. + +
+ + keymap + + +navigation layer keymap + +
+
+ + lightning + + +navigation layer lightning + +
+ +### mouse + +> Layer with mouse navigation on the same keys as arrow navigation. + +
+ + keymap + + +mouse layer keymap + +
+
+ + lightning + + +mouse layer lightning + +
+ +### media and miscellaneous + +> Used for media keys, switching default layer and keyboard reset. + +
+ + keymap + + +media and miscellaneous layer keymap + +
+
+ + lightning + + +media and miscellaneous layer lightning + +
+ diff --git a/keyboards/keebio/iris/keymaps/radlinskii/rules.mk b/keyboards/keebio/iris/keymaps/radlinskii/rules.mk new file mode 100644 index 0000000000..f1a0d40690 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/radlinskii/rules.mk @@ -0,0 +1,3 @@ +RGBLIGHT_ENABLE = yes # by default this is no, but for the rgb light layers to work it needs to be `yes` +RGB_MATRIX_ENABLE = no # by default this is yes, but for the rgb light layers to work it needs to be `no` +MOUSEKEY_ENABLE = yes diff --git a/keyboards/keebio/iris/keymaps/sq5rix/keymap.c b/keyboards/keebio/iris/keymaps/sq5rix/keymap.c index d3e0d680a1..19a939a55b 100644 --- a/keyboards/keebio/iris/keymaps/sq5rix/keymap.c +++ b/keyboards/keebio/iris/keymaps/sq5rix/keymap.c @@ -134,7 +134,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } // tmux screen else if (index == 1) { - switch(get_highest_layer(layer_state)){ + switch(biton32(layer_state)){ case 0: if (clockwise) { send_string(SS_LCTL("B")"p"); @@ -182,3 +182,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(2, layer_state_cmp(state, 4)); return state; } + diff --git a/keyboards/keebio/iris/rev6/rev6.c b/keyboards/keebio/iris/rev6/rev6.c index 8b612c3555..0900ae5895 100644 --- a/keyboards/keebio/iris/rev6/rev6.c +++ b/keyboards/keebio/iris/rev6/rev6.c @@ -39,9 +39,9 @@ led_config_t g_led_config = { { { 80, 58 }, { 40, 50 }, { 8, 43 }, { 8, 5 }, { 40, 1 }, { 72, 3 }, // Right Half { 224, 5 }, { 208, 5 }, { 192, 2 }, { 176, 0 }, { 160, 2 }, { 144, 3 }, - { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 244, 17 }, + { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 224, 17 }, { 224, 32 }, { 208, 32 }, { 192, 28 }, { 176, 27 }, { 160, 28 }, { 144, 30 }, - { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 244, 43 }, + { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 224, 43 }, { 168, 47 }, { 152, 58 }, { 134, 64 }, { 126, 52 }, { 144, 58 }, { 184, 50 }, { 216, 43 }, { 216, 5 }, { 184, 1 }, { 152, 3 } }, { diff --git a/keyboards/keebio/iris/rev6a/rev6a.c b/keyboards/keebio/iris/rev6a/rev6a.c index cc9c3f6b8f..51f3348714 100644 --- a/keyboards/keebio/iris/rev6a/rev6a.c +++ b/keyboards/keebio/iris/rev6a/rev6a.c @@ -39,9 +39,9 @@ led_config_t g_led_config = { { { 80, 58 }, { 40, 50 }, { 8, 43 }, { 8, 5 }, { 40, 1 }, { 72, 3 }, // Right Half { 224, 5 }, { 208, 5 }, { 192, 2 }, { 176, 0 }, { 160, 2 }, { 144, 3 }, - { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 244, 17 }, + { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 224, 17 }, { 224, 32 }, { 208, 32 }, { 192, 28 }, { 176, 27 }, { 160, 28 }, { 144, 30 }, - { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 244, 43 }, + { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 224, 43 }, { 168, 47 }, { 152, 58 }, { 134, 64 }, { 126, 52 }, { 144, 58 }, { 184, 50 }, { 216, 43 }, { 216, 5 }, { 184, 1 }, { 152, 3 } }, { diff --git a/keyboards/keebio/laplace/config.h b/keyboards/keebio/laplace/config.h index 9948067668..1c7c9e4432 100644 --- a/keyboards/keebio/laplace/config.h +++ b/keyboards/keebio/laplace/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1147 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT Laplace - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 7 diff --git a/keyboards/keebio/laplace/info.json b/keyboards/keebio/laplace/info.json index c4df4c3a9d..364bc08c0b 100644 --- a/keyboards/keebio/laplace/info.json +++ b/keyboards/keebio/laplace/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Laplace", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x1147", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/keymap.c b/keyboards/keebio/levinson/keymaps/issmirnov/keymap.c index 6de2279be4..d9edfebaa0 100644 --- a/keyboards/keebio/levinson/keymaps/issmirnov/keymap.c +++ b/keyboards/keebio/levinson/keymaps/issmirnov/keymap.c @@ -91,7 +91,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { #ifdef RGBLIGHT_ENABLE layer_state_set_rgb(state); #endif - uint8_t layer = get_highest_layer(state); + uint8_t layer = biton32(state); combo_enable(); // by default, enable combos. switch (layer) { case 0: diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/rgb.c b/keyboards/keebio/levinson/keymaps/issmirnov/rgb.c index 3695731353..de3a5342c0 100644 --- a/keyboards/keebio/levinson/keymaps/issmirnov/rgb.c +++ b/keyboards/keebio/levinson/keymaps/issmirnov/rgb.c @@ -45,7 +45,7 @@ void matrix_scan_rgb(void) { } void set_rgb_indicators(uint8_t this_mod, uint8_t this_osm) { - if (get_highest_layer(layer_state) == _QWERTY) { + if (biton32(layer_state) == _QWERTY) { if ((this_mod | this_osm) & MOD_MASK_SHIFT) { rgblight_setrgb_gold_at(SHFT_LED1); } else { diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/rgb.h b/keyboards/keebio/levinson/keymaps/issmirnov/rgb.h index 8b14d8571d..254d3cbac0 100644 --- a/keyboards/keebio/levinson/keymaps/issmirnov/rgb.h +++ b/keyboards/keebio/levinson/keymaps/issmirnov/rgb.h @@ -6,7 +6,7 @@ void keyboard_post_init_rgb(void); // If rgb enabled, set underglow for layer -layer_state_t layer_state_set_rgb(layer_state_t state); +uint32_t layer_state_set_rgb(uint32_t state); // Enhance matrix scan code. Note: keep this light, since it runs every 100ms void matrix_scan_rgb(void); diff --git a/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c b/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c index 014e6c9c23..16aa965d7d 100644 --- a/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c +++ b/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c @@ -182,7 +182,7 @@ void rgbflag(uint8_t r, uint8_t g, uint8_t b, uint8_t rr, uint8_t gg, uint8_t bb void set_state_leds(void) { if (rgblight_get_mode() == 1) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _RAISE: rgbflag(C_BLU, C_GRN); break; diff --git a/keyboards/keebio/nyquist/keymaps/pitty/keymap.c b/keyboards/keebio/nyquist/keymaps/pitty/keymap.c index 2016cd1c46..31912bb63e 100644 --- a/keyboards/keebio/nyquist/keymaps/pitty/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/pitty/keymap.c @@ -143,7 +143,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { #ifdef RGBLIGHT_ENABLE uint8_t default_layer = eeconfig_read_default_layer(); if (rgb_layer_change) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _LOWER: rgblight_set_purple; rgblight_mode(5); diff --git a/keyboards/keebio/quefrency/keymaps/default/config.h b/keyboards/keebio/quefrency/keymaps/default/config.h index f9efe78c5b..53bf8fb933 100644 --- a/keyboards/keebio/quefrency/keymaps/default/config.h +++ b/keyboards/keebio/quefrency/keymaps/default/config.h @@ -21,7 +21,4 @@ along with this program. If not, see . #pragma once -/* Use I2C or Serial, not both */ - -#define USE_SERIAL // #define USE_I2C diff --git a/keyboards/keebio/quefrency/keymaps/default/keymap.c b/keyboards/keebio/quefrency/keymaps/default/keymap.c index 008cf5128d..a152c304a7 100644 --- a/keyboards/keebio/quefrency/keymaps/default/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/default/keymap.c @@ -1,31 +1,53 @@ -#include QMK_KEYBOARD_H +// Copyright 2022 Danny Nguyen (@nooges) +// 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. -#define _BASE 0 -#define _FN1 1 +enum custom_layer { + _BASE, + _FN1, +}; enum custom_keycodes { QWERTY = SAFE_RANGE, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, 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_UP, - KC_LCTL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, MO(_FN1),KC_BSPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_BASE] = LAYOUT_65_with_macro( + KC_F1, KC_F2, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, 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_END, + 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_PGUP, + 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_PGDN, + KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, MO(_FN1),KC_SPC, KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT ), - [_FN1] = LAYOUT( - KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC, - RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [_FN1] = LAYOUT_65_with_macro( + _______, _______, KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC, _______, + _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return false; +} diff --git a/keyboards/keebio/quefrency/keymaps/default65macro/config.h b/keyboards/keebio/quefrency/keymaps/default60/config.h similarity index 93% rename from keyboards/keebio/quefrency/keymaps/default65macro/config.h rename to keyboards/keebio/quefrency/keymaps/default60/config.h index 53bf8fb933..f9efe78c5b 100644 --- a/keyboards/keebio/quefrency/keymaps/default65macro/config.h +++ b/keyboards/keebio/quefrency/keymaps/default60/config.h @@ -21,4 +21,7 @@ along with this program. If not, see . #pragma once +/* Use I2C or Serial, not both */ + +#define USE_SERIAL // #define USE_I2C diff --git a/keyboards/keebio/quefrency/keymaps/default60/keymap.c b/keyboards/keebio/quefrency/keymaps/default60/keymap.c new file mode 100644 index 0000000000..f987d9aa4d --- /dev/null +++ b/keyboards/keebio/quefrency/keymaps/default60/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2022 Danny Nguyen (@nooges) +// 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 custom_layer { + _BASE, + _FN1, +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, 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_UP, + KC_LCTL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, MO(_FN1),KC_BSPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_60( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC, + RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c b/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c deleted file mode 100644 index f452232b2d..0000000000 --- a/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c +++ /dev/null @@ -1,50 +0,0 @@ -#include QMK_KEYBOARD_H - -extern keymap_config_t keymap_config; - -// 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. -#define _BASE 0 -#define _FN1 1 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_65_with_macro( - KC_F1, KC_F2, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, 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_END, - 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_PGUP, - 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_PGDN, - KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, MO(_FN1),KC_SPC, KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_FN1] = LAYOUT_65_with_macro( - _______, _______, KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC, _______, - _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } - else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return false; -} diff --git a/keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c b/keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c index 7d6f9da30e..a367e877fe 100644 --- a/keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c @@ -64,7 +64,7 @@ void keyboard_post_init_user(void) { } void update_led(void) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _BASE: rgblight_sethsv_noeeprom(HSV_BLUE); break; diff --git a/keyboards/keebio/quefrency/quefrency.h b/keyboards/keebio/quefrency/quefrency.h index 2c77dc2ad3..d9a14c439c 100644 --- a/keyboards/keebio/quefrency/quefrency.h +++ b/keyboards/keebio/quefrency/quefrency.h @@ -14,3 +14,6 @@ #ifdef KEYBOARD_keebio_quefrency_rev4 #include "rev4.h" #endif +#ifdef KEYBOARD_keebio_quefrency_rev5 + #include "rev5.h" +#endif diff --git a/keyboards/keebio/quefrency/rev1/config.h b/keyboards/keebio/quefrency/rev1/config.h index c3ddd8b1a3..872ca73ece 100644 --- a/keyboards/keebio/quefrency/rev1/config.h +++ b/keyboards/keebio/quefrency/rev1/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1257 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT Quefrency Rev. 1 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 12 diff --git a/keyboards/keebio/quefrency/rev1/info.json b/keyboards/keebio/quefrency/rev1/info.json index 1e50e2e698..4483234499 100644 --- a/keyboards/keebio/quefrency/rev1/info.json +++ b/keyboards/keebio/quefrency/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Quefrency rev1", + "keyboard_name": "Quefrency Rev. 1", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x1257", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h index 1fb6896775..e92be73444 100644 --- a/keyboards/keebio/quefrency/rev2/config.h +++ b/keyboards/keebio/quefrency/rev2/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x2257 -#define DEVICE_VER 0x0200 -#define MANUFACTURER Keebio -#define PRODUCT Quefrency Rev. 2 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/keebio/quefrency/rev2/info.json b/keyboards/keebio/quefrency/rev2/info.json index 120add8eaa..e68f0ce892 100644 --- a/keyboards/keebio/quefrency/rev2/info.json +++ b/keyboards/keebio/quefrency/rev2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Quefrency rev2", + "keyboard_name": "Quefrency Rev. 2", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x2257", + "device_version": "2.0.0" + }, "layout_aliases": { "LAYOUT": "LAYOUT_60" }, diff --git a/keyboards/keebio/quefrency/rev3/config.h b/keyboards/keebio/quefrency/rev3/config.h index 2f1311e943..e92be73444 100644 --- a/keyboards/keebio/quefrency/rev3/config.h +++ b/keyboards/keebio/quefrency/rev3/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x3257 -#define DEVICE_VER 0x0300 -#define MANUFACTURER Keebio -#define PRODUCT Quefrency Rev. 3 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/keebio/quefrency/rev3/info.json b/keyboards/keebio/quefrency/rev3/info.json index 5f59c90e80..8bea44183f 100644 --- a/keyboards/keebio/quefrency/rev3/info.json +++ b/keyboards/keebio/quefrency/rev3/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Quefrency rev3", + "keyboard_name": "Quefrency Rev. 3", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x3257", + "device_version": "3.0.0" + }, "layout_aliases": { "LAYOUT": "LAYOUT_60" }, diff --git a/keyboards/keebio/quefrency/rev4/config.h b/keyboards/keebio/quefrency/rev4/config.h index f92490c8ec..d92a81de93 100644 --- a/keyboards/keebio/quefrency/rev4/config.h +++ b/keyboards/keebio/quefrency/rev4/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x4257 -#define DEVICE_VER 0x0400 -#define MANUFACTURER Keebio -#define PRODUCT Quefrency Rev. 4 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/keebio/quefrency/rev4/info.json b/keyboards/keebio/quefrency/rev4/info.json index 3c2364ef15..198e84a592 100644 --- a/keyboards/keebio/quefrency/rev4/info.json +++ b/keyboards/keebio/quefrency/rev4/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Quefrency rev4", + "keyboard_name": "Quefrency Rev. 4", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x4257", + "device_version": "4.0.0" + }, "layout_aliases": { "LAYOUT": "LAYOUT_60" }, @@ -356,473 +362,6 @@ { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, - { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 13.25, "y": 4 }, - { "label": "Ctrl", "x": 14.25, "y": 4 }, - { "label": "Win", "x": 15.25, "y": 4 }, - { "label": "Left", "x": 16.25, "y": 4 }, - { "label": "Down", "x": 17.25, "y": 4 }, - { "label": "Right", "x": 18.25, "y": 4 } - ] - }, - "LAYOUT_60_iso": { - "layout": [ - { "label": "Esc", "x": 0, "y": 0 }, - { "label": "1", "x": 1, "y": 0 }, - { "label": "2", "x": 2, "y": 0 }, - { "label": "3", "x": 3, "y": 0 }, - { "label": "4", "x": 4, "y": 0 }, - { "label": "5", "x": 5, "y": 0 }, - { "label": "6", "x": 6, "y": 0 }, - - { "label": "7", "x": 8, "y": 0 }, - { "label": "8", "x": 9, "y": 0 }, - { "label": "9", "x": 10, "y": 0 }, - { "label": "0", "x": 11, "y": 0 }, - { "label": "-", "x": 12, "y": 0 }, - { "label": "=", "x": 13, "y": 0 }, - { "label": "Del", "x": 14, "y": 0 }, - { "label": "Bksp", "x": 15, "y": 0 }, - - { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 1.5, "y": 1 }, - { "label": "W", "x": 2.5, "y": 1 }, - { "label": "E", "x": 3.5, "y": 1 }, - { "label": "R", "x": 4.5, "y": 1 }, - { "label": "T", "x": 5.5, "y": 1 }, - - { "label": "Y", "x": 7.5, "y": 1 }, - { "label": "U", "x": 8.5, "y": 1 }, - { "label": "I", "x": 9.5, "y": 1 }, - { "label": "O", "x": 10.5, "y": 1 }, - { "label": "P", "x": 11.5, "y": 1 }, - { "label": "[", "x": 12.5, "y": 1 }, - { "label": "]", "x": 13.5, "y": 1 }, - - { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, - { "label": "A", "x": 1.75, "y": 2 }, - { "label": "S", "x": 2.75, "y": 2 }, - { "label": "D", "x": 3.75, "y": 2 }, - { "label": "F", "x": 4.75, "y": 2 }, - { "label": "G", "x": 5.75, "y": 2 }, - - { "label": "H", "x": 7.75, "y": 2 }, - { "label": "J", "x": 8.75, "y": 2 }, - { "label": "K", "x": 9.75, "y": 2 }, - { "label": "L", "x": 10.75, "y": 2 }, - { "label": ";", "x": 11.75, "y": 2 }, - { "label": "'", "x": 12.75, "y": 2 }, - { "label": "NUHS", "x": 13.75, "y": 2 }, - { "label": "Enter", "x": 14.75, "y": 1, "w": 1.25, "h": 2 }, - - { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 1.25, "y": 3 }, - { "label": "Z", "x": 2.25, "y": 3 }, - { "label": "X", "x": 3.25, "y": 3 }, - { "label": "C", "x": 4.25, "y": 3 }, - { "label": "V", "x": 5.25, "y": 3 }, - { "label": "B", "x": 6.25, "y": 3 }, - - { "label": "N", "x": 8.25, "y": 3 }, - { "label": "M", "x": 9.25, "y": 3 }, - { "label": ",", "x": 10.25, "y": 3 }, - { "label": ".", "x": 11.25, "y": 3 }, - { "label": "/", "x": 12.25, "y": 3 }, - { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 15, "y": 3 }, - - { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, - - { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 11, "y": 4 }, - { "label": "Ctrl", "x": 12, "y": 4 }, - { "label": "Left", "x": 13, "y": 4 }, - { "label": "Down", "x": 14, "y": 4 }, - { "label": "Right", "x": 15, "y": 4 } - ] - }, - "LAYOUT_65_iso": { - "layout": [ - { "label": "Esc", "x": 0, "y": 0 }, - { "label": "1", "x": 1, "y": 0 }, - { "label": "2", "x": 2, "y": 0 }, - { "label": "3", "x": 3, "y": 0 }, - { "label": "4", "x": 4, "y": 0 }, - { "label": "5", "x": 5, "y": 0 }, - { "label": "6", "x": 6, "y": 0 }, - - { "label": "7", "x": 8, "y": 0 }, - { "label": "8", "x": 9, "y": 0 }, - { "label": "9", "x": 10, "y": 0 }, - { "label": "0", "x": 11, "y": 0 }, - { "label": "-", "x": 12, "y": 0 }, - { "label": "=", "x": 13, "y": 0 }, - { "label": "Del", "x": 14, "y": 0 }, - { "label": "Bksp", "x": 15, "y": 0 }, - { "label": "Home", "x": 16, "y": 0 }, - - { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 1.5, "y": 1 }, - { "label": "W", "x": 2.5, "y": 1 }, - { "label": "E", "x": 3.5, "y": 1 }, - { "label": "R", "x": 4.5, "y": 1 }, - { "label": "T", "x": 5.5, "y": 1 }, - - { "label": "Y", "x": 7.5, "y": 1 }, - { "label": "U", "x": 8.5, "y": 1 }, - { "label": "I", "x": 9.5, "y": 1 }, - { "label": "O", "x": 10.5, "y": 1 }, - { "label": "P", "x": 11.5, "y": 1 }, - { "label": "[", "x": 12.5, "y": 1 }, - { "label": "]", "x": 13.5, "y": 1 }, - { "label": "End", "x": 16, "y": 1 }, - - { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, - { "label": "A", "x": 1.75, "y": 2 }, - { "label": "S", "x": 2.75, "y": 2 }, - { "label": "D", "x": 3.75, "y": 2 }, - { "label": "F", "x": 4.75, "y": 2 }, - { "label": "G", "x": 5.75, "y": 2 }, - - { "label": "H", "x": 7.75, "y": 2 }, - { "label": "J", "x": 8.75, "y": 2 }, - { "label": "K", "x": 9.75, "y": 2 }, - { "label": "L", "x": 10.75, "y": 2 }, - { "label": ";", "x": 11.75, "y": 2 }, - { "label": "'", "x": 12.75, "y": 2 }, - { "label": "NUHS", "x": 13.75, "y": 2 }, - { "label": "Enter", "x": 14.75, "y": 1, "w": 1.25, "h": 2 }, - { "label": "Page Up", "x": 16, "y": 2 }, - - { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 1.25, "y": 3 }, - { "label": "Z", "x": 2.25, "y": 3 }, - { "label": "X", "x": 3.25, "y": 3 }, - { "label": "C", "x": 4.25, "y": 3 }, - { "label": "V", "x": 5.25, "y": 3 }, - { "label": "B", "x": 6.25, "y": 3 }, - - { "label": "N", "x": 8.25, "y": 3 }, - { "label": "M", "x": 9.25, "y": 3 }, - { "label": ",", "x": 10.25, "y": 3 }, - { "label": ".", "x": 11.25, "y": 3 }, - { "label": "/", "x": 12.25, "y": 3 }, - { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 15, "y": 3 }, - { "label": "Page Down", "x": 16, "y": 3 }, - - { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, - - { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 11, "y": 4 }, - { "label": "Ctrl", "x": 12, "y": 4 }, - { "label": "Win", "x": 13, "y": 4 }, - { "label": "Left", "x": 14, "y": 4 }, - { "label": "Down", "x": 15, "y": 4 }, - { "label": "Right", "x": 16, "y": 4 } - ] - }, - "LAYOUT_60_iso_with_macro": { - "layout": [ - { "label": "F1", "x": 0, "y": 0 }, - { "label": "F6", "x": 1, "y": 0 }, - - { "label": "Esc", "x": 2.25, "y": 0 }, - { "label": "1", "x": 3.25, "y": 0 }, - { "label": "2", "x": 4.25, "y": 0 }, - { "label": "3", "x": 5.25, "y": 0 }, - { "label": "4", "x": 6.25, "y": 0 }, - { "label": "5", "x": 7.25, "y": 0 }, - { "label": "6", "x": 8.25, "y": 0 }, - - { "label": "7", "x": 10.25, "y": 0 }, - { "label": "8", "x": 11.25, "y": 0 }, - { "label": "9", "x": 12.25, "y": 0 }, - { "label": "0", "x": 13.25, "y": 0 }, - { "label": "-", "x": 14.25, "y": 0 }, - { "label": "=", "x": 15.25, "y": 0 }, - { "label": "Del", "x": 16.25, "y": 0 }, - { "label": "Bksp", "x": 17.25, "y": 0 }, - - { "label": "F2", "x": 0, "y": 1 }, - { "label": "F7", "x": 1, "y": 1 }, - - { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 3.75, "y": 1 }, - { "label": "W", "x": 4.75, "y": 1 }, - { "label": "E", "x": 5.75, "y": 1 }, - { "label": "R", "x": 6.75, "y": 1 }, - { "label": "T", "x": 7.75, "y": 1 }, - - { "label": "Y", "x": 9.75, "y": 1 }, - { "label": "U", "x": 10.75, "y": 1 }, - { "label": "I", "x": 11.75, "y": 1 }, - { "label": "O", "x": 12.75, "y": 1 }, - { "label": "P", "x": 13.75, "y": 1 }, - { "label": "[", "x": 14.75, "y": 1 }, - { "label": "]", "x": 15.75, "y": 1 }, - - { "label": "F3", "x": 0, "y": 2 }, - { "label": "F8", "x": 1, "y": 2 }, - - { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, - { "label": "A", "x": 4, "y": 2 }, - { "label": "S", "x": 5, "y": 2 }, - { "label": "D", "x": 6, "y": 2 }, - { "label": "F", "x": 7, "y": 2 }, - { "label": "G", "x": 8, "y": 2 }, - - { "label": "H", "x": 10, "y": 2 }, - { "label": "J", "x": 11, "y": 2 }, - { "label": "K", "x": 12, "y": 2 }, - { "label": "L", "x": 13, "y": 2 }, - { "label": ";", "x": 14, "y": 2 }, - { "label": "'", "x": 15, "y": 2 }, - { "label": "NUHS", "x": 16, "y": 2 }, - { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, - - { "label": "F4", "x": 0, "y": 3 }, - { "label": "F9", "x": 1, "y": 3 }, - - { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 3.5, "y": 3 }, - { "label": "Z", "x": 4.5, "y": 3 }, - { "label": "X", "x": 5.5, "y": 3 }, - { "label": "C", "x": 6.5, "y": 3 }, - { "label": "V", "x": 7.5, "y": 3 }, - { "label": "B", "x": 8.5, "y": 3 }, - - { "label": "N", "x": 10.5, "y": 3 }, - { "label": "M", "x": 11.5, "y": 3 }, - { "label": ",", "x": 12.5, "y": 3 }, - { "label": ".", "x": 13.5, "y": 3 }, - { "label": "/", "x": 14.5, "y": 3 }, - { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 17.25, "y": 3 }, - - { "label": "F5", "x": 0, "y": 4 }, - { "label": "F10", "x": 1, "y": 4 }, - - { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, - - { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 13.25, "y": 4 }, - { "label": "Ctrl", "x": 14.25, "y": 4 }, - { "label": "Left", "x": 15.25, "y": 4 }, - { "label": "Down", "x": 16.25, "y": 4 }, - { "label": "Right", "x": 17.25, "y": 4 } - ] - }, - "LAYOUT_65_iso_with_macro": { - "layout": [ - { "label": "F1", "x": 0, "y": 0 }, - { "label": "F6", "x": 1, "y": 0 }, - - { "label": "Esc", "x": 2.25, "y": 0 }, - { "label": "1", "x": 3.25, "y": 0 }, - { "label": "2", "x": 4.25, "y": 0 }, - { "label": "3", "x": 5.25, "y": 0 }, - { "label": "4", "x": 6.25, "y": 0 }, - { "label": "5", "x": 7.25, "y": 0 }, - { "label": "6", "x": 8.25, "y": 0 }, - - { "label": "7", "x": 10.25, "y": 0 }, - { "label": "8", "x": 11.25, "y": 0 }, - { "label": "9", "x": 12.25, "y": 0 }, - { "label": "0", "x": 13.25, "y": 0 }, - { "label": "-", "x": 14.25, "y": 0 }, - { "label": "=", "x": 15.25, "y": 0 }, - { "label": "Del", "x": 16.25, "y": 0 }, - { "label": "Bksp", "x": 17.25, "y": 0 }, - { "label": "Home", "x": 18.25, "y": 0 }, - - { "label": "F2", "x": 0, "y": 1 }, - { "label": "F7", "x": 1, "y": 1 }, - - { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 3.75, "y": 1 }, - { "label": "W", "x": 4.75, "y": 1 }, - { "label": "E", "x": 5.75, "y": 1 }, - { "label": "R", "x": 6.75, "y": 1 }, - { "label": "T", "x": 7.75, "y": 1 }, - - { "label": "Y", "x": 9.75, "y": 1 }, - { "label": "U", "x": 10.75, "y": 1 }, - { "label": "I", "x": 11.75, "y": 1 }, - { "label": "O", "x": 12.75, "y": 1 }, - { "label": "P", "x": 13.75, "y": 1 }, - { "label": "[", "x": 14.75, "y": 1 }, - { "label": "]", "x": 15.75, "y": 1 }, - { "label": "PgUp", "x": 18.25, "y": 1 }, - - { "label": "F3", "x": 0, "y": 2 }, - { "label": "F8", "x": 1, "y": 2 }, - - { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, - { "label": "A", "x": 4, "y": 2 }, - { "label": "S", "x": 5, "y": 2 }, - { "label": "D", "x": 6, "y": 2 }, - { "label": "F", "x": 7, "y": 2 }, - { "label": "G", "x": 8, "y": 2 }, - - { "label": "H", "x": 10, "y": 2 }, - { "label": "J", "x": 11, "y": 2 }, - { "label": "K", "x": 12, "y": 2 }, - { "label": "L", "x": 13, "y": 2 }, - { "label": ";", "x": 14, "y": 2 }, - { "label": "'", "x": 15, "y": 2 }, - { "label": "NUHS", "x": 16, "y": 2 }, - { "label": "Enter", "x": 17, "y": 1, "w": 1.25, "h": 2 }, - { "label": "PgDn", "x": 18.25, "y": 2 }, - - { "label": "F4", "x": 0, "y": 3 }, - { "label": "F9", "x": 1, "y": 3 }, - - { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 3.5, "y": 3 }, - { "label": "Z", "x": 4.5, "y": 3 }, - { "label": "X", "x": 5.5, "y": 3 }, - { "label": "C", "x": 6.5, "y": 3 }, - { "label": "V", "x": 7.5, "y": 3 }, - { "label": "B", "x": 8.5, "y": 3 }, - - { "label": "N", "x": 10.5, "y": 3 }, - { "label": "M", "x": 11.5, "y": 3 }, - { "label": ",", "x": 12.5, "y": 3 }, - { "label": ".", "x": 13.5, "y": 3 }, - { "label": "/", "x": 14.5, "y": 3 }, - { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 17.25, "y": 3 }, - { "label": "End", "x": 18.25, "y": 3 }, - - { "label": "F5", "x": 0, "y": 4 }, - { "label": "F10", "x": 1, "y": 4 }, - - { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, - - { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, - { "label": "Alt", "x": 13.25, "y": 4 }, - { "label": "Ctrl", "x": 14.25, "y": 4 }, - { "label": "Win", "x": 15.25, "y": 4 }, - { "label": "Left", "x": 16.25, "y": 4 }, - { "label": "Down", "x": 17.25, "y": 4 }, - { "label": "Right", "x": 18.25, "y": 4 } - ] - }, - "LAYOUT_all": { - "layout": [ - { "label": "F1", "x": 0, "y": 0 }, - { "label": "F6", "x": 1, "y": 0 }, - - { "label": "Esc", "x": 2.25, "y": 0 }, - { "label": "1", "x": 3.25, "y": 0 }, - { "label": "2", "x": 4.25, "y": 0 }, - { "label": "3", "x": 5.25, "y": 0 }, - { "label": "4", "x": 6.25, "y": 0 }, - { "label": "5", "x": 7.25, "y": 0 }, - { "label": "6", "x": 8.25, "y": 0 }, - - { "label": "7", "x": 10.25, "y": 0 }, - { "label": "8", "x": 11.25, "y": 0 }, - { "label": "9", "x": 12.25, "y": 0 }, - { "label": "0", "x": 13.25, "y": 0 }, - { "label": "-", "x": 14.25, "y": 0 }, - { "label": "=", "x": 15.25, "y": 0 }, - { "label": "Del", "x": 16.25, "y": 0 }, - { "label": "Bksp", "x": 17.25, "y": 0 }, - { "label": "Home", "x": 18.25, "y": 0 }, - - { "label": "F2", "x": 0, "y": 1 }, - { "label": "F7", "x": 1, "y": 1 }, - - { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, - { "label": "Q", "x": 3.75, "y": 1 }, - { "label": "W", "x": 4.75, "y": 1 }, - { "label": "E", "x": 5.75, "y": 1 }, - { "label": "R", "x": 6.75, "y": 1 }, - { "label": "T", "x": 7.75, "y": 1 }, - - { "label": "Y", "x": 9.75, "y": 1 }, - { "label": "U", "x": 10.75, "y": 1 }, - { "label": "I", "x": 11.75, "y": 1 }, - { "label": "O", "x": 12.75, "y": 1 }, - { "label": "P", "x": 13.75, "y": 1 }, - { "label": "[", "x": 14.75, "y": 1 }, - { "label": "]", "x": 15.75, "y": 1 }, - { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, - { "label": "PgUp", "x": 18.25, "y": 1 }, - - { "label": "F3", "x": 0, "y": 2 }, - { "label": "F8", "x": 1, "y": 2 }, - - { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, - { "label": "A", "x": 4, "y": 2 }, - { "label": "S", "x": 5, "y": 2 }, - { "label": "D", "x": 6, "y": 2 }, - { "label": "F", "x": 7, "y": 2 }, - { "label": "G", "x": 8, "y": 2 }, - - { "label": "H", "x": 10, "y": 2 }, - { "label": "J", "x": 11, "y": 2 }, - { "label": "K", "x": 12, "y": 2 }, - { "label": "L", "x": 13, "y": 2 }, - { "label": ";", "x": 14, "y": 2 }, - { "label": "'", "x": 15, "y": 2 }, - { "label": "NUHS", "x": 16, "y": 2 }, - { "label": "Enter", "x": 17, "y": 2, "w": 1.25 }, - { "label": "PgDn", "x": 18.25, "y": 2 }, - - { "label": "F4", "x": 0, "y": 3 }, - { "label": "F9", "x": 1, "y": 3 }, - - { "label": "Shift", "x": 2.25, "y": 3, "w": 1.25 }, - { "label": "NUBS", "x": 3.5, "y": 3 }, - { "label": "Z", "x": 4.5, "y": 3 }, - { "label": "X", "x": 5.5, "y": 3 }, - { "label": "C", "x": 6.5, "y": 3 }, - { "label": "V", "x": 7.5, "y": 3 }, - { "label": "B", "x": 8.5, "y": 3 }, - - { "label": "N", "x": 10.5, "y": 3 }, - { "label": "M", "x": 11.5, "y": 3 }, - { "label": ",", "x": 12.5, "y": 3 }, - { "label": ".", "x": 13.5, "y": 3 }, - { "label": "/", "x": 14.5, "y": 3 }, - { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, - { "label": "Up", "x": 17.25, "y": 3 }, - { "label": "End", "x": 18.25, "y": 3 }, - - { "label": "F5", "x": 0, "y": 4 }, - { "label": "F10", "x": 1, "y": 4 }, - - { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, - { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, - { "label": "Space", "x": 7.25, "y": 4 }, - { "label": "Space", "x": 8.25, "y": 4, "w": 1.25 }, - { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, { "label": "Alt", "x": 13.25, "y": 4 }, diff --git a/keyboards/keebio/quefrency/rev4/rev4.h b/keyboards/keebio/quefrency/rev4/rev4.h index 12f76d5c85..2284a6da43 100644 --- a/keyboards/keebio/quefrency/rev4/rev4.h +++ b/keyboards/keebio/quefrency/rev4/rev4.h @@ -99,86 +99,6 @@ along with this program. If not, see . { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ } -#define LAYOUT_60_iso( \ - LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ - LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \ - LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \ - LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ - LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ - ) \ - { \ - { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ - { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ - { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ - { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \ - { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ - { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ - } - -#define LAYOUT_65_iso( \ - LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ - LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \ - LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \ - LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ - LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ - ) \ - { \ - { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ - { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ - { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ - { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \ - { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ - { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ - } - -#define LAYOUT_60_iso_with_macro( \ - LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ - LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \ - LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \ - LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ - LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ - ) \ - { \ - { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ - { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ - { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ - { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \ - { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ - { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ - } - -#define LAYOUT_65_iso_with_macro( \ - LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ - LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \ - LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \ - LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ - LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ - ) \ - { \ - { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ - { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ - { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ - { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \ - { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ - { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ - } - #define LAYOUT_all( \ LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ diff --git a/keyboards/keebio/quefrency/rev5/config.h b/keyboards/keebio/quefrency/rev5/config.h new file mode 100644 index 0000000000..f047ffbdf0 --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/config.h @@ -0,0 +1,62 @@ +/* Copyright 2021 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 9 + +#define DIODE_DIRECTION COL2ROW +// wiring of each half +#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7 } +#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5, D4 } +#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 } +#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 } +#define SPLIT_HAND_PIN F7 +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F6 } +#define ENCODERS_PAD_A_RIGHT { D6 } +#define ENCODERS_PAD_B_RIGHT { D4 } + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* ws2812 RGB LED */ +#define RGB_DI_PIN E6 +#define 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 new file mode 100644 index 0000000000..053551e30f --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/info.json @@ -0,0 +1,376 @@ +{ + "keyboard_name": "Quefrency Rev. 5", + "manufacturer": "Keebio", + "url": "https://keeb.io", + "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x5257", + "device_version": "5.0.0" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_60" + }, + "layouts": { + "LAYOUT_60": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + + { "label": "7", "x": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "y": 0 }, + + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + + { "label": "Y", "x": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + + { "label": "H", "x": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "x": 10.75, "y": 2 }, + { "label": ";", "x": 11.75, "y": 2 }, + { "label": "'", "x": 12.75, "y": 2 }, + { "label": "Enter", "x": 13.75, "y": 2, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + + { "label": "N", "x": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Left", "x": 13, "y": 4 }, + { "label": "Down", "x": 14, "y": 4 }, + { "label": "Right", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "1", "x": 1, "y": 0 }, + { "label": "2", "x": 2, "y": 0 }, + { "label": "3", "x": 3, "y": 0 }, + { "label": "4", "x": 4, "y": 0 }, + { "label": "5", "x": 5, "y": 0 }, + { "label": "6", "x": 6, "y": 0 }, + + { "label": "7", "x": 8, "y": 0 }, + { "label": "8", "x": 9, "y": 0 }, + { "label": "9", "x": 10, "y": 0 }, + { "label": "0", "x": 11, "y": 0 }, + { "label": "-", "x": 12, "y": 0 }, + { "label": "=", "x": 13, "y": 0 }, + { "label": "Del", "x": 14, "y": 0 }, + { "label": "Bksp", "x": 15, "y": 0 }, + { "label": "Home", "x": 16, "y": 0 }, + + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + + { "label": "Y", "x": 7.5, "y": 1 }, + { "label": "U", "x": 8.5, "y": 1 }, + { "label": "I", "x": 9.5, "y": 1 }, + { "label": "O", "x": 10.5, "y": 1 }, + { "label": "P", "x": 11.5, "y": 1 }, + { "label": "[", "x": 12.5, "y": 1 }, + { "label": "]", "x": 13.5, "y": 1 }, + { "label": "Backslash", "x": 14.5, "y": 1, "w": 1.5 }, + { "label": "End", "x": 16, "y": 1 }, + + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + + { "label": "H", "x": 7.75, "y": 2 }, + { "label": "J", "x": 8.75, "y": 2 }, + { "label": "K", "x": 9.75, "y": 2 }, + { "label": "L", "x": 10.75, "y": 2 }, + { "label": ";", "x": 11.75, "y": 2 }, + { "label": "'", "x": 12.75, "y": 2 }, + { "label": "Enter", "x": 13.75, "y": 2, "w": 2.25 }, + { "label": "Page Up", "x": 16, "y": 2 }, + + { "label": "Shift", "x": 0, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + + { "label": "N", "x": 8.25, "y": 3 }, + { "label": "M", "x": 9.25, "y": 3 }, + { "label": ",", "x": 10.25, "y": 3 }, + { "label": ".", "x": 11.25, "y": 3 }, + { "label": "/", "x": 12.25, "y": 3 }, + { "label": "Shift", "x": 13.25, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 15, "y": 3 }, + { "label": "Page Down", "x": 16, "y": 3 }, + + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 3.75, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 5, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 8.25, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 9.5, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 11, "y": 4 }, + { "label": "Ctrl", "x": 12, "y": 4 }, + { "label": "Win", "x": 13, "y": 4 }, + { "label": "Left", "x": 14, "y": 4 }, + { "label": "Down", "x": 15, "y": 4 }, + { "label": "Right", "x": 16, "y": 4 } + ] + }, + "LAYOUT_60_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Left", "x": 15.25, "y": 4 }, + { "label": "Down", "x": 16.25, "y": 4 }, + { "label": "Right", "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_65_with_macro": { + "layout": [ + { "label": "F1", "x": 0, "y": 0 }, + { "label": "F6", "x": 1, "y": 0 }, + + { "label": "Esc", "x": 2.25, "y": 0 }, + { "label": "1", "x": 3.25, "y": 0 }, + { "label": "2", "x": 4.25, "y": 0 }, + { "label": "3", "x": 5.25, "y": 0 }, + { "label": "4", "x": 6.25, "y": 0 }, + { "label": "5", "x": 7.25, "y": 0 }, + { "label": "6", "x": 8.25, "y": 0 }, + + { "label": "7", "x": 10.25, "y": 0 }, + { "label": "8", "x": 11.25, "y": 0 }, + { "label": "9", "x": 12.25, "y": 0 }, + { "label": "0", "x": 13.25, "y": 0 }, + { "label": "-", "x": 14.25, "y": 0 }, + { "label": "=", "x": 15.25, "y": 0 }, + { "label": "Del", "x": 16.25, "y": 0 }, + { "label": "Bksp", "x": 17.25, "y": 0 }, + { "label": "Home", "x": 18.25, "y": 0 }, + + { "label": "F2", "x": 0, "y": 1 }, + { "label": "F7", "x": 1, "y": 1 }, + + { "label": "Tab", "x": 2.25, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 3.75, "y": 1 }, + { "label": "W", "x": 4.75, "y": 1 }, + { "label": "E", "x": 5.75, "y": 1 }, + { "label": "R", "x": 6.75, "y": 1 }, + { "label": "T", "x": 7.75, "y": 1 }, + + { "label": "Y", "x": 9.75, "y": 1 }, + { "label": "U", "x": 10.75, "y": 1 }, + { "label": "I", "x": 11.75, "y": 1 }, + { "label": "O", "x": 12.75, "y": 1 }, + { "label": "P", "x": 13.75, "y": 1 }, + { "label": "[", "x": 14.75, "y": 1 }, + { "label": "]", "x": 15.75, "y": 1 }, + { "label": "Backslash", "x": 16.75, "y": 1, "w": 1.5 }, + { "label": "PgUp", "x": 18.25, "y": 1 }, + + { "label": "F3", "x": 0, "y": 2 }, + { "label": "F8", "x": 1, "y": 2 }, + + { "label": "Caps Lock", "x": 2.25, "y": 2, "w": 1.75 }, + { "label": "A", "x": 4, "y": 2 }, + { "label": "S", "x": 5, "y": 2 }, + { "label": "D", "x": 6, "y": 2 }, + { "label": "F", "x": 7, "y": 2 }, + { "label": "G", "x": 8, "y": 2 }, + + { "label": "H", "x": 10, "y": 2 }, + { "label": "J", "x": 11, "y": 2 }, + { "label": "K", "x": 12, "y": 2 }, + { "label": "L", "x": 13, "y": 2 }, + { "label": ";", "x": 14, "y": 2 }, + { "label": "'", "x": 15, "y": 2 }, + { "label": "Enter", "x": 16, "y": 2, "w": 2.25 }, + { "label": "PgDn", "x": 18.25, "y": 2 }, + + { "label": "F4", "x": 0, "y": 3 }, + { "label": "F9", "x": 1, "y": 3 }, + + { "label": "Shift", "x": 2.25, "y": 3, "w": 2.25 }, + { "label": "Z", "x": 4.5, "y": 3 }, + { "label": "X", "x": 5.5, "y": 3 }, + { "label": "C", "x": 6.5, "y": 3 }, + { "label": "V", "x": 7.5, "y": 3 }, + { "label": "B", "x": 8.5, "y": 3 }, + + { "label": "N", "x": 10.5, "y": 3 }, + { "label": "M", "x": 11.5, "y": 3 }, + { "label": ",", "x": 12.5, "y": 3 }, + { "label": ".", "x": 13.5, "y": 3 }, + { "label": "/", "x": 14.5, "y": 3 }, + { "label": "Shift", "x": 15.5, "y": 3, "w": 1.75 }, + { "label": "Up", "x": 17.25, "y": 3 }, + { "label": "End", "x": 18.25, "y": 3 }, + + { "label": "F5", "x": 0, "y": 4 }, + { "label": "F10", "x": 1, "y": 4 }, + + { "label": "Ctrl", "x": 2.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 3.5, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 4.75, "y": 4, "w": 1.25 }, + { "label": "Fn", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 7.25, "y": 4, "w": 2.25 }, + + { "label": "Fn", "x": 10.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 11.75, "y": 4, "w": 1.5 }, + { "label": "Alt", "x": 13.25, "y": 4 }, + { "label": "Ctrl", "x": 14.25, "y": 4 }, + { "label": "Win", "x": 15.25, "y": 4 }, + { "label": "Left", "x": 16.25, "y": 4 }, + { "label": "Down", "x": 17.25, "y": 4 }, + { "label": "Right", "x": 18.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/keebio/quefrency/rev5/readme.md b/keyboards/keebio/quefrency/rev5/readme.md new file mode 100644 index 0000000000..77e296f5f1 --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/readme.md @@ -0,0 +1,18 @@ +# Quefrency Rev. 5 + +Quefrency Rev. 5 features Kailh hotswap sockets with a fixed layout. The left macro portion and right column can be broken off, and split backspace or 2u backspace can be used. + +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Availability: [Keebio](https://keeb.io/) + +Make example for this keyboard (after setting up your build environment): + + make keebio/quefrency/rev5:default + +Example of flashing this keyboard: + + make keebio/quefrency/rev5: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). + +A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/quefrency/rev5/rev5.c b/keyboards/keebio/quefrency/rev5/rev5.c new file mode 100644 index 0000000000..190135420f --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/rev5.c @@ -0,0 +1,35 @@ +/* Copyright 2021 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "quefrency.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return false; +} diff --git a/keyboards/keebio/quefrency/rev5/rev5.h b/keyboards/keebio/quefrency/rev5/rev5.h new file mode 100644 index 0000000000..2284a6da43 --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/rev5.h @@ -0,0 +1,120 @@ +/* Copyright 2021 Danny Nguyen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quefrency.h" +#include "quantum.h" + +#define LAYOUT_60( \ + LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ + LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \ + LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \ + LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ + LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ + ) \ + { \ + { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ + } + +#define LAYOUT_65( \ + LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ + LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \ + LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ + } + +#define LAYOUT_60_with_macro( \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \ + LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \ + } + +#define LAYOUT_65_with_macro( \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \ + LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ + } + +#define LAYOUT_all( \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \ + LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \ + } diff --git a/keyboards/keebio/quefrency/rev5/rules.mk b/keyboards/keebio/quefrency/rev5/rules.mk new file mode 100644 index 0000000000..f071ae81b8 --- /dev/null +++ b/keyboards/keebio/quefrency/rev5/rules.mk @@ -0,0 +1,4 @@ +BOOTLOADER = atmel-dfu +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = yes +ENCODER_ENABLE = yes diff --git a/keyboards/keebio/stick/config.h b/keyboards/keebio/stick/config.h index cd641ea28b..8166510921 100644 --- a/keyboards/keebio/stick/config.h +++ b/keyboards/keebio/stick/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x111C -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT The Stick - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 12 diff --git a/keyboards/keebio/stick/info.json b/keyboards/keebio/stick/info.json index 494dbe664b..0a45edc35f 100644 --- a/keyboards/keebio/stick/info.json +++ b/keyboards/keebio/stick/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "The Stick", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x111C", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/tragicforce68/config.h b/keyboards/keebio/tragicforce68/config.h index 3975175976..428a7ca1ff 100644 --- a/keyboards/keebio/tragicforce68/config.h +++ b/keyboards/keebio/tragicforce68/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x0510 -#define DEVICE_VER 0x0101 -#define MANUFACTURER Keebio -#define PRODUCT Tragicforce 68 - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 8 diff --git a/keyboards/keebio/tragicforce68/info.json b/keyboards/keebio/tragicforce68/info.json index cb806cc5cb..7b41614dae 100644 --- a/keyboards/keebio/tragicforce68/info.json +++ b/keyboards/keebio/tragicforce68/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Tragicforce 68", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "Keebio", + "usb": { + "vid": "0xCB10", + "pid": "0x0510", + "device_version": "1.0.1" + }, "layouts": { "LAYOUT_68_ansi": { "layout": [ diff --git a/keyboards/keebio/tukey/config.h b/keyboards/keebio/tukey/config.h index e6ee9a8f29..aefc51d5f5 100644 --- a/keyboards/keebio/tukey/config.h +++ b/keyboards/keebio/tukey/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1112 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT Tukey - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 2 diff --git a/keyboards/keebio/tukey/info.json b/keyboards/keebio/tukey/info.json index a17d5afa44..4427d0cc8b 100644 --- a/keyboards/keebio/tukey/info.json +++ b/keyboards/keebio/tukey/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Tukey", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "nooges", + "usb": { + "vid": "0xCB10", + "pid": "0x1112", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/wavelet/config.h b/keyboards/keebio/wavelet/config.h index d533d29350..37937eb371 100644 --- a/keyboards/keebio/wavelet/config.h +++ b/keyboards/keebio/wavelet/config.h @@ -21,13 +21,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1046 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keebio -#define PRODUCT Wavelet - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 6 diff --git a/keyboards/keebio/wavelet/info.json b/keyboards/keebio/wavelet/info.json index a4bc57b86f..f5df12cffb 100644 --- a/keyboards/keebio/wavelet/info.json +++ b/keyboards/keebio/wavelet/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Wavelet", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "Keebio", + "usb": { + "vid": "0xCB10", + "pid": "0x1046", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebio/wtf60/config.h b/keyboards/keebio/wtf60/config.h index d801a929e7..1ae31980c1 100644 --- a/keyboards/keebio/wtf60/config.h +++ b/keyboards/keebio/wtf60/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCB10 -#define PRODUCT_ID 0x1337 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keebio -#define PRODUCT WTF60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/keebio/wtf60/info.json b/keyboards/keebio/wtf60/info.json index ad7e9c8c89..440ecfb873 100644 --- a/keyboards/keebio/wtf60/info.json +++ b/keyboards/keebio/wtf60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "WTF60", + "manufacturer": "Keebio", "url": "https://keeb.io", "maintainer": "Keebio", + "usb": { + "vid": "0xCB10", + "pid": "0x1337", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_full_wtf": { "layout": [{"label":"Bksp", "x":0, "y":0}, {"label":"Del", "x":1, "y":0}, {"label":"+", "x":2, "y":0}, {"label":"_", "x":3, "y":0}, {"label":")", "x":4, "y":0}, {"label":"(", "x":5, "y":0}, {"label":"*", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"^", "x":8, "y":0}, {"label":"%", "x":9, "y":0}, {"label":"$", "x":10, "y":0}, {"label":"#", "x":11, "y":0}, {"label":"@", "x":12, "y":0}, {"label":"!", "x":13, "y":0}, {"label":"Esc", "x":14, "y":0}, {"label":"|", "x":0, "y":1, "w":1.5}, {"label":"}", "x":1.5, "y":1}, {"label":"{", "x":2.5, "y":1}, {"label":"P", "x":3.5, "y":1}, {"label":"O", "x":4.5, "y":1}, {"label":"I", "x":5.5, "y":1}, {"label":"U", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"T", "x":8.5, "y":1}, {"label":"R", "x":9.5, "y":1}, {"label":"E", "x":10.5, "y":1}, {"label":"W", "x":11.5, "y":1}, {"label":"Q", "x":12.5, "y":1}, {"label":"Tab", "x":13.5, "y":1, "w":1.5}, {"label":"Enter", "x":0, "y":2, "w":1.25}, {"label":"~", "x":1.25, "y":2}, {"label":"\"", "x":2.25, "y":2}, {"label":":", "x":3.25, "y":2}, {"label":"L", "x":4.25, "y":2}, {"label":"K", "x":5.25, "y":2}, {"label":"J", "x":6.25, "y":2}, {"label":"H", "x":7.25, "y":2}, {"label":"G", "x":8.25, "y":2}, {"label":"F", "x":9.25, "y":2}, {"label":"D", "x":10.25, "y":2}, {"label":"S", "x":11.25, "y":2}, {"label":"A", "x":12.25, "y":2}, {"label":"Caps Lock", "x":13.25, "y":2, "w":1.75}, {"label":"Fn", "x":0, "y":3}, {"label":"Shift", "x":1, "y":3, "w":1.75}, {"label":"?", "x":2.75, "y":3}, {"label":">", "x":3.75, "y":3}, {"label":"<", "x":4.75, "y":3}, {"label":"M", "x":5.75, "y":3}, {"label":"N", "x":6.75, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"V", "x":8.75, "y":3}, {"label":"C", "x":9.75, "y":3}, {"label":"X", "x":10.75, "y":3}, {"label":"Z", "x":11.75, "y":3}, {"label":"|", "x":12.75, "y":3}, {"label":"Shift", "x":13.75, "y":3, "w":1.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Menu", "x":1.25, "y":4, "w":1.25}, {"label":"Win", "x":2.5, "y":4, "w":1.25}, {"label":"Alt", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":6.25}, {"label":"Alt", "x":11.25, "y":4, "w":1.25}, {"label":"Win", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/keebmonkey/kbmg68/config.h b/keyboards/keebmonkey/kbmg68/config.h new file mode 100644 index 0000000000..3700587f58 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/config.h @@ -0,0 +1,61 @@ +/* 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 + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B1, B2, B3, B4, B5 } +#define MATRIX_COL_PINS { B6, B7, D0, D1, D2, D3, D4, D5, D6, D7, C6, C7, F7, F6, F5, F4 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN B0 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 68 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#endif + +// 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 new file mode 100644 index 0000000000..4c331d1f6e --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "kbmg68", + "manufacturer": "KeebMonkey", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + { "label": "K00 (B1,B6)", "x": 0, "y": 0 }, + { "label": "K01 (B1,B7)", "x": 1, "y": 0 }, + { "label": "K02 (B1,D0)", "x": 2, "y": 0 }, + { "label": "K03 (B1,D1)", "x": 3, "y": 0 }, + { "label": "K04 (B1,D2)", "x": 4, "y": 0 }, + { "label": "K05 (B1,D3)", "x": 5, "y": 0 }, + { "label": "K06 (B1,D4)", "x": 6, "y": 0 }, + { "label": "K07 (B1,D5)", "x": 7, "y": 0 }, + { "label": "K08 (B1,D6)", "x": 8, "y": 0 }, + { "label": "K09 (B1,D7)", "x": 9, "y": 0 }, + { "label": "K0A (B1,C6)", "x": 10, "y": 0 }, + { "label": "K0B (B1,C7)", "x": 11, "y": 0 }, + { "label": "K0C (B1,F7)", "x": 12, "y": 0 }, + { "label": "K0E (B1,F5)", "x": 13, "y": 0, "w": 2 }, + { "label": "K0F (B1,F4)", "x": 15, "y": 0 }, + { "label": "K10 (B2,B6)", "x": 0, "y": 1, "w": 1.5 }, + { "label": "K12 (B2,D0)", "x": 1.5, "y": 1 }, + { "label": "K13 (B2,D1)", "x": 2.5, "y": 1 }, + { "label": "K14 (B2,D2)", "x": 3.5, "y": 1 }, + { "label": "K15 (B2,D3)", "x": 4.5, "y": 1 }, + { "label": "K16 (B2,D4)", "x": 5.5, "y": 1 }, + { "label": "K17 (B2,D5)", "x": 6.5, "y": 1 }, + { "label": "K18 (B2,D6)", "x": 7.5, "y": 1 }, + { "label": "K19 (B2,D7)", "x": 8.5, "y": 1 }, + { "label": "K1A (B2,C6)", "x": 9.5, "y": 1 }, + { "label": "K1B (B2,C7)", "x": 10.5, "y": 1 }, + { "label": "K1C (B2,F7)", "x": 11.5, "y": 1 }, + { "label": "K1D (B2,F6)", "x": 12.5, "y": 1 }, + { "label": "K1E (B2,F5)", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "K1F (B2,F4)", "x": 15, "y": 1 }, + { "label": "K20 (B3,B6)", "x": 0, "y": 2, "w": 1.75 }, + { "label": "K22 (B3,D0)", "x": 1.75, "y": 2 }, + { "label": "K23 (B3,D1)", "x": 2.75, "y": 2 }, + { "label": "K24 (B3,D2)", "x": 3.75, "y": 2 }, + { "label": "K25 (B3,D3)", "x": 4.75, "y": 2 }, + { "label": "K26 (B3,D4)", "x": 5.75, "y": 2 }, + { "label": "K27 (B3,D5)", "x": 6.75, "y": 2 }, + { "label": "K28 (B3,D6)", "x": 7.75, "y": 2 }, + { "label": "K29 (B3,D7)", "x": 8.75, "y": 2 }, + { "label": "K2A (B3,C6)", "x": 9.75, "y": 2 }, + { "label": "K2B (B3,C7)", "x": 10.75, "y": 2 }, + { "label": "K2C (B3,F7)", "x": 11.75, "y": 2 }, + { "label": "K2D (B3,F6)", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "K2F (B3,F4)", "x": 15, "y": 2 }, + { "label": "K31 (B4,B7)", "x": 0, "y": 3, "w": 2.25 }, + { "label": "K32 (B4,D0)", "x": 2.25, "y": 3 }, + { "label": "K33 (B4,D1)", "x": 3.25, "y": 3 }, + { "label": "K34 (B4,D2)", "x": 4.25, "y": 3 }, + { "label": "K35 (B4,D3)", "x": 5.25, "y": 3 }, + { "label": "K36 (B4,D4)", "x": 6.25, "y": 3 }, + { "label": "K37 (B4,D5)", "x": 7.25, "y": 3 }, + { "label": "K38 (B4,D6)", "x": 8.25, "y": 3 }, + { "label": "K39 (B4,D7)", "x": 9.25, "y": 3 }, + { "label": "K3A (B4,C6)", "x": 10.25, "y": 3 }, + { "label": "K3B (B4,C7)", "x": 11.25, "y": 3 }, + { "label": "K3D (B4,F6)", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "K3E (B4,F5)", "x": 14, "y": 3 }, + { "label": "K3F (B4,F4)", "x": 15, "y": 3 }, + { "label": "K40 (B5,B6)", "x": 0, "y": 4, "w": 1.25 }, + { "label": "K41 (B5,B7)", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "K43 (B5,D1)", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K46 (B5,D4)", "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "K4A (B5,C6)", "x": 10, "y": 4 }, + { "label": "K4B (B5,C7)", "x": 11, "y": 4 }, + { "label": "K4C (B5,F7)", "x": 12, "y": 4 }, + { "label": "K4D (B5,F6)", "x": 13, "y": 4 }, + { "label": "K4E (B5,F5)", "x": 14, "y": 4 }, + { "label": "K4F (B5,F4)", "x": 15, "y": 4 } + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/keebmonkey/kbmg68/kbmg68.c b/keyboards/keebmonkey/kbmg68/kbmg68.c new file mode 100644 index 0000000000..452624d771 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/kbmg68.c @@ -0,0 +1,20 @@ +/* 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 . + */ + +#include "kbmg68.h" + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/keebmonkey/kbmg68/kbmg68.h b/keyboards/keebmonkey/kbmg68/kbmg68.h new file mode 100644 index 0000000000..a817a73d78 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/kbmg68.h @@ -0,0 +1,38 @@ +/* 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 + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_65_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, K0F }, \ + { K10, XXX, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, XXX, K2F }, \ + { XXX, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ + { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/keebmonkey/kbmg68/keymaps/default/keymap.c b/keyboards/keebmonkey/kbmg68/keymaps/default/keymap.c new file mode 100644 index 0000000000..63eb69dc35 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_65_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_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi( + RGB_TOG, 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + MO(2), _______, _______, _______, _______, _______, _______, _______, RGB_VAD, _______ + ), + + [2] = LAYOUT_65_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET + ), + +}; diff --git a/keyboards/keebmonkey/kbmg68/readme.md b/keyboards/keebmonkey/kbmg68/readme.md new file mode 100644 index 0000000000..59852c09a1 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/readme.md @@ -0,0 +1,27 @@ +# KBMG68 + +![KBMG68](https://cdn.shopify.com/s/files/1/0463/5980/6101/products/IMG_2062_600x.jpg?v=1636042030) + +The Keebmonkey KBMG68 should be the cheapest gasket keyboard you can ever have. Both the plate and the PCB are gasket mounted, resulting in a deep thocky sound. The shell of the kit is made of 6-layers of acrylic boards, leaving huge space for modding and continuous improvements (even though this kit already sounds perfect when it's out of the box). + +* Keyboard Maintainer: Unknown +* Hardware Supported: Unknown +* Hardware Availability: [Keebmonkey KBMG68 Double Mounted Gasket Keyboard Kit](https://www.keebmonkey.com/products/kbmg68) + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make keebmonkey/kbmg68:default + +Flashing example for this keyboard: + + make keebmonkey/kbmg68: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). + +### Reset to Bootloader + +Hold the Escape key while plugging the board in. diff --git a/keyboards/keebmonkey/kbmg68/rules.mk b/keyboards/keebmonkey/kbmg68/rules.mk new file mode 100644 index 0000000000..0adb2c9996 --- /dev/null +++ b/keyboards/keebmonkey/kbmg68/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 65_ansi diff --git a/keyboards/keebsforall/coarse60/config.h b/keyboards/keebsforall/coarse60/config.h index 7d14ea4cbd..b31e8c19cb 100644 --- a/keyboards/keebsforall/coarse60/config.h +++ b/keyboards/keebsforall/coarse60/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . */ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6B66 -#define PRODUCT_ID 0x5341 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KeebsforAll -#define PRODUCT coarse60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/keebsforall/coarse60/info.json b/keyboards/keebsforall/coarse60/info.json index 8718b79f44..594f08a2fc 100644 --- a/keyboards/keebsforall/coarse60/info.json +++ b/keyboards/keebsforall/coarse60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "coarse60", + "manufacturer": "KeebsForAll", "url":"https://keebsforall.com", "maintainer": "keebsforall", + "usb": { + "vid": "0x6B66", + "pid": "0x5341", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/keebsforall/freebird60/config.h b/keyboards/keebsforall/freebird60/config.h index 5d9f98cacf..736782e836 100644 --- a/keyboards/keebsforall/freebird60/config.h +++ b/keyboards/keebsforall/freebird60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xADAD -#define PRODUCT_ID 0xFB60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KnoblesseOblige -#define PRODUCT Freebird60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/keebsforall/freebird60/info.json b/keyboards/keebsforall/freebird60/info.json index 9b8b3ab5cc..a6d6b97325 100644 --- a/keyboards/keebsforall/freebird60/info.json +++ b/keyboards/keebsforall/freebird60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "freebird60", + "keyboard_name": "Freebird60", + "manufacturer": "KnoblesseOblige", "url": "", "maintainer": "KnoblesseOblige", + "usb": { + "vid": "0xADAD", + "pid": "0xFB60", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/keebsforall/freebirdnp/lite/config.h b/keyboards/keebsforall/freebirdnp/lite/config.h index 317132eff3..6630124423 100644 --- a/keyboards/keebsforall/freebirdnp/lite/config.h +++ b/keyboards/keebsforall/freebirdnp/lite/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6B66 -#define PRODUCT_ID 0x1013 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KeebsForAll -#define PRODUCT Freebird Numpad Lite - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/keebsforall/freebirdnp/lite/info.json b/keyboards/keebsforall/freebirdnp/lite/info.json index 1553264e08..4cab1d4cdb 100644 --- a/keyboards/keebsforall/freebirdnp/lite/info.json +++ b/keyboards/keebsforall/freebirdnp/lite/info.json @@ -1,8 +1,13 @@ { - "keyboard_name": "FreebirdNP Lite", + "keyboard_name": "Freebird Numpad Lite", + "manufacturer": "KeebsForAll", "url": "https://keebsforall.com/products/fb-numpad-lite", "maintainer": "e11i0t23", - "manufacturer": "KeebsForAll", + "usb": { + "vid": "0x6B66", + "pid": "0x1013", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/keebsforall/freebirdnp/pro/config.h b/keyboards/keebsforall/freebirdnp/pro/config.h index 53ced8ac03..b7c850c83d 100644 --- a/keyboards/keebsforall/freebirdnp/pro/config.h +++ b/keyboards/keebsforall/freebirdnp/pro/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6B66 -#define PRODUCT_ID 0x1014 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KeebsForAll -#define PRODUCT Freebird Numpad - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/keebsforall/freebirdnp/pro/info.json b/keyboards/keebsforall/freebirdnp/pro/info.json index ed2a6e0b41..c2432d6adc 100644 --- a/keyboards/keebsforall/freebirdnp/pro/info.json +++ b/keyboards/keebsforall/freebirdnp/pro/info.json @@ -1,8 +1,13 @@ { - "keyboard_name": "FreebirdNP Pro", + "keyboard_name": "Freebird Numpad Pro", + "manufacturer": "KeebsForAll", "url": "https://keebsforall.com/products/fb-numpad-pro", "maintainer": "e11i0t23", - "manufacturer": "KeebsForAll", + "usb": { + "vid": "0x6B66", + "pid": "0x1014", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_6x4": { "layout": [ diff --git a/keyboards/keebsforall/freebirdtkl/config.h b/keyboards/keebsforall/freebirdtkl/config.h index 47c83ea5b7..e775ccf083 100644 --- a/keyboards/keebsforall/freebirdtkl/config.h +++ b/keyboards/keebsforall/freebirdtkl/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x75FA /* "K"FA */ -#define PRODUCT_ID 0x0088 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KeebsForAll -#define PRODUCT FreebirdTKL - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/keebsforall/freebirdtkl/info.json b/keyboards/keebsforall/freebirdtkl/info.json index 0c21d22393..4c7f8de39e 100644 --- a/keyboards/keebsforall/freebirdtkl/info.json +++ b/keyboards/keebsforall/freebirdtkl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "FreebirdTKL", + "manufacturer": "KeebsForAll", "url": "https://keebsforall.com", "maintainer": "KnoblesseOblige", + "usb": { + "vid": "0x75FA", + "pid": "0x0088", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", "LAYOUT_tsangan": "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift", diff --git a/keyboards/keebwerk/mega/ansi/config.h b/keyboards/keebwerk/mega/ansi/config.h index 9f9a225ef1..15df557676 100755 --- a/keyboards/keebwerk/mega/ansi/config.h +++ b/keyboards/keebwerk/mega/ansi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4B41 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT Keebwerk Mega ANSI - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/keebwerk/mega/ansi/info.json b/keyboards/keebwerk/mega/ansi/info.json index 5ac104c07b..852fad11a4 100755 --- a/keyboards/keebwerk/mega/ansi/info.json +++ b/keyboards/keebwerk/mega/ansi/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Keebwerk Mega", + "keyboard_name": "Keebwerk Mega ANSI", + "manufacturer": "Yiancar-Designs", "url": "", "maintainer": "Yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x4B41", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Home", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Page Up", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Page Down", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"End", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] diff --git a/keyboards/keebwerk/nano_slider/config.h b/keyboards/keebwerk/nano_slider/config.h index 53b887692b..544445f085 100644 --- a/keyboards/keebwerk/nano_slider/config.h +++ b/keyboards/keebwerk/nano_slider/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x03A8 -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER keebwerk. -#define PRODUCT nano. slider - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/keebwerk/nano_slider/info.json b/keyboards/keebwerk/nano_slider/info.json index b91ecffee3..257bc71110 100644 --- a/keyboards/keebwerk/nano_slider/info.json +++ b/keyboards/keebwerk/nano_slider/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "nano. slider", + "manufacturer": "keebwerk.", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x03A8", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keebwerk/nano_slider/keymaps/midi2vol/keymap.c b/keyboards/keebwerk/nano_slider/keymaps/midi2vol/keymap.c index 0623f7556c..783790f020 100644 --- a/keyboards/keebwerk/nano_slider/keymaps/midi2vol/keymap.c +++ b/keyboards/keebwerk/nano_slider/keymaps/midi2vol/keymap.c @@ -41,7 +41,7 @@ uint8_t midi2vol = 0x3E; enum custom_layers { _MEDIA, /* Controls Pause, Mute , Forward ... */ _NAV, /* Nav arrows, Enter, Space*/ - _VOLUME /* Changes midi2vol int to interface with midi2vol program: Chrome Volume, General Volume */ + _VOLUME, /* Changes midi2vol int to interface with midi2vol program: Chrome Volume, General Volume */ _DISCORD, /* FXX unsused keys to interface with Discord: Mute , Silence */ _LIGHTS, /* Edits underglow and retroilumination */ _EDIT, /* Cut, Copy ,Paste */ diff --git a/keyboards/keebwerk/nano_slider/keymaps/via/keymap.c b/keyboards/keebwerk/nano_slider/keymaps/via/keymap.c new file mode 100644 index 0000000000..ea1faadfda --- /dev/null +++ b/keyboards/keebwerk/nano_slider/keymaps/via/keymap.c @@ -0,0 +1,67 @@ +/* Copyright 2020 Duckle + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "analog.h" +#include "qmk_midi.h" + +enum layer_names { + _BASE, + _FN, + _MEDIA, + _FN2 +}; + +/* Defines the keycodes used by our macros in process_record_user */ +enum custom_keycodes { /* In order to add more volume controls, add here a custom keycode, ex: VLC */ + DEFAULT= SAFE_RANGE,SPOTIFY,DISCORD,CHROME/*,VLC*/ +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + TO(_FN), + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, KC_0 + ), + [_FN] = LAYOUT( + TO(_MEDIA), + RGB_TOG, RGB_MOD, RGB_VAI, + RGB_SAI, BL_BRTG, BL_STEP, KC_LSFT + ), + [_MEDIA] = LAYOUT( + TO(_BASE), + KC_VOLD, KC_VOLU, KC_F24, + KC_MRWD, KC_MFFD, KC_F23, KC_MPLY + ), + [_FN2] = LAYOUT( + _______, + _______, _______, _______, + _______, _______, _______, _______ + ) +}; + +uint8_t divisor = 0; + +void slider(void) { + if (divisor++) { // only run the slider function 1/256 times it's called + return; + } + + midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); +} + +void matrix_scan_user(void) { + slider(); +} diff --git a/keyboards/keebwerk/nano_slider/keymaps/via/rules.mk b/keyboards/keebwerk/nano_slider/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/keebwerk/nano_slider/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/keebzdotnet/fme/config.h b/keyboards/keebzdotnet/fme/config.h index bbc273fa07..a756fea926 100644 --- a/keyboards/keebzdotnet/fme/config.h +++ b/keyboards/keebzdotnet/fme/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B5A -#define PRODUCT_ID 0x8008 -#define DEVICE_VER 0x0001 -#define MANUFACTURER keebzdotnet -#define PRODUCT FMe - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 5 diff --git a/keyboards/keebzdotnet/fme/info.json b/keyboards/keebzdotnet/fme/info.json index f07d3fd791..3c24379865 100644 --- a/keyboards/keebzdotnet/fme/info.json +++ b/keyboards/keebzdotnet/fme/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "FMe", + "manufacturer": "keebzdotnet", "url": "", "maintainer": "keebzdotnet", + "usb": { + "vid": "0x4B5A", + "pid": "0x8008", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/keebzdotnet/wazowski/config.h b/keyboards/keebzdotnet/wazowski/config.h index fe8b5cbcd5..fb9fc9c118 100644 --- a/keyboards/keebzdotnet/wazowski/config.h +++ b/keyboards/keebzdotnet/wazowski/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B5A // "KZ" -#define PRODUCT_ID 0x53FC -#define DEVICE_VER 0x0001 -#define MANUFACTURER keebzdotnet -#define PRODUCT wazowski 23-19 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 5 diff --git a/keyboards/keebzdotnet/wazowski/info.json b/keyboards/keebzdotnet/wazowski/info.json index 2081cf92d3..699a588cf4 100644 --- a/keyboards/keebzdotnet/wazowski/info.json +++ b/keyboards/keebzdotnet/wazowski/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "wazowski", + "keyboard_name": "wazowski 23-19", + "manufacturer": "keebzdotnet", "url": "https://www.keebz.net/shop/wazoski-pcb", "maintainer": "keebzdotnet", + "usb": { + "vid": "0x4B5A", + "pid": "0x53FC", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keybage/radpad/config.h b/keyboards/keybage/radpad/config.h index e0f4b76361..ff4d011025 100644 --- a/keyboards/keybage/radpad/config.h +++ b/keyboards/keybage/radpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4253 // "BS" -#define PRODUCT_ID 0x5250 // "RP" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keybage -#define PRODUCT RadPad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/keybage/radpad/info.json b/keyboards/keybage/radpad/info.json index 2236a43418..233144e95e 100644 --- a/keyboards/keybage/radpad/info.json +++ b/keyboards/keybage/radpad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "radpad", + "keyboard_name": "RadPad", + "manufacturer": "Keybage", "url": "", "maintainer": "Brandon Schlack", + "usb": { + "vid": "0x4253", + "pid": "0x5250", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_4x4_encoders": { "layout": [ diff --git a/keyboards/keybee/keybee65/config.h b/keyboards/keybee/keybee65/config.h index 54f847a2dd..e8281c8019 100644 --- a/keyboards/keybee/keybee65/config.h +++ b/keyboards/keybee/keybee65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6265 // KeyBee -#define PRODUCT_ID 0x0001 // Keybee65 -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER KeyBee -#define PRODUCT KeyBee65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/keybee/keybee65/info.json b/keyboards/keybee/keybee65/info.json index 63f05c9c2a..0a49a2bcad 100644 --- a/keyboards/keybee/keybee65/info.json +++ b/keyboards/keybee/keybee65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "KeyBee65", + "manufacturer": "KeyBee", "url": "", "maintainer": "ToastyStoemp", + "usb": { + "vid": "0x6265", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/keyboardio/atreus/config.h b/keyboards/keyboardio/atreus/config.h index 74b56ceb7d..ad616634b2 100644 --- a/keyboards/keyboardio/atreus/config.h +++ b/keyboards/keyboardio/atreus/config.h @@ -18,14 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0x1209 -#define PRODUCT_ID 0x2303 -#define DEVICE_VER 0x0000 -#define MANUFACTURER Keyboardio -#define PRODUCT Atreus - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/keyboardio/atreus/info.json b/keyboards/keyboardio/atreus/info.json index a23d81ac9d..8431c1e62d 100644 --- a/keyboards/keyboardio/atreus/info.json +++ b/keyboards/keyboardio/atreus/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Keyboardio Atreus", + "keyboard_name": "Atreus", + "manufacturer": "Keyboardio", "url": "", "maintainer": "keyboardio", + "usb": { + "vid": "0x1209", + "pid": "0x2303", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyboardio/atreus/keymaps/kkokdae/config.h b/keyboards/keyboardio/atreus/keymaps/kkokdae/config.h new file mode 100644 index 0000000000..f66f840bfd --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/kkokdae/config.h @@ -0,0 +1,27 @@ +/* Copyright 2022 kkokdae + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +//#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_TERM 200 +#define ONESHOT_TAP_TOGGLE 5 +#define ONESHOT_TIMEOUT 5000 + +#define AUTO_SHIFT_DISABLED_AT_STARTUP +#define AUTO_SHIFT_TIMEOUT 0 +#define NO_AUTO_SHIFT_SPECIAL +#define NO_AUTO_SHIFT_NUMERIC diff --git a/keyboards/keyboardio/atreus/keymaps/kkokdae/keymap.c b/keyboards/keyboardio/atreus/keymaps/kkokdae/keymap.c new file mode 100644 index 0000000000..0110c64395 --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/kkokdae/keymap.c @@ -0,0 +1,127 @@ +/* Copyright 2022 kkokdae + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 my_layers { + _COLEMAK, + _QWERTY, + _FUNC, + _NUMPAD, + _SYMBOL +}; + +enum my_tds { + TdH, + TdL +}; + +#define FUNC LT(_FUNC, KC_SPC) +#define NUMPAD LT(_NUMPAD, KC_BSPC) +#define DNUMPAD LT(_NUMPAD, KC_DEL) +#define SYMBOL OSL(_SYMBOL) + +#define OSMCMD OSM(MOD_LGUI) +#define OSMOPT OSM(MOD_LALT) +#define OSMCTL OSM(MOD_LCTL) +#define OSMSFT OSM(MOD_LSFT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_COLEMAK] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + 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_ENT, + OSMCMD, OSMOPT, OSMCTL, OSMSFT, FUNC, KC_TAB, KC_ESC, NUMPAD, SYMBOL, OSMCTL, OSMOPT, OSMCMD + ), + + [_QWERTY] = 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_QUOT, + KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENT, + OSMCMD, OSMOPT, OSMCTL, OSMSFT, FUNC, KC_TAB, KC_ESC, NUMPAD, SYMBOL, OSMCTL, OSMOPT, OSMCMD + ), + + [_FUNC] = LAYOUT( + KC_MRWD, KC_VOLU, KC_VOLD, KC_MFFD, KC_MPLY, KC_INS, KC_F7, KC_F8, KC_F9, KC_CAPS, + KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_BRIU, KC_F12, KC_F4, KC_F5, KC_F6, TD(TdL), + KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_BRID, _______, _______, KC_F10, KC_F1, KC_F2, KC_F3, KC_F11, + _______, _______, _______, KC_ASTG, _______, _______, _______, DNUMPAD, _______, _______, _______, _______ + ), + + [_NUMPAD] = LAYOUT( + _______, _______, _______, _______, _______, S(KC_E), KC_7, KC_8, KC_9, S(KC_F), + TD(TdL), KC_EQL, KC_ASTR, KC_PLUS, _______, S(KC_C), KC_4, KC_5, KC_6, S(KC_D), + TD(TdH), KC_DOT, KC_SLSH, KC_MINS, _______, _______, _______, S(KC_A), KC_1, KC_2, KC_3, S(KC_B), + _______, _______, _______, KC_ASTG, _______, _______, _______, _______, KC_0, _______, _______, _______ + ), + + [_SYMBOL] = LAYOUT( + KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, KC_CIRC, KC_DLR, KC_BSLS, KC_PERC, KC_AT, KC_DQUO, + KC_QUES, KC_EXLM, KC_HASH, KC_ASTR, KC_AMPR, KC_PIPE, KC_MINS, KC_PLUS, KC_UNDS, KC_EQL, + KC_LT, KC_LPRN, KC_RPRN, KC_GT, KC_GRV, _______, _______, KC_TILD, KC_SLSH, C(KC_B), KC_COLN, KC_SCLN, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case KC_MINS: + case KC_UNDS: + case KC_BSPC: + return false; + } + + switch(keycode & 0xFF) { + case KC_1 ... KC_UP: + autoshift_disable(); + default: + return false; + } +} + +void dance_hex(qk_tap_dance_state_t *state, void *user_data) { + switch(state->count) { + case 1: + SEND_STRING("0x"); + break; + case 2: + SEND_STRING("\\x"); + break; + } +} + +void dance_lang(qk_tap_dance_state_t *state, void *user_data) { + uint32_t default_layer; + switch(state->count) { + case 1: + SEND_STRING(SS_LCTL(" ") SS_DELAY(200) SS_TAP(X_ENT)); + case 2: + default_layer = get_highest_layer(default_layer_state); + if (default_layer == _COLEMAK) { + set_single_persistent_default_layer(_QWERTY); + } + else if (default_layer == _QWERTY) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + } +} + + +qk_tap_dance_action_t tap_dance_actions[] = { + [TdH] = ACTION_TAP_DANCE_FN(dance_hex), + [TdL] = ACTION_TAP_DANCE_FN(dance_lang) +}; diff --git a/keyboards/keyboardio/atreus/keymaps/kkokdae/readme.md b/keyboards/keyboardio/atreus/keymaps/kkokdae/readme.md new file mode 100644 index 0000000000..b67e31c49f --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/kkokdae/readme.md @@ -0,0 +1,7 @@ +# kkokdae keymap - Keyboardio Atreus + +This is the keymap available for keyboardio/atreus keyboards. + +The default layout used [Colemak Mod-DH](https://colemakmods.github.io/mod-dh/). The prefix keys for vim/tmux users. The symbol is designed for ease of use by programmers. + +It used the idea of [Caps Work Behavior](https://zmk.dev/docs/behaviors/caps-word) by ZMK Firmware. I want to officially add this feature to QMK in the future diff --git a/keyboards/keyboardio/atreus/keymaps/kkokdae/rules.mk b/keyboards/keyboardio/atreus/keymaps/kkokdae/rules.mk new file mode 100644 index 0000000000..d24c14122a --- /dev/null +++ b/keyboards/keyboardio/atreus/keymaps/kkokdae/rules.mk @@ -0,0 +1,3 @@ +MOUSEKEY_ENABLE = no +TAP_DANCE_ENABLE = yes +AUTO_SHIFT_ENABLE = yes diff --git a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h index 3de799f942..4251834da2 100644 --- a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/keyboardio/model01/config.h b/keyboards/keyboardio/model01/config.h index 30538c56f1..2bb5cb7386 100644 --- a/keyboards/keyboardio/model01/config.h +++ b/keyboards/keyboardio/model01/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1209 -#define PRODUCT_ID 0x2301 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keyboardio -#define PRODUCT Model 01 - /* key matrix size; rows are doubled for split */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/keyboardio/model01/info.json b/keyboards/keyboardio/model01/info.json index e934a7b66d..a99ab953c7 100644 --- a/keyboards/keyboardio/model01/info.json +++ b/keyboards/keyboardio/model01/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "model01", + "keyboard_name": "Model 01", + "manufacturer": "Keyboardio", "url": "https://keyboard.io", "maintainer": "qmk", + "usb": { + "vid": "0x1209", + "pid": "0x2301", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c index 7e767852f6..613041e858 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c +++ b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c @@ -332,78 +332,13 @@ bool oled_task_user(void) { #endif +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }, + [_LOWER] = { ENCODER_CCW_CW(KC_TAB, RGB_HUI), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_HUI, RGB_HUD) }, +}; +#endif // ENCODER_MAP_ENABLE -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - // Encoder on master side - if (index == 0) { - switch (get_highest_layer(layer_state)) { - // If the Default (QWERTY) layer is active - case _QWERTY: - // Arrow Up/Down - if (clockwise) { - tap_code(KC_DOWN); - } else { - tap_code(KC_UP); - } - break; - // If the RAISE layer is active - case _RAISE: - // Switch browser tabs - if (clockwise) { - tap_code16(LCTL(KC_TAB)); - } else { - tap_code16(RCS(KC_TAB)); - } - break; - // If the ADJUST layer is active - case _ADJUST: - // RGB brightness up/down - if (clockwise) { - rgblight_decrease_val(); // tap_code(RGB_VAD); - } else { - rgblight_increase_val(); // tap_code(RGB_VAI); - } - break; - } - } - // Encoder on slave side - else if (index == 1) { - switch (get_highest_layer(layer_state)) { - // If the Default (QWERTY) layer is active - case _QWERTY: - // Scroll by Word - if (clockwise) { - tap_code16(LCTL(KC_RGHT)); - } else { - tap_code16(LCTL(KC_LEFT)); - } - break; - - // If the LOWER layer is active - case _LOWER: - // Volume up/down - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - - // If the ADJUST layer is active - case _ADJUST: - // RGB hue up/down - if (clockwise) { - // tap_code(RGB_HUI); - rgblight_increase_hue(); - } else { - // tap_code(RGB_HUD); - rgblight_decrease_hue(); - } - break; - } - } - return true; -} -#endif // ENCODER_ENABLE diff --git a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk index 5dc0c64072..75655f2bd5 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk +++ b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk @@ -7,3 +7,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow # Reduce compiled size, but will automatically disable the legacy TMK Macros and Functions features. # This does not affect QMK Macros and Layers LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes + diff --git a/keyboards/keycapsss/kimiko/keymaps/oriaj3/config.h b/keyboards/keycapsss/kimiko/keymaps/oriaj3/config.h new file mode 100644 index 0000000000..5e91a21c73 --- /dev/null +++ b/keyboards/keycapsss/kimiko/keymaps/oriaj3/config.h @@ -0,0 +1,75 @@ +/* Copyright 2019 MechMerlin + * Copyright 2020 @ben_roe (keycapsss.com) + * Copyright 2022 @oriaj3 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Select hand configuration */ +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define OLED_FONT_H "keyboards/keycapsss/kimiko/keymaps/rgb_matrix/glcdfont.c" +// #define OLED_FONT_WIDTH 5 +// #define OLED_FONT_HEIGHT 7 + + +#ifdef RGB_MATRIX_ENABLE + +// The pin connected to the data pin of the LEDs +#define RGB_DI_PIN D3 +// The number of LEDs connected +#define DRIVER_LED_TOTAL 60 +#define RGBLED_NUM 60 +#define RGB_MATRIX_SPLIT {30,30} +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_TRANSPORT_MIRROR + + +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 80 // limits maximum brightness of LEDs to 80 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 + + + +// ENABLES EFFECTS. See alls the effects -> https://github.com/samhocevar-forks/qmk-firmware/blob/master/docs/feature_rgb_matrix.md#rgb-matrix-effects +# define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 +# define ENABLE_RGB_MATRIX_BAND_SPLIT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +//# define ENABLE_RGB_MATRIX_MULTISPLASH +//# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +# define ENABLE_RGB_MATRIX_SPLASH +#endif + +// If you are using an Elite C rev3 on the slave side, uncomment the lines below: +// #define SPLIT_USB_DETECT +// #define NO_USB_STARTUP_CHECK diff --git a/keyboards/keycapsss/kimiko/keymaps/oriaj3/glcdfont.c b/keyboards/keycapsss/kimiko/keymaps/oriaj3/glcdfont.c new file mode 100644 index 0000000000..ff2f3bdcd5 --- /dev/null +++ b/keyboards/keycapsss/kimiko/keymaps/oriaj3/glcdfont.c @@ -0,0 +1,251 @@ +/* Copyright 2019 MechMerlin + * Copyright 2020 @ben_roe (keycapsss.com) + * Copyright 2022 @oriaj3 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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" + +// Corne 8x6 font +// Online editor: https://helixfonteditor.netlify.com +// or https://joric.github.io/qle/ +// See also: https://github.com/soundmonster/glcdfont_converter + +const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x13, 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, 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, + 0x1F, 0x1F, 0x0E, 0x1B, 0x11, 0xC0, + 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x06, + 0x0C, 0xC6, 0x1F, 0x1F, 0x80, 0x5F, + 0x1F, 0x00, 0x1F, 0x1F, 0x8E, 0x9B, + 0x91, 0x80, 0x9F, 0x9F, 0x91, 0x1F, + 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, 0x84, 0x87, 0x7D, 0x55, 0x57, + 0x55, 0x7D, 0x87, 0x84, 0x00, 0x91, + 0x95, 0x55, 0x55, 0x3F, 0x55, 0x55, + 0x95, 0x91, 0x00, 0x08, 0x08, 0x08, + 0x88, 0xFC, 0x0A, 0x09, 0x08, 0x08, + 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/keycapsss/kimiko/keymaps/oriaj3/keymap.c b/keyboards/keycapsss/kimiko/keymaps/oriaj3/keymap.c new file mode 100644 index 0000000000..ce5d2170ed --- /dev/null +++ b/keyboards/keycapsss/kimiko/keymaps/oriaj3/keymap.c @@ -0,0 +1,413 @@ +/* Copyright 2019 Leo Batyuk + * Copyright 2020 Drashna Jaelre <@drashna> + * Copyright 2020 @ben_roe (keycapsss.com) + * Copyright 2022 @oriaj3 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * ,--------------------------------------------. ,----------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - | + * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| + * | LShift | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |---------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------| + * | LCTRL | Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift/Enter| + * `-------------------------------------------| / \ \-----------------------------------------------' + * | LCTRL| LGUI | LALT |LOWER| Space / \Enter \ |RAISE |BackSP| RGUI | RALT | + * `----------------------------------' '------------------------------------' + */ + + [_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_GRV, + 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_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT), + KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC, KC_RGUI, KC_RALT +), +/* LOWER + * ,-------------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+------| |------+------+------+------+------+------| + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | + * |--------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | ~ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | _ | + | { | } | \ | + * `-------------------------------------------| / \ \-----------------------------------------------' + * | LCTRL| LGUI | LALT |LOWER| Space / \Enter \ |RAISE |BackSP| RGUI | RALT | + * `----------------------------------' '------------------------------------' + */ + +[_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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +/* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | + * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| + * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LCTRL| LGUI | LALT |LOWER| Space / \Enter \ |RAISE |BackSP| RGUI | RALT | + * `----------------------------------' '------------------------------------' + */ + +[_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +/* ADJUST (Press LOWER and RAISE together) + * ,-----------------------------------------. ,-----------------------------------------. + * |RESET | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |RGB ON| HUE+ | SAT+ | VAL+ | | | | PREV | PLAY | NEXT | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | MODE | HUE- | SAT- | VAL- | | |-------. ,-------| VOL+ | MUTE | VOL- | | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | | | | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * |LCTRL| LGUI | LALT |LOWER| Space / \Enter \ |RAISE |BackSP| RGUI | RALT | + * `----------------------------------' '------------------------------------' + */ + +[_ADJUST] = LAYOUT( + RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + + +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); + 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_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 corne_logo[] = { + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0}; + oled_write_P(corne_logo, false); + // oled_write_P(PSTR("Kimiko"), 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(_ADJUST)) { + oled_write_P(adjust_layer, false); + } else if(layer_state_is(_LOWER)) { + oled_write_P(lower_layer, false); + } else if(layer_state_is(_RAISE)) { + oled_write_P(raise_layer, false); + } else { + oled_write_P(default_layer, false); + } +} + +void render_status_main(void) { + render_space(); + render_space(); + render_logo(); + 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()); +} + +void render_status_secondary(void) { + render_space(); + render_space(); + render_logo(); + render_space(); +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_status_secondary(); + } + return false; +} + +#endif + + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + // Encoder on master side + if (index == 0) { + switch (get_highest_layer(layer_state)) { + // If the Default (QWERTY) layer is active + case _QWERTY: + // Arrow Up/Down + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + break; + + // If the RAISE layer is active + case _RAISE: + // Switch browser tabs + if (clockwise) { + tap_code16(LCTL(KC_TAB)); + } else { + tap_code16(RCS(KC_TAB)); + } + break; + // If the ADJUST layer is active + case _ADJUST: + // RGB brightness up/down + if (clockwise) { + rgblight_decrease_val(); // tap_code(RGB_VAD); + } else { + rgblight_increase_val(); // tap_code(RGB_VAI); + } + break; + } + } + // Encoder on slave side + else if (index == 1) { + switch (get_highest_layer(layer_state)) { + // If the Default (QWERTY) layer is active + case _QWERTY: + // Scroll by Word + if (clockwise) { + tap_code16(LCTL(KC_RGHT)); + } else { + tap_code16(LCTL(KC_LEFT)); + } + break; + + // If the LOWER layer is active + case _LOWER: + // Volume up/down + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + + // If the ADJUST layer is active + case _ADJUST: + // RGB hue up/down + if (clockwise) { + // tap_code(RGB_HUI); + rgblight_increase_hue(); + } else { + // tap_code(RGB_HUD); + rgblight_decrease_hue(); + } + break; + } + } + return false; +} +#endif // ENCODER_ENABLE + + + diff --git a/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk b/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk new file mode 100644 index 0000000000..0229490d44 --- /dev/null +++ b/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk @@ -0,0 +1,21 @@ +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 + +# LTO: Link Time Optimizations. +# Reduce compiled size, but will automatically disable the legacy TMK Macros and Functions features. +# This does not affect QMK Macros and Layers +LTO_ENABLE = yes + +#ENABLE RGB MATRIX WITH DRIVER WS2812 +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 + +#DEFINE SPLIT KEYBOARD AND SPLIT TRANSPORT MIRROR +SPLIT_KEYBOARD = yes + +#DEACTIVATED FOR MEMORY SAVING +MOUSEKEY_ENABLE = no +CONSOLE_ENABLE = no + diff --git a/keyboards/keycapsss/kimiko/kimiko.c b/keyboards/keycapsss/kimiko/kimiko.c index 6d44d45333..c35cb62544 100644 --- a/keyboards/keycapsss/kimiko/kimiko.c +++ b/keyboards/keycapsss/kimiko/kimiko.c @@ -15,3 +15,64 @@ */ #include "kimiko.h" +#ifdef RGB_MATRIX_ENABLE + +//Thanks to Ben (keycapsss) for helpipng me to create g_led_config + +// Physical LED position +// X 0 16 32 48 64 80 96 112 128 144 160 176 208 224 +// -----------------------------------------------------------| Y +// 5 4 3 2 1 0 0 1 2 3 4 5 | 0 +// 6 7 8 9 10 11 11 10 9 8 7 6 | 16 +// 17 16 15 14 13 12 12 13 14 15 16 17 | 32 +// 18 19 20 21 22 23 24 24 23 22 21 20 19 18 | 48 +// 29 28 27 26 25 25 26 27 28 29 | 64 + +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 5, 4, 3, 2, 1, 0 }, + { 6, 7, 8, 9, 10, 11 }, + { 17, 16, 15, 14, 13, 12 }, + { 18, 19, 20, 21, 22, 23 }, + { 29, 28, 27, 26, 25, 24 }, + { 35, 34, 33, 32, 31, 30 }, + { 36, 37, 38, 39, 40, 41 }, + { 47, 46, 45, 44, 43, 42 }, + { 48, 49, 50, 51, 52, 53 }, + { 59, 58, 57, 56, 55, 54 } +}, { + // LED Index to Physical Position + // Left half + { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, + { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, { 64, 16 }, { 80, 16 }, + { 80, 32 }, { 64, 32 }, { 48, 32 }, { 32, 32 }, { 16, 32 }, { 0, 32 }, + { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, + { 96, 48 }, { 96, 64 }, { 80, 64 }, { 64, 64 }, { 48, 64 }, { 32, 64 }, + // Right half + { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 208, 0 }, { 224, 0 }, + { 224, 16 }, { 208, 16 }, { 176, 16 }, { 160, 16 }, { 144, 16 }, { 128, 16 }, + { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 208, 32 }, { 224, 32 }, + { 224, 48 }, { 208, 48 }, { 176, 48 }, { 160, 48 }, { 144, 48 }, { 128, 48 }, + { 112, 48 }, { 112, 64 }, { 128, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 } + +}, { + // LED Index to Flag + // 0x01 = 1 = modifier key + // 0x02 = 2 = underglow + // 0x04 = 4 = key backlight + // 0x08 = 8 = keyboard state indication + // Left half + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 1, + 4, 4, 4, 4, 4, 1, + 4, 4, 1, 1, 1, 1, + // Right half + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, + 1, 4, 4, 4, 4, 4, + 4, 4, 1, 1, 1, 1 +} }; + +#endif // RGB_MATRIX_ENABLE \ No newline at end of file diff --git a/keyboards/keycapsss/o4l_5x12/config.h b/keyboards/keycapsss/o4l_5x12/config.h index 4b7b863906..b6eed0b04d 100644 --- a/keyboards/keycapsss/o4l_5x12/config.h +++ b/keyboards/keycapsss/o4l_5x12/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7983 -#define PRODUCT_ID 0x0512 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keycapsss -#define PRODUCT O4L:5x12 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/keycapsss/o4l_5x12/info.json b/keyboards/keycapsss/o4l_5x12/info.json index 3553ada42b..41f7732f5f 100644 --- a/keyboards/keycapsss/o4l_5x12/info.json +++ b/keyboards/keycapsss/o4l_5x12/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "O4L 5x12", + "keyboard_name": "O4L:5x12", + "manufacturer": "Keycapsss", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/keycapsss/o4l_5x12", "maintainer": "BenRoe", + "usb": { + "vid": "0x7983", + "pid": "0x0512", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c b/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c index 2f64a56e9a..050b5a2c3e 100644 --- a/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c +++ b/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c @@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_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, DEBUG, _______, _______, _______, _______, _______, _______,_______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/config.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/config.h new file mode 100644 index 0000000000..c3c10a1c2b --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/config.h @@ -0,0 +1,32 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#undef TAPPING_TERM +#define TAPPING_TERM 200 + +/* RGB Matrix Configuration */ +#ifdef RGB_MATRIX_ENABLE +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# define MAC_LAYER_DEFAULT_COLOR RGB_CYAN +# define WIN_LAYER_DEFAULT_COLOR RGB_GREEN +# define CAPS_LOCK_INDICATOR_COLOR RGB_RED +# define CAPS_LOCK_INDICATOR_LIGHT_60 +# define FN_LAYER_TRANSPARENT_KEYS_OFF +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR // Sets the default mode, if none has been set +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set +#endif diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap.c new file mode 100644 index 0000000000..366bf02eba --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap.c @@ -0,0 +1,95 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_user.h" +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix_user.h" +#endif + +// clang-format off + +enum custom_keycodes { + KC_MISSION_CONTROL = USER00, + KC_LAUNCHPAD, +}; + +#define KC_MCTL KC_MISSION_CONTROL +#define KC_LPAD KC_LAUNCHPAD +#define TG_NKRO MAGIC_TOGGLE_NKRO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_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_GRV, KC_1, KC_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_BSLS, KC_PGUP, + KC_LGMAC, KC_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_MACFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_ansi_82( + _______, 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_MACPS, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + KC_CAPS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, KC_LMAC, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_ansi_82( + KC_ESC, KC_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_GRV, KC_1, KC_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_BSLS, KC_PGUP, + KC_LGWIN, KC_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, KC_WINFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_ansi_82( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + KC_CAPS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; + +// clang-format on + +void matrix_init_user(void) { +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_init_user(); +#endif +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_MISSION_CONTROL: + if (record->event.pressed) { + host_consumer_send(0x29F); + } else { + host_consumer_send(0); + } + return false; // Skip all further processing of this key + case KC_LAUNCHPAD: + if (record->event.pressed) { + host_consumer_send(0x2A0); + } else { + host_consumer_send(0); + } + return false; // Skip all further processing of this key + default: + return true; // Process all other keycodes normally + } +} diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap_user.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap_user.h new file mode 100644 index 0000000000..57ac5258c2 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap_user.h @@ -0,0 +1,48 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// clang-format off + +enum layers { + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +// clang-format on + +// Tap dance enums +enum { + MAC_CAPS_LANGUAGE_CHANGE, + WIN_CAPS_LANGUAGE_CHANGE, +}; + +#ifdef TAP_DANCE_ENABLE +# define KC_LGMAC TD(MAC_CAPS_LANGUAGE_CHANGE) +# define KC_LGWIN TD(WIN_CAPS_LANGUAGE_CHANGE) +#else +# define KC_LGMAC KC_CAPS +# define KC_LGWIN KC_CAPS +#endif +#define KC_MACFN MO(MAC_FN) +#define KC_WINFN MO(WIN_FN) +#define KC_LMAC C(G(KC_Q)) +#define KC_MACPS G(S(KC_5)) +#define KC_TASK G(KC_TAB) +#define KC_FLXP G(KC_E) diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/readme.md b/keyboards/keychron/q1/rev_0100/keymaps/teimor/readme.md new file mode 100644 index 0000000000..9aa16f9a89 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/readme.md @@ -0,0 +1,13 @@ +# teimor's Keychron Q1 keymap + +- Via Enabled. +- Tap dance enabled. +- On macOS, F3 opens Mission Control and F4 opens Launchpad without needing to configure shortcuts in System Preferences. +- RGB lighting turns off when the computer sleeps. +- The RGB lighting for keys that are not assigned turns off when the Fn layer is active +- 60% layout turns red to indicate when Caps Lock is on. +- Windows and macOS: A single tap will quickly change the language, and holding will trigger Caps Lock. (Using Tap Dance) +- RGB Matrix based on layout - macOS base layout will turn on cyan color, Windows base layout will turn on green color. +- `fn + N` will toggle NKRO, useful when using the keyboard on freebsd. +- `fn + L` on macOS will lock the system. +- `fn + del` will trigger screenshot on macOS and Windows. diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c new file mode 100644 index 0000000000..77f1c1011b --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c @@ -0,0 +1,91 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "rgb_matrix_user.h" +#include "keymap_user.h" + +keypos_t led_index_key_position[DRIVER_LED_TOTAL]; + +void rgb_matrix_init_user(void) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + uint8_t led_index = g_led_config.matrix_co[row][col]; + if (led_index != NO_LED) { + led_index_key_position[led_index] = (keypos_t){.row = row, .col = col}; + } + } + } +} + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + uint8_t current_layer = get_highest_layer(layer_state | default_layer_state); + switch (current_layer) { + case MAC_BASE: + case WIN_BASE: +#if defined CAPS_LOCK_INDICATOR_COLOR && defined MAC_LAYER_DEFAULT_COLOR && defined WIN_LAYER_DEFAULT_COLOR + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_COLOR); + } else if (current_layer == MAC_BASE) + rgb_matrix_set_color_all(MAC_LAYER_DEFAULT_COLOR); + else if (current_layer == WIN_BASE) + rgb_matrix_set_color_all(WIN_LAYER_DEFAULT_COLOR); +#endif + break; + case MAC_FN: + case WIN_FN: +#if defined MAC_LAYER_DEFAULT_COLOR && defined WIN_LAYER_DEFAULT_COLOR + if (current_layer == MAC_FN) { + rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_not_transparent, MAC_LAYER_DEFAULT_COLOR); + } else if (current_layer == WIN_FN) { + rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_not_transparent, WIN_LAYER_DEFAULT_COLOR); + } +#endif +#ifdef FN_LAYER_TRANSPARENT_KEYS_OFF + rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_transparent, RGB_OFF); +#endif + break; + } +} + +void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue) { + for (uint8_t i = led_min; i < led_max; i++) { + uint16_t keycode = keymap_key_to_keycode(layer, led_index_key_position[i]); + if ((*is_keycode)(keycode)) { + rgb_matrix_set_color(i, red, green, blue); + } +#if defined MAC_LAYER_DEFAULT_COLOR && defined WIN_LAYER_DEFAULT_COLOR + else { + if (layer == MAC_BASE) + rgb_matrix_set_color(i, MAC_LAYER_DEFAULT_COLOR); + else if (layer == WIN_BASE) + rgb_matrix_set_color(i, WIN_LAYER_DEFAULT_COLOR); + } +#endif + } +} + +bool is_caps_lock_indicator(uint16_t keycode) { + bool indicator = keycode == KC_CAPS || keycode == KC_LGMAC || keycode == KC_LGWIN; +#ifdef CAPS_LOCK_INDICATOR_LIGHT_60 + return (KC_A <= keycode && keycode <= KC_CAPS) || (KC_LEFT_CTRL <= keycode && keycode <= KC_RIGHT_GUI) || keycode == KC_MACFN || keycode == KC_WINFN || indicator; +#else + return indicator; +#endif +} + +bool is_transparent(uint16_t keycode) { return keycode == KC_TRNS; } +bool is_not_transparent(uint16_t keycode) { return keycode != KC_TRNS; } diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.h new file mode 100644 index 0000000000..5b53b5b8ec --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.h @@ -0,0 +1,25 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +void rgb_matrix_init_user(void); + +void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue); + +bool is_caps_lock_indicator(uint16_t keycode); +bool is_transparent(uint16_t keycode); +bool is_not_transparent(uint16_t keycode); diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/rules.mk b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rules.mk new file mode 100644 index 0000000000..bafb40484b --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rules.mk @@ -0,0 +1,14 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = no +TAP_DANCE_ENABLE = yes + +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + SRC += rgb_matrix_user.c +endif + +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + SRC += tap_dance_user.c + SRC += tap_dance_setup.c + SRC += tap_dance_mac_caps.c + SRC += tap_dance_win_caps.c +endif diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.c new file mode 100644 index 0000000000..d979820923 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.c @@ -0,0 +1,50 @@ +/* Copyright 2021 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* macOS CapsLock language change */ +#include "tap_dance_mac_caps.h" + +static td_tap_t mac_caps_language_tap_state = {.is_press_action = true, .state = TD_NONE}; + +void mac_caps_language_finished(qk_tap_dance_state_t *state, void *user_data) { + mac_caps_language_tap_state.state = current_dance(state); + switch (mac_caps_language_tap_state.state) { + case TD_SINGLE_TAP: + register_code(KC_LCTL); + register_code(KC_SPACE); + break; + case TD_SINGLE_HOLD: + register_code(KC_CAPS_LOCK); + break; + default: + break; + } +} + +void mac_caps_language_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (mac_caps_language_tap_state.state) { + case TD_SINGLE_TAP: + unregister_code(KC_SPACE); + unregister_code(KC_LCTL); + break; + case TD_SINGLE_HOLD: + unregister_code(KC_CAPS_LOCK); + break; + default: + break; + } + mac_caps_language_tap_state.state = TD_NONE; +} diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.h new file mode 100644 index 0000000000..a5f07a58a1 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.h @@ -0,0 +1,23 @@ +/* Copyright 2021 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* macOS CapsLock language change */ +#pragma once + +#include "tap_dance_setup.h" + +void mac_caps_language_finished(qk_tap_dance_state_t *state, void *user_data); +void mac_caps_language_reset(qk_tap_dance_state_t *state, void *user_data); diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.c new file mode 100644 index 0000000000..6d879419bc --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.c @@ -0,0 +1,49 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public 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_setup.h" + +td_state_t current_dance(qk_tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) return TD_SINGLE_TAP; + /* Key has not been interrupted, but the key is still held. Means you w ant to send a 'HOLD'. */ + else + return TD_SINGLE_HOLD; + } else if (state->count == 2) { + /* TD_DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap + action when hitting 'pp'. Suggested use case for this return value is when you want to send two + keystrokes of the key, and not the 'double tap' action/macro. */ + if (state->interrupted) + return TD_DOUBLE_SINGLE_TAP; + else if (state->pressed) + return TD_DOUBLE_HOLD; + else + return TD_DOUBLE_TAP; + } + + /* Assumes no one is trying to type the same letter three times (at least not quickly). + If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add + an exception here to return a 'TD_TRIPLE_SINGLE_TAP', and define that enum just like 'TD_DOUBLE_SINGLE_TAP' */ + if (state->count == 3) { + if (state->interrupted) + return TD_TRIPLE_SINGLE_TAP; + else if (state->pressed) + return TD_TRIPLE_HOLD; + else + return TD_TRIPLE_TAP; + + } else + return TD_UNKNOWN; +} diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.h new file mode 100644 index 0000000000..05160c77f5 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.h @@ -0,0 +1,38 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 + +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP, + TD_DOUBLE_HOLD, + TD_DOUBLE_SINGLE_TAP, // Send two single taps + TD_TRIPLE_TAP, + TD_TRIPLE_HOLD, + TD_TRIPLE_SINGLE_TAP // Send three single tap +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +td_state_t current_dance(qk_tap_dance_state_t *state); diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_user.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_user.c new file mode 100644 index 0000000000..1e9542d5ee --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_user.c @@ -0,0 +1,28 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keymap_user.h" +#include "tap_dance_mac_caps.h" +#include "tap_dance_win_caps.h" + +// clang-format off + +qk_tap_dance_action_t tap_dance_actions[] = { + [MAC_CAPS_LANGUAGE_CHANGE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, mac_caps_language_finished, mac_caps_language_reset), + [WIN_CAPS_LANGUAGE_CHANGE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, win_caps_language_finished, win_caps_language_reset) +}; + +// clang-format on diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.c new file mode 100644 index 0000000000..fea72c5663 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.c @@ -0,0 +1,50 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* Windows CapsLock language change */ +#include "tap_dance_win_caps.h" + +static td_tap_t win_caps_language_tap_state = {.is_press_action = true, .state = TD_NONE}; + +void win_caps_language_finished(qk_tap_dance_state_t *state, void *user_data) { + win_caps_language_tap_state.state = current_dance(state); + switch (win_caps_language_tap_state.state) { + case TD_SINGLE_TAP: + register_code(KC_LGUI); + register_code(KC_SPACE); + break; + case TD_SINGLE_HOLD: + register_code(KC_CAPS_LOCK); + break; + default: + break; + } +} + +void win_caps_language_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (win_caps_language_tap_state.state) { + case TD_SINGLE_TAP: + unregister_code(KC_SPACE); + unregister_code(KC_LGUI); + break; + case TD_SINGLE_HOLD: + unregister_code(KC_CAPS_LOCK); + break; + default: + break; + } + win_caps_language_tap_state.state = TD_NONE; +} diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.h b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.h new file mode 100644 index 0000000000..34b734ec89 --- /dev/null +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.h @@ -0,0 +1,23 @@ +/* Copyright 2022 @ Teimor Epstein + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* Windows CapsLock language change */ +#pragma once + +#include "tap_dance_setup.h" + +void win_caps_language_finished(qk_tap_dance_state_t *state, void *user_data); +void win_caps_language_reset(qk_tap_dance_state_t *state, void *user_data); diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index e513536056..d019bcee15 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -64,8 +64,7 @@ #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 /* EEPROM Driver Configuration */ -#define WEAR_LEVELING_LOGICAL_SIZE 2048 -#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) +#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100010 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/keychron/q2/rev_0110/rules.mk b/keyboards/keychron/q2/rev_0110/rules.mk index 38d48f0b27..30394028b3 100644 --- a/keyboards/keychron/q2/rev_0110/rules.mk +++ b/keyboards/keychron/q2/rev_0110/rules.mk @@ -20,8 +20,7 @@ ENCODER_ENABLE = no # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = CKLED2001 -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash +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/keychron/q2/rev_0111/rules.mk b/keyboards/keychron/q2/rev_0111/rules.mk index 9332d29432..a295f48e10 100644 --- a/keyboards/keychron/q2/rev_0111/rules.mk +++ b/keyboards/keychron/q2/rev_0111/rules.mk @@ -20,8 +20,7 @@ ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = CKLED2001 -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash +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/keychron/q2/rev_0112/rules.mk b/keyboards/keychron/q2/rev_0112/rules.mk index 38d48f0b27..30394028b3 100644 --- a/keyboards/keychron/q2/rev_0112/rules.mk +++ b/keyboards/keychron/q2/rev_0112/rules.mk @@ -20,8 +20,7 @@ ENCODER_ENABLE = no # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = CKLED2001 -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash +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/keychron/q2/rev_0113/rules.mk b/keyboards/keychron/q2/rev_0113/rules.mk index 9332d29432..a295f48e10 100644 --- a/keyboards/keychron/q2/rev_0113/rules.mk +++ b/keyboards/keychron/q2/rev_0113/rules.mk @@ -20,8 +20,7 @@ ENCODER_ENABLE = yes # Enable Encoder DIP_SWITCH_ENABLE = yes RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = CKLED2001 -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = embedded_flash +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/keyhive/absinthe/config.h b/keyboards/keyhive/absinthe/config.h index d6acd350cc..3ea0cf83d1 100644 --- a/keyboards/keyhive/absinthe/config.h +++ b/keyboards/keyhive/absinthe/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xB00B -#define PRODUCT_ID 0xFEED -#define DEVICE_VER 0x0001 -#define MANUFACTURER cfbender -#define PRODUCT absinthe - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 9 diff --git a/keyboards/keyhive/absinthe/info.json b/keyboards/keyhive/absinthe/info.json index f92e9e10ee..ed20471a3e 100644 --- a/keyboards/keyhive/absinthe/info.json +++ b/keyboards/keyhive/absinthe/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "absinthe", + "manufacturer": "cfbender", "url": "https://github.com/cfbender/keyboards/tree/master/absinthe", "maintainer": "cfbender", + "usb": { + "vid": "0xB00B", + "pid": "0xFEED", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/keyhive/ergosaurus/config.h b/keyboards/keyhive/ergosaurus/config.h index 41f9a09311..25c01a4c00 100644 --- a/keyboards/keyhive/ergosaurus/config.h +++ b/keyboards/keyhive/ergosaurus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x434B -#define PRODUCT_ID 0xE590 -#define DEVICE_VER 0x0001 -#define MANUFACTURER reggalicious -#define PRODUCT ergosaurus - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 8 diff --git a/keyboards/keyhive/ergosaurus/info.json b/keyboards/keyhive/ergosaurus/info.json index 8048896be2..dba344f15c 100644 --- a/keyboards/keyhive/ergosaurus/info.json +++ b/keyboards/keyhive/ergosaurus/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Ergosaurus", + "manufacturer": "reggalicious", "maintainer": "cfbender", + "usb": { + "vid": "0x434B", + "pid": "0xE590", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/keyhive/honeycomb/config.h b/keyboards/keyhive/honeycomb/config.h index 6780c2d41b..979d41f108 100755 --- a/keyboards/keyhive/honeycomb/config.h +++ b/keyboards/keyhive/honeycomb/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xACC8 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keyhive -#define PRODUCT Honeycomb Macropad - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 16 diff --git a/keyboards/keyhive/honeycomb/info.json b/keyboards/keyhive/honeycomb/info.json index b11ece332b..e4be081425 100644 --- a/keyboards/keyhive/honeycomb/info.json +++ b/keyboards/keyhive/honeycomb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Honeycomb", + "manufacturer": "Keyhive", "url": "", "maintainer": "filoxo", + "usb": { + "vid": "0xFEED", + "pid": "0xACC8", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyhive/honeycomb/keymaps/default/keymap.c b/keyboards/keyhive/honeycomb/keymaps/default/keymap.c index 429624822e..d0a5961873 100755 --- a/keyboards/keyhive/honeycomb/keymaps/default/keymap.c +++ b/keyboards/keyhive/honeycomb/keymaps/default/keymap.c @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { report_mouse_t currentReport = {}; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - //uint8_t layer = get_highest_layer(layer_state); // get the current layer + //uint8_t layer = biton32(layer_state); // get the current layer // Basic example functions switch (keycode) { diff --git a/keyboards/keyhive/lattice60/config.h b/keyboards/keyhive/lattice60/config.h index c1e067287b..c2d346bc61 100644 --- a/keyboards/keyhive/lattice60/config.h +++ b/keyboards/keyhive/lattice60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x16C0 -#define PRODUCT_ID 0x27DB -#define DEVICE_VER 0x0001 -#define MANUFACTURER emdarcher -#define PRODUCT LATTICE60 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/keyhive/lattice60/info.json b/keyboards/keyhive/lattice60/info.json index 824884ecbd..e7d22d1a77 100644 --- a/keyboards/keyhive/lattice60/info.json +++ b/keyboards/keyhive/lattice60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "lattice60", + "keyboard_name": "LATTICE60", + "manufacturer": "emdarcher", "url": "", "maintainer": "emdarcher", + "usb": { + "vid": "0x16C0", + "pid": "0x27DB", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/keyhive/maypad/config.h b/keyboards/keyhive/maypad/config.h index b85053888f..d7bc4b4200 100644 --- a/keyboards/keyhive/maypad/config.h +++ b/keyboards/keyhive/maypad/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B48 //KH for Keyhive -#define PRODUCT_ID 0x4D50 // MP -#define DEVICE_VER 0x0001 -#define MANUFACTURER KeyHive -#define PRODUCT maypad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/keyhive/maypad/info.json b/keyboards/keyhive/maypad/info.json index 91a3eeeb09..3001bae5b5 100644 --- a/keyboards/keyhive/maypad/info.json +++ b/keyboards/keyhive/maypad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "maypad", + "manufacturer": "KeyHive", "url": "https://keyhive.xyz/shop/may-pad", "maintainer": "codybender", + "usb": { + "vid": "0x4B48", + "pid": "0x4D50", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}] diff --git a/keyboards/keyhive/navi10/keymaps/default/keymap.c b/keyboards/keyhive/navi10/keymaps/default/keymap.c index c4295b1553..d1b3127760 100644 --- a/keyboards/keyhive/navi10/keymaps/default/keymap.c +++ b/keyboards/keyhive/navi10/keymaps/default/keymap.c @@ -127,5 +127,5 @@ void tk_reset(qk_tap_dance_state_t *state, void *user_data){ //associate the tap dance key with its functionality qk_tap_dance_action_t tap_dance_actions[] = { - [TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tk_finished, tk_reset) + [TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, tk_finished, tk_reset, 275) }; diff --git a/keyboards/keyhive/navi10/keymaps/devdev/keymap.c b/keyboards/keyhive/navi10/keymaps/devdev/keymap.c index 0fc20cbbd4..b0d43ebc69 100644 --- a/keyboards/keyhive/navi10/keymaps/devdev/keymap.c +++ b/keyboards/keyhive/navi10/keymaps/devdev/keymap.c @@ -259,5 +259,5 @@ void tk_reset(qk_tap_dance_state_t *state, void *user_data){ //associate the tap dance key with its functionality qk_tap_dance_action_t tap_dance_actions[] = { - [TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tk_finished, tk_reset) + [TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, tk_finished, tk_reset, TAPPING_TERM) }; diff --git a/keyboards/keyhive/navi10/keymaps/emdarcher/keymap.c b/keyboards/keyhive/navi10/keymaps/emdarcher/keymap.c index 37850e28f3..40efed48d5 100644 --- a/keyboards/keyhive/navi10/keymaps/emdarcher/keymap.c +++ b/keyboards/keyhive/navi10/keymaps/emdarcher/keymap.c @@ -178,5 +178,5 @@ void tk_reset(qk_tap_dance_state_t *state, void *user_data){ //associate the tap dance key with its functionality qk_tap_dance_action_t tap_dance_actions[] = { - [TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tk_finished, tk_reset) + [TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, tk_finished, tk_reset, 275) }; diff --git a/keyboards/keyhive/opus/config.h b/keyboards/keyhive/opus/config.h index 52ed10bc5a..e5ea2a2d94 100644 --- a/keyboards/keyhive/opus/config.h +++ b/keyboards/keyhive/opus/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x434B -#define PRODUCT_ID 0x4F50 -#define DEVICE_VER 0x0001 -#define MANUFACTURER rtwayland -#define PRODUCT Opus - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/keyhive/opus/info.json b/keyboards/keyhive/opus/info.json index 1b2da11367..422ede053f 100644 --- a/keyboards/keyhive/opus/info.json +++ b/keyboards/keyhive/opus/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "opus", + "keyboard_name": "Opus", + "manufacturer": "rtwayland", "maintainer": "rtwayland", + "usb": { + "vid": "0x434B", + "pid": "0x4F50", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyhive/smallice/config.h b/keyboards/keyhive/smallice/config.h index 5ebafba42d..aa94a5045a 100644 --- a/keyboards/keyhive/smallice/config.h +++ b/keyboards/keyhive/smallice/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x514B // QK Quark -#define PRODUCT_ID 0x5341 // SA smAllice -#define DEVICE_VER 0x0001 -#define MANUFACTURER quark -#define PRODUCT smAllice - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 15 diff --git a/keyboards/keyhive/smallice/info.json b/keyboards/keyhive/smallice/info.json index 24ce4cce22..5eb8d0a42d 100644 --- a/keyboards/keyhive/smallice/info.json +++ b/keyboards/keyhive/smallice/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "smAllice", + "manufacturer": "quark", "url": "https://keyhive.xyz/shop/smallice", "maintainer": "https://github.com/Armastardo", + "usb": { + "vid": "0x514B", + "pid": "0x5341", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"V+", "x":0.5, "y":0}, {"label":"Tab", "x":1.75, "y":0}, {"label":"Q", "x":2.75, "y":0}, {"label":"W", "x":3.75, "y":0}, {"label":"E", "x":4.75, "y":0}, {"label":"R", "x":5.75, "y":0}, {"label":"T", "x":6.75, "y":0}, {"label":"Y", "x":8.25, "y":0}, {"label":"U", "x":9.25, "y":0}, {"label":"I", "x":10.25, "y":0}, {"label":"O", "x":11.25, "y":0}, {"label":"P", "x":12.25, "y":0}, {"label":"[ {", "x":13.25, "y":0}, {"label":"] }", "x":14.25, "y":0}, {"label":"Bcsp", "x":15.25, "y":0}, {"label":"V-", "x":0.25, "y":1}, {"label":"Caps", "x":1.5, "y":1, "w":1.25}, {"label":"A", "x":2.75, "y":1}, {"label":"S", "x":3.75, "y":1}, {"label":"D", "x":4.75, "y":1}, {"label":"F", "x":5.75, "y":1}, {"label":"G", "x":6.75, "y":1}, {"label":"H", "x":8.75, "y":1}, {"label":"J", "x":9.75, "y":1}, {"label":"K", "x":10.75, "y":1}, {"label":"L", "x":11.75, "y":1}, {"label":": ;", "x":12.75, "y":1}, {"label":", \"", "x":13.75, "y":1}, {"label":"Enter", "x":14.75, "y":1, "w":1.75}, {"label":"V-", "x":0, "y":2}, {"label":"Shift", "x":1.25, "y":2, "w":1.75}, {"label":"Z", "x":3, "y":2}, {"label":"X", "x":4, "y":2}, {"label":"C", "x":5, "y":2}, {"label":"V", "x":6, "y":2}, {"label":"B", "x":7, "y":2}, {"label":"B", "x":8.5, "y":2}, {"label":"N", "x":9.5, "y":2}, {"label":"M", "x":10.5, "y":2}, {"label":"<", "x":11.5, "y":2}, {"label":">", "x":12.5, "y":2}, {"label":"Shift", "x":13.5, "y":2, "w":1.25}, {"label":"Up", "x":14.75, "y":2}, {"label":"?", "x":15.75, "y":2}, {"label":"Ctrl", "x":1.25, "y":3}, {"label":"Alt", "x":3, "y":3, "w":1.25}, {"x":4.25, "y":3, "w":2}, {"label":"Win", "x":6.25, "y":3}, {"x":9.5, "y":3, "w":2.75}, {"label":"Fn", "x":12.25, "y":3}, {"label":"left", "x":13.75, "y":3}, {"label":"down", "x":14.75, "y":3}, {"label":"right", "x":15.75, "y":3}] diff --git a/keyboards/keyhive/southpole/config.h b/keyboards/keyhive/southpole/config.h index 5603829c47..044a60dfed 100644 --- a/keyboards/keyhive/southpole/config.h +++ b/keyboards/keyhive/southpole/config.h @@ -2,13 +2,6 @@ //#include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER u/waxpoetic -#define PRODUCT southpole - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 20 diff --git a/keyboards/keyhive/southpole/info.json b/keyboards/keyhive/southpole/info.json index 9781fd35ab..1091c51911 100644 --- a/keyboards/keyhive/southpole/info.json +++ b/keyboards/keyhive/southpole/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "southpole", + "manufacturer": "u/waxpoetic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyhive/ut472/config.h b/keyboards/keyhive/ut472/config.h index dc8f7f7555..98210f5f9c 100644 --- a/keyboards/keyhive/ut472/config.h +++ b/keyboards/keyhive/ut472/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0472 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Keyhive -#define PRODUCT UT47.2 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/keyhive/ut472/info.json b/keyboards/keyhive/ut472/info.json index fe60c5b7f7..e1ea825650 100644 --- a/keyboards/keyhive/ut472/info.json +++ b/keyboards/keyhive/ut472/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "UT47.2", + "manufacturer": "Keyhive", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xA103", + "pid": "0x0472", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Backspace", "x":11, "y":0, "w":1.5}, {"label":"LT(3) / Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"\"", "x":11.25, "y":1, "w":1.25}, {"label":"Shift", "x":0, "y":2, "w":1.5}, {"label":"Z", "x":1.5, "y":2}, {"label":"X", "x":2.5, "y":2}, {"label":"C", "x":3.5, "y":2}, {"label":"V", "x":4.5, "y":2}, {"label":"B", "x":5.5, "y":2}, {"label":"N", "x":6.5, "y":2}, {"label":"M", "x":7.5, "y":2}, {"label":"<", "x":8.5, "y":2}, {"label":">", "x":9.5, "y":2}, {"label":"?", "x":10.5, "y":2}, {"label":"Shift / Enter", "x":11.5, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Alt", "x":1, "y":3}, {"label":"GUI", "x":2, "y":3}, {"label":"Menu", "x":3, "y":3}, {"label":"MO(2)", "x":4, "y":3, "w":1.25}, {"x":5.25, "y":3, "w":2}, {"label":"MO(1)", "x":7.25, "y":3, "w":1.25}, {"label":"\u2190", "x":8.5, "y":3}, {"label":"\u2193", "x":9.5, "y":3}, {"label":"\u2191", "x":10.5, "y":3}, {"label":"\u2192", "x":11.5, "y":3}] diff --git a/keyboards/keyhive/ut472/keymaps/gardego5/keymap.c b/keyboards/keyhive/ut472/keymaps/gardego5/keymap.c new file mode 100644 index 0000000000..d72d4aa364 --- /dev/null +++ b/keyboards/keyhive/ut472/keymaps/gardego5/keymap.c @@ -0,0 +1,116 @@ +/* Copyright 2022 Garrett Davis (@Gardego5) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +/* This controls special press and hold keys. + * Maps right arrow to F15 when held, to be used for push to talk. + */ +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LT(0, KC_RIGHT): + if (!record->tap.count) { + if (record->event.pressed) { + register_code16(KC_F15); + } else { + unregister_code16(KC_F15); + } + return false; + } + return true; + } + + return true; +} + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * ,-------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P |Bspace | + * |-------------------------------------------------------------------------+ + * | Tab | A | S | D | F | G | H | J | K | L | ; |Sh/Ent| + * |-------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | ' | + * |-------------------------------------------------------------------------+ + * | Ctrl| Alt | L3 | Gui | L2 | Space | L1 | Left| Down| Up|Rt/F15| + * `-------------------------------------------------------------------------' + */ + +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_SFTENT, +KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_QUOT, +KC_LCTL, KC_LALT, MO(3) , KC_LGUI, MO(2) , KC_SPC , MO(1) , KC_LEFT, KC_DOWN, KC_UP , LT(0, KC_RIGHT) +), + + /* FN Layer 1 + * ,-------------------------------------------------------------------------. + * | ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Delete| + * |-------------------------------------------------------------------------+ + * | Tab | < | > | ( | ) | | | - | = | [ | ] |Sh/Ent| + * |-------------------------------------------------------------------------+ + * | Shift | | | | | | | | , | . | \ |Caps | + * |-------------------------------------------------------------------------+ + * | Ctrl| Alt | L3 | Gui | L2 | Space | L1 | Home| PgDn| PgUp| End | + * `-------------------------------------------------------------------------' + */ + +LAYOUT( /* Right */ +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_TRNS, KC_LT , KC_GT , KC_LPRN, KC_RPRN, KC_NO , KC_NO , KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_TRNS, +KC_TRNS, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, KC_TRNS, KC_BSLS, KC_CAPS, +KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + + /* FN Layer 2 + * ,-------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------------------------------------------------------------------------+ + * | Tab | | Mute| Vol-| Vol+| | | Left| Down| Up |Right|Sh/Ent| + * |-------------------------------------------------------------------------+ + * | Shift | |Med<<|Pause|Med>>| | | |LMous|RMous| | | + * |-------------------------------------------------------------------------+ + * | Ctrl| Alt | L3 | Gui | L2 | Space | L1 |Mous| + * `-------------------------------------------------------------------------' + */ + +LAYOUT( /* Left */ +KC_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_NO , KC_MUTE, KC_VOLD, KC_VOLU, KC_NO , KC_NO , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_TRNS, +KC_TRNS, KC_NO , KC_MPRV, KC_MPLY, KC_MNXT, KC_NO , KC_NO , KC_NO , KC_BTN1, KC_BTN2, KC_NO , KC_NO , +KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R +), + + /* FN Layer 3 + * ,-------------------------------------------------------------------------. + * | Esc | RGB | RGB | | | |#Lock| 7 | 8 | 9 | |Bspace | + * |-------------------------------------------------------------------------+ + * | Tab | / | * | - | + | = | | 4 | 5 | 6 | |Sh/Ent| + * |-------------------------------------------------------------------------+ + * | Shift | | | | | | | 1 | 2 | 3 | Up | | + * |-------------------------------------------------------------------------+ + * | Ctrl| Alt | L3 | Gui | L2 | Space | 0 | . | Left| Down|Right| + * `-------------------------------------------------------------------------' + */ + +LAYOUT( /* 3 */ +KC_ESC , RGB_TOG, RGB_MOD, KC_NO , KC_NO , KC_NO , KC_NLCK, KC_P7 , KC_P8 , KC_P9 , KC_NO , KC_BSPC, +KC_TRNS, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PEQL, KC_NO , KC_P4 , KC_P5 , KC_P6 , KC_NO , KC_TRNS, +KC_TRNS, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_P1 , KC_P2 , KC_P3 , KC_UP , KC_NO , +KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_P0 , KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT +), +}; diff --git a/keyboards/keyhive/ut472/keymaps/gardego5/readme.md b/keyboards/keyhive/ut472/keymaps/gardego5/readme.md new file mode 100644 index 0000000000..44655ba346 --- /dev/null +++ b/keyboards/keyhive/ut472/keymaps/gardego5/readme.md @@ -0,0 +1,5 @@ +# Gardego5's modified layout + +![layout image](https://i.imgur.com/eM6YHcY.jpeg) + +This layout is designed to be familiar coming from a full-sized keyboard, if you like vim movement keys. Has (hopefully) friendly media keys, and F15 in the bottom right when held, so that you can bind F15 to push to talk. diff --git a/keyboards/keyprez/bison/config.h b/keyboards/keyprez/bison/config.h index b98cbc1be1..727d5fc105 100644 --- a/keyboards/keyprez/bison/config.h +++ b/keyboards/keyprez/bison/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER csandven -#define PRODUCT bison - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/keyprez/bison/info.json b/keyboards/keyprez/bison/info.json index 66a9755946..36aeb27a10 100644 --- a/keyboards/keyprez/bison/info.json +++ b/keyboards/keyprez/bison/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "bison", + "manufacturer": "csandven", "url": "", "maintainer": "Christian Sandven", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyprez/corgi/config.h b/keyboards/keyprez/corgi/config.h index a3ebf2747f..96ce6b0d62 100644 --- a/keyboards/keyprez/corgi/config.h +++ b/keyboards/keyprez/corgi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Christian Sandven -#define PRODUCT corgi - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 7 diff --git a/keyboards/keyprez/corgi/info.json b/keyboards/keyprez/corgi/info.json index 04d89e6b1b..f2b9c8f722 100644 --- a/keyboards/keyprez/corgi/info.json +++ b/keyboards/keyprez/corgi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "corgi", + "manufacturer": "Christian Sandven", "url": "", "maintainer": "Christian Sandven", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyprez/rhino/config.h b/keyboards/keyprez/rhino/config.h index 54077ac939..16782aad01 100644 --- a/keyboards/keyprez/rhino/config.h +++ b/keyboards/keyprez/rhino/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Christian Sandven -#define PRODUCT rhino - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 7 diff --git a/keyboards/keyprez/rhino/info.json b/keyboards/keyprez/rhino/info.json index fbe403fc35..1ad313854d 100644 --- a/keyboards/keyprez/rhino/info.json +++ b/keyboards/keyprez/rhino/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "rhino", + "manufacturer": "Christian Sandven", "url": "", "maintainer": "Christian Sandven", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_2x2u": { "layout": [ diff --git a/keyboards/keyprez/unicorn/config.h b/keyboards/keyprez/unicorn/config.h index 44eadb5bfb..57333658d8 100644 --- a/keyboards/keyprez/unicorn/config.h +++ b/keyboards/keyprez/unicorn/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6B7A -#define PRODUCT_ID 0x7563 -#define DEVICE_VER 0x0001 -#define MANUFACTURER keyprez -#define PRODUCT unicorn - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 8 diff --git a/keyboards/keyprez/unicorn/info.json b/keyboards/keyprez/unicorn/info.json index ff14396f2a..90a81b8cc8 100644 --- a/keyboards/keyprez/unicorn/info.json +++ b/keyboards/keyprez/unicorn/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Unicorn", + "manufacturer": "Keyprez", "url": "", "maintainer": "Keyprez", + "usb": { + "vid": "0x6B7A", + "pid": "0x7563", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keysofkings/twokey/config.h b/keyboards/keysofkings/twokey/config.h index 29612187f8..99f523df2b 100755 --- a/keyboards/keysofkings/twokey/config.h +++ b/keyboards/keysofkings/twokey/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xAE12 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keys of Kings -#define PRODUCT Twokey - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 2 diff --git a/keyboards/keysofkings/twokey/info.json b/keyboards/keysofkings/twokey/info.json index 979a8e2fc1..cf1d79d250 100644 --- a/keyboards/keysofkings/twokey/info.json +++ b/keyboards/keysofkings/twokey/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Twokey", + "manufacturer": "Keys of Kings", "url": "", "maintainer": "Keys of Kings", + "usb": { + "vid": "0xFEED", + "pid": "0xAE12", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keystonecaps/gameroyadvance/config.h b/keyboards/keystonecaps/gameroyadvance/config.h index cce7904b91..b8d5a69122 100644 --- a/keyboards/keystonecaps/gameroyadvance/config.h +++ b/keyboards/keystonecaps/gameroyadvance/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Keystone Caps -#define PRODUCT Game Roy ADVANCE - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/keystonecaps/gameroyadvance/info.json b/keyboards/keystonecaps/gameroyadvance/info.json index f907de9326..33e62ed20c 100644 --- a/keyboards/keystonecaps/gameroyadvance/info.json +++ b/keyboards/keystonecaps/gameroyadvance/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Game Roy ADVANCE", - "maintainer": "@RoyMeetsWorld", + "manufacturer": "Keystone Caps", "url": "https://keystonecaps.store/?product=game-roy-advance-game-pad-group-buy-preorder", + "maintainer": "@RoyMeetsWorld", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/keyten/kt60_m/config.h b/keyboards/keyten/kt60_m/config.h index 74378e7d23..1e0961ce4f 100644 --- a/keyboards/keyten/kt60_m/config.h +++ b/keyboards/keyten/kt60_m/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEB69 -#define PRODUCT_ID 0x6001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER keyten -#define PRODUCT kt60-M - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/keyten/kt60_m/info.json b/keyboards/keyten/kt60_m/info.json index 7aa30e6251..ddcf445a8d 100644 --- a/keyboards/keyten/kt60_m/info.json +++ b/keyboards/keyten/kt60_m/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "kt60-M", + "manufacturer": "keyten", "url": "", "maintainer": "key10iq", + "usb": { + "vid": "0xEB69", + "pid": "0x6001", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_60_tsangan_hhkb" }, diff --git a/keyboards/kikkou/config.h b/keyboards/kikkou/config.h index 586c8e9661..06b9cb3923 100644 --- a/keyboards/kikkou/config.h +++ b/keyboards/kikkou/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D65 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechwerkes -#define PRODUCT Kikkou - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kikkou/info.json b/keyboards/kikkou/info.json index 33b20030e3..1703a71e43 100644 --- a/keyboards/kikkou/info.json +++ b/keyboards/kikkou/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kikkou", + "manufacturer": "Mechwerkes", "url": "", "maintainer": "Mechwerkes", + "usb": { + "vid": "0x6D65", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0, "w":2}, {"label":"0,14", "x":15, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"1,14", "x":15, "y":1}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,13", "x":12.75, "y":2, "w":2.25}, {"label":"2,14", "x":15, "y":2}, {"label":"3,0", "x":0, "y":3, "w":2.25}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"3,14", "x":15, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,10", "x":10, "y":4, "w":1.25}, {"label":"4,11", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}] diff --git a/keyboards/kikoslab/ellora65/config.h b/keyboards/kikoslab/ellora65/config.h index e3f7452f41..d458250ad1 100644 --- a/keyboards/kikoslab/ellora65/config.h +++ b/keyboards/kikoslab/ellora65/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE88F -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kikos Lab -#define PRODUCT Ellora65 /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/kikoslab/ellora65/info.json b/keyboards/kikoslab/ellora65/info.json index 2d6b676098..f4bdb9ee00 100644 --- a/keyboards/kikoslab/ellora65/info.json +++ b/keyboards/kikoslab/ellora65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ellora65", + "manufacturer": "Kikos Lab", "url": "https://github.com/swiftrax", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE88F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kikoslab/kl90/config.h b/keyboards/kikoslab/kl90/config.h index b0d983f181..dee2bf8516 100644 --- a/keyboards/kikoslab/kl90/config.h +++ b/keyboards/kikoslab/kl90/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEA53 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kikos Lab -#define PRODUCT KL90 /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/kikoslab/kl90/info.json b/keyboards/kikoslab/kl90/info.json index 1354469367..15f573d7db 100644 --- a/keyboards/kikoslab/kl90/info.json +++ b/keyboards/kikoslab/kl90/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "KL-90", + "manufacturer": "Kikos Lab", "url": "www.kikoslab.com", "maintainer": "swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xEA53", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kin80/blackpill401/rules.mk b/keyboards/kin80/blackpill401/rules.mk index 264e71d0b5..1fec226e9b 100644 --- a/keyboards/kin80/blackpill401/rules.mk +++ b/keyboards/kin80/blackpill401/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/kin80/blackpill411/rules.mk b/keyboards/kin80/blackpill411/rules.mk index 75bc794ef0..cd1657335d 100644 --- a/keyboards/kin80/blackpill411/rules.mk +++ b/keyboards/kin80/blackpill411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/kin80/info.json b/keyboards/kin80/info.json index f599382d3d..a8d846340e 100644 --- a/keyboards/kin80/info.json +++ b/keyboards/kin80/info.json @@ -1,6 +1,6 @@ { - "keyboard_name": "Kin80", - "url": "https://github.com/DmNosachev/kinesis80", + "keyboard_name": "Kin80", + "url": "https://github.com/DmNosachev/kinesis80", "maintainer": "DmNosachev", "usb": { "vid": "0xFEED", @@ -10,10 +10,192 @@ "diode_direction": "COL2ROW", "layouts": { "LAYOUT": { - "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":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":0, "y":1.25, "w":1.25}, {"x":1.25, "y":1.25}, {"x":2.25, "y":1.25}, {"x":3.25, "y":1.25}, {"x":4.25, "y":1.25}, {"x":5.25, "y":1.25}, {"x":11.25, "y":1.25}, {"x":12.25, "y":1.25}, {"x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25, "w":1.25}, {"x":0, "y":2.25, "w":1.25}, {"x":1.25, "y":2.25}, {"x":2.25, "y":2.25}, {"x":3.25, "y":2.25}, {"x":4.25, "y":2.25}, {"x":5.25, "y":2.25}, {"x":11.25, "y":2.25}, {"x":12.25, "y":2.25}, {"x":13.25, "y":2.25}, {"x":14.25, "y":2.25}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25, "w":1.25}, {"x":0, "y":3.25, "w":1.25}, {"x":1.25, "y":3.25}, {"x":2.25, "y":3.25}, {"x":3.25, "y":3.25}, {"x":4.25, "y":3.25}, {"x":5.25, "y":3.25}, {"x":11.25, "y":3.25}, {"x":12.25, "y":3.25}, {"x":13.25, "y":3.25}, {"x":14.25, "y":3.25}, {"x":15.25, "y":3.25}, {"x":16.25, "y":3.25, "w":1.25}, {"x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25}, {"x":13.25, "y":4.25}, {"x":14.25, "y":4.25}, {"x":15.25, "y":4.25}, {"x":16.25, "y":4.25, "w":1.25}, {"x":1.25, "y":5.25}, {"x":2.25, "y":5.25}, {"x":3.25, "y":5.25}, {"x":4.25, "y":5.25}, {"x":12.25, "y":5.25}, {"x":13.25, "y":5.25}, {"x":14.25, "y":5.25}, {"x":15.25, "y":5.25}, {"x":6.25, "y":6}, {"x":7.25, "y":6}, {"x":9.25, "y":6}, {"x":10.25, "y":6}, {"x":5.25, "y":7, "h":2}, {"x":6.25, "y":7, "h":2}, {"x":7.25, "y":7}, {"x":9.25, "y":7}, {"x":10.25, "y":7, "h":2}, {"x":11.25, "y":7, "h":2}, {"x":7.25, "y":8}, {"x":9.25, "y":8}] + "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":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0}, + {"x":16.5, "y":0}, + + {"x":0, "y":1.25, "w":1.25}, + {"x":1.25, "y":1.25}, + {"x":2.25, "y":1.25}, + {"x":3.25, "y":1.25}, + {"x":4.25, "y":1.25}, + {"x":5.25, "y":1.25}, + {"x":11.25, "y":1.25}, + {"x":12.25, "y":1.25}, + {"x":13.25, "y":1.25}, + {"x":14.25, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25, "w":1.25}, + + {"x":0, "y":2.25, "w":1.25}, + {"x":1.25, "y":2.25}, + {"x":2.25, "y":2.25}, + {"x":3.25, "y":2.25}, + {"x":4.25, "y":2.25}, + {"x":5.25, "y":2.25}, + {"x":11.25, "y":2.25}, + {"x":12.25, "y":2.25}, + {"x":13.25, "y":2.25}, + {"x":14.25, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25, "w":1.25}, + + {"x":0, "y":3.25, "w":1.25}, + {"x":1.25, "y":3.25}, + {"x":2.25, "y":3.25}, + {"x":3.25, "y":3.25}, + {"x":4.25, "y":3.25}, + {"x":5.25, "y":3.25}, + {"x":11.25, "y":3.25}, + {"x":12.25, "y":3.25}, + {"x":13.25, "y":3.25}, + {"x":14.25, "y":3.25}, + {"x":15.25, "y":3.25}, + {"x":16.25, "y":3.25, "w":1.25}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25}, + {"x":13.25, "y":4.25}, + {"x":14.25, "y":4.25}, + {"x":15.25, "y":4.25}, + {"x":16.25, "y":4.25, "w":1.25}, + + {"x":1.25, "y":5.25}, + {"x":2.25, "y":5.25}, + {"x":3.25, "y":5.25}, + {"x":4.25, "y":5.25}, + {"x":12.25, "y":5.25}, + {"x":13.25, "y":5.25}, + {"x":14.25, "y":5.25}, + {"x":15.25, "y":5.25}, + + {"x":6.25, "y":6}, + {"x":7.25, "y":6}, + {"x":9.25, "y":6}, + {"x":10.25, "y":6}, + + {"x":7.25, "y":7}, + {"x":9.25, "y":7}, + + {"x":5.25, "y":7, "h":2}, + {"x":6.25, "y":7, "h":2}, + {"x":7.25, "y":8}, + {"x":9.25, "y":8}, + {"x":10.25, "y":7, "h":2}, + {"x":11.25, "y":7, "h":2} + ] }, - "LAYOUT_all": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":16, "y":0}, {"x":17, "y":0}, {"x":0, "y":1.25, "w":1.25}, {"x":1.25, "y":1.25}, {"x":2.25, "y":1.25}, {"x":3.25, "y":1.25}, {"x":4.25, "y":1.25}, {"x":5.25, "y":1.25}, {"x":11.75, "y":1.25}, {"x":12.75, "y":1.25}, {"x":13.75, "y":1.25}, {"x":14.75, "y":1.25}, {"x":15.75, "y":1.25}, {"x":16.75, "y":1.25, "w":1.25}, {"x":0, "y":2.25, "w":1.25}, {"x":1.25, "y":2.25}, {"x":2.25, "y":2.25}, {"x":3.25, "y":2.25}, {"x":4.25, "y":2.25}, {"x":5.25, "y":2.25}, {"x":11.75, "y":2.25}, {"x":12.75, "y":2.25}, {"x":13.75, "y":2.25}, {"x":14.75, "y":2.25}, {"x":15.75, "y":2.25}, {"x":16.75, "y":2.25, "w":1.25}, {"x":0, "y":3.25, "w":1.25}, {"x":1.25, "y":3.25}, {"x":2.25, "y":3.25}, {"x":3.25, "y":3.25}, {"x":4.25, "y":3.25}, {"x":5.25, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25}, {"x":13.75, "y":3.25}, {"x":14.75, "y":3.25}, {"x":15.75, "y":3.25}, {"x":16.75, "y":3.25, "w":1.25}, {"x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":11.75, "y":4.25}, {"x":12.75, "y":4.25}, {"x":13.75, "y":4.25}, {"x":14.75, "y":4.25}, {"x":15.75, "y":4.25}, {"x":16.75, "y":4.25, "w":1.25}, {"x":0.25, "y":5.25}, {"x":1.25, "y":5.25}, {"x":2.25, "y":5.25}, {"x":3.25, "y":5.25}, {"x":4.25, "y":5.25}, {"x":5.25, "y":5.25}, {"x":11.75, "y":5.25}, {"x":12.75, "y":5.25}, {"x":13.75, "y":5.25}, {"x":14.75, "y":5.25}, {"x":15.75, "y":5.25}, {"x":16.75, "y":5.25}, {"x":6.5, "y":6}, {"x":7.5, "y":6}, {"x":9.5, "y":6}, {"x":10.5, "y":6}, {"x":5.25, "y":7, "h":2}, {"x":6.25, "y":7, "h":2}, {"x":7.25, "y":7}, {"x":9.5, "y":7}, {"x":10.5, "y":7, "h":2}, {"x":11.5, "y":7, "h":2}, {"x":7.25, "y":8}, {"x":9.5, "y":8}] + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0}, + {"x":14.5, "y":0}, + {"x":15.5, "y":0}, + {"x":16.5, "y":0}, + + {"x":0, "y":1.25, "w":1.25}, + {"x":1.25, "y":1.25}, + {"x":2.25, "y":1.25}, + {"x":3.25, "y":1.25}, + {"x":4.25, "y":1.25}, + {"x":5.25, "y":1.25}, + {"x":11.25, "y":1.25}, + {"x":12.25, "y":1.25}, + {"x":13.25, "y":1.25}, + {"x":14.25, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25, "w":1.25}, + + {"x":0, "y":2.25, "w":1.25}, + {"x":1.25, "y":2.25}, + {"x":2.25, "y":2.25}, + {"x":3.25, "y":2.25}, + {"x":4.25, "y":2.25}, + {"x":5.25, "y":2.25}, + {"x":11.25, "y":2.25}, + {"x":12.25, "y":2.25}, + {"x":13.25, "y":2.25}, + {"x":14.25, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25, "w":1.25}, + + {"x":0, "y":3.25, "w":1.25}, + {"x":1.25, "y":3.25}, + {"x":2.25, "y":3.25}, + {"x":3.25, "y":3.25}, + {"x":4.25, "y":3.25}, + {"x":5.25, "y":3.25}, + {"x":11.25, "y":3.25}, + {"x":12.25, "y":3.25}, + {"x":13.25, "y":3.25}, + {"x":14.25, "y":3.25}, + {"x":15.25, "y":3.25}, + {"x":16.25, "y":3.25, "w":1.25}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25}, + {"x":13.25, "y":4.25}, + {"x":14.25, "y":4.25}, + {"x":15.25, "y":4.25}, + {"x":16.25, "y":4.25, "w":1.25}, + + {"x":0.25, "y":5.25}, + {"x":1.25, "y":5.25}, + {"x":2.25, "y":5.25}, + {"x":3.25, "y":5.25}, + {"x":4.25, "y":5.25}, + {"x":5.25, "y":5.25}, + {"x":11.25, "y":5.25}, + {"x":12.25, "y":5.25}, + {"x":13.25, "y":5.25}, + {"x":14.25, "y":5.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + + {"x":6.25, "y":6}, + {"x":7.25, "y":6}, + {"x":9.25, "y":6}, + {"x":10.25, "y":6}, + + {"x":7.25, "y":7}, + {"x":9.25, "y":7}, + + {"x":5.25, "y":7, "h":2}, + {"x":6.25, "y":7, "h":2}, + {"x":7.25, "y":8}, + {"x":9.25, "y":8}, + {"x":10.25, "y":7, "h":2}, + {"x":11.25, "y":7, "h":2} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/kindakeyboards/conone65/config.h b/keyboards/kindakeyboards/conone65/config.h index 0a7127708c..3116265841 100644 --- a/keyboards/kindakeyboards/conone65/config.h +++ b/keyboards/kindakeyboards/conone65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x9133 -#define PRODUCT_ID 0x6AAB -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kindakeyboards -#define PRODUCT Conone 65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kindakeyboards/conone65/info.json b/keyboards/kindakeyboards/conone65/info.json index 32644b430d..3c06e955be 100644 --- a/keyboards/kindakeyboards/conone65/info.json +++ b/keyboards/kindakeyboards/conone65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Conone 65", + "manufacturer": "Kindakeyboards", "url": "https://kindakeyboards.be/conone65", "maintainer": "evyd13", + "usb": { + "vid": "0x9133", + "pid": "0x6AAB", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kinesis/config.h b/keyboards/kinesis/config.h index 63b296a528..271625ebd1 100644 --- a/keyboards/kinesis/config.h +++ b/keyboards/kinesis/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define MANUFACTURER You -#define PRODUCT Kinesis Advantage/Contoured +#define PRODUCT Kinesis Classic/Advantage/Contoured // Mouse #define MOUSEKEY_DELAY 60 diff --git a/keyboards/kinesis/keymaps/carpalx/readme.md b/keyboards/kinesis/keymaps/carpalx/readme.md index aa57b60a52..2db75c9539 100644 --- a/keyboards/kinesis/keymaps/carpalx/readme.md +++ b/keyboards/kinesis/keymaps/carpalx/readme.md @@ -4,7 +4,7 @@ Carpalx layout (also known as QGMLWBY) is an optimized alternative keyboard layout. Learn more about it at: -[http://mkweb.bcgsc.ca/carpalx/?popular_alternatives]() +[http://mkweb.bcgsc.ca/carpalx/?popular_alternatives](http://mkweb.bcgsc.ca/carpalx/?popular_alternatives) The layout also includes a QWERTY layer to help with the transition. - Scroll Lock: QWERTY layer diff --git a/keyboards/kinesis/keymaps/milestogo/keymap.c b/keyboards/kinesis/keymaps/milestogo/keymap.c index 72687195ef..8c01bcb83d 100644 --- a/keyboards/kinesis/keymaps/milestogo/keymap.c +++ b/keyboards/kinesis/keymaps/milestogo/keymap.c @@ -330,7 +330,7 @@ void matrix_init_user(void) { void matrix_scan_user(void) { #ifdef ALVICSTEP_CONFIG_H - int8_t layer = get_highest_layer(layer_state); + int8_t layer = biton32(layer_state); switch (layer) { case 1: diff --git a/keyboards/kinesis/kinesis.h b/keyboards/kinesis/kinesis.h index 54cf6b81a7..e3345ee27f 100644 --- a/keyboards/kinesis/kinesis.h +++ b/keyboards/kinesis/kinesis.h @@ -12,6 +12,8 @@ # include "kint36.h" #elif defined(KEYBOARD_kinesis_kint41) # include "kint41.h" +#elif defined(KEYBOARD_kinesis_kintlc) +# include "kintlc.h" #endif #include "quantum.h" diff --git a/keyboards/kinesis/kint36/kint36.c b/keyboards/kinesis/kint36/kint36.c index 108c14c7ba..cc32a60262 100644 --- a/keyboards/kinesis/kint36/kint36.c +++ b/keyboards/kinesis/kint36/kint36.c @@ -16,11 +16,12 @@ #include "kint36.h" +#define LED_POWER C5 + void matrix_init_kb(void) { matrix_init_user(); -// Turn on the Teensy 3.6 Power LED: -#define LED_POWER C5 + // Turn on the Teensy 3.6 Power LED: setPinOutput(LED_POWER); writePinHigh(LED_POWER); } diff --git a/keyboards/kinesis/kint36/rules.mk b/keyboards/kinesis/kint36/rules.mk index c50225ad8a..d495568dd3 100644 --- a/keyboards/kinesis/kint36/rules.mk +++ b/keyboards/kinesis/kint36/rules.mk @@ -4,6 +4,3 @@ MCU = MK66FX1M0 # 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 - -#Specify firmware format that is copied to root qmk_firmware folder -FIRMWARE_FORMAT = hex diff --git a/keyboards/kinesis/kint41/kint41.c b/keyboards/kinesis/kint41/kint41.c index ab6567d097..346bf8cac4 100644 --- a/keyboards/kinesis/kint41/kint41.c +++ b/keyboards/kinesis/kint41/kint41.c @@ -16,11 +16,12 @@ #include "kint41.h" +#define LED_POWER LINE_PIN13 + void matrix_init_kb(void) { matrix_init_user(); -// Turn on the Teensy 4.x Power LED: -#define LED_POWER LINE_PIN13 + // Turn on the Teensy 4.x Power LED: setPinOutput(LED_POWER); writePinHigh(LED_POWER); } diff --git a/keyboards/kinesis/kint41/rules.mk b/keyboards/kinesis/kint41/rules.mk index 2681ff6724..4b39b87be6 100644 --- a/keyboards/kinesis/kint41/rules.mk +++ b/keyboards/kinesis/kint41/rules.mk @@ -3,7 +3,7 @@ MCU_SERIES = MIMXRT1062 MCU_LDSCRIPT = MIMXRT1062 MCU_STARTUP = MIMXRT1062 BOARD = IC_TEENSY_4_1 -MCU = cortex-m4 +MCU = cortex-m4 ARMV = 7 # Debounce eagerly (report change immediately), keep per-key timers. We can use @@ -11,5 +11,4 @@ ARMV = 7 # pressed. DEBOUNCE_TYPE = sym_eager_pk -#Specify firmware format that is copied to root qmk_firmware folder FIRMWARE_FORMAT = hex diff --git a/keyboards/kinesis/kintlc/chconf.h b/keyboards/kinesis/kintlc/chconf.h new file mode 100644 index 0000000000..73408ff625 --- /dev/null +++ b/keyboards/kinesis/kintlc/chconf.h @@ -0,0 +1,53 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/kinesis/kint36/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 1000 + +#define CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_TIME_QUANTUM 20 + +#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE + +#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE + +#define CH_CFG_FACTORY_SEMAPHORES TRUE + +#define CH_CFG_FACTORY_MAILBOXES TRUE + +#define CH_CFG_FACTORY_OBJ_FIFOS TRUE + +#define CH_CFG_FACTORY_PIPES TRUE + +#define CH_DBG_SYSTEM_STATE_CHECK TRUE + +#define CH_DBG_ENABLE_CHECKS TRUE + +#define CH_DBG_ENABLE_ASSERTS TRUE + +#define CH_DBG_ENABLE_STACK_CHECK TRUE + +#define CH_DBG_FILL_THREADS TRUE + + +#include_next diff --git a/keyboards/kinesis/kintlc/config.h b/keyboards/kinesis/kintlc/config.h new file mode 100644 index 0000000000..8e15fea479 --- /dev/null +++ b/keyboards/kinesis/kintlc/config.h @@ -0,0 +1,114 @@ +/* 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 + +/* USB Device descriptor parameter */ +#undef VENDOR_ID +#define VENDOR_ID 0x1209 +#undef PRODUCT_ID +#define PRODUCT_ID 0x345C +#undef DEVICE_VER +#define DEVICE_VER 0x0001 +#undef MANUFACTURER +#define MANUFACTURER "https://github.com/stapelberg" +#undef PRODUCT +#define PRODUCT "kinT (kintlc)" + +/* key matrix size */ +#define MATRIX_ROWS 15 +#define MATRIX_COLS 7 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS \ + { \ + LINE_PIN8, /* ROW_EQL */ \ + LINE_PIN9, /* ROW_1 */ \ + LINE_PIN10, /* ROW_2 */ \ + LINE_PIN11, /* ROW_3 */ \ + LINE_PIN7, /* ROW_4 */ \ + LINE_PIN16, /* ROW_5 */ \ + LINE_PIN5, /* ROW_6 */ \ + LINE_PIN3, /* ROW_7 */ \ + LINE_PIN4, /* ROW_8 */ \ + LINE_PIN1, /* ROW_9 */ \ + LINE_PIN0, /* ROW_0 */ \ + LINE_PIN2, /* ROW_MIN */ \ + LINE_PIN17, /* ROW_ESC */ \ + LINE_PIN23, /* ROW_F1 */ \ + LINE_PIN21 /* ROW_F2 */ \ + } + +#define MATRIX_COL_PINS \ + { \ + LINE_PIN18, /* COL_0 */ \ + LINE_PIN14, /* COL_1 */ \ + LINE_PIN15, /* COL_2 */ \ + LINE_PIN20, /* COL_3 */ \ + LINE_PIN22, /* COL_4 */ \ + LINE_PIN19, /* COL_5 */ \ + LINE_PIN6 /* COL_6 */ \ + } + +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Well-worn Cherry MX key switches can bounce for up to 20ms, despite the + * Cherry data sheet specifying 5ms. Because we use the sym_eager_pk debounce + * algorithm, this debounce latency only affects key releases (not key + * presses). */ +#undef DEBOUNCE +#define DEBOUNCE 20 + +#define IGNORE_MOD_TAP_INTERRUPT + +// The Teensy LC power consumption is unknown as per +// https://www.pjrc.com/store/teensylc.html but since +// https://www.pjrc.com/store/teensy41.html says 100mA, let's go with half. +#define USB_MAX_POWER_CONSUMPTION 50 + +/* We use the i.MX RT1060 high-speed GPIOs (GPIO6-9) which are connected to the + * AHB bus (AHB_CLK_ROOT), which runs at the same speed as the ARM Core Clock, + * i.e. 600 MHz. See MIMXRT1062, page 949, 12.1 Chip-specific GPIO information. + * No additional delay is necessary. */ + +// in clock cycles +#define GPIO_INPUT_PIN_DELAY 0 + +// The default "1" results in LEDs being on when they should be off and +// the other way around. +#define LED_PIN_ON_STATE 0 + +// Discussion about which Teensy LC pins can be used for driving staus LEDs: +// https://github.com/kinx-project/kint/issues/55 +// Discussion about using Neopixel LEDs: +// https://github.com/kinx-project/kint/issues/32 +// Available pins can be seen in: +// /lib/chibios-contrib/os/hal/boards/PJRC_TEENSY_LC/board.h +#define LED_CAPS_LOCK_PIN LINE_PIN12 +#define LED_SCROLL_LOCK_PIN LINE_PIN25 +#define LED_COMPOSE_PIN LINE_PIN24 diff --git a/keyboards/kinesis/kintlc/kintlc.c b/keyboards/kinesis/kintlc/kintlc.c new file mode 100644 index 0000000000..19b723600a --- /dev/null +++ b/keyboards/kinesis/kintlc/kintlc.c @@ -0,0 +1,27 @@ +/* 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 . + */ + +#include "kintlc.h" + +#define LED_POWER LINE_PIN13 + +void matrix_init_kb(void) { + matrix_init_user(); + + // Turn on the Teensy LC Power LED: + setPinOutput(LED_POWER); + writePinHigh(LED_POWER); +} diff --git a/keyboards/kinesis/kintlc/kintlc.h b/keyboards/kinesis/kintlc/kintlc.h new file mode 100644 index 0000000000..d427a1c2d6 --- /dev/null +++ b/keyboards/kinesis/kintlc/kintlc.h @@ -0,0 +1,92 @@ +/* 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 "quantum.h" + +#define ___ KC_NO + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguments as on the physical keyboard +// The second converts the arguments into the 2-D scanned array + +#define LAYOUT( \ + kC0, kD0, kE0, kC1, kD1, kE1, kC2, kD2, kE2, \ + k00, k10, k20, k30, k40, k50, \ + k01, k11, k21, k31, k41, k51, \ + k02, k12, k22, k32, k42, k52, \ + k03, k13, k23, k33, k43, k53, \ + k14, k24, k34, k54, \ + k56, k55, \ + k35, \ + k36, k46, k25, \ + \ + kC3, kD3, kE3, kC4, kD4, kE4, kC5, kE5, kD5, \ + k60, k70, k80, k90, kA0, kB0, \ + k61, k71, k81, k91, kA1, kB1, \ + k62, k72, k82, k92, kA2, kB2, \ + k63, k73, k83, k93, kA3, kB3, \ + k64, k84, k94, kA4, \ + k96, k85, \ + k86, \ + k66, k75, k65 \ +) { \ + { k00, k01, k02, k03, ___, ___, ___ }, \ + { k10, k11, k12, k13, k14, ___, ___ }, \ + { k20, k21, k22, k23, k24, k25, ___ }, \ + { k30, k31, k32, k33, k34, k35, k36 }, \ + { k40, k41, k42, k43, ___, ___, k46 }, \ + { k50, k51, k52, k53, k54, k55, k56 }, \ + { k60, k61, k62, k63, k64, k65, k66 }, \ + { k70, k71, k72, k73, ___, k75, ___ }, \ + { k80, k81, k82, k83, k84, k85, k86 }, \ + { k90, k91, k92, k93, k94, ___, k96 }, \ + { kA0, kA1, kA2, kA3, kA4, ___, ___ }, \ + { kB0, kB1, kB2, kB3, ___, ___, ___ }, \ + { kC0, kC1, kC2, kC3, kC4, kC5, ___ }, \ + { kD0, kD1, kD2, kD3, kD4, kD5, ___ }, \ + { kE0, kE1, kE2, kE3, kE4, kE5, ___ }, \ +} + +/* ---------------- LEFT HAND ----------------- ---------------- RIGHT HAND ---------------- */ +#define LAYOUT_pretty( \ + kC0, kD0, kE0, kC1, kD1, kE1, kC2, kD2, kE2, kC3, kD3, kE3, kC4, kD4, kE4, kC5, kE5, kD5, \ + k00, k10, k20, k30, k40, k50, k60, k70, k80, k90, kA0, kB0, \ + k01, k11, k21, k31, k41, k51, k61, k71, k81, k91, kA1, kB1, \ + k02, k12, k22, k32, k42, k52, k62, k72, k82, k92, kA2, kB2, \ + k03, k13, k23, k33, k43, k53, k63, k73, k83, k93, kA3, kB3, \ + k14, k24, k34, k54, k64, k84, k94, kA4, \ + k56, k55, k96, k85, \ + k35, k86, \ + k36, k46, k25, k66, k75, k65 \ +) { \ + { k00, k01, k02, k03, ___, ___, ___ }, \ + { k10, k11, k12, k13, k14, ___, ___ }, \ + { k20, k21, k22, k23, k24, k25, ___ }, \ + { k30, k31, k32, k33, k34, k35, k36 }, \ + { k40, k41, k42, k43, ___, ___, k46 }, \ + { k50, k51, k52, k53, k54, k55, k56 }, \ + { k60, k61, k62, k63, k64, k65, k66 }, \ + { k70, k71, k72, k73, ___, k75, ___ }, \ + { k80, k81, k82, k83, k84, k85, k86 }, \ + { k90, k91, k92, k93, k94, ___, k96 }, \ + { kA0, kA1, kA2, kA3, kA4, ___, ___ }, \ + { kB0, kB1, kB2, kB3, ___, ___, ___ }, \ + { kC0, kC1, kC2, kC3, kC4, kC5, ___ }, \ + { kD0, kD1, kD2, kD3, kD4, kD5, ___ }, \ + { kE0, kE1, kE2, kE3, kE4, kE5, ___ } \ +} diff --git a/keyboards/kinesis/kintlc/mcuconf.h b/keyboards/kinesis/kintlc/mcuconf.h new file mode 100644 index 0000000000..ea576df5bc --- /dev/null +++ b/keyboards/kinesis/kintlc/mcuconf.h @@ -0,0 +1,45 @@ +/* + 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. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +#define KL2x_MCUCONF + +/* + * HAL driver system settings. + */ +/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */ +#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE +#define KINETIS_PLLCLK_FREQUENCY 96000000UL +#define KINETIS_SYSCLK_FREQUENCY 48000000UL + +/* + * SERIAL driver system settings. + */ +#define KINETIS_SERIAL_USE_UART0 TRUE + +/* + * USB driver settings + */ +#define KINETIS_USB_USE_USB0 TRUE + +/* Need to redefine this, since the default (configured for K20x) might not apply + * 2 for Teensy LC + * 5 for Teensy 3.x */ +#define KINETIS_USB_USB0_IRQ_PRIORITY 2 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/kinesis/kintlc/readme.md b/keyboards/kinesis/kintlc/readme.md new file mode 100644 index 0000000000..d7b5737452 --- /dev/null +++ b/keyboards/kinesis/kintlc/readme.md @@ -0,0 +1,3 @@ +# kinesis_kintlc keyboard firmware + +Please see https://github.com/kinx-project/kint for details. diff --git a/keyboards/kinesis/kintlc/rules.mk b/keyboards/kinesis/kintlc/rules.mk new file mode 100644 index 0000000000..bfc10748ab --- /dev/null +++ b/keyboards/kinesis/kintlc/rules.mk @@ -0,0 +1,9 @@ +# MCU name +MCU = MKL26Z64 +# 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/kineticlabs/emu/hotswap/config.h b/keyboards/kineticlabs/emu/hotswap/config.h index 57eaad44b4..e4b07c155f 100644 --- a/keyboards/kineticlabs/emu/hotswap/config.h +++ b/keyboards/kineticlabs/emu/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xE015 -#define PRODUCT_ID 0xC387 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kineticlabs -#define PRODUCT Emu Hotswap - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/kineticlabs/emu/hotswap/info.json b/keyboards/kineticlabs/emu/hotswap/info.json index 106bdf8da9..257cf50126 100644 --- a/keyboards/kineticlabs/emu/hotswap/info.json +++ b/keyboards/kineticlabs/emu/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Emu hotswap", + "keyboard_name": "Emu Hotswap", + "manufacturer": "Kineticlabs", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0xE015", + "pid": "0xC387", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/kineticlabs/emu/soldered/config.h b/keyboards/kineticlabs/emu/soldered/config.h index 0921911192..e4b07c155f 100644 --- a/keyboards/kineticlabs/emu/soldered/config.h +++ b/keyboards/kineticlabs/emu/soldered/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xE015 -#define PRODUCT_ID 0xC386 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kineticlabs -#define PRODUCT Emu - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/kineticlabs/emu/soldered/info.json b/keyboards/kineticlabs/emu/soldered/info.json index d1a35a91d9..1f6fde64ce 100644 --- a/keyboards/kineticlabs/emu/soldered/info.json +++ b/keyboards/kineticlabs/emu/soldered/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Emu hotswap", + "keyboard_name": "Emu Soldered", + "manufacturer": "Kineticlabs", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0xE015", + "pid": "0xC386", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kingly_keys/little_foot/config.h b/keyboards/kingly_keys/little_foot/config.h index a872579c97..64b187f1cf 100644 --- a/keyboards/kingly_keys/little_foot/config.h +++ b/keyboards/kingly_keys/little_foot/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kingly-Keys -#define PRODUCT The Little Foot - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 10 diff --git a/keyboards/kingly_keys/little_foot/info.json b/keyboards/kingly_keys/little_foot/info.json index a9bb794521..6b1f887165 100644 --- a/keyboards/kingly_keys/little_foot/info.json +++ b/keyboards/kingly_keys/little_foot/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Little Foot", + "keyboard_name": "The Little Foot", + "manufacturer": "Kingly-Keys", "url": "", "maintainer": "TheRoyalSweatshirt", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_space_base": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":2}, {"x":5, "y":4, "w":2}, {"x":7, "y":4, "w":1.5}] diff --git a/keyboards/kingly_keys/romac/config.h b/keyboards/kingly_keys/romac/config.h index c8cb19c744..4d47736bc5 100644 --- a/keyboards/kingly_keys/romac/config.h +++ b/keyboards/kingly_keys/romac/config.h @@ -2,12 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4b4b // "KK" -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER TheRoyalSweatshirt -#define PRODUCT romac /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 3 diff --git a/keyboards/kingly_keys/romac/info.json b/keyboards/kingly_keys/romac/info.json index 9d93c4a13c..da73cadfb9 100644 --- a/keyboards/kingly_keys/romac/info.json +++ b/keyboards/kingly_keys/romac/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "RoMac", + "manufacturer": "TheRoyalSweatshirt", "url": "", "maintainer": "TheRoyalSweatshirt", + "usb": { + "vid": "0x4B4B", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}] diff --git a/keyboards/kingly_keys/romac_plus/config.h b/keyboards/kingly_keys/romac_plus/config.h index a83801b4ce..0f9afb982c 100644 --- a/keyboards/kingly_keys/romac_plus/config.h +++ b/keyboards/kingly_keys/romac_plus/config.h @@ -2,12 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B4B -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER TheRoyalSweatshirt -#define PRODUCT RoMac+ /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 3 diff --git a/keyboards/kingly_keys/romac_plus/info.json b/keyboards/kingly_keys/romac_plus/info.json index b24e0c942f..79aa4eccb6 100644 --- a/keyboards/kingly_keys/romac_plus/info.json +++ b/keyboards/kingly_keys/romac_plus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "RoMac+", + "manufacturer": "TheRoyalSweatshirt", "url": "", "maintainer": "TheRoyalSweatshirt", + "usb": { + "vid": "0x4B4B", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}] diff --git a/keyboards/kingly_keys/ropro/config.h b/keyboards/kingly_keys/ropro/config.h index c9791be8c1..7900f09d29 100644 --- a/keyboards/kingly_keys/ropro/config.h +++ b/keyboards/kingly_keys/ropro/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kingly-Keys -#define PRODUCT The_RoPro - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 14 diff --git a/keyboards/kingly_keys/ropro/info.json b/keyboards/kingly_keys/ropro/info.json index 10fee26c94..60419947d4 100644 --- a/keyboards/kingly_keys/ropro/info.json +++ b/keyboards/kingly_keys/ropro/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ropro", + "keyboard_name": "The_RoPro", + "manufacturer": "Kingly-Keys", "url": "https://github.com/TheRoyalSweatshirt/The_RoPro", "maintainer": "[TheRoyalSweatshirt](https://github.com/TheRoyalSweatshirt)", + "usb": { + "vid": "0xFEED", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"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":"Esc", "x":1, "y":1}, {"label":"1", "x":2, "y":1}, {"label":"2", "x":3, "y":1}, {"label":"3", "x":4, "y":1}, {"label":"4", "x":5, "y":1}, {"label":"5", "x":6, "y":1}, {"label":"6;", "x":7, "y":1}, {"label":"7", "x":8, "y":1}, {"label":"8", "x":9, "y":1}, {"label":"9", "x":10, "y":1}, {"label":"0", "x":11, "y":1}, {"label":"-", "x":12, "y":1}, {"label":"CAPS", "x":0, "y":2}, {"label":"Tab", "x":1, "y":2}, {"label":"Q", "x":2, "y":2}, {"label":"W", "x":3, "y":2}, {"label":"E", "x":4, "y":2}, {"label":"R", "x":5, "y":2}, {"label":"T", "x":6, "y":2}, {"label":"Y", "x":7, "y":2}, {"label":"U", "x":8, "y":2}, {"label":"I", "x":9, "y":2}, {"label":"O", "x":10, "y":2}, {"label":"P", "x":11, "y":2}, {"label":"Bksp", "x":12, "y":2}, {"label":"PgUp", "x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"A", "x":2, "y":3}, {"label":"S", "x":3, "y":3}, {"label":"D", "x":4, "y":3}, {"label":"F", "x":5, "y":3}, {"label":"G", "x":6, "y":3}, {"label":"H;", "x":7, "y":3}, {"label":"J", "x":8, "y":3}, {"label":"K", "x":9, "y":3}, {"label":"L", "x":10, "y":3}, {"label":";", "x":11, "y":3}, {"label":"'", "x":12, "y":3}, {"label":"Home", "x":0, "y":4}, {"label":"Shift", "x":1, "y":4}, {"label":"Z", "x":2, "y":4}, {"label":"X", "x":3, "y":4}, {"label":"C", "x":4, "y":4}, {"label":"V", "x":5, "y":4}, {"label":"B", "x":6, "y":4}, {"label":"N", "x":7, "y":4}, {"label":"M", "x":8, "y":4}, {"label":",", "x":9, "y":4}, {"label":".", "x":10, "y":4}, {"label":"/", "x":11, "y":4}, {"label":"Enter", "x":12, "y":4}, {"label":"PgDn", "x":0, "y":5}, {"label":"Del", "x":1, "y":5}, {"label":"Ctrl", "x":2, "y":5}, {"label":"GUI", "x":3, "y":5}, {"label":"Alt", "x":4, "y":5}, {"label":"Lower", "x":5, "y":5}, {"x":6, "y":5}, {"x":7, "y":5}, {"label":"End", "x":8, "y":5}, {"label":"Left", "x":9, "y":5}, {"label":"Down", "x":10, "y":5}, {"label":"Up", "x":11, "y":5}, {"label":"Right", "x":12, "y":5}] diff --git a/keyboards/kingly_keys/smd_milk/config.h b/keyboards/kingly_keys/smd_milk/config.h index 27463b630f..7e192b61f7 100644 --- a/keyboards/kingly_keys/smd_milk/config.h +++ b/keyboards/kingly_keys/smd_milk/config.h @@ -16,13 +16,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xB195 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kingly-Keys -#define PRODUCT SMD-2% Milk - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 1 diff --git a/keyboards/kingly_keys/smd_milk/info.json b/keyboards/kingly_keys/smd_milk/info.json index 6b43f9e68d..66d8116f43 100644 --- a/keyboards/kingly_keys/smd_milk/info.json +++ b/keyboards/kingly_keys/smd_milk/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "smd_milk", + "keyboard_name": "SMD-2% Milk", + "manufacturer": "Kingly-Keys", "url": "", "maintainer": "TheRoyalSweatshirt", + "usb": { + "vid": "0xFEED", + "pid": "0xB195", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ {"x": 0, "y": 0 }, {"x": 0, "y": 1 }] diff --git a/keyboards/kingly_keys/soap/config.h b/keyboards/kingly_keys/soap/config.h index ca6504465f..eff9bf64ed 100644 --- a/keyboards/kingly_keys/soap/config.h +++ b/keyboards/kingly_keys/soap/config.h @@ -16,13 +16,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0004 -#define MANUFACTURER Kingly-Keys -#define PRODUCT SOAP - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/kingly_keys/soap/info.json b/keyboards/kingly_keys/soap/info.json index afdacddb8d..0bd017e8e0 100644 --- a/keyboards/kingly_keys/soap/info.json +++ b/keyboards/kingly_keys/soap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "soap", + "keyboard_name": "SOAP", + "manufacturer": "Kingly-Keys", "url": "https://github.com/TheRoyalSweatshirt/SOAP", "maintainer": "[TheRoyalSweatshirt](https://github.com/TheRoyalSweatshirt)", + "usb": { + "vid": "0xFEED", + "pid": "0x0003", + "device_version": "0.0.4" + }, "layouts": { "LAYOUT": { "layout": [{"label":"K00", "x":0, "y":0}, {"label":"K01", "x":1, "y":0}, {"label":"K02", "x":2, "y":0}, {"label":"K03", "x":4, "y":0}, {"label":"K10", "x":0, "y":1}, {"label":"K11", "x":1, "y":1}, {"label":"K12", "x":2, "y":1}, {"label":"K13", "x":4, "y":1}] diff --git a/keyboards/kira75/config.h b/keyboards/kira75/config.h index 18d8b8fad9..7570cad543 100644 --- a/keyboards/kira75/config.h +++ b/keyboards/kira75/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER thesiscamper -#define PRODUCT kira75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/kira75/info.json b/keyboards/kira75/info.json index 131e570810..37bded93f7 100644 --- a/keyboards/kira75/info.json +++ b/keyboards/kira75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kira 75", + "manufacturer": "thesiscamper", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "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":"Pause", "x":14, "y":0}, {"label":"Delete", "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":"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":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "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":"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}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] diff --git a/keyboards/kira80/config.h b/keyboards/kira80/config.h index d73c2faed0..076c360dac 100644 --- a/keyboards/kira80/config.h +++ b/keyboards/kira80/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6986 -#define PRODUCT_ID 0xC583 -#define DEVICE_VER 0x0102 -#define MANUFACTURER EVE -#define PRODUCT Kira80 - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 15 diff --git a/keyboards/kira80/info.json b/keyboards/kira80/info.json index 04c32798a4..3f7dbe7af7 100644 --- a/keyboards/kira80/info.json +++ b/keyboards/kira80/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Kira 80", + "keyboard_name": "Kira80", + "manufacturer": "EVE", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6986", + "pid": "0xC583", + "device_version": "1.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Back", "x":13, "y":1.25}, {"label":"Back", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"label":"|", "x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"FN", "x":14, "y":4.25}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] diff --git a/keyboards/kiwikeebs/macro/config.h b/keyboards/kiwikeebs/macro/config.h index 47349d0e09..2457f99879 100644 --- a/keyboards/kiwikeebs/macro/config.h +++ b/keyboards/kiwikeebs/macro/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B51 -#define PRODUCT_ID 0x4712 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KiwiKeebs -#define PRODUCT MacroBoard v.1.0 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/kiwikeebs/macro/info.json b/keyboards/kiwikeebs/macro/info.json index de9ce2f01f..63fedd2484 100644 --- a/keyboards/kiwikeebs/macro/info.json +++ b/keyboards/kiwikeebs/macro/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KiwiKeebs MacroBoard v1.0", + "keyboard_name": "MacroBoard v.1.0", + "manufacturer": "KiwiKeebs", "url": "https://www.reddit.com/r/mechmarket/comments/ibijrd/ic_kiwikeebs_6key_macroboard_rotary_encoder_diy/", "maintainer": "KiwiKeebs", + "usb": { + "vid": "0x4B51", + "pid": "0x4712", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kiwikeebs/macro_v2/config.h b/keyboards/kiwikeebs/macro_v2/config.h index a962a9a82a..179a08e34c 100644 --- a/keyboards/kiwikeebs/macro_v2/config.h +++ b/keyboards/kiwikeebs/macro_v2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B51 -#define PRODUCT_ID 0x4712 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KiwiKeebs -#define PRODUCT MacroBoard v.2.0 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/kiwikeebs/macro_v2/info.json b/keyboards/kiwikeebs/macro_v2/info.json index 524e259463..8c76890abd 100644 --- a/keyboards/kiwikeebs/macro_v2/info.json +++ b/keyboards/kiwikeebs/macro_v2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KiwiKeebs MacroBoard v.2.0", + "keyboard_name": "MacroBoard v.2.0", + "manufacturer": "KiwiKeebs", "url": "https://www.reddit.com/r/mechmarket/comments/ibijrd/ic_kiwikeebs_6key_macroboard_rotary_encoder_diy/", "maintainer": "KiwiKeebs", + "usb": { + "vid": "0x4B51", + "pid": "0x4712", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kiwikey/borderland/config.h b/keyboards/kiwikey/borderland/config.h index 648c3a88de..350245d1c3 100644 --- a/keyboards/kiwikey/borderland/config.h +++ b/keyboards/kiwikey/borderland/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B57 // KW - KiwiKey -#define PRODUCT_ID 0x424C // BL - Borderland -#define DEVICE_VER 0x0001 -#define MANUFACTURER KiwiKey -#define PRODUCT Borderland - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kiwikey/borderland/info.json b/keyboards/kiwikey/borderland/info.json index c92df0521d..2123268c2e 100644 --- a/keyboards/kiwikey/borderland/info.json +++ b/keyboards/kiwikey/borderland/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Borderland", + "manufacturer": "KiwiKey", "url": "https://kiwikey.vn/borderland/", "maintainer": "KiwiKey", + "usb": { + "vid": "0x4B57", + "pid": "0x424C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kiwikey/kawii9/config.h b/keyboards/kiwikey/kawii9/config.h index 59adcd253e..9f98ca1926 100644 --- a/keyboards/kiwikey/kawii9/config.h +++ b/keyboards/kiwikey/kawii9/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B57 // KW - KiwiKey -#define PRODUCT_ID 0x0303 // 3x3 -#define DEVICE_VER 0x0002 -#define MANUFACTURER KiwiKey -#define PRODUCT Kawii9 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/kiwikey/kawii9/info.json b/keyboards/kiwikey/kawii9/info.json index 367f402f7b..ad8ae3679a 100644 --- a/keyboards/kiwikey/kawii9/info.json +++ b/keyboards/kiwikey/kawii9/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kawii9", + "manufacturer": "KiwiKey", "url": "http://kiwikey.vn/kawii9/", "maintainer": "KiwiKey", + "usb": { + "vid": "0x4B57", + "pid": "0x0303", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_ortho_3x3": { "layout": [ diff --git a/keyboards/kiwikey/wanderland/config.h b/keyboards/kiwikey/wanderland/config.h index e0b9ba8946..4107d5717a 100644 --- a/keyboards/kiwikey/wanderland/config.h +++ b/keyboards/kiwikey/wanderland/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B57 // KW - KiwiKey -#define PRODUCT_ID 0x574C // WL - Wanderland -#define DEVICE_VER 0x0001 -#define MANUFACTURER KiwiKey -#define PRODUCT Wanderland - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 13 diff --git a/keyboards/kiwikey/wanderland/info.json b/keyboards/kiwikey/wanderland/info.json index 01196c3418..92dfb2fff6 100644 --- a/keyboards/kiwikey/wanderland/info.json +++ b/keyboards/kiwikey/wanderland/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Wanderland", + "manufacturer": "KiwiKey", "url": "http://kiwikey.vn/wanderland", "maintainer": "KiwiKey", + "usb": { + "vid": "0x4B57", + "pid": "0x574C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/kkatano/bakeneko60/config.h b/keyboards/kkatano/bakeneko60/config.h index 9e373686fd..97f6ade6a4 100644 --- a/keyboards/kkatano/bakeneko60/config.h +++ b/keyboards/kkatano/bakeneko60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3A0E -#define PRODUCT_ID 0xCBDC -#define DEVICE_VER 0x0001 -#define MANUFACTURER kkatano -#define PRODUCT Bakeneko 60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kkatano/bakeneko60/info.json b/keyboards/kkatano/bakeneko60/info.json index 6bf6a08575..7d957740a6 100644 --- a/keyboards/kkatano/bakeneko60/info.json +++ b/keyboards/kkatano/bakeneko60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bakeneko 60", + "manufacturer": "kkatano", "url": "https://github.com/kkatano/bakeneko-60-pcb", "maintainer": "kkatano", + "usb": { + "vid": "0x3A0E", + "pid": "0xCBDC", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ diff --git a/keyboards/kkatano/bakeneko65/rev2/config.h b/keyboards/kkatano/bakeneko65/rev2/config.h index 7e70f549cd..e45fef4297 100644 --- a/keyboards/kkatano/bakeneko65/rev2/config.h +++ b/keyboards/kkatano/bakeneko65/rev2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3A0E -#define PRODUCT_ID 0x4C82 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kkatano -#define PRODUCT Bakeneko 65 V2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kkatano/bakeneko65/rev2/info.json b/keyboards/kkatano/bakeneko65/rev2/info.json index cbcb6a2551..064934b475 100644 --- a/keyboards/kkatano/bakeneko65/rev2/info.json +++ b/keyboards/kkatano/bakeneko65/rev2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bakeneko 65 V2", + "manufacturer": "kkatano", "url": "https://github.com/kkatano/bakeneko-65", "maintainer": "kkatano", + "usb": { + "vid": "0x3A0E", + "pid": "0x4C82", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_split_bs": { "layout": [ diff --git a/keyboards/kkatano/bakeneko65/rev3/config.h b/keyboards/kkatano/bakeneko65/rev3/config.h index 9fa3e68ca0..e45fef4297 100644 --- a/keyboards/kkatano/bakeneko65/rev3/config.h +++ b/keyboards/kkatano/bakeneko65/rev3/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3A0E -#define PRODUCT_ID 0x4C83 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kkatano -#define PRODUCT Bakeneko 65 V3 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kkatano/bakeneko65/rev3/info.json b/keyboards/kkatano/bakeneko65/rev3/info.json index b54c21aafa..43e1170904 100644 --- a/keyboards/kkatano/bakeneko65/rev3/info.json +++ b/keyboards/kkatano/bakeneko65/rev3/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bakeneko 65 V3", + "manufacturer": "kkatano", "url": "https://github.com/kkatano/bakeneko-65", "maintainer": "kkatano", + "usb": { + "vid": "0x3A0E", + "pid": "0x4C83", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0.25}, {"x":1, "y":0.25}, {"x":2, "y":0.25}, {"x":3, "y":0.25}, {"x":4, "y":0.25}, {"x":5, "y":0.25}, {"x":6, "y":0.25}, {"x":7, "y":0.25}, {"x":8, "y":0.25}, {"x":9, "y":0.25}, {"x":10, "y":0.25}, {"x":11, "y":0.25}, {"x":12, "y":0.25}, {"x":13, "y":0.25}, {"x":14, "y":0.25}, {"x":15, "y":0.25}, {"x":0, "y":1.25, "w":1.5}, {"x":1.5, "y":1.25}, {"x":2.5, "y":1.25}, {"x":3.5, "y":1.25}, {"x":4.5, "y":1.25}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25}, {"x":7.5, "y":1.25}, {"x":8.5, "y":1.25}, {"x":9.5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.25}, {"x":12.5, "y":1.25}, {"x":13.5, "y":1.25, "w":1.5}, {"x":15, "y":1.25}, {"x":0, "y":2.25, "w":1.75}, {"x":1.75, "y":2.25}, {"x":2.75, "y":2.25}, {"x":3.75, "y":2.25}, {"x":4.75, "y":2.25}, {"x":5.75, "y":2.25}, {"x":6.75, "y":2.25}, {"x":7.75, "y":2.25}, {"x":8.75, "y":2.25}, {"x":9.75, "y":2.25}, {"x":10.75, "y":2.25}, {"x":11.75, "y":2.25}, {"x":12.75, "y":2.25, "w":2.25}, {"x":15, "y":2.25}, {"x":0, "y":3.25, "w":2.25}, {"x":2.25, "y":3.25}, {"x":3.25, "y":3.25}, {"x":4.25, "y":3.25}, {"x":5.25, "y":3.25}, {"x":6.25, "y":3.25}, {"x":7.25, "y":3.25}, {"x":8.25, "y":3.25}, {"x":9.25, "y":3.25}, {"x":10.25, "y":3.25}, {"x":11.25, "y":3.25}, {"x":12.25, "y":3.25, "w":1.75}, {"x":14, "y":3.25}, {"x":15, "y":3.25}, {"x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25, "w":1.25}, {"x":3.75, "y":4.25, "w":6.25}, {"x":10, "y":4.25, "w":1.25}, {"x":11.25, "y":4.25, "w":1.25}, {"x":13, "y":4.25}, {"x":14, "y":4.25}, {"x":15, "y":4.25}] diff --git a/keyboards/kkatano/bakeneko80/config.h b/keyboards/kkatano/bakeneko80/config.h index 0e61db875b..4b586aeba7 100644 --- a/keyboards/kkatano/bakeneko80/config.h +++ b/keyboards/kkatano/bakeneko80/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x8DEF -#define DEVICE_VER 0x0001 -#define MANUFACTURER Koichi Katano -#define PRODUCT Bakeneko 80 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/kkatano/bakeneko80/info.json b/keyboards/kkatano/bakeneko80/info.json index afd608a06f..8516779a8c 100644 --- a/keyboards/kkatano/bakeneko80/info.json +++ b/keyboards/kkatano/bakeneko80/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bakeneko 80", + "manufacturer": "Koichi Katano", "url": "https://github.com/kkatano/bakeneko-80-pcb", "maintainer": "Koichi Katano", + "usb": { + "vid": "0xFEED", + "pid": "0x8DEF", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [{"label":"1", "x":0, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6.5, "y":0}, {"label":"7", "x":7.5, "y":0}, {"label":"8", "x":8.5, "y":0}, {"label":"9", "x":9.5, "y":0}, {"label":"10", "x":11, "y":0}, {"label":"11", "x":12, "y":0}, {"label":"12", "x":13, "y":0}, {"label":"13", "x":14, "y":0}, {"label":"14", "x":15.25, "y":0}, {"label":"15", "x":16.25, "y":0}, {"label":"16", "x":17.25, "y":0}, {"label":"17", "x":0, "y":1.25}, {"label":"18", "x":1, "y":1.25}, {"label":"19", "x":2, "y":1.25}, {"label":"20", "x":3, "y":1.25}, {"label":"21", "x":4, "y":1.25}, {"label":"22", "x":5, "y":1.25}, {"label":"23", "x":6, "y":1.25}, {"label":"24", "x":7, "y":1.25}, {"label":"25", "x":8, "y":1.25}, {"label":"26", "x":9, "y":1.25}, {"label":"27", "x":10, "y":1.25}, {"label":"28", "x":11, "y":1.25}, {"label":"29", "x":12, "y":1.25}, {"label":"30", "x":13, "y":1.25, "w":2}, {"label":"31", "x":15.25, "y":1.25}, {"label":"32", "x":16.25, "y":1.25}, {"label":"33", "x":17.25, "y":1.25}, {"label":"34", "x":0, "y":2.25, "w":1.5}, {"label":"35", "x":1.5, "y":2.25}, {"label":"36", "x":2.5, "y":2.25}, {"label":"37", "x":3.5, "y":2.25}, {"label":"38", "x":4.5, "y":2.25}, {"label":"39", "x":5.5, "y":2.25}, {"label":"40", "x":6.5, "y":2.25}, {"label":"41", "x":7.5, "y":2.25}, {"label":"42", "x":8.5, "y":2.25}, {"label":"43", "x":9.5, "y":2.25}, {"label":"44", "x":10.5, "y":2.25}, {"label":"45", "x":11.5, "y":2.25}, {"label":"46", "x":12.5, "y":2.25}, {"label":"47", "x":13.5, "y":2.25, "w":1.5}, {"label":"48", "x":15.25, "y":2.25}, {"label":"49", "x":16.25, "y":2.25}, {"label":"50", "x":17.25, "y":2.25}, {"label":"51", "x":0, "y":3.25, "w":1.75}, {"label":"52", "x":1.75, "y":3.25}, {"label":"53", "x":2.75, "y":3.25}, {"label":"54", "x":3.75, "y":3.25}, {"label":"55", "x":4.75, "y":3.25}, {"label":"56", "x":5.75, "y":3.25}, {"label":"57", "x":6.75, "y":3.25}, {"label":"58", "x":7.75, "y":3.25}, {"label":"59", "x":8.75, "y":3.25}, {"label":"60", "x":9.75, "y":3.25}, {"label":"61", "x":10.75, "y":3.25}, {"label":"62", "x":11.75, "y":3.25}, {"label":"63", "x":12.75, "y":3.25, "w":2.25}, {"label":"64", "x":0, "y":4.25, "w":2.25}, {"label":"65", "x":2.25, "y":4.25}, {"label":"66", "x":3.25, "y":4.25}, {"label":"67", "x":4.25, "y":4.25}, {"label":"68", "x":5.25, "y":4.25}, {"label":"69", "x":6.25, "y":4.25}, {"label":"70", "x":7.25, "y":4.25}, {"label":"71", "x":8.25, "y":4.25}, {"label":"72", "x":9.25, "y":4.25}, {"label":"73", "x":10.25, "y":4.25}, {"label":"74", "x":11.25, "y":4.25}, {"label":"75", "x":12.25, "y":4.25, "w":2.75}, {"label":"76", "x":16.25, "y":4.25}, {"label":"77", "x":0, "y":5.25, "w":1.25}, {"label":"78", "x":1.25, "y":5.25, "w":1.25}, {"label":"79", "x":2.5, "y":5.25, "w":1.25}, {"label":"80", "x":3.75, "y":5.25, "w":6.25}, {"label":"81", "x":10, "y":5.25, "w":1.25}, {"label":"82", "x":11.25, "y":5.25, "w":1.25}, {"label":"83", "x":12.5, "y":5.25, "w":1.25}, {"label":"84", "x":13.75, "y":5.25, "w":1.25}, {"label":"85", "x":15.25, "y":5.25}, {"label":"86", "x":16.25, "y":5.25}, {"label":"87", "x":17.25, "y":5.25}] diff --git a/keyboards/kkatano/wallaby/config.h b/keyboards/kkatano/wallaby/config.h index 00ba00ccac..a5ef8c4d0c 100644 --- a/keyboards/kkatano/wallaby/config.h +++ b/keyboards/kkatano/wallaby/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x5967 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Koichi Katano -#define PRODUCT Wallaby - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/kkatano/wallaby/info.json b/keyboards/kkatano/wallaby/info.json index 6ff20c91f4..3867a7cbf9 100644 --- a/keyboards/kkatano/wallaby/info.json +++ b/keyboards/kkatano/wallaby/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Wallaby", + "manufacturer": "Koichi Katano", "url": "https://github.com/kkatano/wallaby", "maintainer": "Koichi Katano", + "usb": { + "vid": "0xFEED", + "pid": "0x5967", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/kkatano/yurei/config.h b/keyboards/kkatano/yurei/config.h index 14eae7f387..f5910d4723 100644 --- a/keyboards/kkatano/yurei/config.h +++ b/keyboards/kkatano/yurei/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x5D5E -#define DEVICE_VER 0x0001 -#define MANUFACTURER Koichi Katano -#define PRODUCT Yurei - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/kkatano/yurei/info.json b/keyboards/kkatano/yurei/info.json index bbbdb01a25..67c7669cd5 100644 --- a/keyboards/kkatano/yurei/info.json +++ b/keyboards/kkatano/yurei/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Yurei", + "manufacturer": "Koichi Katano", "url": "https://github.com/kkatano/yurei", "maintainer": "Koichi Katano", + "usb": { + "vid": "0xFEED", + "pid": "0x5D5E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/kmac/config.h b/keyboards/kmac/config.h index 3bc567333e..495c612452 100644 --- a/keyboards/kmac/config.h +++ b/keyboards/kmac/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B4D // KM -#define PRODUCT_ID 0x4143 // AC -#define DEVICE_VER 0x0104 -#define MANUFACTURER KBDMania -#define PRODUCT KMAC - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/kmac/info.json b/keyboards/kmac/info.json index 91e7a2dedd..27e6c03524 100644 --- a/keyboards/kmac/info.json +++ b/keyboards/kmac/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "kmac", + "keyboard_name": "KMAC", + "manufacturer": "KBDMania", "maintainer": "qmk", + "usb": { + "vid": "0x4B4D", + "pid": "0x4143", + "device_version": "1.0.4" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/kmac_pad/config.h b/keyboards/kmac_pad/config.h index 189f2f9c08..3d238dbfe9 100644 --- a/keyboards/kmac_pad/config.h +++ b/keyboards/kmac_pad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B4D // KM -#define PRODUCT_ID 0x4143 // AC -#define DEVICE_VER 0x0104 -#define MANUFACTURER KBDMania -#define PRODUCT KMAC PAD - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/kmac_pad/info.json b/keyboards/kmac_pad/info.json index 26bb3b66d9..2ce217d70a 100644 --- a/keyboards/kmac_pad/info.json +++ b/keyboards/kmac_pad/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "KMAC PAD", + "manufacturer": "KBDMania", "maintainer": "talsu", + "usb": { + "vid": "0x4B4D", + "pid": "0x4143", + "device_version": "1.0.4" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kmini/config.h b/keyboards/kmini/config.h index c242aff0d0..67aad7985e 100755 --- a/keyboards/kmini/config.h +++ b/keyboards/kmini/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6050 -#define DEVICE_VER 0x0104 -#define MANUFACTURER Revo -#define PRODUCT KMAC Kmini - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/kmini/info.json b/keyboards/kmini/info.json index a3b61c3cb2..42d7da54bb 100755 --- a/keyboards/kmini/info.json +++ b/keyboards/kmini/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "KMAC Mini", + "manufacturer": "Revo", "url": "http://kbdmodadmin.cafe24.com/product/detail.html?product_no=12&cate_no=4&display_group=1", "maintainer": "evyd13", + "usb": { + "vid": "0xFEED", + "pid": "0x6050", + "device_version": "1.0.4" + }, "layouts": { "LAYOUT": { "layout": [{"label":"F1", "x":0, "y":0}, {"label":"F2", "x":1, "y":0}, {"label":"Esc", "x":2.25, "y":0}, {"label":"!", "x":3.25, "y":0}, {"label":"@", "x":4.25, "y":0}, {"label":"#", "x":5.25, "y":0}, {"label":"$", "x":6.25, "y":0}, {"label":"%", "x":7.25, "y":0}, {"label":"^", "x":8.25, "y":0}, {"label":"&", "x":9.25, "y":0}, {"label":"*", "x":10.25, "y":0}, {"label":"(", "x":11.25, "y":0}, {"label":")", "x":12.25, "y":0}, {"label":"_", "x":13.25, "y":0}, {"label":"+", "x":14.25, "y":0}, {"label":"Backspace", "x":15.25, "y":0, "w":2}, {"label":"Insert", "x":17.25, "y":0}, {"label":"F3", "x":0, "y":1}, {"label":"F4", "x":1, "y":1}, {"label":"Tab", "x":2.25, "y":1, "w":1.5}, {"label":"Q", "x":3.75, "y":1}, {"label":"W", "x":4.75, "y":1}, {"label":"E", "x":5.75, "y":1}, {"label":"R", "x":6.75, "y":1}, {"label":"T", "x":7.75, "y":1}, {"label":"Y", "x":8.75, "y":1}, {"label":"U", "x":9.75, "y":1}, {"label":"I", "x":10.75, "y":1}, {"label":"O", "x":11.75, "y":1}, {"label":"P", "x":12.75, "y":1}, {"label":"{", "x":13.75, "y":1}, {"label":"}", "x":14.75, "y":1}, {"label":"|", "x":15.75, "y":1, "w":1.5}, {"label":"Delete", "x":17.25, "y":1}, {"label":"F5", "x":0, "y":2}, {"label":"F6", "x":1, "y":2}, {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, {"label":"A", "x":4, "y":2}, {"label":"S", "x":5, "y":2}, {"label":"D", "x":6, "y":2}, {"label":"F", "x":7, "y":2}, {"label":"G", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":":", "x":13, "y":2}, {"label":"\"", "x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":2.25}, {"label":"PgUp", "x":17.25, "y":2}, {"label":"F7", "x":0, "y":3}, {"label":"F8", "x":1, "y":3}, {"label":"Shift", "x":2.25, "y":3, "w":2.25}, {"label":"Z", "x":4.5, "y":3}, {"label":"X", "x":5.5, "y":3}, {"label":"C", "x":6.5, "y":3}, {"label":"V", "x":7.5, "y":3}, {"label":"B", "x":8.5, "y":3}, {"label":"N", "x":9.5, "y":3}, {"label":"M", "x":10.5, "y":3}, {"label":"<", "x":11.5, "y":3}, {"label":">", "x":12.5, "y":3}, {"label":"?", "x":13.5, "y":3}, {"label":"Shift", "x":14.5, "y":3, "w":1.75}, {"label":"\u2191", "x":16.25, "y":3}, {"label":"PgDn", "x":17.25, "y":3}, {"label":"F9", "x":0, "y":4}, {"label":"F10", "x":1, "y":4}, {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, {"label":"GUI", "x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.5}, {"x":6.25, "y":4, "w":7}, {"label":"Fn", "x":13.25, "y":4, "w":1.5}, {"label":"\u2190", "x":15.25, "y":4}, {"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}] diff --git a/keyboards/knobgoblin/config.h b/keyboards/knobgoblin/config.h index ed6d69d6f0..96303b930a 100644 --- a/keyboards/knobgoblin/config.h +++ b/keyboards/knobgoblin/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B47 // KG -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MrT1ddl3s -#define PRODUCT Knob Goblin /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 5 diff --git a/keyboards/knobgoblin/info.json b/keyboards/knobgoblin/info.json index cea6915409..44a9d81ed5 100644 --- a/keyboards/knobgoblin/info.json +++ b/keyboards/knobgoblin/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "knobgoblin", + "keyboard_name": "Knob Goblin", + "manufacturer": "MrT1ddl3s", "url": "", "maintainer": "MrT1ddl3s", + "usb": { + "vid": "0x4B47", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho": { "layout": [ diff --git a/keyboards/knops/mini/config.h b/keyboards/knops/mini/config.h index 8fb094fb94..259819e7cf 100644 --- a/keyboards/knops/mini/config.h +++ b/keyboards/knops/mini/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEFD -#define PRODUCT_ID 0x9460 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Alltrons IT -#define PRODUCT Knops Mini - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 6 diff --git a/keyboards/knops/mini/info.json b/keyboards/knops/mini/info.json index 184333117e..fcc8e5229e 100644 --- a/keyboards/knops/mini/info.json +++ b/keyboards/knops/mini/info.json @@ -1,8 +1,13 @@ { "keyboard_name": "Knops Mini", + "manufacturer": "Alltrons IT", "url": "http://www.knops.io/knopsmini.html", "maintainer": "Pawnerd", - "bootloader": "lufa-dfu", + "usb": { + "vid": "0xFEFD", + "pid": "0x9460", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}] diff --git a/keyboards/kona_classic/config.h b/keyboards/kona_classic/config.h index c5a783c811..7a63ccc46d 100644 --- a/keyboards/kona_classic/config.h +++ b/keyboards/kona_classic/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0003 -#define MANUFACTURER Dangerous Parts -#define PRODUCT Kona Classic - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kona_classic/info.json b/keyboards/kona_classic/info.json index 9d4f7203b9..2b64911bcb 100644 --- a/keyboards/kona_classic/info.json +++ b/keyboards/kona_classic/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kona Classic", + "manufacturer": "Dangerous Parts", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"KA0", "x":0, "y":0}, {"label":"KA1", "x":1, "y":0}, {"label":"K00", "x":2.25, "y":0}, {"label":"K01", "x":3.25, "y":0}, {"label":"K02", "x":4.25, "y":0}, {"label":"K03", "x":5.25, "y":0}, {"label":"K04", "x":6.25, "y":0}, {"label":"K05", "x":7.25, "y":0}, {"label":"K06", "x":8.25, "y":0}, {"label":"K07", "x":9.25, "y":0}, {"label":"K08", "x":10.25, "y":0}, {"label":"K09", "x":11.25, "y":0}, {"label":"K0A", "x":12.25, "y":0}, {"label":"K0B", "x":13.25, "y":0}, {"label":"K0C", "x":14.25, "y":0}, {"label":"K0D", "x":15.25, "y":0, "w":2}, {"label":"KA2", "x":0, "y":1}, {"label":"KA3", "x":1, "y":1}, {"label":"K10", "x":2.25, "y":1, "w":1.5}, {"label":"K11", "x":3.75, "y":1}, {"label":"K12", "x":4.75, "y":1}, {"label":"K13", "x":5.75, "y":1}, {"label":"K14", "x":6.75, "y":1}, {"label":"K15", "x":7.75, "y":1}, {"label":"K16", "x":8.75, "y":1}, {"label":"K17", "x":9.75, "y":1}, {"label":"K18", "x":10.75, "y":1}, {"label":"K19", "x":11.75, "y":1}, {"label":"K1A", "x":12.75, "y":1}, {"label":"K1B", "x":13.75, "y":1}, {"label":"K1C", "x":14.75, "y":1}, {"label":"K1D", "x":15.75, "y":1, "w":1.5}, {"label":"KA4", "x":0, "y":2}, {"label":"KA5", "x":1, "y":2}, {"label":"K20", "x":2.25, "y":2, "w":1.75}, {"label":"K21", "x":4, "y":2}, {"label":"K22", "x":5, "y":2}, {"label":"K23", "x":6, "y":2}, {"label":"K24", "x":7, "y":2}, {"label":"K25", "x":8, "y":2}, {"label":"K26", "x":9, "y":2}, {"label":"K27", "x":10, "y":2}, {"label":"K28", "x":11, "y":2}, {"label":"K29", "x":12, "y":2}, {"label":"K2A", "x":13, "y":2}, {"label":"K2B", "x":14, "y":2}, {"label":"K2C", "x":15, "y":2, "w":2.25}, {"label":"KA6", "x":0, "y":3}, {"label":"KA7", "x":1, "y":3}, {"label":"K30", "x":2.25, "y":3, "w":1.25}, {"label":"K31", "x":3.5, "y":3}, {"label":"K32", "x":4.5, "y":3}, {"label":"K33", "x":5.5, "y":3}, {"label":"K34", "x":6.5, "y":3}, {"label":"K35", "x":7.5, "y":3}, {"label":"K36", "x":8.5, "y":3}, {"label":"K37", "x":9.5, "y":3}, {"label":"K38", "x":10.5, "y":3}, {"label":"K39", "x":11.5, "y":3}, {"label":"K3A", "x":12.5, "y":3}, {"label":"K3B", "x":13.5, "y":3}, {"label":"K3C", "x":15.25, "y":3}, {"label":"K3D", "x":16.25, "y":3}, {"label":"KA8", "x":0, "y":4}, {"label":"KA9", "x":1, "y":4}, {"label":"K40", "x":2.25, "y":4, "w":1.25}, {"label":"K41", "x":3.5, "y":4, "w":1.25}, {"label":"K42", "x":4.75, "y":4, "w":1.25}, {"label":"K44", "x":6, "y":4, "w":2.25}, {"label":"K46", "x":8.25, "y":4, "w":1.25}, {"label":"K47", "x":9.5, "y":4, "w":2.75}, {"label":"K49", "x":12.25, "y":4}, {"label":"K4A", "x":13.25, "y":4}, {"label":"K4B", "x":14.25, "y":4}, {"label":"K4C", "x":15.25, "y":4}, {"label":"K4D", "x":16.25, "y":4}] diff --git a/keyboards/kopibeng/mnk65/config.h b/keyboards/kopibeng/mnk65/config.h index 6059de6ab1..1c2993684d 100644 --- a/keyboards/kopibeng/mnk65/config.h +++ b/keyboards/kopibeng/mnk65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // 'KP' kopibeng -#define PRODUCT_ID 0x0651 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kopibeng -#define PRODUCT MNK65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kopibeng/mnk65/info.json b/keyboards/kopibeng/mnk65/info.json index e0bd2f7859..90266e2438 100644 --- a/keyboards/kopibeng/mnk65/info.json +++ b/keyboards/kopibeng/mnk65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MNK65", - "maintainer": "kopibeng", + "manufacturer": "kopibeng", "url": "https://monokei.co/", + "maintainer": "kopibeng", + "usb": { + "vid": "0x4B50", + "pid": "0x0651", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kopibeng/mnk88/config.h b/keyboards/kopibeng/mnk88/config.h index d8b4422523..e026367dd6 100644 --- a/keyboards/kopibeng/mnk88/config.h +++ b/keyboards/kopibeng/mnk88/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // 'KP' kopibeng -#define PRODUCT_ID 0x8800 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kopibeng -#define PRODUCT MNK88 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 @@ -50,7 +43,7 @@ #define RGB_DI_PIN A10 #ifdef RGB_DI_PIN - #define RGBLED_NUM 19 + #define RGBLED_NUM 20 #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/kopibeng/mnk88/info.json b/keyboards/kopibeng/mnk88/info.json index 2ee4da8050..68e64b6095 100644 --- a/keyboards/kopibeng/mnk88/info.json +++ b/keyboards/kopibeng/mnk88/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MNK88", - "maintainer": "kopibeng", + "manufacturer": "kopibeng", "url": "https://monokei.co/", + "maintainer": "kopibeng", + "usb": { + "vid": "0x4B50", + "pid": "0x8800", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kopibeng/typ65/config.h b/keyboards/kopibeng/typ65/config.h index 9b96483b6a..07899583ce 100644 --- a/keyboards/kopibeng/typ65/config.h +++ b/keyboards/kopibeng/typ65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // 'KP' kopibeng -#define PRODUCT_ID 0x065E -#define DEVICE_VER 0x0001 -#define MANUFACTURER kopibeng -#define PRODUCT Typ65+ - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/kopibeng/typ65/info.json b/keyboards/kopibeng/typ65/info.json index ce3bfbee39..b41daf736c 100644 --- a/keyboards/kopibeng/typ65/info.json +++ b/keyboards/kopibeng/typ65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Typ65+", - "maintainer": "kopibeng", + "manufacturer": "kopibeng", "url": "https://www.axiomstudios.shop/", + "maintainer": "kopibeng", + "usb": { + "vid": "0x4B50", + "pid": "0x065E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kopibeng/xt60/config.h b/keyboards/kopibeng/xt60/config.h index 30aff4955e..65ea5b0aa6 100644 --- a/keyboards/kopibeng/xt60/config.h +++ b/keyboards/kopibeng/xt60/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // 'KP' kopibeng -#define PRODUCT_ID 0x0600 -#define DEVICE_VER 0x0002 -#define MANUFACTURER kopibeng -#define PRODUCT XT60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kopibeng/xt60/info.json b/keyboards/kopibeng/xt60/info.json index fbd8904a7f..6d946c960e 100644 --- a/keyboards/kopibeng/xt60/info.json +++ b/keyboards/kopibeng/xt60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "XT60", - "maintainer": "Kopibeng", + "manufacturer": "kopibeng", "url": "", + "maintainer": "Kopibeng", + "usb": { + "vid": "0x4B50", + "pid": "0x0600", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kopibeng/xt65/config.h b/keyboards/kopibeng/xt65/config.h index e134e8b864..3c78f01d52 100644 --- a/keyboards/kopibeng/xt65/config.h +++ b/keyboards/kopibeng/xt65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // 'KP' kopibeng -#define PRODUCT_ID 0x0650 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kopibeng -#define PRODUCT XT65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kopibeng/xt65/info.json b/keyboards/kopibeng/xt65/info.json index 37afadf25f..04d61df718 100644 --- a/keyboards/kopibeng/xt65/info.json +++ b/keyboards/kopibeng/xt65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "kopibeng XT65", + "keyboard_name": "XT65", + "manufacturer": "kopibeng", "url": "", "maintainer": "kopibeng", + "usb": { + "vid": "0x4B50", + "pid": "0x0650", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_65_7u_split_bs": "LAYOUT_65_ansi_blocker_tsangan_split_bs", "LAYOUT_all": "LAYOUT_65_ansi_blocker_split_bs", diff --git a/keyboards/kopibeng/xt8x/config.h b/keyboards/kopibeng/xt8x/config.h index d1508dfdd6..4086020397 100644 --- a/keyboards/kopibeng/xt8x/config.h +++ b/keyboards/kopibeng/xt8x/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // 'KP' kopibeng -#define PRODUCT_ID 0x8788 -#define DEVICE_VER 0x0001 -#define MANUFACTURER kopibeng -#define PRODUCT XT8x - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/kopibeng/xt8x/info.json b/keyboards/kopibeng/xt8x/info.json index d2a59eef8b..ad828e0ecb 100644 --- a/keyboards/kopibeng/xt8x/info.json +++ b/keyboards/kopibeng/xt8x/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "XT8x", - "maintainer": "kopibeng", + "manufacturer": "kopibeng", "url": "", + "maintainer": "kopibeng", + "usb": { + "vid": "0x4B50", + "pid": "0x8788", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/kprepublic/bm16a/config.h b/keyboards/kprepublic/bm16a/config.h index 120232bb91..17568b446e 100644 --- a/keyboards/kprepublic/bm16a/config.h +++ b/keyboards/kprepublic/bm16a/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0x016A -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPrepublic -#define PRODUCT bm16a - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/kprepublic/bm16a/info.json b/keyboards/kprepublic/bm16a/info.json index 520e508249..6c616e11d1 100644 --- a/keyboards/kprepublic/bm16a/info.json +++ b/keyboards/kprepublic/bm16a/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "bm16a", + "manufacturer": "KPrepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0x016A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [ diff --git a/keyboards/kprepublic/bm16s/config.h b/keyboards/kprepublic/bm16s/config.h index 4ee57f3510..a473ee3956 100755 --- a/keyboards/kprepublic/bm16s/config.h +++ b/keyboards/kprepublic/bm16s/config.h @@ -1,13 +1,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 //KP -#define PRODUCT_ID 0x016B -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPrepublic -#define PRODUCT bm16s - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/kprepublic/bm16s/info.json b/keyboards/kprepublic/bm16s/info.json index 938666a504..03d0659be0 100644 --- a/keyboards/kprepublic/bm16s/info.json +++ b/keyboards/kprepublic/bm16s/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "bm16s", + "manufacturer": "KPrepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0x016B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [ diff --git a/keyboards/kprepublic/bm40hsrgb/config.h b/keyboards/kprepublic/bm40hsrgb/config.h index 8790de8a7b..f5f4c8bd4d 100755 --- a/keyboards/kprepublic/bm40hsrgb/config.h +++ b/keyboards/kprepublic/bm40hsrgb/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0x3430 // "40" -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPRepublic -#define PRODUCT BM40 Hotswap RGB - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/kprepublic/bm40hsrgb/info.json b/keyboards/kprepublic/bm40hsrgb/info.json index ddd99d3e35..2d1dd70df0 100644 --- a/keyboards/kprepublic/bm40hsrgb/info.json +++ b/keyboards/kprepublic/bm40hsrgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BM40HSRGB", + "keyboard_name": "BM40 Hotswap RGB", + "manufacturer": "KPRepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0x3430", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_planck_mit": { "layout": [ diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h new file mode 100644 index 0000000000..63176adb50 --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h @@ -0,0 +1,59 @@ +// Copyright 2021 Taeyoon Kim (@partrita) +// SPDX-License-Identifier: GPL-2.0-or-later +// /* +// Set any config.h overrides for your specific keymap here. +// See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file +// */ +#pragma once + +#define TAPPING_TERM 200 // time of holding key, milliseconds + +// Prevent normal rollover on alphas from accidentally triggering mods. +#define IGNORE_MOD_TAP_INTERRUPT + +// Enable rapid switch from tap to hold, disables double tap hold auto-repeat. +#define TAPPING_FORCE_HOLD + +// Recommended for heavy chording. +#define QMK_KEYS_PER_SCAN 4 + +// Mouse key speed and acceleration. +#undef MOUSEKEY_DELAY +#define MOUSEKEY_DELAY 0 +#undef MOUSEKEY_INTERVAL +#define MOUSEKEY_INTERVAL 16 +#undef MOUSEKEY_WHEEL_DELAY +#define MOUSEKEY_WHEEL_DELAY 0 +#undef MOUSEKEY_MAX_SPEED +#define MOUSEKEY_MAX_SPEED 6 +#undef MOUSEKEY_TIME_TO_MAX +#define MOUSEKEY_TIME_TO_MAX 64 + +// The firmware is too large! +#define COMBO_COUNT 1 // number of combo +#define COMBO_TERM 80 // timeout period for combos to 40ms. + +//disable broken animations +#ifdef RGB_MATRIX_ENABLE +# undef ENABLE_RGB_MATRIX_ALPHAS_MODS +# 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_CYCLE_PINWHEEL +# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP +# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN +# undef RGB_MATRIX_STARTUP_MODE +// # define RGBLIGHT_HUE_STEP 20 +#endif \ No newline at end of file diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c new file mode 100644 index 0000000000..f3a8522a2d --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c @@ -0,0 +1,91 @@ +// Copyright 2021 Taeyoon Kim (@partrita) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "keymap_korean.h" + +enum layers { + _Base, + _Navi, + _Numb, + _Func, +}; + +// Left-hand home row mods - Base Layer +#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) +#define HOME_J RSFT_T(KC_J) +#define HOME_K LCTL_T(KC_K) +#define HOME_L LALT_T(KC_L) +#define HOME_QU LGUI_T(KC_QUOT) + +// layer keys +#define Lay_SPC LT(_Func,KC_SPC) +#define NAVI MO(_Navi) +#define NUMB MO(_Numb) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_Base] = LAYOUT_planck_mit( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, + HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_NO, KC_NO, KC_H, HOME_J, HOME_K, HOME_L, HOME_QU, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_NO, KC_NO, KC_NO, NAVI, Lay_SPC, KC_NO, KC_BSPC, NUMB, KC_NO, KC_NO, KC_NO + ), + [_Navi] = LAYOUT_planck_mit( + KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_ESC, KC_NO, KC_NO, KC_DEL, KC_HOME, KC_PGDN, KC_PGUP, KC_END, + KC_LSFT, HOME_S, HOME_D, HOME_F, KC_TAB, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU, + KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, KC_NO, KC_NO, KC_BTN2, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO + ), + [_Numb] = LAYOUT_planck_mit( + KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_NO, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, + KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU, + KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HAEN, KC_NO, + KC_NO, KC_NO, KC_NO, KC_0, KC_MINS, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO + ), + [_Func] = LAYOUT_planck_mit( + KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, + KC_F11, KC_F4, KC_F5, KC_F6, KC_SCRL, KC_NO, KC_NO, KC_CAPS, KC_RSFT, HOME_K, HOME_L, HOME_QU, + KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_NO, KC_NO, KC_INS, KC_NO, KC_NO, KC_HAEN, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO + ), +}; + + +// color by layer +layer_state_t layer_state_set_user(layer_state_t state) { + uint8_t layer = get_highest_layer(state); + switch (layer) { + case _Navi: + rgblight_mode_noeeprom(RGB_MATRIX_RAINBOW_BEACON); + break; + case _Numb: + rgblight_mode_noeeprom(RGB_MATRIX_HUE_PENDULUM); + break; + case _Func: + rgblight_mode_noeeprom(RGB_MATRIX_GRADIENT_LEFT_RIGHT); + break; + default: + rgblight_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_WIDE); + } + return state; +} + +// COMBO key for HOME ROW modifier +// modify `config.h` file +// by adding #define COMBO_COUNT 1 (replacing 1 with the number that you’re using). +// modify `rules.mk` file +// by adding # COMBO_ENABLE = yes + +enum combos { + SFT_HAN, +}; + +const uint16_t PROGMEM sft_han_combo[] = {LSFT_T(KC_F), LT(_Func,KC_SPC), COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [SFT_HAN] = COMBO(sft_han_combo, KC_HAEN), +}; \ No newline at end of file diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/readme.md new file mode 100644 index 0000000000..31ac2602b6 --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/readme.md @@ -0,0 +1,63 @@ +# The 35 keymap for bm40hsrgb + +This layout is made almost entirely from [miryoku](https://github.com/manna-harbour/miryoku). However, I used fewer layers and reduced 36 keys to 34. + +> As little as possible, as simple as possible, as easy as possible to memorize + +Replaced the Ctrl, GUI, Alt, and Shift keys with home mod row. A combo function was added by removing some RGB animations of the bm40's keyboard to free up memory. If animation is not removed, it is because there is not enough memory to compile. Added code that uses RGB matrix animation so that you can see at a glance which layer is being used, and you can move faster by increasing the speed of the mouse key. + +And because I'm Korean, a combo for Korean and English keyboard conversion has been added, but if you don't need it, you can delete it. + + +- Flash: + + `qmk flash -kb kprepublic/bm40hsrgb -km 34keys` + +# Layout + +Press and hold to activate the keys in parentheses. + + +https://imgur.com/a/UkKfCYm + + +## _BASE(QWERTY) + +![](https://i.imgur.com/PuHFVXT.png) + + +| Q | W | E | R | T | | | Y | U | I | O | P | +|---|---|---|---|---|---|---|---|---|---|---|---| +| A(GUI) | S(Alt) | D(Ctrl) | F(Shift) | G | | | H | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) | +| Z | X| C| V| B| | | N | M | , | . | /| +| | | | NaviLayer| Space(_Func) | | | Backspace | NumberLayer | | | | + +## _Navi + +![](https://i.imgur.com/BwDHx64.png) + +| Mousewheel left | Mousewheel down | Mousewheel up | Mousewheel right | ESC | | | DEL | HOME | PageDown | PageUP | END | +|---|---|---|---|---|---|---|---|---|---|---|---| +| A(GUI) | S(Alt) | D(Ctrl) | F(Shift) | TAB | | | ENTER | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) | +| Mouse left | Mouse down | Mouse up| Mouse right | left click | | | left click | Left | Down | Up | Right | +| | | | | Space | | | Backspace | NumberLayer | | | | + +## _Numb + +![](https://i.imgur.com/lPPyUsk.png) + +| [ | 7 | 8 | 9 | ] | | | DEL | | | | | +|---|---|---|---|---|---|---|---|---|---|---|---| +| ; | 4 | 5 | 6 | = | | | ENTER | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) | +| ` | 1 | 2 | 3 | \ | | | | | | | | +| | | | 0| - | | | Backspace | | | | | + +## _Func + +![](https://i.imgur.com/rz0jaoe.png) + +| F12 | F7 | F8 | F9 | PrintScreen | | | RESET | | | | | +|---|---|---|---|---|---|---|---|---|---|---|---| +| F11 | F4 | F5 | F6 | ScrollLock | | | CapsLock | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) | +| F10 | F1 | F2 | F3 | PauseBreak | | | Insert | | | | | +| | | | NaviLayer | Space | | | Backspace | NumberLayer | | | | diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/rules.mk new file mode 100644 index 0000000000..96655e7b5a --- /dev/null +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/rules.mk @@ -0,0 +1,4 @@ +BOOTMAGIC_ENABLE = yes +MOUSEKEY_ENABLE = yes +COMBO_ENABLE = yes +EXTRAKEY_ENABLE = yes diff --git a/keyboards/kprepublic/bm43a/config.h b/keyboards/kprepublic/bm43a/config.h index e08561d916..23f1753fc7 100644 --- a/keyboards/kprepublic/bm43a/config.h +++ b/keyboards/kprepublic/bm43a/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPRepublic -#define PRODUCT BM43A - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/kprepublic/bm43a/info.json b/keyboards/kprepublic/bm43a/info.json index 005945d50e..0cbeeac633 100644 --- a/keyboards/kprepublic/bm43a/info.json +++ b/keyboards/kprepublic/bm43a/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BM43A", + "manufacturer": "KPRepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kprepublic/bm43hsrgb/config.h b/keyboards/kprepublic/bm43hsrgb/config.h index c778f56995..dc753287d2 100755 --- a/keyboards/kprepublic/bm43hsrgb/config.h +++ b/keyboards/kprepublic/bm43hsrgb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 -#define PRODUCT_ID 0x6061 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPRepublic -#define PRODUCT BM43 Hotswap RGB - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/kprepublic/bm43hsrgb/info.json b/keyboards/kprepublic/bm43hsrgb/info.json index dbee830364..052a4f8a6a 100755 --- a/keyboards/kprepublic/bm43hsrgb/info.json +++ b/keyboards/kprepublic/bm43hsrgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BM43HSRGB", + "keyboard_name": "BM43 Hotswap RGB", + "manufacturer": "KPRepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0x6061", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/config.h b/keyboards/kprepublic/bm60hsrgb/rev1/config.h index b8f002dca6..f1a160730c 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0xEF8C -#define DEVICE_VER 0x0001 -#define MANUFACTURER KP Republic -#define PRODUCT BM60HSRGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/info.json b/keyboards/kprepublic/bm60hsrgb/rev1/info.json index a5fb20a008..4c1db804bd 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/info.json +++ b/keyboards/kprepublic/bm60hsrgb/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BM60HSRGB", + "manufacturer": "KP Republic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0xEF8C", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_60_ansi_arrow" }, diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index d8e7501b22..7a1b051f83 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 -#define PRODUCT_ID 0x1121 -#define DEVICE_VER 0x0002 -#define MANUFACTURER KP Republic -#define PRODUCT BM60V2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/info.json b/keyboards/kprepublic/bm60hsrgb/rev2/info.json index 7cbd7fb4f7..af88dc88b6 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/info.json +++ b/keyboards/kprepublic/bm60hsrgb/rev2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "bm60v2", + "keyboard_name": "BM60V2", + "manufacturer": "KP Republic", "url": "", "maintainer": "bdtc123", + "usb": { + "vid": "0x4B50", + "pid": "0x1121", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_60_ansi_arrow": { "layout": [ diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h index 9aa52dae90..868ce40d8c 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0xEF9C -#define DEVICE_VER 0x0001 -#define MANUFACTURER KP Republic -#define PRODUCT BM60HSRGB_EC - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json b/keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json index e85a9fffc3..d56d62fe59 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/info.json @@ -1,78 +1,87 @@ { - "keyboard_name": "BM60HSRGB_EC", + "keyboard_name": "BM60HSRGB_EC Rev1", + "manufacturer": "KP Republic", "url": "", - "maintainer": "qmk", + "maintainer": "peepeetee", + "usb": { + "vid": "0x4B50", + "pid": "0xEF9C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ - {"label":"K00 (B0,D0)", "x":0, "y":0}, - {"label":"K01 (B0,D1)", "x":1, "y":0}, - {"label":"K02 (B0,D2)", "x":2, "y":0}, - {"label":"K03 (B0,D3)", "x":3, "y":0}, - {"label":"K04 (B0,D5)", "x":4, "y":0}, - {"label":"K05 (B0,D4)", "x":5, "y":0}, - {"label":"K06 (B0,D6)", "x":6, "y":0}, - {"label":"K07 (B0,D7)", "x":7, "y":0}, - {"label":"K08 (B0,B4)", "x":8, "y":0}, - {"label":"K09 (B0,B5)", "x":9, "y":0}, - {"label":"K0A (B0,B6)", "x":10, "y":0}, - {"label":"K0B (B0,C6)", "x":11, "y":0}, - {"label":"K0C (B0,C7)", "x":12, "y":0}, - {"label":"K0D (B0,F7)", "x":13, "y":0}, - {"label":"K21 (B2,D1)", "x":14, "y":0}, - {"label":"K43 (E6,D3)", "x":15, "y":0}, - {"label":"K44 (E6,D5)", "x":16, "y":0}, - {"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5}, - {"label":"K11 (B1,D1)", "x":1.5, "y":1}, - {"label":"K12 (B1,D2)", "x":2.5, "y":1}, - {"label":"K13 (B1,D3)", "x":3.5, "y":1}, - {"label":"K14 (B1,D5)", "x":4.5, "y":1}, - {"label":"K15 (B1,D4)", "x":5.5, "y":1}, - {"label":"K16 (B1,D6)", "x":6.5, "y":1}, - {"label":"K17 (B1,D7)", "x":7.5, "y":1}, - {"label":"K18 (B1,B4)", "x":8.5, "y":1}, - {"label":"K19 (B1,B5)", "x":9.5, "y":1}, - {"label":"K1A (B1,B6)", "x":10.5, "y":1}, - {"label":"K1B (B1,C6)", "x":11.5, "y":1}, - {"label":"K1C (B1,C7)", "x":12.5, "y":1}, - {"label":"K1D (B1,F7)", "x":13.5, "y":1, "w":1.5}, - {"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75}, - {"label":"K22 (B2,D2)", "x":1.75, "y":2}, - {"label":"K23 (B2,D3)", "x":2.75, "y":2}, - {"label":"K24 (B2,D5)", "x":3.75, "y":2}, - {"label":"K25 (B2,D4)", "x":4.75, "y":2}, - {"label":"K26 (B2,D6)", "x":5.75, "y":2}, - {"label":"K27 (B2,D7)", "x":6.75, "y":2}, - {"label":"K28 (B2,B4)", "x":7.75, "y":2}, - {"label":"K29 (B2,B5)", "x":8.75, "y":2}, - {"label":"K2A (B2,B6)", "x":9.75, "y":2}, - {"label":"K2B (B2,C6)", "x":10.75, "y":2}, - {"label":"K2C (B2,C7)", "x":11.75, "y":2}, - {"label":"K2D (B2,F7)", "x":12.75, "y":2, "w":2.25}, - {"label":"K31 (B3,D1)", "x":0, "y":3, "w":2.25}, - {"label":"K32 (B3,D2)", "x":2.25, "y":3}, - {"label":"K33 (B3,D3)", "x":3.25, "y":3}, - {"label":"K34 (B3,D5)", "x":4.25, "y":3}, - {"label":"K35 (B3,D4)", "x":5.25, "y":3}, - {"label":"K36 (B3,D6)", "x":6.25, "y":3}, - {"label":"K37 (B3,D7)", "x":7.25, "y":3}, - {"label":"K38 (B3,B4)", "x":8.25, "y":3}, - {"label":"K39 (B3,B5)", "x":9.25, "y":3}, - {"label":"K3A (B3,B6)", "x":10.25, "y":3}, - {"label":"K3B (B3,C6)", "x":11.25, "y":3, "w":1.75}, - {"label":"K3C (B3,C7)", "x":13, "y":3}, - {"label":"K3D (B3,F7)", "x":14, "y":3}, - {"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25}, - {"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25}, - {"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25}, - {"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25}, - {"label":"K49 (E6,B5)", "x":10, "y":4}, - {"label":"K4A (E6,B6)", "x":11, "y":4}, - {"label":"K4B (E6,C6)", "x":12, "y":4}, - {"label":"K4C (E6,C7)", "x":13, "y":4}, - {"label":"K4D (E6,F7)", "x":14, "y":4} + {"label":"K00 (B0, D0)", "x":0, "y":0.5}, + {"label":"K01 (B0, D1)", "x":1, "y":0.5}, + {"label":"K02 (B0, D2)", "x":2, "y":0.5}, + {"label":"K03 (B0, D3)", "x":3, "y":0.5}, + {"label":"K04 (B0, D5)", "x":4, "y":0.5}, + {"label":"K05 (B0, D4)", "x":5, "y":0.5}, + {"label":"K06 (B0, D6)", "x":6, "y":0.5}, + {"label":"K07 (B0, D7)", "x":7, "y":0.5}, + {"label":"K08 (B0, B4)", "x":8, "y":0.5}, + {"label":"K09 (B0, B5)", "x":9, "y":0.5}, + {"label":"K0A (B0, B6)", "x":10, "y":0.5}, + {"label":"K0B (B0, C6)", "x":11, "y":0.5}, + {"label":"K0C (B0, C7)", "x":12, "y":0.5}, + {"label":"K0D (B0, F7)", "x":13, "y":0.5}, + {"label":"K21 (B2, D1)", "x":14, "y":0.5}, + {"label":"K43 (E6, D3)", "x":13.9, "y":0, "w":0.6, "h":0.5}, + {"label":"K44 (E6, D5)", "x":14.5, "y":0, "w":0.6, "h":0.5}, + + {"label":"K10 (B1, D0)", "x":0, "y":1.5, "w":1.5}, + {"label":"K11 (B1, D1)", "x":1.5, "y":1.5}, + {"label":"K12 (B1, D2)", "x":2.5, "y":1.5}, + {"label":"K13 (B1, D3)", "x":3.5, "y":1.5}, + {"label":"K14 (B1, D5)", "x":4.5, "y":1.5}, + {"label":"K15 (B1, D4)", "x":5.5, "y":1.5}, + {"label":"K16 (B1, D6)", "x":6.5, "y":1.5}, + {"label":"K17 (B1, D7)", "x":7.5, "y":1.5}, + {"label":"K18 (B1, B4)", "x":8.5, "y":1.5}, + {"label":"K19 (B1, B5)", "x":9.5, "y":1.5}, + {"label":"K1A (B1, B6)", "x":10.5, "y":1.5}, + {"label":"K1B (B1, C6)", "x":11.5, "y":1.5}, + {"label":"K1C (B1, C7)", "x":12.5, "y":1.5}, + {"label":"K1D (B1, F7)", "x":13.5, "y":1.5, "w":1.5}, + + {"label":"K20 (B2, D0)", "x":0, "y":2.5, "w":1.75}, + {"label":"K22 (B2, D2)", "x":1.75, "y":2.5}, + {"label":"K23 (B2, D3)", "x":2.75, "y":2.5}, + {"label":"K24 (B2, D5)", "x":3.75, "y":2.5}, + {"label":"K25 (B2, D4)", "x":4.75, "y":2.5}, + {"label":"K26 (B2, D6)", "x":5.75, "y":2.5}, + {"label":"K27 (B2, D7)", "x":6.75, "y":2.5}, + {"label":"K28 (B2, B4)", "x":7.75, "y":2.5}, + {"label":"K29 (B2, B5)", "x":8.75, "y":2.5}, + {"label":"K2A (B2, B6)", "x":9.75, "y":2.5}, + {"label":"K2B (B2, C6)", "x":10.75, "y":2.5}, + {"label":"K2C (B2, C7)", "x":11.75, "y":2.5}, + {"label":"K2D (B2, F7)", "x":12.75, "y":2.5, "w":2.25}, + + {"label":"K31 (B3, D1)", "x":0, "y":3.5, "w":2.25}, + {"label":"K32 (B3, D2)", "x":2.25, "y":3.5}, + {"label":"K33 (B3, D3)", "x":3.25, "y":3.5}, + {"label":"K34 (B3, D5)", "x":4.25, "y":3.5}, + {"label":"K35 (B3, D4)", "x":5.25, "y":3.5}, + {"label":"K36 (B3, D6)", "x":6.25, "y":3.5}, + {"label":"K37 (B3, D7)", "x":7.25, "y":3.5}, + {"label":"K38 (B3, B4)", "x":8.25, "y":3.5}, + {"label":"K39 (B3, B5)", "x":9.25, "y":3.5}, + {"label":"K3A (B3, B6)", "x":10.25, "y":3.5}, + {"label":"K3B (B3, C6)", "x":11.25, "y":3.5, "w":1.75}, + {"label":"K3C (B3, C7)", "x":13, "y":3.5}, + {"label":"K3D (B3, F7)", "x":14, "y":3.5}, + + {"label":"K40 (E6, D0)", "x":0, "y":4.5, "w":1.25}, + {"label":"K41 (E6, D1)", "x":1.25, "y":4.5, "w":1.25}, + {"label":"K42 (E6, D2)", "x":2.5, "y":4.5, "w":1.25}, + {"label":"K46 (E6, D6)", "x":3.75, "y":4.5, "w":6.25}, + {"label":"K49 (E6, B5)", "x":10, "y":4.5}, + {"label":"K4A (E6, B6)", "x":11, "y":4.5}, + {"label":"K4B (E6, C6)", "x":12, "y":4.5}, + {"label":"K4C (E6, C7)", "x":13, "y":4.5}, + {"label":"K4D (E6, F7)", "x":14, "y":4.5} ] } } - ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" } diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/readme.md b/keyboards/kprepublic/bm60hsrgb_ec/rev1/readme.md index 2c0996974b..1e284041d0 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/readme.md +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/readme.md @@ -2,9 +2,9 @@ A 60% hotswap inswitch RGB keyboard with an encoder from KP Republic. -* Keyboard Maintainer: [bdtc123](https://github.com/bdtc123) +* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee) * Hardware Supported: BM60HSRGB_EC/rev1 -* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm60-rgb-60-gh60-hot-swappable-pcb-programmed-qmk-firmware-type-c) +* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm60ec-bm60-ec-rgb-60-gh60-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-rgb-switch-type-c-rotary-knob) ## Bootloader diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index 5c2bf39ced..0a63b7819b 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 -#define PRODUCT_ID 0x1124 -#define DEVICE_VER 0x0002 -#define MANUFACTURER KP Republic -#define PRODUCT BM60V2_ec - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json b/keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json index 613511b784..b8e28b0ea2 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/info.json @@ -1,80 +1,86 @@ { - "keyboard_name": "bm60hsrgb_ec", + "keyboard_name": "BM60HSRGB_EC Rev2", + "manufacturer": "KP Republic", "url": "", - "maintainer": "qmk", + "maintainer": "peepeetee", + "usb": { + "vid": "0x4B50", + "pid": "0x1124", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "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.75, "y":0}, - {"x":15.75, "y":0}, - {"x":16.75, "y":0}, + {"x":0, "y":0.5}, + {"x":1, "y":0.5}, + {"x":2, "y":0.5}, + {"x":3, "y":0.5}, + {"x":4, "y":0.5}, + {"x":5, "y":0.5}, + {"x":6, "y":0.5}, + {"x":7, "y":0.5}, + {"x":8, "y":0.5}, + {"x":9, "y":0.5}, + {"x":10, "y":0.5}, + {"x":11, "y":0.5}, + {"x":12, "y":0.5}, + {"x":13, "y":0.5}, + {"x":14, "y":0.5}, + {"x":13.9, "y":0, "w":0.6, "h":0.5}, + {"x":14.5, "y":0, "w":0.6, "h":0.5}, - {"x":0, "y":1, "w":1.5}, - {"x":1.5, "y":1}, - {"x":2.5, "y":1}, - {"x":3.5, "y":1}, - {"x":4.5, "y":1}, - {"x":5.5, "y":1}, - {"x":6.5, "y":1}, - {"x":7.5, "y":1}, - {"x":8.5, "y":1}, - {"x":9.5, "y":1}, - {"x":10.5, "y":1}, - {"x":11.5, "y":1}, - {"x":12.5, "y":1}, - {"x":13.5, "y":1, "w":1.5}, + {"x":0, "y":1.5, "w":1.5}, + {"x":1.5, "y":1.5}, + {"x":2.5, "y":1.5}, + {"x":3.5, "y":1.5}, + {"x":4.5, "y":1.5}, + {"x":5.5, "y":1.5}, + {"x":6.5, "y":1.5}, + {"x":7.5, "y":1.5}, + {"x":8.5, "y":1.5}, + {"x":9.5, "y":1.5}, + {"x":10.5, "y":1.5}, + {"x":11.5, "y":1.5}, + {"x":12.5, "y":1.5}, + {"x":13.5, "y":1.5, "w":1.5}, - {"x":0, "y":2, "w":1.75}, - {"x":1.75, "y":2}, - {"x":2.75, "y":2}, - {"x":3.75, "y":2}, - {"x":4.75, "y":2}, - {"x":5.75, "y":2}, - {"x":6.75, "y":2}, - {"x":7.75, "y":2}, - {"x":8.75, "y":2}, - {"x":9.75, "y":2}, - {"x":10.75, "y":2}, - {"x":11.75, "y":2}, - {"x":12.75, "y":2, "w":2.25}, + {"x":0, "y":2.5, "w":1.75}, + {"x":1.75, "y":2.5}, + {"x":2.75, "y":2.5}, + {"x":3.75, "y":2.5}, + {"x":4.75, "y":2.5}, + {"x":5.75, "y":2.5}, + {"x":6.75, "y":2.5}, + {"x":7.75, "y":2.5}, + {"x":8.75, "y":2.5}, + {"x":9.75, "y":2.5}, + {"x":10.75, "y":2.5}, + {"x":11.75, "y":2.5}, + {"x":12.75, "y":2.5, "w":2.25}, - {"x":0, "y":3, "w":2.25}, - {"x":2.25, "y":3}, - {"x":3.25, "y":3}, - {"x":4.25, "y":3}, - {"x":5.25, "y":3}, - {"x":6.25, "y":3}, - {"x":7.25, "y":3}, - {"x":8.25, "y":3}, - {"x":9.25, "y":3}, - {"x":10.25, "y":3}, - {"x":11.25, "y":3, "w":1.75}, - {"x":13, "y":3}, - {"x":14, "y":3}, + {"x":0, "y":3.5, "w":2.25}, + {"x":2.25, "y":3.5}, + {"x":3.25, "y":3.5}, + {"x":4.25, "y":3.5}, + {"x":5.25, "y":3.5}, + {"x":6.25, "y":3.5}, + {"x":7.25, "y":3.5}, + {"x":8.25, "y":3.5}, + {"x":9.25, "y":3.5}, + {"x":10.25, "y":3.5}, + {"x":11.25, "y":3.5, "w":1.75}, + {"x":13, "y":3.5}, + {"x":14, "y":3.5}, - {"x":0, "y":4, "w":1.25}, - {"x":1.25, "y":4, "w":1.25}, - {"x":2.5, "y":4, "w":1.25}, - {"x":3.75, "y":4, "w":6.25}, - {"x":10, "y":4}, - {"x":11, "y":4}, - {"x":12, "y":4}, - {"x":13, "y":4}, - {"x":14, "y":4} + {"x":0, "y":4.5, "w":1.25}, + {"x":1.25, "y":4.5, "w":1.25}, + {"x":2.5, "y":4.5, "w":1.25}, + {"x":3.75, "y":4.5, "w":6.25}, + {"x":10, "y":4.5}, + {"x":11, "y":4.5}, + {"x":12, "y":4.5}, + {"x":13, "y":4.5}, + {"x":14, "y":4.5} ] } } diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/readme.md b/keyboards/kprepublic/bm60hsrgb_ec/rev2/readme.md index 39e986c1c5..6454a57420 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/readme.md +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/readme.md @@ -2,9 +2,13 @@ A 60% hotswap inswitch RGB keyboard with an encoder from KP Republic. -* Keyboard Maintainer: [bdtc123](https://github.com/bdtc123) +* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee) * Hardware Supported: BM60HSRGB_EC/rev2 -* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm60-rgb-60-gh60-hot-swappable-pcb-programmed-qmk-firmware-type-c) +* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm60ec-bm60-ec-rgb-60-gh60-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-rgb-switch-type-c-rotary-knob) + +## 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 diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h index 42b9d2afb1..4ef984b4be 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0xEF8C -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPRepublic -#define PRODUCT BM60HSRGB_ISO - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/info.json b/keyboards/kprepublic/bm60hsrgb_iso/rev1/info.json index b53600e44d..9531c81748 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/info.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BM60HSRGB_ISO", + "keyboard_name": "BM60HSRGB_ISO Rev1", + "manufacturer": "KPRepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0xEF8C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_iso_arrow": { "layout": [ diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index 4653db4fd6..177ceb49fd 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 -#define PRODUCT_ID 0x1123 -#define DEVICE_VER 0x0002 -#define MANUFACTURER KP REPUBLIC -#define PRODUCT BM60V2_ISO - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json index 8fd3f1786f..feee1fd9a7 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "bm60v2_ISO", + "keyboard_name": "BM60HSRGB_ISO Rev2", + "manufacturer": "KPRepublic", "url": "", "maintainer": "kp republic", + "usb": { + "vid": "0x4B50", + "pid": "0x1123", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_60_iso_arrow": { "layout": [ diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h index a3aab0e65e..88c44d4440 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0xEF8D -#define DEVICE_VER 0x0001 -#define MANUFACTURER KP Republic -#define PRODUCT BM60HSRGB_POKER - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/info.json b/keyboards/kprepublic/bm60hsrgb_poker/rev1/info.json index 09abf6e353..c168002147 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/info.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BM60HSRGB_POKER", + "keyboard_name": "BM60HSRGB Poker Rev1", + "manufacturer": "KPrepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0xEF8D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index d40004f502..0107d3410d 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 -#define PRODUCT_ID 0x1122 -#define DEVICE_VER 0x0002 -#define MANUFACTURER KP Republic -#define PRODUCT BM60V2_poker - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/info.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/info.json index 914334e113..8ec74866f2 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/info.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "bm60v2_poker", + "keyboard_name": "BM60HSRGB Poker Rev2", + "manufacturer": "KPrepublic", "url": "", "maintainer": "bdtc123", + "usb": { + "vid": "0x4B50", + "pid": "0x1122", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/config.h b/keyboards/kprepublic/bm65hsrgb/rev1/config.h index b428a78864..8199a75395 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/config.h +++ b/keyboards/kprepublic/bm65hsrgb/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 //KP -#define PRODUCT_ID 0xEF6E -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPRepublic -#define PRODUCT BM65HSRGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/info.json b/keyboards/kprepublic/bm65hsrgb/rev1/info.json index 788f8be23e..0d99dd2dc2 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/info.json +++ b/keyboards/kprepublic/bm65hsrgb/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BM65HSRGB", + "manufacturer": "KPrepublic", "url": "", "maintainer": "bytesapart", + "usb": { + "vid": "0x4B50", + "pid": "0xEF6E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h b/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h index aafb43bb51..0b5a3bf8e4 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0x0653 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KP Republic -#define PRODUCT BM65HSRGB_ISO - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/info.json b/keyboards/kprepublic/bm65hsrgb_iso/rev1/info.json index 9212c43339..02d55f9b0d 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/info.json +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BM65HSRGB_ISO", + "keyboard_name": "BM65HSRGB ISO", + "manufacturer": "KPrepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0x0653", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_iso_blocker": { "layout": [ diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/config.h b/keyboards/kprepublic/bm68hsrgb/rev1/config.h index 636ff1c785..d5d96a2644 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 //KP -#define PRODUCT_ID 0xEF6F -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPRepublic -#define PRODUCT BM68HSRGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/info.json b/keyboards/kprepublic/bm68hsrgb/rev1/info.json index 0a72da6e98..c89d5262ba 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/info.json +++ b/keyboards/kprepublic/bm68hsrgb/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BM68HSRGB", + "keyboard_name": "BM68HSRGB Rev1", + "manufacturer": "KPrepublic", "url": "", "maintainer": "peepeetee", + "usb": { + "vid": "0x4B50", + "pid": "0xEF6F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index 900aa699cb..946bdaba55 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 -#define PRODUCT_ID 0x1131 -#define DEVICE_VER 0x0002 -#define MANUFACTURER KP republic -#define PRODUCT bm68v2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/info.json b/keyboards/kprepublic/bm68hsrgb/rev2/info.json index 23a4d4d38f..4239947cdb 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/info.json +++ b/keyboards/kprepublic/bm68hsrgb/rev2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "bm68hsrgb/rev2", + "keyboard_name": "BM68HSRGB Rev2", + "manufacturer": "KPrepublic", "url": "", "maintainer": "bdtc123", + "usb": { + "vid": "0x4B50", + "pid": "0x1131", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/kprepublic/bm80hsrgb/config.h b/keyboards/kprepublic/bm80hsrgb/config.h index 7adc89720d..9246d8066a 100644 --- a/keyboards/kprepublic/bm80hsrgb/config.h +++ b/keyboards/kprepublic/bm80hsrgb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 //KP -#define PRODUCT_ID 0xEF83 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPRepublic -#define PRODUCT BM80HSRGB - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/kprepublic/bm80hsrgb/info.json b/keyboards/kprepublic/bm80hsrgb/info.json index f46024a93f..d05e4c5c34 100644 --- a/keyboards/kprepublic/bm80hsrgb/info.json +++ b/keyboards/kprepublic/bm80hsrgb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "BM80HSRGB", + "manufacturer": "KPRepublic", "url": "", "maintainer": "peepeetee", + "usb": { + "vid": "0x4B50", + "pid": "0xEF83", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/kprepublic/bm80v2/bm80v2.c b/keyboards/kprepublic/bm80v2/bm80v2.c new file mode 100644 index 0000000000..4b8e5af13f --- /dev/null +++ b/keyboards/kprepublic/bm80v2/bm80v2.c @@ -0,0 +1,149 @@ +/* Copyright 2022 bdtc123 * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "bm80v2.h" + +#ifdef RGB_MATRIX_ENABLE + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS6_SW1, CS5_SW1, CS4_SW1}, + {0, CS6_SW3, CS5_SW3, CS4_SW3}, + {0, CS6_SW4, CS5_SW4, CS4_SW4}, + {0, CS6_SW5, CS5_SW5, CS4_SW5}, + {0, CS6_SW6, CS5_SW6, CS4_SW6}, + {0, CS6_SW7, CS5_SW7, CS4_SW7}, + {0, CS6_SW8, CS5_SW8, CS4_SW8}, + {0, CS6_SW9, CS5_SW9, CS4_SW9}, + {0, CS21_SW1, CS20_SW1, CS19_SW1}, + {0, CS21_SW2, CS20_SW2, CS19_SW2}, + {0, CS21_SW3, CS20_SW3, CS19_SW3}, + {0, CS21_SW4, CS20_SW4, CS19_SW4}, + {0, CS21_SW5, CS20_SW5, CS19_SW5}, + {0, CS21_SW6, CS20_SW6, CS19_SW6}, + {0, CS21_SW7, CS20_SW7, CS19_SW7}, + {0, CS21_SW8, CS20_SW8, CS19_SW8}, + + + {0, CS9_SW1, CS8_SW1, CS7_SW1}, + {0, CS9_SW2, CS8_SW2, CS7_SW2}, + {0, CS9_SW3, CS8_SW3, CS7_SW3}, + {0, CS9_SW4, CS8_SW4, CS7_SW4}, + {0, CS9_SW5, CS8_SW5, CS7_SW5}, + {0, CS9_SW6, CS8_SW6, CS7_SW6}, + {0, CS9_SW7, CS8_SW7, CS7_SW7}, + {0, CS9_SW8, CS8_SW8, CS7_SW8}, + {0, CS9_SW9, CS8_SW9, CS7_SW9}, + {0,CS24_SW1, CS23_SW1, CS22_SW1}, + {0,CS24_SW2, CS23_SW2, CS22_SW2}, + {0,CS24_SW3, CS23_SW3, CS22_SW3}, + {0,CS24_SW4, CS23_SW4, CS22_SW4}, + {0,CS24_SW5, CS23_SW5, CS22_SW5}, + {0,CS24_SW6, CS23_SW6, CS22_SW6}, + {0,CS24_SW7, CS23_SW7, CS22_SW7}, + {0,CS24_SW8, CS23_SW8, CS22_SW8}, + + {0, CS12_SW1, CS11_SW1, CS10_SW1}, + {0, CS12_SW2, CS11_SW2, CS10_SW2}, + {0, CS12_SW3, CS11_SW3, CS10_SW3}, + {0, CS12_SW4, CS11_SW4, CS10_SW4}, + {0, CS12_SW5, CS11_SW5, CS10_SW5}, + {0, CS12_SW6, CS11_SW6, CS10_SW6}, + {0, CS12_SW7, CS11_SW7, CS10_SW7}, + {0, CS12_SW8, CS11_SW8, CS10_SW8}, + {0, CS12_SW9, CS11_SW9, CS10_SW9}, + {0, CS27_SW1, CS26_SW1, CS25_SW1}, + {0, CS27_SW2, CS26_SW2, CS25_SW2}, + {0, CS27_SW3, CS26_SW3, CS25_SW3}, + {0, CS27_SW4, CS26_SW4, CS25_SW4}, + {0, CS27_SW5, CS26_SW5, CS25_SW5}, + {0, CS27_SW6, CS26_SW6, CS25_SW6}, + {0, CS27_SW7, CS26_SW7, CS25_SW7}, + {0, CS27_SW8, CS26_SW8, CS25_SW8}, + + {0, CS15_SW1, CS14_SW1, CS13_SW1}, + {0, CS15_SW2, CS14_SW2, CS13_SW2}, + {0, CS15_SW3, CS14_SW3, CS13_SW3}, + {0, CS15_SW4, CS14_SW4, CS13_SW4}, + {0, CS15_SW5, CS14_SW5, CS13_SW5}, + {0, CS15_SW6, CS14_SW6, CS13_SW6}, + {0, CS15_SW7, CS14_SW7, CS13_SW7}, + {0, CS15_SW8, CS14_SW8, CS13_SW8}, + {0, CS15_SW9, CS14_SW9, CS13_SW9}, + {0, CS30_SW1, CS29_SW1, CS28_SW1}, + {0, CS30_SW2, CS29_SW2, CS28_SW2}, + {0, CS30_SW3, CS29_SW3, CS28_SW3}, + {0, CS30_SW4, CS29_SW4, CS28_SW4}, + + {0, CS18_SW1, CS17_SW1, CS16_SW1}, + {0, CS18_SW3, CS17_SW3, CS16_SW3}, + {0, CS18_SW4, CS17_SW4, CS16_SW4}, + {0, CS18_SW5, CS17_SW5, CS16_SW5}, + {0, CS18_SW6, CS17_SW6, CS16_SW6}, + {0, CS18_SW7, CS17_SW7, CS16_SW7}, + {0, CS18_SW8, CS17_SW8, CS16_SW8}, + {0, CS18_SW9, CS17_SW9, CS16_SW9}, + {0, CS33_SW1, CS32_SW1, CS31_SW1}, + {0, CS33_SW2, CS32_SW2, CS31_SW2}, + {0, CS33_SW3, CS32_SW3, CS31_SW3}, + {0, CS33_SW4, CS32_SW4, CS31_SW4}, + {0, CS33_SW7, CS32_SW7, CS31_SW7}, + + {0, CS3_SW1, CS2_SW1, CS1_SW1}, + {0, CS3_SW2, CS2_SW2, CS1_SW2}, + {0, CS3_SW3, CS2_SW3, CS1_SW3}, + {0, CS3_SW6, CS2_SW6, CS1_SW6}, + {0, CS36_SW2, CS35_SW2, CS34_SW2}, + {0, CS36_SW3, CS35_SW3, CS34_SW3}, + {0, CS36_SW4, CS35_SW4, CS34_SW4}, + {0, CS36_SW5, CS35_SW5, CS34_SW5}, + {0, CS36_SW6, CS35_SW6, CS34_SW6}, + {0, CS36_SW7, CS35_SW7, CS34_SW7}, + {0, CS36_SW8, CS35_SW8, CS34_SW8} + +}; +led_config_t g_led_config = { { + { 0, NO_LED, 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, NO_LED, NO_LED, NO_LED, NO_LED }, + { 63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75, NO_LED }, + { 76, 77, 78, NO_LED,NO_LED, 79, NO_LED, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, 85, 86 } +}, +{ + { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, + { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 }, + { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, { 217, 30 }, + { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, + { 17, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, + { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 } +}, +{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 +} }; + + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) +{ + if (host_keyboard_led_state().caps_lock) + { + rgb_matrix_set_color(50, 0xFF, 0xFF, 0xFF); + } +} +#endif + diff --git a/keyboards/kprepublic/bm80v2/bm80v2.h b/keyboards/kprepublic/bm80v2/bm80v2.h new file mode 100644 index 0000000000..ee1418f9cf --- /dev/null +++ b/keyboards/kprepublic/bm80v2/bm80v2.h @@ -0,0 +1,34 @@ +/* Copyright 2022 bdtc123 * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once + +#include "quantum.h" + +#define LAYOUT_tkl_ansi( \ + K0_0, K0_2, K0_3, K0_4, K0_5, K0_6,K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10, \ + K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10, \ + K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10, \ + K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, \ + K4_0, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_B, K4_C, K4_F, \ + K5_0, K5_1, K5_2, K5_5, K5_A, K5_B, K5_C, K5_D, K5_E, K5_F, K5_10 \ +) { \ + { K0_0, KC_NO, K0_2, K0_3, K0_4, K0_5, K0_6, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10 }, \ + { K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10 }, \ + { K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10 }, \ + { K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K4_0, KC_NO, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_B, K4_C, KC_NO, KC_NO, K4_F, KC_NO }, \ + { K5_0, K5_1, K5_2, KC_NO, KC_NO, K5_5, KC_NO, KC_NO, KC_NO, KC_NO, K5_A, K5_B, K5_C, K5_D, K5_E, K5_F, K5_10 } \ +} + diff --git a/keyboards/kprepublic/bm80v2/config.h b/keyboards/kprepublic/bm80v2/config.h new file mode 100644 index 0000000000..a0e9a5d2e1 --- /dev/null +++ b/keyboards/kprepublic/bm80v2/config.h @@ -0,0 +1,76 @@ +/* Copyright 2022 bdtc123 * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 +#define MATRIX_ROW_PINS { C7, C6, B6, F5, F7, F6 } +#define MATRIX_COL_PINS { E6, F0, F1, F4, D7, D6, B7, B1, B0, B2, B3, D3, D5, D4, D2, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL +#define RGB_MATRIX_KEYPRESSES +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_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_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_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +// 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_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 0b0110000 +#define DRIVER_COUNT 1 +#define DRIVER_1_LED_TOTAL 87 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 diff --git a/keyboards/kprepublic/bm80v2/info.json b/keyboards/kprepublic/bm80v2/info.json new file mode 100644 index 0000000000..38999bf96c --- /dev/null +++ b/keyboards/kprepublic/bm80v2/info.json @@ -0,0 +1,109 @@ +{ + "keyboard_name": "BM80v2", + "manufacturer": "KPrepublic", + "url": "", + "maintainer": "edwardslau", + "usb": { + "vid": "0x4B50", + "pid": "0x1141", + "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"Print Screen", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":7, "y":1.5}, + {"label":"8*", "x":8, "y":1.5}, + {"label":"9(", "x":9, "y":1.5}, + {"label":"0)", "x":10, "y":1.5}, + {"label":"-_", "x":11, "y":1.5}, + {"label":"=+", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"Page Up", "x":17.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[{", "x":11.5, "y":2.5}, + {"label":"]}", "x":12.5, "y":2.5}, + {"label":"\\|", "x":13.5,"y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"Page Down", "x":17.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";:", "x":10.75, "y":3.5}, + {"label":"'\"", "x":11.75, "y":3.5}, + {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",<", "x":9.25, "y":4.5}, + {"label":".>", "x":10.25, "y":4.5}, + {"label":"/?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"GUI", "x":11.25, "y":5.5, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.5}, + {"label":"\u2193", "x":16.25, "y":5.5}, + {"label":"\u2192", "x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c b/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..7beceb5630 --- /dev/null +++ b/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2021 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#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_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_tkl_ansi( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/kprepublic/bm80v2/keymaps/via/keymap.c b/keyboards/kprepublic/bm80v2/keymaps/via/keymap.c new file mode 100644 index 0000000000..7beceb5630 --- /dev/null +++ b/keyboards/kprepublic/bm80v2/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2021 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#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_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_tkl_ansi( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/kprepublic/bm80v2/keymaps/via/rules.mk b/keyboards/kprepublic/bm80v2/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/kprepublic/bm80v2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kprepublic/bm80v2/readme.md b/keyboards/kprepublic/bm80v2/readme.md new file mode 100644 index 0000000000..72ff25909f --- /dev/null +++ b/keyboards/kprepublic/bm80v2/readme.md @@ -0,0 +1,20 @@ +# bm80v2 + +A 80% hotswap inswitch RGB keyboard. + +* Keyboard Maintainer: [edwardslau](https://github.com/edwardslau) +* Hardware Supported: BM80V2 +* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm80rgb-bm80-rgb-80-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-firmware-full-rgb-switch-underglow-type-c?_pos=7&_sid=767c48383&_ss=r) + +Make example for this keyboard (after setting up your build environment): + + make kprepublic bm80v2:default + +Flashing example for this keyboard: + + make kprepublic bm80v2: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 information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kprepublic/bm80v2/rules.mk b/keyboards/kprepublic/bm80v2/rules.mk new file mode 100644 index 0000000000..1632311563 --- /dev/null +++ b/keyboards/kprepublic/bm80v2/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Light +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 +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3741 +LTO_ENABLE = yes +LAYOUTS = tkl_ansi diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c new file mode 100644 index 0000000000..90d476aa2c --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c @@ -0,0 +1,150 @@ +/* Copyright 2022 edwardslau * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "bm80v2_iso.h" + +#ifdef RGB_MATRIX_ENABLE + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS6_SW1, CS5_SW1, CS4_SW1}, + {0, CS6_SW3, CS5_SW3, CS4_SW3}, + {0, CS6_SW4, CS5_SW4, CS4_SW4}, + {0, CS6_SW5, CS5_SW5, CS4_SW5}, + {0, CS6_SW6, CS5_SW6, CS4_SW6}, + {0, CS6_SW7, CS5_SW7, CS4_SW7}, + {0, CS6_SW8, CS5_SW8, CS4_SW8}, + {0, CS6_SW9, CS5_SW9, CS4_SW9}, + {0, CS21_SW1, CS20_SW1, CS19_SW1}, + {0, CS21_SW2, CS20_SW2, CS19_SW2}, + {0, CS21_SW3, CS20_SW3, CS19_SW3}, + {0, CS21_SW4, CS20_SW4, CS19_SW4}, + {0, CS21_SW5, CS20_SW5, CS19_SW5}, + {0, CS21_SW6, CS20_SW6, CS19_SW6}, + {0, CS21_SW7, CS20_SW7, CS19_SW7}, + {0, CS21_SW8, CS20_SW8, CS19_SW8}, + + + {0, CS9_SW1, CS8_SW1, CS7_SW1}, + {0, CS9_SW2, CS8_SW2, CS7_SW2}, + {0, CS9_SW3, CS8_SW3, CS7_SW3}, + {0, CS9_SW4, CS8_SW4, CS7_SW4}, + {0, CS9_SW5, CS8_SW5, CS7_SW5}, + {0, CS9_SW6, CS8_SW6, CS7_SW6}, + {0, CS9_SW7, CS8_SW7, CS7_SW7}, + {0, CS9_SW8, CS8_SW8, CS7_SW8}, + {0, CS9_SW9, CS8_SW9, CS7_SW9}, + {0,CS24_SW1, CS23_SW1, CS22_SW1}, + {0,CS24_SW2, CS23_SW2, CS22_SW2}, + {0,CS24_SW3, CS23_SW3, CS22_SW3}, + {0,CS24_SW4, CS23_SW4, CS22_SW4}, + {0,CS24_SW5, CS23_SW5, CS22_SW5}, + {0,CS24_SW6, CS23_SW6, CS22_SW6}, + {0,CS24_SW7, CS23_SW7, CS22_SW7}, + {0,CS24_SW8, CS23_SW8, CS22_SW8}, + + {0, CS12_SW1, CS11_SW1, CS10_SW1}, + {0, CS12_SW2, CS11_SW2, CS10_SW2}, + {0, CS12_SW3, CS11_SW3, CS10_SW3}, + {0, CS12_SW4, CS11_SW4, CS10_SW4}, + {0, CS12_SW5, CS11_SW5, CS10_SW5}, + {0, CS12_SW6, CS11_SW6, CS10_SW6}, + {0, CS12_SW7, CS11_SW7, CS10_SW7}, + {0, CS12_SW8, CS11_SW8, CS10_SW8}, + {0, CS12_SW9, CS11_SW9, CS10_SW9}, + {0, CS27_SW1, CS26_SW1, CS25_SW1}, + {0, CS27_SW2, CS26_SW2, CS25_SW2}, + {0, CS27_SW3, CS26_SW3, CS25_SW3}, + {0, CS27_SW4, CS26_SW4, CS25_SW4}, + {0, CS27_SW5, CS26_SW5, CS25_SW5}, + {0, CS27_SW6, CS26_SW6, CS25_SW6}, + {0, CS27_SW7, CS26_SW7, CS25_SW7}, + {0, CS27_SW8, CS26_SW8, CS25_SW8}, + + {0, CS15_SW1, CS14_SW1, CS13_SW1}, + {0, CS15_SW2, CS14_SW2, CS13_SW2}, + {0, CS15_SW3, CS14_SW3, CS13_SW3}, + {0, CS15_SW4, CS14_SW4, CS13_SW4}, + {0, CS15_SW5, CS14_SW5, CS13_SW5}, + {0, CS15_SW6, CS14_SW6, CS13_SW6}, + {0, CS15_SW7, CS14_SW7, CS13_SW7}, + {0, CS15_SW8, CS14_SW8, CS13_SW8}, + {0, CS15_SW9, CS14_SW9, CS13_SW9}, + {0, CS30_SW1, CS29_SW1, CS28_SW1}, + {0, CS30_SW2, CS29_SW2, CS28_SW2}, + {0, CS30_SW3, CS29_SW3, CS28_SW3}, + {0, CS30_SW4, CS29_SW4, CS28_SW4}, + + {0, CS18_SW1, CS17_SW1, CS16_SW1}, + {0, CS18_SW2, CS17_SW2, CS16_SW2}, + {0, CS18_SW3, CS17_SW3, CS16_SW3}, + {0, CS18_SW4, CS17_SW4, CS16_SW4}, + {0, CS18_SW5, CS17_SW5, CS16_SW5}, + {0, CS18_SW6, CS17_SW6, CS16_SW6}, + {0, CS18_SW7, CS17_SW7, CS16_SW7}, + {0, CS18_SW8, CS17_SW8, CS16_SW8}, + {0, CS18_SW9, CS17_SW9, CS16_SW9}, + {0, CS33_SW1, CS32_SW1, CS31_SW1}, + {0, CS33_SW2, CS32_SW2, CS31_SW2}, + {0, CS33_SW3, CS32_SW3, CS31_SW3}, + {0, CS33_SW4, CS32_SW4, CS31_SW4}, + {0, CS33_SW7, CS32_SW7, CS31_SW7}, + + {0, CS3_SW1, CS2_SW1, CS1_SW1}, + {0, CS3_SW2, CS2_SW2, CS1_SW2}, + {0, CS3_SW3, CS2_SW3, CS1_SW3}, + {0, CS3_SW6, CS2_SW6, CS1_SW6}, + {0, CS36_SW2, CS35_SW2, CS34_SW2}, + {0, CS36_SW3, CS35_SW3, CS34_SW3}, + {0, CS36_SW4, CS35_SW4, CS34_SW4}, + {0, CS36_SW5, CS35_SW5, CS34_SW5}, + {0, CS36_SW6, CS35_SW6, CS34_SW6}, + {0, CS36_SW7, CS35_SW7, CS34_SW7}, + {0, CS36_SW8, CS35_SW8, CS34_SW8} + +}; +led_config_t g_led_config = { { + { 0, NO_LED, 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, NO_LED, NO_LED, NO_LED, NO_LED }, + { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED }, + { 77, 78, 79, NO_LED,NO_LED, 80, NO_LED, NO_LED, NO_LED, NO_LED, 81, 82, 83, 84, 85, 86, 87 } +}, +{ + { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, + { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 }, + { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 175, 35 }, { 193, 30 }, { 205, 30 }, { 217, 30 }, + { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, + { 8, 49 }, { 22, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, + { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 } +}, +{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 +} }; + + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) +{ + if (host_keyboard_led_state().caps_lock) + { + rgb_matrix_set_color(50, 0xFF, 0xFF, 0xFF); + } +} +#endif + diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h new file mode 100644 index 0000000000..cee54e83e8 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.h @@ -0,0 +1,36 @@ +/* Copyright 2022 edwardslau * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_tkl_iso( \ + K00, K02, K03, K04, K05, K06,K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K2D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, ___, K5A, K5B, K5C, K5D, K5E, K5F, K5G } \ +} + diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h new file mode 100644 index 0000000000..17f8653fd9 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -0,0 +1,77 @@ +/* Copyright 2022 edwardslau * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 +#define MATRIX_ROW_PINS { C7, C6, B6, F5, F7, F6 } +#define MATRIX_COL_PINS { E6, F0, F1, F4, D7, D6, B7, B1, B0, B2, B3, D3, D5, D4, D2, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 +/* disable these deprecated features by default */ +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL +#define RGB_MATRIX_KEYPRESSES +// 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_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_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_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_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +// 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_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 0b0110000 +#define DRIVER_COUNT 1 +#define DRIVER_1_LED_TOTAL 88 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 diff --git a/keyboards/kprepublic/bm80v2_iso/info.json b/keyboards/kprepublic/bm80v2_iso/info.json new file mode 100644 index 0000000000..71741c126b --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/info.json @@ -0,0 +1,110 @@ +{ + "keyboard_name": "BM80v2 ISO", + "manufacturer": "KPrepublic", + "url": "", + "maintainer": "edwardslau", + "usb": { + "vid": "0x4B50", + "pid": "0x1142", + "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT_tkl_iso": { + "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.5}, + {"x":1, "y":1.5}, + {"x":2, "y":1.5}, + {"x":3, "y":1.5}, + {"x":4, "y":1.5}, + {"x":5, "y":1.5}, + {"x":6, "y":1.5}, + {"x":7, "y":1.5}, + {"x":8, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.5}, + {"x":11, "y":1.5}, + {"x":12, "y":1.5}, + {"x":13, "y":1.5, "w":2}, + {"x":15.25, "y":1.5}, + {"x":16.25, "y":1.5}, + {"x":17.25, "y":1.5}, + + {"x":0, "y":2.5, "w":1.5}, + {"x":1.5, "y":2.5}, + {"x":2.5, "y":2.5}, + {"x":3.5, "y":2.5}, + {"x":4.5, "y":2.5}, + {"x":5.5, "y":2.5}, + {"x":6.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":8.5, "y":2.5}, + {"x":9.5, "y":2.5}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.5}, + {"x":12.5, "y":2.5}, + {"x":15.25, "y":2.5}, + {"x":16.25, "y":2.5}, + {"x":17.25, "y":2.5}, + + {"x":0, "y":3.5, "w":1.75}, + {"x":1.75, "y":3.5}, + {"x":2.75, "y":3.5}, + {"x":3.75, "y":3.5}, + {"x":4.75, "y":3.5}, + {"x":5.75, "y":3.5}, + {"x":6.75, "y":3.5}, + {"x":7.75, "y":3.5}, + {"x":8.75, "y":3.5}, + {"x":9.75, "y":3.5}, + {"x":10.75, "y":3.5}, + {"x":11.75, "y":3.5}, + {"x":12.75, "y":3.5}, + {"x":13.75, "y":2.5, "w":1.25, "h":2}, + + {"x":0, "y":4.5, "w":1.25}, + {"x":1.25, "y":4.5}, + {"x":2.25, "y":4.5}, + {"x":3.25, "y":4.5}, + {"x":4.25, "y":4.5}, + {"x":5.25, "y":4.5}, + {"x":6.25, "y":4.5}, + {"x":7.25, "y":4.5}, + {"x":8.25, "y":4.5}, + {"x":9.25, "y":4.5}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.5}, + {"x":12.25, "y":4.5, "w":2.75}, + {"x":16.25, "y":4.5}, + + {"x":0, "y":5.5, "w":1.25}, + {"x":1.25, "y":5.5, "w":1.25}, + {"x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"x":10, "y":5.5, "w":1.25}, + {"x":11.25, "y":5.5, "w":1.25}, + {"x":12.5, "y":5.5, "w":1.25}, + {"x":13.75, "y":5.5, "w":1.25}, + {"x":15.25, "y":5.5}, + {"x":16.25, "y":5.5}, + {"x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c new file mode 100644 index 0000000000..731899439d --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2021 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_tkl_iso( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_tkl_iso( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c b/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c new file mode 100644 index 0000000000..731899439d --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2021 Yizhen Liu (@edwardslau) +// SPDX-License-Identifier: GPL-2.0 +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_tkl_iso( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_tkl_iso( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/via/rules.mk b/keyboards/kprepublic/bm80v2_iso/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/kprepublic/bm80v2_iso/readme.md b/keyboards/kprepublic/bm80v2_iso/readme.md new file mode 100644 index 0000000000..bb5d8e3728 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/readme.md @@ -0,0 +1,21 @@ +# bm80v2_iso + +A 80% ISO hotswap inswitch RGB keyboard. + +* Keyboard Maintainer: [edwardslau](https://github.com/edwardslau) +* Hardware Supported: BM80V2_ISO +* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm80-iso-bm80rgb-80-rgb-hot-swappable-custom-mechanical-keyboard-pcb-programmed-rgb-switch-underglow-type-c-qmk-via?_pos=9&_sid=b43edd6ac&_ss=r) + +Make example for this keyboard (after setting up your build environment): + + make kprepublic/bm80v2_iso:default + +Flashing example for this keyboard: + + make kprepublic/bm80v2_iso: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 information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kprepublic/bm80v2_iso/rules.mk b/keyboards/kprepublic/bm80v2_iso/rules.mk new file mode 100644 index 0000000000..e726773958 --- /dev/null +++ b/keyboards/kprepublic/bm80v2_iso/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # 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 # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3741 + +LTO_ENABLE = yes + +LAYOUTS = tkl_iso diff --git a/keyboards/kprepublic/bm980hsrgb/config.h b/keyboards/kprepublic/bm980hsrgb/config.h index 01266e652c..4bcc83da43 100644 --- a/keyboards/kprepublic/bm980hsrgb/config.h +++ b/keyboards/kprepublic/bm980hsrgb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 //KP -#define PRODUCT_ID 0xEF61 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPrepublic -#define PRODUCT bm980rgb - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 15 diff --git a/keyboards/kprepublic/bm980hsrgb/info.json b/keyboards/kprepublic/bm980hsrgb/info.json index 459b98a089..ba8173c6c8 100644 --- a/keyboards/kprepublic/bm980hsrgb/info.json +++ b/keyboards/kprepublic/bm980hsrgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "BM980", + "keyboard_name": "BM980 Hotswap RGB", + "manufacturer": "KPrepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0xEF61", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kprepublic/cospad/config.h b/keyboards/kprepublic/cospad/config.h index bc53ef6206..75c7c0990c 100644 --- a/keyboards/kprepublic/cospad/config.h +++ b/keyboards/kprepublic/cospad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B5C // "KP" -#define PRODUCT_ID 0xB1E5 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KPrepublic -#define PRODUCT Cospad - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/kprepublic/cospad/info.json b/keyboards/kprepublic/cospad/info.json index bba19a4379..3009e986fa 100644 --- a/keyboards/kprepublic/cospad/info.json +++ b/keyboards/kprepublic/cospad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Cospad", + "manufacturer": "KPrepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B5C", + "pid": "0xB1E5", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_6x4": { "layout": [ diff --git a/keyboards/kprepublic/cospad/keymaps/detrus/keymap.c b/keyboards/kprepublic/cospad/keymaps/detrus/keymap.c index 84324c6e0d..af56305e5c 100644 --- a/keyboards/kprepublic/cospad/keymaps/detrus/keymap.c +++ b/keyboards/kprepublic/cospad/keymaps/detrus/keymap.c @@ -271,7 +271,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Makes sure to update the good tri-layer if a layer changes layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(default_layer_state)) { + switch (biton32(default_layer_state)) { case _QWERTY_LAYER: state = update_tri_layer_state(state, _RAISE_LAYER, _QWERTY_LOWER_LAYER, _ALTER_LAYER); break; @@ -289,8 +289,8 @@ layer_state_t layer_state_set_user(layer_state_t state) { } // Makes the tri-layer -layer_state_t default_layer_state_set_kb(layer_state_t state) { - switch (get_highest_layer(state)) { +uint32_t default_layer_state_set_kb(uint32_t state) { + switch (biton32(state)) { case _QWERTY_LAYER: state = update_tri_layer_state(state, _RAISE_LAYER, _QWERTZ_LOWER_LAYER, _ALTER_LAYER); state = update_tri_layer_state(state, _RAISE_LAYER, _COLEMA_LOWER_LAYER, _ALTER_LAYER); diff --git a/keyboards/kprepublic/jj40/config.h b/keyboards/kprepublic/jj40/config.h index c42b247d1a..d24ab5c5ff 100644 --- a/keyboards/kprepublic/jj40/config.h +++ b/keyboards/kprepublic/jj40/config.h @@ -16,12 +16,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0x0040 -#define DEVICE_VER 0x0200 -#define MANUFACTURER KPrepublic -#define PRODUCT JJ40 - /* matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/kprepublic/jj40/info.json b/keyboards/kprepublic/jj40/info.json index 4b7c527ba9..a248f0cee7 100644 --- a/keyboards/kprepublic/jj40/info.json +++ b/keyboards/kprepublic/jj40/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "jj40", + "keyboard_name": "JJ40", + "manufacturer": "KPrepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0x0040", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_planck_mit": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3, "w":2}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] diff --git a/keyboards/kprepublic/jj4x4/config.h b/keyboards/kprepublic/jj4x4/config.h index f97dd7f1cb..d9691245a7 100644 --- a/keyboards/kprepublic/jj4x4/config.h +++ b/keyboards/kprepublic/jj4x4/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0x0044 // 4x4 -#define DEVICE_VER 0x0200 -#define MANUFACTURER KPrepublic -#define PRODUCT JJ4x4 - /* matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/kprepublic/jj4x4/info.json b/keyboards/kprepublic/jj4x4/info.json index 9d07e297fc..d9b831d2a3 100644 --- a/keyboards/kprepublic/jj4x4/info.json +++ b/keyboards/kprepublic/jj4x4/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "JJ4x4", + "manufacturer": "KPrepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0x0044", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [ diff --git a/keyboards/kprepublic/jj50/config.h b/keyboards/kprepublic/jj50/config.h index 9c2d6e2417..70ecf2f20c 100644 --- a/keyboards/kprepublic/jj50/config.h +++ b/keyboards/kprepublic/jj50/config.h @@ -22,12 +22,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0x0050 -#define DEVICE_VER 0x0200 -#define MANUFACTURER KPrepublic -#define PRODUCT JJ50 - /* matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/kprepublic/jj50/info.json b/keyboards/kprepublic/jj50/info.json index 5d84efe246..40c00718f2 100644 --- a/keyboards/kprepublic/jj50/info.json +++ b/keyboards/kprepublic/jj50/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "JJ50", + "manufacturer": "KPrepublic", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0x0050", + "device_version": "2.0.0" + }, "layout_aliases": { "LAYOUT": "LAYOUT_ortho_5x12" }, diff --git a/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c b/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c index c096aaea10..e257649369 100644 --- a/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c +++ b/keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c @@ -42,7 +42,7 @@ void keyboard_post_init_user(void) { } layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _RAISE: rgblight_sethsv_noeeprom(170,255,255); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); diff --git a/keyboards/kprepublic/jj50/keymaps/abstractkb_gergomatch/keymap.c b/keyboards/kprepublic/jj50/keymaps/abstractkb_gergomatch/keymap.c index af4c3c84bb..baedbb4dd2 100644 --- a/keyboards/kprepublic/jj50/keymaps/abstractkb_gergomatch/keymap.c +++ b/keyboards/kprepublic/jj50/keymaps/abstractkb_gergomatch/keymap.c @@ -42,7 +42,7 @@ void keyboard_post_init_user(void) { } layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _FUNC: rgblight_sethsv_noeeprom(170,255,255); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); diff --git a/keyboards/kprepublic/jj50/keymaps/archetype/config.h b/keyboards/kprepublic/jj50/keymaps/archetype/config.h index 9604ac719c..a12e070b4f 100644 --- a/keyboards/kprepublic/jj50/keymaps/archetype/config.h +++ b/keyboards/kprepublic/jj50/keymaps/archetype/config.h @@ -6,5 +6,4 @@ #define AUTO_SHIFT_TIMEOUT 150 #define NO_AUTO_SHIFT_ALPHA #define TAPPING_TERM 150 -#define TAPPING_TERM_PER_KEY //#define BOOTMAGIC_KEY_SALT KC_LCTL diff --git a/keyboards/kprepublic/jj50/keymaps/archetype/keymap.c b/keyboards/kprepublic/jj50/keymaps/archetype/keymap.c index ff59ef43e5..82c615f135 100644 --- a/keyboards/kprepublic/jj50/keymaps/archetype/keymap.c +++ b/keyboards/kprepublic/jj50/keymaps/archetype/keymap.c @@ -167,18 +167,9 @@ qk_tap_dance_action_t tap_dance_actions[] = { // Single tap = ) | Double tap = ] | Triple tap = } | Single hold = KC_LALT [TD_LALT_RBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, right_brackets, right_brackets_reset), // Layer Switcher ESC - [TD_ESC_LAYER] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, layer_switcher, layer_switcher_reset), + [TD_ESC_LAYER] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, layer_switcher, layer_switcher_reset, 100), }; -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_LAYER): - return 100; - default: - return TAPPING_TERM; - } -} - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/ktec/daisy/config.h b/keyboards/ktec/daisy/config.h index 2079d172aa..83b9464cc0 100644 --- a/keyboards/ktec/daisy/config.h +++ b/keyboards/ktec/daisy/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 -#define PRODUCT_ID 0xD7DC -#define DEVICE_VER 0x0501 -#define MANUFACTURER KTEC -#define PRODUCT Daisy - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/ktec/daisy/info.json b/keyboards/ktec/daisy/info.json index 6d5d5f49e2..f9c7b3e382 100644 --- a/keyboards/ktec/daisy/info.json +++ b/keyboards/ktec/daisy/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Daisy", + "manufacturer": "KTEC", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B50", + "pid": "0xD7DC", + "device_version": "5.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ktec/ergodone/keymaps/eozaki/keymap.c b/keyboards/ktec/ergodone/keymaps/eozaki/keymap.c index 3910756f81..09854ee89c 100644 --- a/keyboards/ktec/ergodone/keymaps/eozaki/keymap.c +++ b/keyboards/ktec/ergodone/keymaps/eozaki/keymap.c @@ -179,7 +179,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ktec/ergodone/keymaps/erovia/keymap.c b/keyboards/ktec/ergodone/keymaps/erovia/keymap.c index 502c0dafe6..279c8a57c1 100644 --- a/keyboards/ktec/ergodone/keymaps/erovia/keymap.c +++ b/keyboards/ktec/ergodone/keymaps/erovia/keymap.c @@ -204,7 +204,7 @@ void matrix_init_user(void) { layer_state_t layer_state_set_user(layer_state_t state) { ergodox_led_all_off(); - switch (get_highest_layer(state)) { + switch (biton32(state)) { case FN: // Red led on Pro Micro for Fn layer ergodox_board_led_on(); diff --git a/keyboards/ktec/ergodone/keymaps/kloki/keymap.c b/keyboards/ktec/ergodone/keymaps/kloki/keymap.c index 1347f8f501..87e96d20fd 100644 --- a/keyboards/ktec/ergodone/keymaps/kloki/keymap.c +++ b/keyboards/ktec/ergodone/keymaps/kloki/keymap.c @@ -198,7 +198,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/keyboards/ktec/ergodone/keymaps/vega/keymap.c b/keyboards/ktec/ergodone/keymaps/vega/keymap.c index 21db785345..6105cddf15 100644 --- a/keyboards/ktec/ergodone/keymaps/vega/keymap.c +++ b/keyboards/ktec/ergodone/keymaps/vega/keymap.c @@ -1,413 +1,636 @@ +// Copyright 2021 Vega Carlson (@VegaDeftwing) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H -enum layer_names { - BASE, - GREL, - GREU, - SYMB, - MATH, - QWER, - FNLR -}; +enum layer_names { BASE, GREL, GREU, SYMB, MATH, QWER, FNLR, TINY, FULL, FULU }; enum unicode_names { - //MATH - neq, //≠ - intgrl, //∫ - angl, //∠ - imply, //⇒ - equiv, //⇔ - porp, //∝ - exists, //∃ - nexists, //∄ - forall, //∀ - and, //∧ - or, //∨ - xor, //⊕ - apeql, //≅ - root, //√ - not, //¬ - sum, //∑ - plsminus, //± - infin, //∞ - emtyset, //∅ - Mn, //ℕ - Mz, //ℤ - Mq, //ℚ - Mr, //ℝ - Mc, //ℂ - eleof, //∈ - member, //∋ - neleof, //∉ - nmember, //∌ - subsetof, //⊂ - suprsetof, //⊃ - intersection, //∩ - Munion, //∪ + // MATH + neq, //≠ + intgrl, //∫ + angl, //∠ + imply, //⇒ + equiv, //⇔ + porp, //∝ + exists, //∃ + nexists, //∄ + forall, //∀ + and, //∧ + or + , //∨ + xor, //⊕ + apeql, //≅ + root, //√ + not, //¬ + sum, //∑ + plsminus, //± + infin, //∞ + emtyset, //∅ + Mn, //ℕ + Mz, //ℤ + Mq, //ℚ + Mr, //ℝ + Mc, //ℂ + eleof, //∈ + member, //∋ + neleof, //∉ + nmember, //∌ + subsetof, //⊂ + suprsetof, //⊃ + intersection, //∩ + Munion, //∪ - //SYMB - arwl, - arwu, - arwr, - arwd, + // SYMB + arwl, + arwu, + arwr, + arwd, - uxclm, - cent, - degree, - trade, - copy, - numero, - sect, - mdot, - rang, + uxclm, + cent, + degree, + trade, + copy, + numero, + sect, + mdot, + rang, + lshade, + mshade, + dshade, - lshade, - mshade, - dshade, + fire, + water, + cleft, + baster, + neteen, + floppy, - fire, - water, - cleft, - baster, - neteen, - floppy, + boxemp, + boxchk, + boxX, - boxemp, - boxchk, - boxX, + bbstr, + bbstl, + bbml, + bbmr, + bbmb, + bbrtr, + bbrbr, + bbrtl, + bbrbl, + bbsbr, + bbsbl, + bbmbr, + bbmbl, - bbstr, - bbstl, - bbml, - bbmr, - bbmb, - bbrtr, - bbrbr, - bbrtl, - bbrbl, - bbsbr, - bbsbl, - bbmbr, - bbmbl, - - Agrave, - Aacute, - Acircm, - Atilde, - Abreve, - Adiaer, - Adacut, + Agrave, + Aacute, + Acircm, + Atilde, + Abreve, + Adiaer, + Adacut, // not all ogham letters, as I // actually intend to use them for hex - OS, - Oa, - Ob, - Oc, - Od, - Oe, - Of, - Og, - Oh, - Oi, - OA, - OB, - OC, - OD, - OE, - OF, - Os, - OED, - Ox, - gnd, - sqr, - sine, - opt, + OS, + Oa, + Ob, + Oc, + Od, + Oe, + Of, + Og, + Oh, + Oi, + OA, + OB, + OC, + OD, + OE, + OF, + Os, + OED, + Ox, + gnd, + sqr, + sine, + opt, - geq, - leq, - brkup, - brkdn, - perup, - perdn, + geq, + leq, + brkup, + brkdn, + perup, + perdn, - //GREEL - rone, // 1:: ⅰ - rtwo, - rthree, - rfour, // 4:: ⅳ - rfive, // 5:: ⅴ - rsix, // 6:: ⅵ - rseven, // 7:: ⅶ - reight, // 8:: ⅷ - rnine, // 9:: ⅸ - rten, // 0:: ⅹ - gq, // q:: θ - gw, // w:: ω - ge, // e:: ε - gr, // r:: ρ - gt, // t:: τ - gy, // y:: ψ - gu, // u:: υ - gi, // i:: ι - go, // o:: ο - gp, // p:: π - ga, // a:: α - gs, // s:: σ - gd, // d:: δ - gf, // f:: φ - gg, // g:: γ - gh, // h:: η - gj, // j:: ϑ - gk, // k:: κ - gl, // l:: λ - gz, // z:: ζ - gx, // x:: ξ - gc, // c:: χ - gv, // v:: ς - gb, // b:: β - gn, // n:: ν - gm, // m:: μ + // GREEL + rone, // 1:: ⅰ + rtwo, + rthree, + rfour, // 4:: ⅳ + rfive, // 5:: ⅴ + rsix, // 6:: ⅵ + rseven, // 7:: ⅶ + reight, // 8:: ⅷ + rnine, // 9:: ⅸ + rten, // 0:: ⅹ + gq, // q:: θ + gw, // w:: ω + ge, // e:: ε + gr, // r:: ρ + gt, // t:: τ + gy, // y:: ψ + gu, // u:: υ + gi, // i:: ι + go, // o:: ο + gp, // p:: π + ga, // a:: α + gs, // s:: σ + gd, // d:: δ + gf, // f:: φ + gg, // g:: γ + gh, // h:: η + gj, // j:: ϑ + gk, // k:: κ + gl, // l:: λ + gz, // z:: ζ + gx, // x:: ξ + gc, // c:: χ + gv, // v:: ς + gb, // b:: β + gn, // n:: ν + gm, // m:: μ - //GREEU - Rone, // 1:: Ⅰ - Rtwo, // 2:: Ⅱ - Rthree, // 3:: Ⅲ - Rfour, // 4:: Ⅳ - Rfive, // 5:: Ⅴ - Rsix, // 6:: Ⅵ - Rseven, // 7:: Ⅶ - Reight, // 8:: Ⅷ - Rnine, // 9:: Ⅸ - Rten, - Gq, // Q:: Θ - Gw, // W:: Ω - Ge, // E:: Ε - Gr, // R:: Ρ - Gt, // T:: Τ - Gy, // Y:: Ψ - Gu, // U:: Υ - Gi, // I:: Ι - Go, // O:: Ο - Gp, // P:: Π - Ga, // A:: Α - Gs, // S:: Σ - Gd, // D:: Δ - Gf, // F:: Φ - Gg, // G:: Γ - Gh, // H:: Η - Gj, // J:: J - Gk, // K:: Κ - Gl, // L:: Λ - Gz, // Z:: Ζ - Gx, // X:: Ξ - Gc, // C:: Χ - Gv, // V:: V - Gb, // B:: Β - Gn, // N:: Ν - Gm, // M:: Μ + // GREEU + Rone, // 1:: Ⅰ + Rtwo, // 2:: Ⅱ + Rthree, // 3:: Ⅲ + Rfour, // 4:: Ⅳ + Rfive, // 5:: Ⅴ + Rsix, // 6:: Ⅵ + Rseven, // 7:: Ⅶ + Reight, // 8:: Ⅷ + Rnine, // 9:: Ⅸ + Rten, + Gq, // Q:: Θ + Gw, // W:: Ω + Ge, // E:: Ε + Gr, // R:: Ρ + Gt, // T:: Τ + Gy, // Y:: Ψ + Gu, // U:: Υ + Gi, // I:: Ι + Go, // O:: Ο + Gp, // P:: Π + Ga, // A:: Α + Gs, // S:: Σ + Gd, // D:: Δ + Gf, // F:: Φ + Gg, // G:: Γ + Gh, // H:: Η + Gj, // J:: J + Gk, // K:: Κ + Gl, // L:: Λ + Gz, // Z:: Ζ + Gx, // X:: Ξ + Gc, // C:: Χ + Gv, // V:: V + Gb, // B:: Β + Gn, // N:: Ν + Gm, // M:: Μ + // ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ ⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ + tone, // 1:: ¹ + ttwo, // 2:: ² + tthree, // 3:: ³ + tfour, // 4:: ⁴ + tfive, // 5:: ⁵ + tsix, // 6:: ⁶ + tseven, // 7:: ⁷ + teight, // 8:: ⁸ + tnine, // 9:: ⁹ + tzero, // 0 :: ⁰ + tq, // Q:: ۹ + tw, // W:: ʷ + te, // E:: ᵉ + tr, // R:: ʳ + tt, // T:: ᵗ + ty, // Y:: ʸ + tu, // U:: ᵘ + ti, // I:: ⁱ + to, // O:: ᵒ + tp, // P:: ᵖ + ta, // A:: ᵃ + ts, // S:: ˢ + td, // D:: ᵈ + tf, // F:: ᶠ + tg, // G:: ᵍ + th, // H:: ʰ + tj, // J:: ʲ + tk, // K:: ᵏ + tl, // L:: ˡ + tz, // Z:: ᶻ + tx, // X:: ˣ + tc, // C:: ᶜ + tv, // V:: ᵛ + tb, // B:: ᵇ + tn, // N:: ⁿ + tm, // M:: ᵐ + // Fullwitdth - note, these are *not* the monospace unicode code points. + // This is done to prevent something eating it and using a weird font, which, + // presumably, isn't desired if doing this. + fwone, // 1:: 1 + fwtwo, // 2:: 2 + fwthree, // 3:: 3 + fwfour, // 4:: 4 + fwfive, // 5:: 5 + fwsix, // 6:: 6 + fwseven, // 7:: 7 + fweight, // 8:: 8 + fwnine, // 9:: 9 + fwzero, // 0 :: 0 + fwq, // Q:: q + fww, // W:: w + fwe, // E:: e + fwr, // R:: r + fwt, // T:: t + fwy, // Y:: y + fwu, // U:: u + fwi, // I:: i + fwo, // O:: o + fwp, // P:: p + fwa, // A:: a + fws, // S:: s + fwd, // D:: d + fwf, // F:: f + fwg, // G:: g + fwh, // H:: h + fwj, // J:: j + fwk, // K:: k + fwl, // L:: l + fwz, // Z:: z + fwx, // X:: x + fwc, // C:: c + fwv, // V:: v + fwb, // B:: b + fwn, // N:: n + fwm, // M:: m + // Full width caps + fractions, and a few extra symbols that lack a better place + Fwone, // 1:: ¼ + Fwtwo, // 2:: ½ + Fwthree, // 3:: ¾ + Fwfour, // 4:: ⅓ + Fwfive, // 5:: ⅔ + Fwsix, // 6:: ⅕ + Fwseven, // 7:: ⅛ + Fweight, // 8:: 𝒳 + Fwnine, // 9:: 𝒴 + Fwzero, // 0 :: 𝒵 + Fwq, // Q:: Q + Fww, // W:: W + Fwe, // E:: E + Fwr, // R:: R + Fwt, // T:: T + Fwy, // Y:: Y + Fwu, // U:: U + Fwi, // I:: I + Fwo, // O:: O + Fwp, // P:: P + Fwa, // A:: A + Fws, // S:: S + Fwd, // D:: D + Fwf, // F:: F + Fwg, // G:: G + Fwh, // H:: H + Fwj, // J:: J + Fwk, // K:: K + Fwl, // L:: L + Fwz, // Z:: Z + Fwx, // X:: X + Fwc, // C:: C + Fwv, // V:: V + Fwb, // B:: B + Fwn, // N:: N + Fwm, // M:: M + nbsp, // You know what this is   + ibang, //‽ + nullpic, // Null picture - ␀ }; const uint32_t PROGMEM unicode_map[] = { - //MATH - [neq] = 0x2260, //≠ - [intgrl] = 0x222B, //∫ - [angl] = 0x2220, //∠ - [imply] = 0x21D2, //⇒ - [equiv] = 0x21D4, //⇔ - [porp] = 0x221D, //∝ - [exists] = 0x2203, //∃ - [nexists] = 0x2204, //∄ - [forall] = 0x2200, //∀ - [and] = 0x2227, //∧ - [or] = 0x2228, //∨ - [xor] = 0x2295, //⊕ - [apeql] = 0x2245, //≅ - [root] = 0x221A, //√ - [not] = 0x00AC, //¬ - [sum] = 0x2211, //∑ - [plsminus] = 0x00B1, //± - [infin] = 0x221E, //∞ - [emtyset] = 0x2205, //∅ - [Mn] = 0x2115, //ℕ - [Mz] = 0x2124, //ℤ - [Mq] = 0x211A, //ℚ - [Mr] = 0x211D, //ℝ - [Mc] = 0x2102, //ℂ - [eleof] = 0x2208, //∈ - [member] = 0x220B, //∋ - [neleof] = 0x2209, //∉ - [nmember] = 0x220C, //∌ - [subsetof] = 0x2282, //⊂ - [suprsetof] = 0x2283, // - [intersection] = 0x2229, //∩ - [Munion] = 0x222A, //∪ - //Symbol - [arwl] = 0x2190, //← - [arwu] = 0x2191, //↑ - [arwr] = 0x2192, //→ - [arwd] = 0x2193, //↓ + // MATH + [neq] = 0x2260, //≠ + [intgrl] = 0x222B, //∫ + [angl] = 0x2220, //∠ + [imply] = 0x21D2, //⇒ + [equiv] = 0x21D4, //⇔ + [porp] = 0x221D, //∝ + [exists] = 0x2203, //∃ + [nexists] = 0x2204, //∄ + [forall] = 0x2200, //∀ + [and] = 0x2227, //∧ + [or] = 0x2228, //∨ + [xor] = 0x2295, //⊕ + [apeql] = 0x2245, //≅ + [root] = 0x221A, //√ + [not ] = 0x00AC, //¬ + [sum] = 0x2211, //∑ + [plsminus] = 0x00B1, //± + [infin] = 0x221E, //∞ + [emtyset] = 0x2205, //∅ + [Mn] = 0x2115, //ℕ + [Mz] = 0x2124, //ℤ + [Mq] = 0x211A, //ℚ + [Mr] = 0x211D, //ℝ + [Mc] = 0x2102, //ℂ + [eleof] = 0x2208, //∈ + [member] = 0x220B, //∋ + [neleof] = 0x2209, //∉ + [nmember] = 0x220C, //∌ + [subsetof] = 0x2282, //⊂ + [suprsetof] = 0x2283, // + [intersection] = 0x2229, //∩ + [Munion] = 0x222A, //∪ + // Symbol + [arwl] = 0x2190, //← + [arwu] = 0x2191, //↑ + [arwr] = 0x2192, //→ + [arwd] = 0x2193, //↓ - [uxclm] = 0x00A1, //¡ - [cent] = 0x00A2, //¢ - [degree] = 0x00B0, //° - [trade] = 0x2122, //™ - [copy] = 0x00A9, //© - [numero] = 0x2116, //№ - [sect] = 0x00A7, //§ - [mdot] = 0x00B7, //· - [rang] = 0x299C, //⦜ + [uxclm] = 0x00A1, //¡ + [cent] = 0x00A2, //¢ + [degree] = 0x00B0, //° + [trade] = 0x2122, //™ + [copy] = 0x00A9, //© + [numero] = 0x2116, //№ + [sect] = 0x00A7, //§ + [mdot] = 0x00B7, //· + [rang] = 0x299C, //⦜ + [lshade] = 0x2591, //░ + [mshade] = 0x2592, //▒ + [dshade] = 0x2593, //▓ - [lshade] = 0x2591,//░ - [mshade] = 0x2592,//▒ - [dshade] = 0x2593,//▓ + [fire] = 0x1F525, //🔥 + [water] = 0x1F322, //🌢 + [cleft] = 0x1F12F, //🄯 + [baster] = 0x1F7BC, //🞼 + [neteen] = 0x1F51E, //🔞 + [floppy] = 0x1F5AB, //🖫 - [fire] = 0x1F525, //🔥 - [water] = 0x1F322, //🌢 - [cleft] = 0x1F12F, //🄯 - [baster] = 0x1F7BC, //🞼 - [neteen] = 0x1F51E, //🔞 - [floppy] = 0x1F5AB, //🖫 + [boxemp] = 0x2610, //☐ + [boxchk] = 0x2611, //☑ + [boxX] = 0x2612, //☒ - [boxemp] = 0x2610, //☐ - [boxchk] = 0x2611, //☑ - [boxX] = 0x2612, //☒ + [bbstr] = 0x23A1, //⎡ + [bbstl] = 0x23A4, //⎤ + [bbml] = 0x23A8, //⎨ + [bbmr] = 0x23AC, //⎬ + [bbmb] = 0x23AA, //⎪ + [bbrtr] = 0x23A7, //⎧ + [bbrbr] = 0x23A9, //⎩ + [bbrtl] = 0x23AB, //⎫ + [bbrbl] = 0x23AD, //⎭ + [bbsbr] = 0x23A3, //⎣ + [bbsbl] = 0x23A6, //⎦ + [bbmbr] = 0x23A5, //⎥ + [bbmbl] = 0x23A2, //⎢ - [bbstr] = 0x23A1, //⎡ - [bbstl] = 0x23A4, //⎤ - [bbml] = 0x23A8, //⎨ - [bbmr] = 0x23AC, //⎬ - [bbmb] = 0x23AA, //⎪ - [bbrtr] = 0x23A7, //⎧ - [bbrbr] = 0x23A9, //⎩ - [bbrtl] = 0x23AB, //⎫ - [bbrbl] = 0x23AD, //⎭ - [bbsbr] = 0x23A3, //⎣ - [bbsbl] = 0x23A6, //⎦ - [bbmbr] = 0x23A5, //⎥ - [bbmbl] = 0x23A2, //⎢ + [Agrave] = 0x0300, // è //above [wtf] = 0x1242A, //𒐪 + [Aacute] = 0x0301, // é //1st + [Acircm] = 0x0302, // ê //2nd + [Atilde] = 0x0303, // ẽ //5th + [Abreve] = 0x0306, // ĕ //4th + [Adiaer] = 0x0308, // ë //3rd + [Adacut] = 0x030B, // e̋ - [Agrave] = 0x0300,//è //above [wtf] = 0x1242A, //𒐪 - [Aacute] = 0x0301,//é //1st - [Acircm] = 0x0302,//ê //2nd - [Atilde] = 0x0303,//ẽ //5th - [Abreve] = 0x0306,//ĕ //4th - [Adiaer] = 0x0308,//ë //3rd - [Adacut] = 0x030B,//e̋ + // not all ogham letters, as I + // actually intend to use them for hex + [OS] = 0x1680, // space + [Oa] = 0x1681, // 1 + [Ob] = 0x1682, // 2 + [Oc] = 0x1683, // 3 + [Od] = 0x1684, // 4 + [Oe] = 0x1685, // 5 + [Of] = 0x1686, // 6 + [Og] = 0x1687, // 7 + [Oh] = 0x1688, // 8 + [Oi] = 0x1689, // 9 + [OA] = 0x168A, // A + [OB] = 0x168B, // B + [OC] = 0x168C, // C + [OD] = 0x168D, // D + [OE] = 0x168E, // E + [OF] = 0x168F, // F + [Os] = 0x169B, // Start + [OED] = 0x169C, // End + [Ox] = 0x1695, // X - // not all ogham letters, as I - // actually intend to use them for hex - [OS] = 0x1680,//space - [Oa] = 0x1681,//1 - [Ob] = 0x1682,//2 - [Oc] = 0x1683,//3 - [Od] = 0x1684,//4 - [Oe] = 0x1685,//5 - [Of] = 0x1686,//6 - [Og] = 0x1687,//7 - [Oh] = 0x1688,//8 - [Oi] = 0x1689,//9 - [OA] = 0x168A,//A - [OB] = 0x168B,//B - [OC] = 0x168C,//C - [OD] = 0x168D,//D - [OE] = 0x168E,//E - [OF] = 0x168F,//F - [Os] = 0x169B,//Start - [OED] = 0x169C,//End - [Ox] = 0x1695,//X + [gnd] = 0x23DA, //⏚ + [sqr] = 0x238D, //⎍, actually monostable + [sine] = 0x223F, //∿ + [opt] = 0x2325, //⌥, actually option used for switch - [gnd] = 0x23DA,//⏚ - [sqr] = 0x238D,//⎍, actually monostable - [sine] = 0x223F,//∿ - [opt] = 0x2325,//⌥, actually option used for switch + [geq] = 0x2264, //≤ + [leq] = 0x2265, //≥ + [brkup] = 0xFE38, //︸ + [brkdn] = 0xFE37, //︷ + [perup] = 0xFE35, //︵ + [perdn] = 0xFE36, //︶ + // GREEKL + [rone] = 0x2170, // 1:: ⅰ + [rtwo] = 0x2171, // 2:: ⅱ + [rthree] = 0x2172, // 3:: ⅲ + [rfour] = 0x2173, // 4:: ⅳ + [rfive] = 0x2174, // 5:: ⅴ + [rsix] = 0x2175, // 6:: ⅵ + [rseven] = 0x2176, // 7:: ⅶ + [reight] = 0x2177, // 8:: ⅷ + [rnine] = 0x2178, // 9:: ⅸ + [rten] = 0x2179, // 0:: ⅹ + [gq] = 0x03B8, // q:: θ + [gw] = 0x03C9, // w:: ω + [ge] = 0x03B5, // e:: ε + [gr] = 0x03C1, // r:: ρ + [gt] = 0x03C4, // t:: τ + [gy] = 0x03C8, // y:: ψ + [gu] = 0x03C5, // u:: υ + [gi] = 0x03B9, // i:: ι + [go] = 0x03BF, // o:: ο + [gp] = 0x03C0, // p:: π + [ga] = 0x03B1, // a:: α + [gs] = 0x03C3, // s:: σ + [gd] = 0x03B4, // d:: δ + [gf] = 0x03C6, // f:: φ + [gg] = 0x03B3, // g:: γ + [gh] = 0x03B7, // h:: η + [gj] = 0x03D1, // j:: ϑ + [gk] = 0x03BA, // k:: κ + [gl] = 0x03BB, // l:: λ + [gz] = 0x03B6, // z:: ζ + [gx] = 0x03BE, // x:: ξ + [gc] = 0x03C7, // c:: χ + [gv] = 0x03C2, // v:: ς + [gb] = 0x03B2, // b:: β + [gn] = 0x03BD, // n:: ν + [gm] = 0x03BC, // m:: μ + // GREEKU + [Rone] = 0x2160, // 1:: Ⅰ + [Rtwo] = 0x2161, // 2:: Ⅱ + [Rthree] = 0x2162, // 3:: Ⅲ + [Rfour] = 0x2163, // 4:: Ⅳ + [Rfive] = 0x2164, // 5:: Ⅴ + [Rsix] = 0x2165, // 6:: Ⅵ + [Rseven] = 0x2166, // 7:: Ⅶ + [Reight] = 0x2167, // 8:: Ⅷ + [Rnine] = 0x2168, // 9:: Ⅸ + [Rten] = 0x2169, // 0:: Ⅹ + [Gq] = 0x0398, // Q:: Θ + [Gw] = 0x03A9, // W:: Ω + [Ge] = 0x0395, // E:: Ε + [Gr] = 0x03A1, // R:: Ρ + [Gt] = 0x03A4, // T:: Τ + [Gy] = 0x03A8, // Y:: Ψ + [Gu] = 0x03A5, // U:: Υ + [Gi] = 0x0399, // I:: Ι + [Go] = 0x039F, // O:: Ο + [Gp] = 0x03A0, // P:: Π + [Ga] = 0x0391, // A:: Α + [Gs] = 0x03A3, // S:: Σ + [Gd] = 0x0394, // D:: Δ + [Gf] = 0x03A6, // F:: Φ + [Gg] = 0x0393, // G:: Γ + [Gh] = 0x0397, // H:: Η + [Gj] = 0x004A, // J:: J + [Gk] = 0x039A, // K:: Κ + [Gl] = 0x039B, // L:: Λ + [Gz] = 0x0396, // Z:: Ζ + [Gx] = 0x039E, // X:: Ξ + [Gc] = 0x03A7, // C:: Χ + [Gv] = 0x0056, // V:: V + [Gb] = 0x0392, // B:: Β + [Gn] = 0x039D, // N:: Ν + [Gm] = 0x039C, // M:: Μ - [geq] = 0x2264, //≤ - [leq] = 0x2265, //≥ - [brkup] = 0xFE38, //︸ - [brkdn] = 0xFE37, //︷ - [perup] = 0xFE35, //︵ - [perdn] = 0xFE36, //︶ - //GREEKL - [rone] = 0x2170, // 1:: ⅰ - [rtwo] = 0x2171, // 2:: ⅱ - [rthree] = 0x2172, // 3:: ⅲ - [rfour] = 0x2173, // 4:: ⅳ - [rfive] = 0x2174, // 5:: ⅴ - [rsix] = 0x2175, // 6:: ⅵ - [rseven] = 0x2176, // 7:: ⅶ - [reight] = 0x2177, // 8:: ⅷ - [rnine] = 0x2178, // 9:: ⅸ - [rten] = 0x2179, // 0:: ⅹ - [gq] = 0x03B8, // q:: θ - [gw] = 0x03C9, // w:: ω - [ge] = 0x03B5, // e:: ε - [gr] = 0x03C1, // r:: ρ - [gt] = 0x03C4, // t:: τ - [gy] = 0x03C8, // y:: ψ - [gu] = 0x03C5, // u:: υ - [gi] = 0x03B9, // i:: ι - [go] = 0x03BF, // o:: ο - [gp] = 0x03C0, // p:: π - [ga] = 0x03B1, // a:: α - [gs] = 0x03C3, // s:: σ - [gd] = 0x03B4, // d:: δ - [gf] = 0x03C6, // f:: φ - [gg] = 0x03B3, // g:: γ - [gh] = 0x03B7, // h:: η - [gj] = 0x03D1, // j:: ϑ - [gk] = 0x03BA, // k:: κ - [gl] = 0x03BB, // l:: λ - [gz] = 0x03B6, // z:: ζ - [gx] = 0x03BE, // x:: ξ - [gc] = 0x03C7, // c:: χ - [gv] = 0x03C2, // v:: ς - [gb] = 0x03B2, // b:: β - [gn] = 0x03BD, // n:: ν - [gm] = 0x03BC, // m:: μ - //GREEKU - [Rone] = 0x2160, // 1:: Ⅰ - [Rtwo] = 0x2161, // 2:: Ⅱ - [Rthree] = 0x2162, // 3:: Ⅲ - [Rfour] = 0x2163, // 4:: Ⅳ - [Rfive] = 0x2164, // 5:: Ⅴ - [Rsix] = 0x2165, // 6:: Ⅵ - [Rseven] = 0x2166, // 7:: Ⅶ - [Reight] = 0x2167, // 8:: Ⅷ - [Rnine] = 0x2168, // 9:: Ⅸ - [Rten] = 0x2169, // 0:: Ⅹ - [Gq] = 0x0398, // Q:: Θ - [Gw] = 0x03A9, // W:: Ω - [Ge] = 0x0395, // E:: Ε - [Gr] = 0x03A1, // R:: Ρ - [Gt] = 0x03A4, // T:: Τ - [Gy] = 0x03A8, // Y:: Ψ - [Gu] = 0x03A5, // U:: Υ - [Gi] = 0x0399, // I:: Ι - [Go] = 0x039F, // O:: Ο - [Gp] = 0x03A0, // P:: Π - [Ga] = 0x0391, // A:: Α - [Gs] = 0x03A3, // S:: Σ - [Gd] = 0x0394, // D:: Δ - [Gf] = 0x03A6, // F:: Φ - [Gg] = 0x0393, // G:: Γ - [Gh] = 0x0397, // H:: Η - [Gj] = 0x004A, // J:: J - [Gk] = 0x039A, // K:: Κ - [Gl] = 0x039B, // L:: Λ - [Gz] = 0x0396, // Z:: Ζ - [Gx] = 0x039E, // X:: Ξ - [Gc] = 0x03A7, // C:: Χ - [Gv] = 0x0056, // V:: V - [Gb] = 0x0392, // B:: Β - [Gn] = 0x039D, // N:: Ν - [Gm] = 0x039C, // M:: Μ + [tone] = 0x00B9, // 1:: ¹ + [ttwo] = 0x00B2, // 2:: ² + [tthree] = 0x00B3, // 3:: ³ + [tfour] = 0x2074, // 4:: ⁴ + [tfive] = 0x2075, // 5:: ⁵ + [tsix] = 0x2076, // 6:: ⁶ + [tseven] = 0x2077, // 7:: ⁷ + [teight] = 0x2078, // 8:: ⁸ + [tnine] = 0x2079, // 9:: ⁹ + [tzero] = 0x2070, // 0 :: ⁰ + [tq] = 0x06F9, // Q:: ۹ - superscript q doesn't exist. + [tw] = 0x02B7, // W:: ʷ + [te] = 0x1D49, // E:: ᵉ + [tr] = 0x02B3, // R:: ʳ + [tt] = 0x1D57, // T:: ᵗ + [ty] = 0x02B8, // Y:: ʸ + [tu] = 0x1D58, // U:: ᵘ + [ti] = 0x2071, // I:: ⁱ + [to] = 0x1D52, // O:: ᵒ + [tp] = 0x1D56, // P:: ᵖ + [ta] = 0x1D43, // A:: ᵃ + [ts] = 0x02E2, // S:: ˢ + [td] = 0x1D48, // D:: ᵈ + [tf] = 0x1DA0, // F:: ᶠ + [tg] = 0x1D4D, // G:: ᵍ + [th] = 0x02B0, // H:: ʰ + [tj] = 0x02B2, // J:: ʲ + [tk] = 0x1D4F, // K:: ᵏ + [tl] = 0x02E1, // L:: ˡ + [tz] = 0x1DBB, // Z:: ᶻ + [tx] = 0x02E3, // X:: ˣ + [tc] = 0x1D9C, // C:: ᶜ + [tv] = 0x1D5B, // V:: ᵛ + [tb] = 0x1D47, // B:: ᵇ + [tn] = 0x207F, // N:: ⁿ + [tm] = 0x1D50, // M:: ᵐ + + [fwone] = 0xFF11, // 1:: 1 + [fwtwo] = 0xFF12, // 2:: 2 + [fwthree] = 0xFF13, // 3:: 3 + [fwfour] = 0xFF14, // 4:: 4 + [fwfive] = 0xFF15, // 5:: 5 + [fwsix] = 0xFF16, // 6:: 6 + [fwseven] = 0xFF17, // 7:: 7 + [fweight] = 0xFF18, // 8:: 8 + [fwnine] = 0xFF19, // 9:: 9 + [fwzero] = 0xFF10, // 0 :: 0 + [fwq] = 0xFF51, // Q:: q + [fww] = 0xFF57, // W:: w + [fwe] = 0xFF45, // E:: e + [fwr] = 0xFF52, // R:: r + [fwt] = 0xFF54, // T:: t + [fwy] = 0xFF59, // Y:: y + [fwu] = 0xFF55, // U:: u + [fwi] = 0xFF49, // I:: i + [fwo] = 0xFF4F, // O:: o + [fwp] = 0xFF50, // P:: p + [fwa] = 0xFF41, // A:: a + [fws] = 0xFF53, // S:: s + [fwd] = 0xFF44, // D:: d + [fwf] = 0xFF46, // F:: f + [fwg] = 0xFF47, // G:: g + [fwh] = 0xFF48, // H:: h + [fwj] = 0xFF4A, // J:: j + [fwk] = 0xFF4B, // K:: k + [fwl] = 0xFF4C, // L:: l + [fwz] = 0xFF5A, // Z:: z + [fwx] = 0xFF58, // X:: x + [fwc] = 0xFF43, // C:: c + [fwv] = 0xFF56, // V:: v + [fwb] = 0xFF42, // B:: b + [fwn] = 0xFF4E, // N:: n + [fwm] = 0xFF4D, // M:: m + // Full width caps + fractions, and a few extra symbols that lack a better place + [Fwone] = 0x00BC, // 1:: ¼ + [Fwtwo] = 0x00BD, // 2:: ½ + [Fwthree] = 0x00BE, // 3:: ¾ + [Fwfour] = 0x2153, // 4:: ⅓ + [Fwfive] = 0x2154, // 5:: ⅔ + [Fwsix] = 0x2155, // 6:: ⅕ + [Fwseven] = 0x215B, // 7:: ⅛ + [Fweight] = 0x00A0, // 8::   + [Fwnine] = 0x203D, // 9:: ibang ‽ + [Fwzero] = 0x2400, // 0 :: nullpic ␀ + [Fwq] = 0xFF31, // Q:: Q + [Fww] = 0xFF37, // W:: W + [Fwe] = 0xFF25, // E:: E + [Fwr] = 0xFF32, // R:: R + [Fwt] = 0xFF34, // T:: T + [Fwy] = 0xFF39, // Y:: Y + [Fwu] = 0xFF35, // U:: U + [Fwi] = 0xFF29, // I:: I + [Fwo] = 0xFF2F, // O:: O + [Fwp] = 0xFF30, // P:: P + [Fwa] = 0xFF21, // A:: A + [Fws] = 0xFF33, // S:: S + [Fwd] = 0xFF24, // D:: D + [Fwf] = 0xFF26, // F:: F + [Fwg] = 0xFF27, // G:: G + [Fwh] = 0xFF28, // H:: H + [Fwj] = 0xFF2A, // J:: J + [Fwk] = 0xFF2B, // K:: K + [Fwl] = 0xFF2C, // L:: L + [Fwz] = 0xFF3A, // Z:: Z + [Fwx] = 0xFF38, // X:: X + [Fwc] = 0xFF23, // C:: C + [Fwv] = 0xFF36, // V:: V + [Fwb] = 0xFF22, // B:: B + [Fwn] = 0xFF2E, // N:: N + [Fwm] = 0xFF2D, // M:: M }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [BASE] = LAYOUT_ergodox( // layer 0 : default KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_BSLS, @@ -428,8 +651,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand UC_M_LN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, UC_M_WC,KC_F11, KC_F12, KC_F13,KC_F14, KC_F15, KC_NO, - KC_NO,KC_F21, KC_F22, KC_F23,KC_F24, KC_NO, - KC_NO,KC_PAUSE,KC_PSCR,KC_SLCK,KC_NO,KC_NO,KC_NO, + TO(TINY),KC_F21, KC_F22, KC_F23,KC_F24, MAGIC_TOGGLE_NKRO, + TO(FULL),KC_PAUSE,KC_PSCR,KC_SLCK,KC_NO,KC_NO,KC_NO, EEP_RST,TO(BASE),TO(BASE),TO(BASE),TO(BASE), KC_NO,KC_NO, KC_NO, @@ -525,23 +748,73 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_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, + 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_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), + 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_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, + KC_RCTL, KC_RALT, KC_APP, TO(BASE), TO(BASE), + KC_END, KC_RBRC, KC_LEFT, KC_RGHT, KC_ENT, KC_SPC +), + + // clang-format on + }; // Runs just one time when the keyboard initializes. -void matrix_init_user(void) { +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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { - // TODO: Make this relevant to the ErgoDox EZ. + // TODO: Make this relevant to the ErgoDox EZ. case 1: ergodox_right_led_1_on(); break; diff --git a/keyboards/ktec/staryu/config.h b/keyboards/ktec/staryu/config.h index db48e0ea5e..c11d3e074b 100755 --- a/keyboards/ktec/staryu/config.h +++ b/keyboards/ktec/staryu/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1209 -#define PRODUCT_ID 0x2328 -#define DEVICE_VER 0x0205 -#define MANUFACTURER K.T.E.C. -#define PRODUCT Staryu - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/ktec/staryu/info.json b/keyboards/ktec/staryu/info.json index deaf3d140a..8971ec7021 100644 --- a/keyboards/ktec/staryu/info.json +++ b/keyboards/ktec/staryu/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "staryu", + "keyboard_name": "Staryu", + "manufacturer": "K.T.E.C.", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x1209", + "pid": "0x2328", + "device_version": "2.0.5" + }, "layouts": { "LAYOUT": { "layout": [{"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}] diff --git a/keyboards/kudox/columner/config.h b/keyboards/kudox/columner/config.h index 13a02bc803..a97d03596c 100644 --- a/keyboards/kudox/columner/config.h +++ b/keyboards/kudox/columner/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xABBA -#define PRODUCT_ID 0x9691 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Kumao Kobo -#define PRODUCT The Kudox Keyboard - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/kudox/columner/info.json b/keyboards/kudox/columner/info.json index d11632d9da..2bc8ff50d3 100644 --- a/keyboards/kudox/columner/info.json +++ b/keyboards/kudox/columner/info.json @@ -1,7 +1,13 @@ { + "keyboard_name": "The Kudox Keyboard Columner", + "manufacturer": "Kumao Kobo", "url": "http://kumaokobo.com/", "maintainer": "Kumao Kobo", - "keyboard_name": "Kudox Keyboard Columner", + "usb": { + "vid": "0xABBA", + "pid": "0x9691", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kudox/rev1/config.h b/keyboards/kudox/rev1/config.h index de5dbbbe71..36a933dc2e 100644 --- a/keyboards/kudox/rev1/config.h +++ b/keyboards/kudox/rev1/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xABBA -#define PRODUCT_ID 0x9690 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Kumao Kobo -#define PRODUCT The Kudox Keyboard - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/kudox/rev1/info.json b/keyboards/kudox/rev1/info.json index f92d525838..45f3a4e304 100644 --- a/keyboards/kudox/rev1/info.json +++ b/keyboards/kudox/rev1/info.json @@ -1,7 +1,13 @@ { + "keyboard_name": "The Kudox Keyboard Rev1", + "manufacturer": "Kumao Kobo", "url": "http://kumaokobo.com/", "maintainer": "Kumao Kobo", - "keyboard_name": "Kudox Keyboard Rev1", + "usb": { + "vid": "0xABBA", + "pid": "0x9690", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kudox/rev2/config.h b/keyboards/kudox/rev2/config.h index c510926919..36a933dc2e 100644 --- a/keyboards/kudox/rev2/config.h +++ b/keyboards/kudox/rev2/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xABBA -#define PRODUCT_ID 0x9690 -#define DEVICE_VER 0x0200 -#define MANUFACTURER Kumao Kobo -#define PRODUCT The Kudox Keyboard - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/kudox/rev2/info.json b/keyboards/kudox/rev2/info.json index 73cb5a525a..2af08beaf2 100644 --- a/keyboards/kudox/rev2/info.json +++ b/keyboards/kudox/rev2/info.json @@ -1,7 +1,13 @@ { + "keyboard_name": "The Kudox Keyboard Rev2", + "manufacturer": "Kumao Kobo", "url": "http://kumaokobo.com/", "maintainer": "Kumao Kobo", - "keyboard_name": "Kudox Keyboard Rev2", + "usb": { + "vid": "0xABBA", + "pid": "0x9690", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kudox/rev3/config.h b/keyboards/kudox/rev3/config.h index 969111d0c8..a97d03596c 100644 --- a/keyboards/kudox/rev3/config.h +++ b/keyboards/kudox/rev3/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xABBA -#define PRODUCT_ID 0x9690 -#define DEVICE_VER 0x0300 -#define MANUFACTURER Kumao Kobo -#define PRODUCT The Kudox Keyboard - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/kudox/rev3/info.json b/keyboards/kudox/rev3/info.json index 84b5ce0f30..31975f28d7 100644 --- a/keyboards/kudox/rev3/info.json +++ b/keyboards/kudox/rev3/info.json @@ -1,7 +1,13 @@ { + "keyboard_name": "The Kudox Keyboard Rev3", + "manufacturer": "Kumao Kobo", "url": "http://kumaokobo.com/", "maintainer": "Kumao Kobo", - "keyboard_name": "Kudox Keyboard Rev3", + "usb": { + "vid": "0xABBA", + "pid": "0x9690", + "device_version": "3.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kudox_full/rev1/config.h b/keyboards/kudox_full/rev1/config.h index bd47ed6b42..79d63f3a29 100644 --- a/keyboards/kudox_full/rev1/config.h +++ b/keyboards/kudox_full/rev1/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xABBA -#define PRODUCT_ID 0x9693 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Kumao Kobo -#define PRODUCT The Kudox Full Keyboard - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/kudox_full/rev1/info.json b/keyboards/kudox_full/rev1/info.json index 7dfbf7c4e9..bb230b352c 100644 --- a/keyboards/kudox_full/rev1/info.json +++ b/keyboards/kudox_full/rev1/info.json @@ -1,7 +1,13 @@ { + "keyboard_name": "The Kudox Full Keyboard Rev1", + "manufacturer": "Kumao Kobo", "url": "http://kumaokobo.com/", "maintainer": "Kumao Kobo", - "keyboard_name": "Kudox Full Keyboard Rev1", + "usb": { + "vid": "0xABBA", + "pid": "0x9693", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/kv/revt/config.h b/keyboards/kv/revt/config.h index b718de6784..49079a6bc2 100644 --- a/keyboards/kv/revt/config.h +++ b/keyboards/kv/revt/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6565 -#define PRODUCT_ID 0x6520 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hybrid -#define PRODUCT KVT - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 21 diff --git a/keyboards/kv/revt/info.json b/keyboards/kv/revt/info.json index 6f2b30b293..2b018ee654 100644 --- a/keyboards/kv/revt/info.json +++ b/keyboards/kv/revt/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "KVT", + "manufacturer": "Hybrid", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6565", + "pid": "0x6520", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/kwub/bloop/config.h b/keyboards/kwub/bloop/config.h index f3c0bae637..832fb98d9d 100644 --- a/keyboards/kwub/bloop/config.h +++ b/keyboards/kwub/bloop/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6B77 // Kwub -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kwub -#define PRODUCT Bloop65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/kwub/bloop/info.json b/keyboards/kwub/bloop/info.json index aa87c2e452..ddce5d363a 100644 --- a/keyboards/kwub/bloop/info.json +++ b/keyboards/kwub/bloop/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bloop65", + "manufacturer": "Kwub", "url": "https://geekhack.org/index.php?topic=110483.0", "maintainer": "Kwub", + "usb": { + "vid": "0x6B77", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_625": { "layout": [ diff --git a/keyboards/ky01/config.h b/keyboards/ky01/config.h index e0b94622c6..b5ad4a25e8 100644 --- a/keyboards/ky01/config.h +++ b/keyboards/ky01/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B4F /* "KO" */ -#define PRODUCT_ID 0x4B59 /* "KY" */ -#define DEVICE_VER 0x0001 -#define MANUFACTURER KnoblesseOblige -#define PRODUCT KY-01 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/ky01/info.json b/keyboards/ky01/info.json index ef6498fb04..d80cb261a2 100644 --- a/keyboards/ky01/info.json +++ b/keyboards/ky01/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ky01", + "keyboard_name": "KY-01", + "manufacturer": "KnoblesseOblige", "url": "https://geekhack.org/index.php?topic=107809.0", "maintainer": "KnoblesseOblige", + "usb": { + "vid": "0x4B4F", + "pid": "0x4B59", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/labbe/labbeminiv1/config.h b/keyboards/labbe/labbeminiv1/config.h index ab1b25db3d..5a561fecad 100644 --- a/keyboards/labbe/labbeminiv1/config.h +++ b/keyboards/labbe/labbeminiv1/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xABBE -#define PRODUCT_ID 0x4C4D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Labbe -#define PRODUCT Labbe Mini V1 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/labbe/labbeminiv1/info.json b/keyboards/labbe/labbeminiv1/info.json index 34499f2c6a..b14a43903f 100644 --- a/keyboards/labbe/labbeminiv1/info.json +++ b/keyboards/labbe/labbeminiv1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Labbe Mini V1", + "manufacturer": "Labbe", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xABBE", + "pid": "0x4C4D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_wasd": { "layout": [{"x":1, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}] diff --git a/keyboards/labyrinth75/config.h b/keyboards/labyrinth75/config.h index afc77a8dd5..97ede34376 100644 --- a/keyboards/labyrinth75/config.h +++ b/keyboards/labyrinth75/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4F53 -#define PRODUCT_ID 0x464B -#define DEVICE_VER 0x0001 -#define MANUFACTURER Livi -#define PRODUCT labyrinth75 - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 9 diff --git a/keyboards/labyrinth75/info.json b/keyboards/labyrinth75/info.json index 3871300dfe..d83e27c662 100644 --- a/keyboards/labyrinth75/info.json +++ b/keyboards/labyrinth75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "labyrinth75", + "manufacturer": "Livi", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4F53", + "pid": "0x464B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.5, "y":0}, {"label":"F2", "x":2.5, "y":0}, {"label":"F3", "x":3.5, "y":0}, {"label":"F4", "x":4.5, "y":0}, {"label":"F5", "x":5.75, "y":0}, {"label":"F6", "x":6.75, "y":0}, {"label":"F7", "x":7.75, "y":0}, {"label":"F8", "x":8.75, "y":0}, {"label":"F9", "x":10, "y":0}, {"label":"F10", "x":11, "y":0}, {"label":"F11", "x":12, "y":0}, {"label":"F12", "x":13, "y":0}, {"label":"PrtSc", "x":15, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":15, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Page Up", "x":15, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Page Down", "x":15, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"\u2191", "x":14, "y":4.25}, {"label":"End", "x":15, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":11.25, "y":5.25, "w":1.25}, {"label":"\u2190", "x":13, "y":5.25}, {"label":"\u2193", "x":14, "y":5.25}, {"label":"\u2192", "x":15, "y":5.25}] diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h index 02d8522606..c9e5913f52 100644 --- a/keyboards/latincompass/latin17rgb/config.h +++ b/keyboards/latincompass/latin17rgb/config.h @@ -18,11 +18,6 @@ /* USB Device descriptor parameter */ #include "config_common.h" -#define VENDOR_ID 0x7C88 // "hw" = haierwangwei2005 -#define PRODUCT_ID 0x7C97 // "lp" = latin17RGB -#define DEVICE_VER 0x0001 -#define MANUFACTURER 18438880 -#define PRODUCT Latin17RGB /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/latincompass/latin17rgb/info.json b/keyboards/latincompass/latin17rgb/info.json index 61aae4f8d6..fa2320474f 100644 --- a/keyboards/latincompass/latin17rgb/info.json +++ b/keyboards/latincompass/latin17rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "latin17rgb", + "keyboard_name": "Latin17RGB", + "manufacturer": "18438880", "url": "", "maintainer": "18438880", + "usb": { + "vid": "0x7C88", + "pid": "0x7C97", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/latincompass/latin47ble/config.h b/keyboards/latincompass/latin47ble/config.h index eb10693501..2e69294bb5 100644 --- a/keyboards/latincompass/latin47ble/config.h +++ b/keyboards/latincompass/latin47ble/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6C63 // "lc" = latincompass -#define PRODUCT_ID 0x6C62 // "lb" = latin47BLE -#define DEVICE_VER 0x0001 -#define MANUFACTURER latincompass -#define PRODUCT Latin47BLE - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/latincompass/latin47ble/info.json b/keyboards/latincompass/latin47ble/info.json index 56b14136d8..aeb6ad305e 100644 --- a/keyboards/latincompass/latin47ble/info.json +++ b/keyboards/latincompass/latin47ble/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Latin47ble", + "keyboard_name": "Latin47BLE", + "manufacturer": "latincompass", "url": "", "maintainer": "latincompass", + "usb": { + "vid": "0x6C63", + "pid": "0x6C62", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_planck_mit": { "layout": [ diff --git a/keyboards/latincompass/latin60rgb/config.h b/keyboards/latincompass/latin60rgb/config.h index fa4ea39288..e975e6eaf9 100644 --- a/keyboards/latincompass/latin60rgb/config.h +++ b/keyboards/latincompass/latin60rgb/config.h @@ -17,11 +17,6 @@ /* USB Device descriptor parameter */ #include "config_common.h" -#define VENDOR_ID 0x6C63 // "lc" = latincompass -#define PRODUCT_ID 0x6C69 // "lp" = latin60RGB -#define DEVICE_VER 0x0001 -#define MANUFACTURER latincompass -#define PRODUCT Latin60RGB /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/latincompass/latin60rgb/info.json b/keyboards/latincompass/latin60rgb/info.json index a493befaf9..21765b94b9 100644 --- a/keyboards/latincompass/latin60rgb/info.json +++ b/keyboards/latincompass/latin60rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "latin60rgb", + "keyboard_name": "Latin60RGB", + "manufacturer": "latincompass", "url": "", "maintainer": "latincompass", + "usb": { + "vid": "0x6C63", + "pid": "0x6C69", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_latin_hhkb": { "layout": [ diff --git a/keyboards/latincompass/latin64ble/config.h b/keyboards/latincompass/latin64ble/config.h index 68e8e7b293..901b957b52 100644 --- a/keyboards/latincompass/latin64ble/config.h +++ b/keyboards/latincompass/latin64ble/config.h @@ -16,11 +16,6 @@ along with this program. If not, see .*/ #pragma once #include "config_common.h" -#define VENDOR_ID 0x6C63 // "lc" = latincompass -#define PRODUCT_ID 0x6C71 // "lp" = latin64BLE -#define DEVICE_VER 0x0001 -#define MANUFACTURER latincompass -#define PRODUCT Latin64BLE /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/latincompass/latin64ble/info.json b/keyboards/latincompass/latin64ble/info.json index 99fe62b266..b3475a2aab 100644 --- a/keyboards/latincompass/latin64ble/info.json +++ b/keyboards/latincompass/latin64ble/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Latin64ble", + "keyboard_name": "Latin64BLE", + "manufacturer": "latincompass", "url": "", "maintainer": "latincompass", + "usb": { + "vid": "0x6C63", + "pid": "0x6C71", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h index 9beebe0f87..f5ff59d697 100644 --- a/keyboards/latincompass/latin6rgb/config.h +++ b/keyboards/latincompass/latin6rgb/config.h @@ -19,11 +19,6 @@ /* USB Device descriptor parameter */ #include "config_common.h" -#define VENDOR_ID 0x7C88 // "hw" = haierwangwei -#define PRODUCT_ID 0x7C96 // "lp" = latin6RGB -#define DEVICE_VER 0x0001 -#define MANUFACTURER 18438880 -#define PRODUCT Latin6rgb /* key matrix size */ #define MATRIX_ROWS 2 diff --git a/keyboards/latincompass/latin6rgb/info.json b/keyboards/latincompass/latin6rgb/info.json index 26508e9320..a2c63ae8ea 100644 --- a/keyboards/latincompass/latin6rgb/info.json +++ b/keyboards/latincompass/latin6rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "latin6rgb", + "keyboard_name": "Latin6rgb", + "manufacturer": "18438880", "url": "", "maintainer": "18438880", + "usb": { + "vid": "0x7C88", + "pid": "0x7C96", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_2x3": { "layout": [ diff --git a/keyboards/latincompass/latinpad/config.h b/keyboards/latincompass/latinpad/config.h index 5cff076d9d..bf9538e32d 100644 --- a/keyboards/latincompass/latinpad/config.h +++ b/keyboards/latincompass/latinpad/config.h @@ -17,11 +17,6 @@ along with this program. If not, see .*/ #pragma once #include "config_common.h" -#define VENDOR_ID 0x6C63 // "lc" = latincompass -#define PRODUCT_ID 0x6C70 // "lp" = latinpad -#define DEVICE_VER 0x0001 -#define MANUFACTURER latincompass -#define PRODUCT latinpad /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/latincompass/latinpad/info.json b/keyboards/latincompass/latinpad/info.json index 0c86498e7d..0a2ef6f69b 100644 --- a/keyboards/latincompass/latinpad/info.json +++ b/keyboards/latincompass/latinpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "latinpad", + "manufacturer": "latincompass", "url": "https://github.com/latincompass/2-RotaryEncoder-pad", "maintainer": "latincompass", + "usb": { + "vid": "0x6C63", + "pid": "0x6C70", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { diff --git a/keyboards/latincompass/latinpadble/config.h b/keyboards/latincompass/latinpadble/config.h index fc833a0269..8d7976ae56 100644 --- a/keyboards/latincompass/latinpadble/config.h +++ b/keyboards/latincompass/latinpadble/config.h @@ -17,11 +17,6 @@ along with this program. If not, see .*/ #pragma once #include "config_common.h" -#define VENDOR_ID 0x7C88 // "hw" = haierwangwei2005 -#define PRODUCT_ID 0x7C98 // "lp" = latinpadble -#define DEVICE_VER 0x0001 -#define MANUFACTURER haierwangwei2005 -#define PRODUCT latinpadble // #define NO_ACTION_LAYER // #define NO_ACTION_TAPPING diff --git a/keyboards/latincompass/latinpadble/info.json b/keyboards/latincompass/latinpadble/info.json index b640d3e46e..2f0bf01616 100644 --- a/keyboards/latincompass/latinpadble/info.json +++ b/keyboards/latincompass/latinpadble/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "latinpadble", + "manufacturer": "haierwangwei2005", "url": "https://github.com/latincompass/2-RotaryEncoder-pad", "maintainer": "haierwangwei2005", + "usb": { + "vid": "0x7C88", + "pid": "0x7C98", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_pad": { "layout": [ diff --git a/keyboards/lazydesigners/bolt/config.h b/keyboards/lazydesigners/bolt/config.h index 37006c19e3..7139bca6ac 100644 --- a/keyboards/lazydesigners/bolt/config.h +++ b/keyboards/lazydesigners/bolt/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C44 // "LD" -#define PRODUCT_ID 0x0041 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LAZYDESIGNERS -#define PRODUCT Bolt - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/lazydesigners/bolt/info.json b/keyboards/lazydesigners/bolt/info.json index 6e669d4ca9..783293945d 100644 --- a/keyboards/lazydesigners/bolt/info.json +++ b/keyboards/lazydesigners/bolt/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Bolt", + "manufacturer": "LAZYDESIGNERS", "url": "http://lazydesigners.cn", "maintainer": "LAZYDESIGNERS", + "usb": { + "vid": "0x4C44", + "pid": "0x0041", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lazydesigners/cassette8/config.h b/keyboards/lazydesigners/cassette8/config.h index ee20577e3d..4ccd6687fd 100755 --- a/keyboards/lazydesigners/cassette8/config.h +++ b/keyboards/lazydesigners/cassette8/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C44 // "LD" -#define PRODUCT_ID 0x0008 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LAZYDESIGNERS -#define PRODUCT Cassette8 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/lazydesigners/cassette8/info.json b/keyboards/lazydesigners/cassette8/info.json index 980d4a3d93..24ba706b64 100755 --- a/keyboards/lazydesigners/cassette8/info.json +++ b/keyboards/lazydesigners/cassette8/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Cassette8", + "manufacturer": "LAZYDESIGNERS", "url": "http://lazydesigners.cn", "maintainer": "Jacky@LAZYDESIGNERS", + "usb": { + "vid": "0x4C44", + "pid": "0x0008", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lazydesigners/dimpleplus/config.h b/keyboards/lazydesigners/dimpleplus/config.h index d85d72412d..b96be3b18f 100644 --- a/keyboards/lazydesigners/dimpleplus/config.h +++ b/keyboards/lazydesigners/dimpleplus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C44 // "LD" -#define PRODUCT_ID 0x0061 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LAZYDESIGNERS -#define PRODUCT Dimpleplus - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/lazydesigners/dimpleplus/info.json b/keyboards/lazydesigners/dimpleplus/info.json index aab9e66dfd..7ba8b08812 100644 --- a/keyboards/lazydesigners/dimpleplus/info.json +++ b/keyboards/lazydesigners/dimpleplus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Dimpleplus", + "manufacturer": "LAZYDESIGNERS", "url": "http://lazydesigners.cn", "maintainer": "LAZYDESIGNERS", + "usb": { + "vid": "0x4C44", + "pid": "0x0061", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lazydesigners/the30/config.h b/keyboards/lazydesigners/the30/config.h index 0fcfa7dd4f..3ba91fdae3 100644 --- a/keyboards/lazydesigners/the30/config.h +++ b/keyboards/lazydesigners/the30/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C44 // "LD" -#define PRODUCT_ID 0x0030 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LazyDesigners -#define PRODUCT THE30 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 10 diff --git a/keyboards/lazydesigners/the30/info.json b/keyboards/lazydesigners/the30/info.json index 7f423620f4..647f12ca27 100644 --- a/keyboards/lazydesigners/the30/info.json +++ b/keyboards/lazydesigners/the30/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "THE30", + "manufacturer": "LazyDesigners", "url": "http://lazydesigners.cn", "maintainer": "Erovia", + "usb": { + "vid": "0x4C44", + "pid": "0x0030", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_3x10": { "layout": [ diff --git a/keyboards/lazydesigners/the40/config.h b/keyboards/lazydesigners/the40/config.h index b199f23a09..0fe62548ea 100644 --- a/keyboards/lazydesigners/the40/config.h +++ b/keyboards/lazydesigners/the40/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C44 // "LD" -#define PRODUCT_ID 0x0042 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LAZYDESIGNERS -#define PRODUCT THE40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/lazydesigners/the40/info.json b/keyboards/lazydesigners/the40/info.json index 5af86fc923..2afadd83ee 100644 --- a/keyboards/lazydesigners/the40/info.json +++ b/keyboards/lazydesigners/the40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "THE40", + "manufacturer": "LAZYDESIGNERS", "url": "http://lazydesigners.cn", "maintainer": "LAZYDESIGNERS", + "usb": { + "vid": "0x4C44", + "pid": "0x0042", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/lazydesigners/the50/config.h b/keyboards/lazydesigners/the50/config.h index 2a546a6665..9ffa915e22 100644 --- a/keyboards/lazydesigners/the50/config.h +++ b/keyboards/lazydesigners/the50/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C44 // "LD" -#define PRODUCT_ID 0x0050 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LazyDesigners -#define PRODUCT THE50 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 15 diff --git a/keyboards/lazydesigners/the50/info.json b/keyboards/lazydesigners/the50/info.json index 536c5da1d2..ebf94646be 100644 --- a/keyboards/lazydesigners/the50/info.json +++ b/keyboards/lazydesigners/the50/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "THE50", + "manufacturer": "LazyDesigners", "url": "http://lazydesigners.cn", "maintainer": "qmk", + "usb": { + "vid": "0x4C44", + "pid": "0x0050", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lazydesigners/the60/rev1/config.h b/keyboards/lazydesigners/the60/rev1/config.h index dd0b8b553d..4c6f606a0e 100755 --- a/keyboards/lazydesigners/the60/rev1/config.h +++ b/keyboards/lazydesigners/the60/rev1/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C44 // "LD" -#define PRODUCT_ID 0x0060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LazyDesigners -#define PRODUCT THE60 rev1 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/lazydesigners/the60/rev1/info.json b/keyboards/lazydesigners/the60/rev1/info.json index 8ab5056bf6..b177b0c23d 100755 --- a/keyboards/lazydesigners/the60/rev1/info.json +++ b/keyboards/lazydesigners/the60/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "THE60 rev1", + "manufacturer": "LazyDesigners", "url": "http://lazydesigners.cn", "maintainer": "qmk", + "usb": { + "vid": "0x4C44", + "pid": "0x0060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_spc_split_bspc": { "layout": [ diff --git a/keyboards/lazydesigners/the60/rev2/config.h b/keyboards/lazydesigners/the60/rev2/config.h index c54dbfd44f..aa12abe6e5 100755 --- a/keyboards/lazydesigners/the60/rev2/config.h +++ b/keyboards/lazydesigners/the60/rev2/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4c44 // "LD" -#define PRODUCT_ID 0x0062 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LAZYDESIGNERS -#define PRODUCT THE60 rev2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/lazydesigners/the60/rev2/info.json b/keyboards/lazydesigners/the60/rev2/info.json index 05540cd308..e2e9ff2185 100755 --- a/keyboards/lazydesigners/the60/rev2/info.json +++ b/keyboards/lazydesigners/the60/rev2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "THE60rev2", + "keyboard_name": "THE60 rev2", + "manufacturer": "LAZYDESIGNERS", "url": "http://lazydesigners.cn", "maintainer": "LAZYDESIGNERS", + "usb": { + "vid": "0x4C44", + "pid": "0x0062", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/leafcutterlabs/bigknob/config.h b/keyboards/leafcutterlabs/bigknob/config.h index 1f1ac4e98d..fb8a5d581f 100644 --- a/keyboards/leafcutterlabs/bigknob/config.h +++ b/keyboards/leafcutterlabs/bigknob/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCEEB -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER leafcutterlabs -#define PRODUCT bigKNOB - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 5 diff --git a/keyboards/leafcutterlabs/bigknob/info.json b/keyboards/leafcutterlabs/bigknob/info.json index e080042281..39ace77b12 100644 --- a/keyboards/leafcutterlabs/bigknob/info.json +++ b/keyboards/leafcutterlabs/bigknob/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "bigknob", + "keyboard_name": "bigKNOB", + "manufacturer": "leafcutterlabs", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCEEB", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_1x5": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}] diff --git a/keyboards/leeku/finger65/config.h b/keyboards/leeku/finger65/config.h index 82457635b3..97d3835b4b 100644 --- a/keyboards/leeku/finger65/config.h +++ b/keyboards/leeku/finger65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6050 -#define DEVICE_VER 0x0100 -#define MANUFACTURER LeeKu -#define PRODUCT Finger65 - #define RGBLED_NUM 12 /* key matrix size */ diff --git a/keyboards/leeku/finger65/info.json b/keyboards/leeku/finger65/info.json index 5ecfb5fbad..b50c676e5b 100644 --- a/keyboards/leeku/finger65/info.json +++ b/keyboards/leeku/finger65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Leeku Finger65", + "keyboard_name": "Finger65", + "manufacturer": "LeeKu", "url": "", "maintainer": "sidcarter", + "usb": { + "vid": "0xFEED", + "pid": "0x6050", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/leeku/finger65/keymaps/madhatter/keymap.c b/keyboards/leeku/finger65/keymaps/madhatter/keymap.c index f73b0371a1..a69fe69153 100644 --- a/keyboards/leeku/finger65/keymaps/madhatter/keymap.c +++ b/keyboards/leeku/finger65/keymaps/madhatter/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // layer_state_t layer_state_set_user(layer_state_t state) { -// switch(get_highest_layer(state)) { +// switch(biton32(state)) { // case _FNMS: // led_off(); // rgb_on(); diff --git a/keyboards/lefty/config.h b/keyboards/lefty/config.h index 85620ca15b..894f1b8087 100644 --- a/keyboards/lefty/config.h +++ b/keyboards/lefty/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5363 // Sc for Smollchungus -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER SmollChungus -#define PRODUCT Lefty - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 8 diff --git a/keyboards/lefty/info.json b/keyboards/lefty/info.json index bd5d2f7c4e..210c706459 100644 --- a/keyboards/lefty/info.json +++ b/keyboards/lefty/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "lefty", + "keyboard_name": "Lefty", + "manufacturer": "SmollChungus", "url": "https://github.com/smollchungus", "maintainer": "smollchungus", + "usb": { + "vid": "0x5363", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/lets_split/keymaps/bbaserdem/README.md b/keyboards/lets_split/keymaps/bbaserdem/README.md deleted file mode 100644 index 4b37d73555..0000000000 --- a/keyboards/lets_split/keymaps/bbaserdem/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Lets Split Layout - -Check out [user readme](../../../../users/bbaserdem/README.md) for more info. - -# Usage - -**These commands depend on there being no other arduino connected!** -Also udev rules can be set instead of using sudo. -Please unplug all other usb devices. - -To make the hex files; -``` -make lets_split/rev2:bbaserdem -make lets_split/rev2:bbaserdem_right -``` - -For the left half, after plugging in and resetting; (from repo main directory) -``` -sudo avrdude -p atmega32u4 -P "$(ls /dev/ttyACM*)" -c avr109 -D -U flash:w:.build/lets_split_rev2_bbaserdem.hex -sudo avrdude -p atmega32u4 -P "$(ls /dev/ttyACM*)" -c avr109 -U eeprom:w:keyboards/lets_split/eeprom-lefthand.eep -``` - -For the right half; -``` -sudo avrdude -p atmgea34u4 -P "$(ls /dev/ttyACM*)" -c avr109 -D -U flash:w:.build/lets_split_rev2_bbaserdem_right.hex -sudo avrdude -p atmega32u4 -P "$(ls /dev/ttyACM*)" -c avr109 -U eeprom:w:keyboards/lets_split/eeprom-righhand.eep -``` diff --git a/keyboards/lets_split/keymaps/bbaserdem/config.h b/keyboards/lets_split/keymaps/bbaserdem/config.h deleted file mode 100755 index 6a90e1c356..0000000000 --- a/keyboards/lets_split/keymaps/bbaserdem/config.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CONFIG_KEYMAP_H -#define CONFIG_KEYMAP_H - -#include "../../config.h" - -#define USE_SERIAL -#define EE_HANDS - -// LED strip stuff -#ifdef RGBLIGHT_ENABLE - -// Who thought it was a good idea to predefine these in the rev2/config.h ??? -#ifdef RGBLED_NUM -#undef RGBLED_NUM -#endif -#define RGBLED_NUM 12 - -#define RGBLIGHT_HUE_STEP 6 -#define RGBLIGHT_SAT_STEP 12 -#define RGBLIGHT_VAL_STEP 20 -#define RGBLIGHT_ANIMATIONS -#define RGBLIGHT_EFFECT_SNAKE_LENGTH 6 -#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 2000 -#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 -#endif - -#endif diff --git a/keyboards/lets_split/keymaps/bbaserdem/keymap.c b/keyboards/lets_split/keymaps/bbaserdem/keymap.c deleted file mode 100755 index 296b3ccd23..0000000000 --- a/keyboards/lets_split/keymaps/bbaserdem/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Let's Split - Dvorak turkish - * Keymap by @bbaserdem - * Dvorak layout with multiple features - * Most of the code is in the "user" directory. - * Check qmk_firmware/users/bbaserdem for the main part of the code - */ - -#include "lets_split.h" -#include "bbaserdem.h" - - -void matrix_init_keymap (void) { -} - -layer_state_t layer_state_set_keymap(layer_state_t state) { - return state; -} - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // Main Dvorak layer - [_DV] = LAYOUT_letssplit_wrapper(DVORAK), - // Turkish and special character overlay - [_AL] = LAYOUT_letssplit_wrapper(ALTCHAR), - // Gaming layer - [_GA] = LAYOUT_letssplit_wrapper(GAME), - // Numbers layer - [_NU] = LAYOUT_letssplit_wrapper(NUMBERS), - // Settings layer - [_SE] = LAYOUT_letssplit_wrapper(SETTINGS), - // Mouse emulation layer - [_MO] = LAYOUT_letssplit_wrapper(MOUSE), - // Music layer - [_MU] = LAYOUT_letssplit_wrapper(MUSIC), -}; diff --git a/keyboards/lets_split/keymaps/bbaserdem/rules.mk b/keyboards/lets_split/keymaps/bbaserdem/rules.mk deleted file mode 100755 index 7a37e989d8..0000000000 --- a/keyboards/lets_split/keymaps/bbaserdem/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Build options - -BACKLIGHT_ENABLE = no # Switch LEDs -MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses -RGBLIGHT_ENABLE = yes # LED strips -TAP_DANCE_ENABLE = no # Use multi-tap features -AUDIO_ENABLE = no # Audio stuff - diff --git a/keyboards/lets_split/keymaps/bbaserdem_right/README.md b/keyboards/lets_split/keymaps/bbaserdem_right/README.md deleted file mode 100644 index 8608f23f79..0000000000 --- a/keyboards/lets_split/keymaps/bbaserdem_right/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Lets Split - Right Half - -Keymap for my right half, to be used as a numpad. -Check [main readme](../bbaserdem/README.md) for flashing info. - diff --git a/keyboards/lets_split/keymaps/bbaserdem_right/config.h b/keyboards/lets_split/keymaps/bbaserdem_right/config.h deleted file mode 100755 index 47545a059b..0000000000 --- a/keyboards/lets_split/keymaps/bbaserdem_right/config.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef CONFIG_KEYMAP_H -#define CONFIG_KEYMAP_H - -#include "../../config.h" - -#define USE_SERIAL -#define EE_HANDS - -#endif diff --git a/keyboards/lets_split/keymaps/bbaserdem_right/keymap.c b/keyboards/lets_split/keymaps/bbaserdem_right/keymap.c deleted file mode 100755 index 2dcae0dca5..0000000000 --- a/keyboards/lets_split/keymaps/bbaserdem_right/keymap.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Let's Split - Dvorak turkish - * Keymap by @bbaserdem - * Dvorak layout with multiple features - * Most of the code is in the "user" directory. - * Check qmk_firmware/users/bbaserdem for the main part of the code - */ - -#include "lets_split.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Navigation All Supered) Numpad - * ,-----------------------. ,-----------------------. - * | F4| ` | Q |Alt| L | > | | ) | - | + | = |Ent|Bkp| - * |---+---+---+---+---+---| |---+---+---+---+---+---| - * | F3| M |Ent|Ctl| K | ^ | | ( | * | 9 | 6 | 3 | . | - * |---+---+---+---+---+---| |---+---+---+---+---+---| - * | F2| T |Spc|Shf| J | v | | % | / | 8 | 5 | 2 | , | - * |---+---+---+---+---+---| |---+---+---+---+---+---| - * | F1| F | P |Tab| H | < | |Nlc|Tab| 7 | 4 | 1 | 0 | - * `-----------------------' `-----------------------' - */ - // Main Dvorak layer - [0] = LAYOUT_ortho_4x12( - LCTL(LALT(KC_DEL)), LGUI(KC_GRV), LGUI(KC_Q), LGUI(KC_LALT), LGUI(KC_L), LGUI(KC_RGHT), KC_RPRN, KC_PMNS, KC_PPLS, KC_PEQL, KC_PENT, KC_BSPC, \ - LGUI(KC_F3), LGUI(KC_M), LGUI(KC_ENT), LGUI(KC_LCTL), LGUI(KC_K), LGUI(KC_UP), KC_LPRN, KC_PAST, KC_P9, KC_P6, KC_P3, KC_PDOT, \ - LGUI(KC_F2), LGUI(KC_T), LGUI(KC_SPC), LGUI(KC_LSFT), LGUI(KC_J), LGUI(KC_DOWN), KC_PERC, KC_PSLS, KC_P8, KC_P5, KC_P2, KC_PCMM, \ - LGUI(KC_F1), LGUI(KC_F), LGUI(KC_P), LGUI(KC_TAB), LGUI(KC_H), LGUI(KC_LEFT), KC_NLCK, KC_TAB, KC_P7, KC_P4, KC_P1, KC_P0 \ - ) -}; diff --git a/keyboards/lets_split/keymaps/bbaserdem_right/rules.mk b/keyboards/lets_split/keymaps/bbaserdem_right/rules.mk deleted file mode 100755 index 6886a320a5..0000000000 --- a/keyboards/lets_split/keymaps/bbaserdem_right/rules.mk +++ /dev/null @@ -1,19 +0,0 @@ -# Build options - -USER_NAME := bbaserdem-without-userspace - -BACKLIGHT_ENABLE = no # Switch LEDs -MOUSEKEY_ENABLE = no # Emulates mouse key using keypresses -RGBLIGHT_ENABLE = no # LED strips -TAP_DANCE_ENABLE = no # Use multi-tap features -AUDIO_ENABLE = no # Audio stuff -BLUETOOTH_ENABLE = no # No bluetooth -COMMAND_ENABLE = no # Some bootmagic thing -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -CONSOLE_ENABLE = no # Allows console output with a command -SLEEP_LED_ENABLE = no # Breathes LED's when computer is asleep. Untested. -NKRO_ENABLE = no # Default is 6KRO which is plenty -MIDI_ENABLE = no # Untested feature -KEY_LOCK_ENABLE = no # Allows locking any key. Not used -UNICODE_ENABLE = no # Used for unicode character emulation -EXTRAKEY_ENABLE = no # OS signals like volume control diff --git a/keyboards/lets_split/keymaps/cpeters1982/keymap.c b/keyboards/lets_split/keymaps/cpeters1982/keymap.c index 27cd9db8b4..c4c26d56bc 100644 --- a/keyboards/lets_split/keymaps/cpeters1982/keymap.c +++ b/keyboards/lets_split/keymaps/cpeters1982/keymap.c @@ -183,7 +183,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { #ifdef RGBLIGHT_ENABLE uint8_t default_layer = eeconfig_read_default_layer(); if (rgb_layer_change) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _RAISE: rgblight_set_orange; rgblight_mode(5); diff --git a/keyboards/lets_split/keymaps/geripgeri/keymap.c b/keyboards/lets_split/keymaps/geripgeri/keymap.c index eb22a1509e..62e3570468 100644 --- a/keyboards/lets_split/keymaps/geripgeri/keymap.c +++ b/keyboards/lets_split/keymaps/geripgeri/keymap.c @@ -255,7 +255,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); writePin(B0, !(state & (1UL << (_NUMPAD)))); - switch(get_highest_layer(state)) { + switch(biton32(state)) { case _RAISE: rgblight_setrgb_at(255, 255, 255, RGBLED_NUM / 2); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); diff --git a/keyboards/lets_split/keymaps/pitty/keymap.c b/keyboards/lets_split/keymaps/pitty/keymap.c index 8bc32a1eb7..d723e0c026 100644 --- a/keyboards/lets_split/keymaps/pitty/keymap.c +++ b/keyboards/lets_split/keymaps/pitty/keymap.c @@ -128,7 +128,7 @@ void persistent_default_layer_set(uint16_t default_layer) { void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _NAV: if (RGB_INIT) {} else { diff --git a/keyboards/lfkeyboards/lfk65_hs/config.h b/keyboards/lfkeyboards/lfk65_hs/config.h index 18d6bbebe7..02d9aa21cc 100644 --- a/keyboards/lfkeyboards/lfk65_hs/config.h +++ b/keyboards/lfkeyboards/lfk65_hs/config.h @@ -2,12 +2,6 @@ #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6064 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LFKeyboards -#define PRODUCT LFK65_HS - #define DIODE_DIRECTION COL2ROW #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/lfkeyboards/lfk65_hs/info.json b/keyboards/lfkeyboards/lfk65_hs/info.json index 6bbfd6e2d9..550aad3df9 100644 --- a/keyboards/lfkeyboards/lfk65_hs/info.json +++ b/keyboards/lfkeyboards/lfk65_hs/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "LFK65-HS", + "manufacturer": "LFKeyboards", "url": "https://github.com/lfkeyboards", "maintainer": "LFKeyboards", + "usb": { + "vid": "0xFEED", + "pid": "0x6064", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": {"layout":[{"label": "~","x": 0,"y": 0},{"label": "!","x": 1,"y": 0},{"label": "@","x": 2,"y": 0},{"label": "#","x": 3,"y": 0},{"label": "$","x": 4,"y": 0},{"label": "%","x": 5,"y": 0},{"label": "^","x": 6,"y": 0},{"label": "&","x": 7,"y": 0},{"label": "*","x": 8,"y": 0},{"label": "(","x": 9,"y": 0},{"label": ")","x": 10,"y": 0},{"label": "_","x": 11,"y": 0},{"label": "+","x": 12,"y": 0},{"label": "","x": 13,"y": 0,"w": 1},{"label": "","x": 14,"y": 0,"w": 1},{"label": "Home","x": 15,"y": 0},{"label": "Tab","x": 0,"y": 1,"w": 1.5},{"label": "Q","x": 1.5,"y": 1},{"label": "W","x": 2.5,"y": 1},{"label": "E","x": 3.5,"y": 1},{"label": "R","x": 4.5,"y": 1},{"label": "T","x": 5.5,"y": 1},{"label": "Y","x": 6.5,"y": 1},{"label": "U","x": 7.5,"y": 1},{"label": "I","x": 8.5,"y": 1},{"label": "O","x": 9.5,"y": 1},{"label": "P","x": 10.5,"y": 1},{"label": "{","x": 11.5,"y": 1},{"label": "}","x": 12.5,"y": 1},{"label": "|","x": 13.5,"y": 1,"w": 1.5},{"label": "Page Up","x": 15,"y": 1},{"label": "Caps Lock","x": 0,"y": 2,"w": 1.75},{"label": "A","x": 1.75,"y": 2},{"label": "S","x": 2.75,"y": 2},{"label": "D","x": 3.75,"y": 2},{"label": "F","x": 4.75,"y": 2},{"label": "G","x": 5.75,"y": 2},{"label": "H","x": 6.75,"y": 2},{"label": "J","x": 7.75,"y": 2},{"label": "K","x": 8.75,"y": 2},{"label": "L","x": 9.75,"y": 2},{"label": ":","x": 10.75,"y": 2},{"label": "\"","x": 11.75,"y": 2},{"label": "","x": 12.75,"y": 2},{"label": "Enter","x": 13.75,"y": 2,"w": 1.25},{"label": "Page Down","x": 15,"y": 2},{"label": "Shift","x": 0,"y": 3,"w": 1.25},{"label": "","x": 1.25,"y": 3},{"label": "Z","x": 2.25,"y": 3},{"label": "X","x": 3.25,"y": 3},{"label": "C","x": 4.25,"y": 3},{"label": "V","x": 5.25,"y": 3},{"label": "B","x": 6.25,"y": 3},{"label": "N","x": 7.25,"y": 3},{"label": "M","x": 8.25,"y": 3},{"label": "<","x": 9.25,"y": 3},{"label": ">","x": 10.25,"y": 3},{"label": "?","x": 11.25,"y": 3},{"label": "Shift","x": 12.25,"y": 3,"w": 1.75},{"label": "↑","x": 14,"y": 3},{"label": "End","x": 15,"y": 3},{"label": "Ctrl","x": 0,"y": 4,"w": 1.25},{"label": "Win","x": 1.25,"y": 4,"w": 1.25},{"label": "Alt","x": 2.5,"y": 4,"w": 1.25},{"x": 3.75,"y": 4,"w": 6.25},{"label": "Alt","x": 10,"y": 4},{"label": "Fn","x": 11,"y": 4},{"label": "Ctrl","x": 12,"y": 4},{"label": "←","x": 13,"y": 4},{"label": "↓","x": 14,"y": 4},{"label": "→","x": 15,"y": 4}]}, "LAYOUT_ansi": {"layout":[{"label": "~","x": 0,"y": 0},{"label": "!","x": 1,"y": 0},{"label": "@","x": 2,"y": 0},{"label": "#","x": 3,"y": 0},{"label": "$","x": 4,"y": 0},{"label": "%","x": 5,"y": 0},{"label": "^","x": 6,"y": 0},{"label": "&","x": 7,"y": 0},{"label": "*","x": 8,"y": 0},{"label": "(","x": 9,"y": 0},{"label": ")","x": 10,"y": 0},{"label": "_","x": 11,"y": 0},{"label": "+","x": 12,"y": 0},{"label": "Backspace","x": 13,"y": 0,"w": 2},{"label": "Home","x": 15,"y": 0},{"label": "Tab","x": 0,"y": 1,"w": 1.5},{"label": "Q","x": 1.5,"y": 1},{"label": "W","x": 2.5,"y": 1},{"label": "E","x": 3.5,"y": 1},{"label": "R","x": 4.5,"y": 1},{"label": "T","x": 5.5,"y": 1},{"label": "Y","x": 6.5,"y": 1},{"label": "U","x": 7.5,"y": 1},{"label": "I","x": 8.5,"y": 1},{"label": "O","x": 9.5,"y": 1},{"label": "P","x": 10.5,"y": 1},{"label": "{","x": 11.5,"y": 1},{"label": "}","x": 12.5,"y": 1},{"label": "|","x": 13.5,"y": 1,"w": 1.5},{"label": "Page Up","x": 15,"y": 1},{"label": "Caps Lock","x": 0,"y": 2,"w": 1.75},{"label": "A","x": 1.75,"y": 2},{"label": "S","x": 2.75,"y": 2},{"label": "D","x": 3.75,"y": 2},{"label": "F","x": 4.75,"y": 2},{"label": "G","x": 5.75,"y": 2},{"label": "H","x": 6.75,"y": 2},{"label": "J","x": 7.75,"y": 2},{"label": "K","x": 8.75,"y": 2},{"label": "L","x": 9.75,"y": 2},{"label": ":","x": 10.75,"y": 2},{"label": "\"","x": 11.75,"y": 2},{"label": "Enter","x": 12.75,"y": 2,"w": 2.25},{"label": "Page Down","x": 15,"y": 2},{"label": "Shift","x": 0,"y": 3,"w": 2.25},{"label": "Z","x": 2.25,"y": 3},{"label": "X","x": 3.25,"y": 3},{"label": "C","x": 4.25,"y": 3},{"label": "V","x": 5.25,"y": 3},{"label": "B","x": 6.25,"y": 3},{"label": "N","x": 7.25,"y": 3},{"label": "M","x": 8.25,"y": 3},{"label": "<","x": 9.25,"y": 3},{"label": ">","x": 10.25,"y": 3},{"label": "?","x": 11.25,"y": 3},{"label": "Shift","x": 12.25,"y": 3,"w": 1.75},{"label": "↑","x": 14,"y": 3},{"label": "End","x": 15,"y": 3},{"label": "Ctrl","x": 0,"y": 4,"w": 1.25},{"label": "Win","x": 1.25,"y": 4,"w": 1.25},{"label": "Alt","x": 2.5,"y": 4,"w": 1.25},{"x": 3.75,"y": 4,"w": 6.25},{"label": "Alt","x": 10,"y": 4},{"label": "Fn","x": 11,"y": 4},{"label": "Ctrl","x": 12,"y": 4},{"label": "←","x": 13,"y": 4},{"label": "↓","x": 14,"y": 4},{"label": "→","x": 15,"y": 4}]} diff --git a/keyboards/lfkeyboards/lfk78/config.h b/keyboards/lfkeyboards/lfk78/config.h index 1fab81a645..5c1a4da46b 100644 --- a/keyboards/lfkeyboards/lfk78/config.h +++ b/keyboards/lfkeyboards/lfk78/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C46 // LF -#define PRODUCT_ID 0x3738 // 78 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LFKeyboards -#define PRODUCT LFK78 - /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/lfkeyboards/lfk78/revb/info.json b/keyboards/lfkeyboards/lfk78/revb/info.json index a2d28389e7..bd9edaea01 100644 --- a/keyboards/lfkeyboards/lfk78/revb/info.json +++ b/keyboards/lfkeyboards/lfk78/revb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "LFK78/68 Rev B", + "keyboard_name": "LFK78 Rev B", + "manufacturer": "LFKeyboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4C46", + "pid": "0x3738", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lfkeyboards/lfk78/revc/info.json b/keyboards/lfkeyboards/lfk78/revc/info.json index 9fa07967c0..1af3ffaf86 100644 --- a/keyboards/lfkeyboards/lfk78/revc/info.json +++ b/keyboards/lfkeyboards/lfk78/revc/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "LFK78/68 Rev C-H", + "keyboard_name": "LFK7 Rev C-H", + "manufacturer": "LFKeyboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4C46", + "pid": "0x3738", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lfkeyboards/lfk78/revj/info.json b/keyboards/lfkeyboards/lfk78/revj/info.json index 497b147ff9..d905b4977e 100644 --- a/keyboards/lfkeyboards/lfk78/revj/info.json +++ b/keyboards/lfkeyboards/lfk78/revj/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "LFK78/68 Rev J", + "keyboard_name": "LFK78 Rev J", + "manufacturer": "LFKeyboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4C46", + "pid": "0x3738", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lfkeyboards/lfk87/config.h b/keyboards/lfkeyboards/lfk87/config.h index af0a4b173b..7d19335eec 100644 --- a/keyboards/lfkeyboards/lfk87/config.h +++ b/keyboards/lfkeyboards/lfk87/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LFKeyboards -#define PRODUCT LFK87 - #define DIODE_DIRECTION COL2ROW #ifdef LFK_TKL_REV_A diff --git a/keyboards/lfkeyboards/lfk87/info.json b/keyboards/lfkeyboards/lfk87/info.json index a64782016e..81eeed54de 100644 --- a/keyboards/lfkeyboards/lfk87/info.json +++ b/keyboards/lfkeyboards/lfk87/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "LFK87/SMK87", + "keyboard_name": "LFK87", + "manufacturer": "LFKeyboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/lfkeyboards/lfkpad/config.h b/keyboards/lfkeyboards/lfkpad/config.h index 0ddb4b95b6..7f91008573 100644 --- a/keyboards/lfkeyboards/lfkpad/config.h +++ b/keyboards/lfkeyboards/lfkpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C46 // LF -#define PRODUCT_ID 0x3231 // 21 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LFKeyboards -#define PRODUCT LFKPad 21 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/lfkeyboards/lfkpad/info.json b/keyboards/lfkeyboards/lfkpad/info.json index 53ac3e0b8b..0ce6089c05 100644 --- a/keyboards/lfkeyboards/lfkpad/info.json +++ b/keyboards/lfkeyboards/lfkpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "LFKPad", + "manufacturer": "LFKeyboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4C46", + "pid": "0x3231", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_6x4": { "layout": [ diff --git a/keyboards/lfkeyboards/mini1800/config.h b/keyboards/lfkeyboards/mini1800/config.h index e7b0b5112a..7959c15de0 100644 --- a/keyboards/lfkeyboards/mini1800/config.h +++ b/keyboards/lfkeyboards/mini1800/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER LFKeyboards -#define PRODUCT Mini1800 - #define DIODE_DIRECTION COL2ROW /* Matrix config */ diff --git a/keyboards/lfkeyboards/mini1800/info.json b/keyboards/lfkeyboards/mini1800/info.json index 0625ee43d4..703184dc99 100644 --- a/keyboards/lfkeyboards/mini1800/info.json +++ b/keyboards/lfkeyboards/mini1800/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mini1800", + "manufacturer": "LFKeyboards", "url": "", "maintainer": "lfkeyboards", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lily58/glow_enc/config.h b/keyboards/lily58/glow_enc/config.h index 5e51acea25..67005f06b0 100644 --- a/keyboards/lily58/glow_enc/config.h +++ b/keyboards/lily58/glow_enc/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFC51 -#define PRODUCT_ID 0x0059 -#define DEVICE_VER 0x0100 -#define MANUFACTURER ORVISEVANS+ -#define PRODUCT Lily58GlowEnc - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/lily58/glow_enc/info.json b/keyboards/lily58/glow_enc/info.json index 503cdaae12..8e8b72434b 100644 --- a/keyboards/lily58/glow_enc/info.json +++ b/keyboards/lily58/glow_enc/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Lily58", + "keyboard_name": "Lily58GlowEnc", + "manufacturer": "ORVISEVANS+", "url": "https://keycapsss.com", "maintainer": "BenRoe", + "usb": { + "vid": "0xFC51", + "pid": "0x0059", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h b/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h index 1e1a2802ff..b4249396da 100644 --- a/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/lily58/keymaps/muppetjones/README.md b/keyboards/lily58/keymaps/muppetjones/README.md new file mode 100644 index 0000000000..38cea9cfc2 --- /dev/null +++ b/keyboards/lily58/keymaps/muppetjones/README.md @@ -0,0 +1,13 @@ +# Lily58 + +```shell +qmk compile -kb lily58/rev1 -km muppetjones +``` + +``` +qmk flash -kb lily58/rev1 -km muppetjones -bl avrdude-split-left +``` + +``` +qmk flash -kb lily58/rev1 -km muppetjones -bl avrdude-split-right +``` diff --git a/keyboards/lily58/keymaps/muppetjones/config.h b/keyboards/lily58/keymaps/muppetjones/config.h new file mode 100644 index 0000000000..bee5ee45da --- /dev/null +++ b/keyboards/lily58/keymaps/muppetjones/config.h @@ -0,0 +1,44 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* Select hand configuration */ + +// 1 minute +#ifdef OLED_ENABLE +# define OLED_TIMEOUT 60000 +#endif + + +// Change "hold" time (default is 200 ms) +#define TAPPING_TERM 200 + +// Prevent normal rollover on alphas from accidentally triggering mods. +#define IGNORE_MOD_TAP_INTERRUPT + +// Enable rapid switch from tap to hold, disables double tap hold auto-repeat. +#define TAPPING_FORCE_HOLD + +#undef RGBLED_NUM + +// Allows to use either side as the master. Look at the documentation for info: +// https://docs.qmk.fm/#/config_options?id=setting-handedness +#define EE_HANDS diff --git a/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.c b/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.c new file mode 100644 index 0000000000..23f6493efc --- /dev/null +++ b/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.c @@ -0,0 +1,127 @@ +/** + * BONGO CAT! + +WPM-responsive animation of bongo cat! + +Source: + https://github.com/qmk/qmk_firmware/blob/master/keyboards/kyria/keymaps/j-inc/keymap.c +*/ + +#include QMK_KEYBOARD_H + +#ifdef OLED_ENABLE + +# define IDLE_FRAMES 5 +# define IDLE_SPEED 30 // below this wpm value your animation will idle + +// #define PREP_FRAMES 1 // uncomment if >1 + +# define TAP_FRAMES 2 +# define TAP_SPEED 40 // above this wpm value typing animation to triggere + +# define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms +// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing +# define ANIM_SIZE 636 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 +uint8_t current_tap_frame = 0; + +/* Animation */ + +static const char PROGMEM ANIM_IDLE[IDLE_FRAMES][ANIM_SIZE] = { + // clang-format off + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,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,128,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,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,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,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,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,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,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,128,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,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,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,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,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,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,64,64,64,64,32,32,32,32,16,8,4,2,2,4,24,96,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,128,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,60,194,1,1,2,2,4,4,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,96,0,129,130,130,132,8,16,32,64,128,0,0,0,0,128,128,128,128,64,64,64,64,32, + 32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,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,128,112,25,6,0,0,0,0,0,0,0,24,24,24,27,3,0,64,160,34,36,20,18,18,18,11,8,8,8,8,5,5,9,9,16,16,16,16,16,17,15,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,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,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,128,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,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,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,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,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,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,8,4,2,2,2,4,56,64,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,128,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,28,226,1,1,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,64,64, + 32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,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,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,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,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 +}; + +// Prep animation +static const char PROGMEM ANIM_PREP[][ANIM_SIZE] = { + // clang-format off + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,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,128,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,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64, + 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,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,128,112,12,3,0,0,24,6,5,152,153,132,195,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,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,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,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 +}; + +// Typing animation +static const char PROGMEM ANIM_TAP[TAP_FRAMES][ANIM_SIZE] = { + // clang-format off + { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,248,248,248,248,0,0,0,0,0,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,128,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,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,1,2,4,8,16,32,67,135,7,1,0,184,188,190,159, + 95,95,79,76,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,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,128,112,12,3,0,0,24,6,5,152,153,132,67,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,61,124,252,252,252,252,252,60,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1, + 1,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,1,3,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,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,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,128,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,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64,64,64,32, + 32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,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,128,112,12,3,0,0,0,0,0,0,0,0,0,0,1,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,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,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,122,122,121,121,121,121,57,49,2,2,4,4,8,8,8,136,136,135,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 + } + // clang-format on +}; + +/* Functions */ + + +void animation_phase(uint8_t wpm) { + // NOTE: Optimized the conditional. We don't need to recheck each. + // NOTE: Move this and the animation outside of the function. + + if (IDLE_SPEED >= wpm) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(ANIM_IDLE[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } else if (TAP_SPEED > wpm) { + oled_write_raw_P(ANIM_PREP[0], ANIM_SIZE); + } else { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(ANIM_TAP[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } +} + +// Images credit j-inc(/James Incandenza) and pixelbenny. Credit to obosob for initial animation approach. +void render_bongo_cat(void) { + const uint8_t curr_wpm = get_current_wpm(); + + if (curr_wpm > 000) { + oled_on(); + anim_sleep = timer_read32(); + } else if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + return; + } + + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(curr_wpm); + } +} + +#endif diff --git a/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.h b/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.h new file mode 100644 index 0000000000..1025ccfa1b --- /dev/null +++ b/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.h @@ -0,0 +1,14 @@ +/** + * BONGO CAT! + +WPM-responsive animation of bongo cat! + +Source: + https://github.com/qmk/qmk_firmware/blob/master/keyboards/kyria/keymaps/j-inc/keymap.c +*/ + +#pragma once + +const char *wpm_state(void); +void animation_phase(uint8_t wpm); +void render_bongo_cat(void); diff --git a/keyboards/lily58/keymaps/muppetjones/keymap.c b/keyboards/lily58/keymaps/muppetjones/keymap.c new file mode 100644 index 0000000000..6e02482289 --- /dev/null +++ b/keyboards/lily58/keymaps/muppetjones/keymap.c @@ -0,0 +1,240 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "muppetjones.h" +#include "features/bongo_cat.h" +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +/* + * qmk compile -kb lily58/rev1 -km muppetjones + */ + +// GACS (Lower) +#define HR_LBRC LCTL_T(KC_LBRC) +#define HR_RBRC LSFT_T(KC_RBRC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + +/* Colemak DH + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BADJ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | F | P | B | | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | A | R | S | T | G |-------. ,-------| M | N | E | I | O | ' | + * |------+------+------+------+------+------| Raise | | Lower |------+------+------+------+------+------| + * |LShift| Z | X | C | D | V |-------| |-------| K | H | , | . | / |Enter | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | Alt | LGUI |LOWER | /Space / \Space \ |RAISE | Ctrl | RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_CLMK_DH] = LAYOUT_wrapper( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_CAPS, __BLANK____________________________________, KC_BSPC, + KC_CAPS, __COLEMAK_MOD_DH_L1________________________, __COLEMAK_MOD_DH_R1_W_QUOT_________________, KC_BSPC, + HY_ESC, __COLEMAK_MOD_DH_L2_W_GACS_________________, __COLEMAK_MOD_DH_R2_W_SCAG_________________, KC_QUOT, + TD_LAYR, __COLEMAK_MOD_DH_L3_W_SFTV_________________, KC_CAPS, KC_TAB, __COLEMAK_MOD_DH_R3________________________, KC_SFTENT, + XXXXXXX, XXXXXXX, HY_ESC, LOW_ENT, NAV_SPC, HY_BSPC, XXXXXXX, XXXXXXX +), + +/* QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | 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| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_QWERTY] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __QWERTY_L1________________________________, __QWERTY_R1________________________________, _______, + _______, __QWERTY_L2________________________________, __QWERTY_R2________________________________, _______, + _______, __QWERTY_L3________________________________, _______, _______, __QWERTY_R3________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), +[_MOUSE] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, _______, _______, __BLANK____________________________________, _______, + KC_BTN1, __BLANK____________________________________, _______, KC_BTN2 +), + +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | | Mute | Vol- | Vol+ | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ~ | | | ` | | ( | | ) | 7 | 8 | 9 | \ | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | GUI | ALT | _ | - | { |-------. ,-------| } | 4 | 5 | 6 | * | ` | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | + | = | [ |-------| |-------| ] | 1 | 2 | 3 | | |Enter | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | | |LOWER | / / \ \ | 0 | . | = | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_LOWER] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __SYMBOLS_L1_______________________________, __NUMPAD_R1________________________________, _______, + _______, __SYMBOLS_L2_______________________________, __NUMPAD_R2________________________________, KC_COMM, + _______, __SYMBOLS_L3_______________________________, _______, _______, __NUMPAD_R3________________________________, KC_DOT, + _______, _______, _______, _______, KC_SPC, KC_0, KC_DOT, _______ +), +/* RAISE + * ,-----------------------------------------. ,-----------------------------------------. + * | |MS_A_0|MS_A_1|MS_A_2| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | |MS_W_U| | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | GUI | ALT | CTL | SFT |MS_W_D|-------. ,-------| | Left | Down | Up |Right | | + * |------+------+------+------+------+------|MS_W_L | |MS_W_R |------+------+------+------+------+------| + * | | MS_L | MS_D | MS_U | MS_R | |-------| |-------| |MS_W_L|MS_W_D|MS_W_U|MS_W_R| | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | | | MS_2 | / MS_1 / \ \ |RAISE | | | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + // */ + +[_RAISE] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __SYMBOLS_L1_______________________________, __NAV_R1___________________________________, _______, + _______, __SYMBOLS_L2_______________________________, __NAV_R2___________________________________, _______, + _______, __SYMBOLS_L3_______________________________, _______, _______, __NAV_R3___________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), +[_NAV] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __VIM_L1___________________________________, __NAV_R1___________________________________, _______, + _______, __BLANK_W_GACS_____________________________, __NAV_R2___________________________________, _______, + _______, __BLANK____________________________________, _______, _______, __NAV_R3___________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* ADJUST + * ,-----------------------------------------. ,-----------------------------------------. + * | | Reset| | | | | | Reset| | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | + * | | | |/ / \ \ | | | | + * `----------------------------' '------''--------------------' + */ +[_ADJUST] = LAYOUT_wrapper( + _______, __BLANK____________________________________, _______, CLMK_DH, QWERTY, _______, _______, _______, + RESET, __ADJUST_L1________________________________, __MEDIA_R1_________________________________, _______, + _______, __ADJUST_L2________________________________, __MEDIA_R2_________________________________, _______, + _______, __ADJUST_L3________________________________, _______, _______, __MEDIA_R3_________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +) + + // clang-format on +}; + +// SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) return OLED_ROTATION_180; // flips the display 180 degrees if offhand + return rotation; +} + +// When you add source files to SRC in rules.mk, you can use functions. +const char *read_layer_state_user(void); +void set_keylog(uint16_t keycode, keyrecord_t *record); +const char *read_keylog(void); +const char *read_keylogs(void); + +char layer_state_str[24]; + +const char *read_layer_state_user(void) { + // NOTE; + switch (get_highest_layer(layer_state)) { + case _CLMK_DH: + return "Layer: Colemak"; + break; + case _QWERTY: + return "Layer: QWERTY "; + break; + case _MOUSE: + return "Layer: Mouse "; + break; + case _LOWER: + return "Layer: Lower "; + break; + case _RAISE: + return "Layer: Raise "; + break; + case _NAV: + return "Layer: Nav "; + break; + case _ADJUST: + return "Layer: Adjust "; + break; + default: + break; + } + + char *layer_state_str = "Layer: Und- "; + layer_state_str[10] = '0' + layer_state % 10; + return layer_state_str; +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + // If you want to change the display of OLED, you need to change here + oled_write_ln(read_layer_state_user(), false); + oled_write_ln(read_keylog(), false); + oled_write_ln(read_keylogs(), false); + } else { + render_bongo_cat(); + oled_set_cursor(0, 6); + oled_write_P(PSTR("WPM: "), false); + oled_write(get_u8_str(get_current_wpm(), ' '), false); + } + return false; +} +#endif // OLED_DRIVER_ENABLE + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { +#ifdef OLED_ENABLE + set_keylog(keycode, record); +#endif + // set_timelog(); + } + + // Regular user keycode case statement + switch (keycode) { + default: + return true; + } + + return true; +} diff --git a/keyboards/lily58/keymaps/muppetjones/rules.mk b/keyboards/lily58/keymaps/muppetjones/rules.mk new file mode 100644 index 0000000000..1323bea893 --- /dev/null +++ b/keyboards/lily58/keymaps/muppetjones/rules.mk @@ -0,0 +1,17 @@ +OLED_ENABLE= yes # OLED display +WPM_ENABLE = yes +TAP_DANCE_ENABLE = yes +COMBO_ENABLE = yes +EXTRAKEY_ENABLE = yes + +# If you want to change the display of OLED, you need to change here +# SRC += ./lib/rgb_state_reader.c +SRC += ./lib/layer_state_reader.c +SRC += ./lib/logo_reader.c +SRC += ./lib/keylogger.c +SRC += ./features/bongo_cat.c + +# Reduce firmware size +# https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ +# also requires in config.h +LTO_ENABLE = yes diff --git a/keyboards/lily58/lib/layer_state_reader.c b/keyboards/lily58/lib/layer_state_reader.c index 868d8e5cb4..0e9dd7039b 100644 --- a/keyboards/lily58/lib/layer_state_reader.c +++ b/keyboards/lily58/lib/layer_state_reader.c @@ -28,7 +28,7 @@ const char *read_layer_state(void) { snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust"); break; default: - snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%u", layer_state); + snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state); } return layer_state_str; diff --git a/keyboards/lily58/light/config.h b/keyboards/lily58/light/config.h index 1893dde8eb..32c9445152 100644 --- a/keyboards/lily58/light/config.h +++ b/keyboards/lily58/light/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7983 -#define PRODUCT_ID 0x4C4C // "LL" -#define DEVICE_VER 0x0100 -#define MANUFACTURER Keycapsss -#define PRODUCT Lily58L - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/lily58/light/info.json b/keyboards/lily58/light/info.json index 503cdaae12..a0f931a6d9 100644 --- a/keyboards/lily58/light/info.json +++ b/keyboards/lily58/light/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Lily58", + "keyboard_name": "Lily58L", + "manufacturer": "Keycapsss", "url": "https://keycapsss.com", "maintainer": "BenRoe", + "usb": { + "vid": "0x7983", + "pid": "0x4C4C", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lily58/rev1/config.h b/keyboards/lily58/rev1/config.h index 6bfc7ffa75..8205899f5e 100644 --- a/keyboards/lily58/rev1/config.h +++ b/keyboards/lily58/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEB2D -#define DEVICE_VER 0x0100 -#define MANUFACTURER liliums -#define PRODUCT Lily58 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/lily58/rev1/info.json b/keyboards/lily58/rev1/info.json index ed4deb0098..10370c6d16 100644 --- a/keyboards/lily58/rev1/info.json +++ b/keyboards/lily58/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Lily58", + "manufacturer": "liliums", "url": "", "maintainer": "liliums", + "usb": { + "vid": "0x04D8", + "pid": "0xEB2D", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lime/rev1/config.h b/keyboards/lime/rev1/config.h index 547b881761..3eaa4e2b60 100644 --- a/keyboards/lime/rev1/config.h +++ b/keyboards/lime/rev1/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0666 -#define PRODUCT_ID 0x2784 -#define DEVICE_VER 0x0001 -#define MANUFACTURER HellSingCoder -#define PRODUCT Lime - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 12 diff --git a/keyboards/lime/rev1/info.json b/keyboards/lime/rev1/info.json index 0dcadc7823..3357ba536f 100644 --- a/keyboards/lime/rev1/info.json +++ b/keyboards/lime/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Lime", + "manufacturer": "HellSingCoder", "url": "https://github.com/HellSingCoder/LimeKeyboard", "maintainer": "HellSingCoder", + "usb": { + "vid": "0x0666", + "pid": "0x2784", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/linworks/dolice/config.h b/keyboards/linworks/dolice/config.h index 1523c72702..fa8c901b2e 100644 --- a/keyboards/linworks/dolice/config.h +++ b/keyboards/linworks/dolice/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C58 //"LX" -#define PRODUCT_ID 0x0005 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KLC -#define PRODUCT Dolice - /* Set 1 kHz polling rate and force USB NKRO */ #define USB_POLLING_INTERVAL_MS 1 #define FORCE_NKRO diff --git a/keyboards/linworks/dolice/info.json b/keyboards/linworks/dolice/info.json index 5a72496f1c..4cc1a71a55 100644 --- a/keyboards/linworks/dolice/info.json +++ b/keyboards/linworks/dolice/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Dolice", + "manufacturer": "KLC", "maintainer": "ebastler", + "usb": { + "vid": "0x4C58", + "pid": "0x0005", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice": { "layout": [ diff --git a/keyboards/linworks/fave65h/config.h b/keyboards/linworks/fave65h/config.h index f3bc4639cd..9c45f0426b 100644 --- a/keyboards/linworks/fave65h/config.h +++ b/keyboards/linworks/fave65h/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C58 //"LX" -#define PRODUCT_ID 0x0007 // FAve 65H -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Lx3 -#define PRODUCT FAve 65H - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/linworks/fave65h/info.json b/keyboards/linworks/fave65h/info.json index fef76d7fca..9771626c67 100644 --- a/keyboards/linworks/fave65h/info.json +++ b/keyboards/linworks/fave65h/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Lx3 FAve 65H", + "keyboard_name": "FAve 65H", + "manufacturer": "Lx3", "url": "", "maintainer": "ToastyStoemp", + "usb": { + "vid": "0x4C58", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/linworks/fave84h/config.h b/keyboards/linworks/fave84h/config.h index 411977494d..fd1a6554f0 100644 --- a/keyboards/linworks/fave84h/config.h +++ b/keyboards/linworks/fave84h/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C58 // LX -#define PRODUCT_ID 0x0004 // FAve 84H -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Lx3 -#define PRODUCT FAve 84H - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/linworks/fave84h/info.json b/keyboards/linworks/fave84h/info.json index 939b99c480..04b5cabd31 100644 --- a/keyboards/linworks/fave84h/info.json +++ b/keyboards/linworks/fave84h/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Lx3 Fave 84H", + "keyboard_name": "FAve 84H", + "manufacturer": "Lx3", "url": "", "maintainer": "ToastyStoemp", + "usb": { + "vid": "0x4C58", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Win", "x":1.5, "y":5.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Fn", "x":12.5, "y":5.25}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] diff --git a/keyboards/linworks/fave87/config.h b/keyboards/linworks/fave87/config.h index ef934024f7..3e2671e7a5 100644 --- a/keyboards/linworks/fave87/config.h +++ b/keyboards/linworks/fave87/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C58 //"LX" -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Lx3 -#define PRODUCT FAVE-87 - /* Force USB NKRO */ #define FORCE_NKRO diff --git a/keyboards/linworks/fave87/info.json b/keyboards/linworks/fave87/info.json index 82a524ca5e..e330cd7a35 100644 --- a/keyboards/linworks/fave87/info.json +++ b/keyboards/linworks/fave87/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "Lx3 Fave 87", + "keyboard_name": "FAve 87", + "manufacturer": "Lx3", "maintainer": "ebastler", + "usb": { + "vid": "0x4C58", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/linworks/fave87h/config.h b/keyboards/linworks/fave87h/config.h index 272878612c..0a7a0244e7 100644 --- a/keyboards/linworks/fave87h/config.h +++ b/keyboards/linworks/fave87h/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C58 //"LX" -#define PRODUCT_ID 0x0003 // FAve 87H -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Lx3 -#define PRODUCT FAve 87H - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/linworks/fave87h/info.json b/keyboards/linworks/fave87h/info.json index ac82fa4d8a..4035dde5ee 100644 --- a/keyboards/linworks/fave87h/info.json +++ b/keyboards/linworks/fave87h/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Lx3 FAve 87H", + "keyboard_name": "FAve 87H", + "manufacturer": "Lx3", "url": "", "maintainer": "ToastyStoemp", + "usb": { + "vid": "0x4C58", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, {"label":"Fn", "x":12.5, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] diff --git a/keyboards/linworks/whale75/config.h b/keyboards/linworks/whale75/config.h index 2e0b26b397..b998effd38 100644 --- a/keyboards/linworks/whale75/config.h +++ b/keyboards/linworks/whale75/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C58 //"LX" -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Lx3 -#define PRODUCT Whale-75 - /* Force USB NKRO */ #define FORCE_NKRO diff --git a/keyboards/linworks/whale75/info.json b/keyboards/linworks/whale75/info.json index 07679ca1e5..1f6c3cdf14 100644 --- a/keyboards/linworks/whale75/info.json +++ b/keyboards/linworks/whale75/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "Lx3 Whale 75", + "keyboard_name": "Whale 75", + "manufacturer": "Lx3", "maintainer": "ebastler", + "usb": { + "vid": "0x4C58", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/littlealby/mute/config.h b/keyboards/littlealby/mute/config.h index 302b02a24a..b960708365 100644 --- a/keyboards/littlealby/mute/config.h +++ b/keyboards/littlealby/mute/config.h @@ -16,13 +16,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4142 // "AB" -#define PRODUCT_ID 0x4D55 // "MU" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Little Alby -#define PRODUCT Mute - #define USB_MAX_POWER_CONSUMPTION 100 /* key matrix size */ diff --git a/keyboards/littlealby/mute/info.json b/keyboards/littlealby/mute/info.json index 7490eba408..c3f3091c98 100644 --- a/keyboards/littlealby/mute/info.json +++ b/keyboards/littlealby/mute/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Little Alby", + "keyboard_name": "Mute", + "manufacturer": "Little Alby", "url": "", "maintainer": "albybarber", + "usb": { + "vid": "0x4142", + "pid": "0x4D55", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ {"x": 0, "y": 0 }] diff --git a/keyboards/lizard_trick/tenkey_plusplus/config.h b/keyboards/lizard_trick/tenkey_plusplus/config.h index 8883194891..ffda3cad5b 100644 --- a/keyboards/lizard_trick/tenkey_plusplus/config.h +++ b/keyboards/lizard_trick/tenkey_plusplus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Lizard Trick Electronics -#define PRODUCT Tenkey++ - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/lizard_trick/tenkey_plusplus/info.json b/keyboards/lizard_trick/tenkey_plusplus/info.json index bfda92de93..9ebec82be7 100644 --- a/keyboards/lizard_trick/tenkey_plusplus/info.json +++ b/keyboards/lizard_trick/tenkey_plusplus/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "tenkey_plusplus", + "keyboard_name": "Tenkey++", + "manufacturer": "Lizard Trick Electronics", "url": "https://github.com/jonbobcar/tenkey_plusplus", "maintainer": "Jonathon Carstens", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ll3macorn/bongopad/config.h b/keyboards/ll3macorn/bongopad/config.h index ccbd45f461..9a9214dd43 100644 --- a/keyboards/ll3macorn/bongopad/config.h +++ b/keyboards/ll3macorn/bongopad/config.h @@ -4,13 +4,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3728 -#define PRODUCT_ID 0x2949 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ll3macorn -#define PRODUCT BongoPad - /* bootmagic */ #define BOOTMAGIC_LITE_ROW 1 #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/ll3macorn/bongopad/info.json b/keyboards/ll3macorn/bongopad/info.json index 1431c3ca35..90979cd7ba 100644 --- a/keyboards/ll3macorn/bongopad/info.json +++ b/keyboards/ll3macorn/bongopad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Bongopad", + "keyboard_name": "BongoPad", + "manufacturer": "Ll3macorn", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ll3macorn/bongopad", "maintainer": "Ll3macorn", + "usb": { + "vid": "0x3728", + "pid": "0x2949", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"x":0, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}] diff --git a/keyboards/lm_keyboard/lm60n/config.h b/keyboards/lm_keyboard/lm60n/config.h index 171fa2fe5b..b11962d822 100644 --- a/keyboards/lm_keyboard/lm60n/config.h +++ b/keyboards/lm_keyboard/lm60n/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C4D // "LM" -#define PRODUCT_ID 0x4B01 // "K01" -#define DEVICE_VER 0x0001 -#define MANUFACTURER L+M Keyboard -#define PRODUCT L+M 60N - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 15 diff --git a/keyboards/lm_keyboard/lm60n/info.json b/keyboards/lm_keyboard/lm60n/info.json index 0a1fc4c04f..df410a3f65 100644 --- a/keyboards/lm_keyboard/lm60n/info.json +++ b/keyboards/lm_keyboard/lm60n/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "lm60n", + "keyboard_name": "L+M 60N", + "manufacturer": "L+M Keyboard", "url": "", "maintainer": "gkeyboard", + "usb": { + "vid": "0x4C4D", + "pid": "0x4B01", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/loki65/config.h b/keyboards/loki65/config.h index 5f017d8cbf..78fc0a8d3a 100644 --- a/keyboards/loki65/config.h +++ b/keyboards/loki65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4C36 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT Loki65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/loki65/info.json b/keyboards/loki65/info.json index 1b4fc1b917..29b7cf64ab 100644 --- a/keyboards/loki65/info.json +++ b/keyboards/loki65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Loki65", + "manufacturer": "Yiancar-Designs", "url": "https://yiancar-designs.com", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x4C36", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/longnald/corin/config.h b/keyboards/longnald/corin/config.h index 12be8ba27b..7f0ff9f034 100644 --- a/keyboards/longnald/corin/config.h +++ b/keyboards/longnald/corin/config.h @@ -20,13 +20,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5633 -#define PRODUCT_ID 0x1024 -#define DEVICE_VER 0x0004 -#define MANUFACTURER Longnald -#define PRODUCT Corin - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/longnald/corin/info.json b/keyboards/longnald/corin/info.json index 9026209012..9610810724 100644 --- a/keyboards/longnald/corin/info.json +++ b/keyboards/longnald/corin/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Corin", + "manufacturer": "Longnald", "url": "https://github.com/longnald/corin", "maintainer": "Seaton Jiang ", + "usb": { + "vid": "0x5633", + "pid": "0x1024", + "device_version": "0.0.4" + }, "layouts": { "LAYOUT_64_ansi": { "layout": [ diff --git a/keyboards/lucid/alexa/config.h b/keyboards/lucid/alexa/config.h index 19b5f4f19a..433c43b5d2 100644 --- a/keyboards/lucid/alexa/config.h +++ b/keyboards/lucid/alexa/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7667 // Lucid -#define PRODUCT_ID 0x0005 // Phantom -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Lucid -#define PRODUCT Alexa - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/lucid/alexa/info.json b/keyboards/lucid/alexa/info.json index 91c3836444..ffd9cb9c8d 100644 --- a/keyboards/lucid/alexa/info.json +++ b/keyboards/lucid/alexa/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Alexa", + "manufacturer": "Lucid", "url": "https://www.makerkeyboards.com/products/alexa", "maintainer": "mrnoisytiger", + "usb": { + "vid": "0x7667", + "pid": "0x0005", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker_split_bs": { "layout": [ diff --git a/keyboards/lucid/alexa_solder/config.h b/keyboards/lucid/alexa_solder/config.h index 63fd1f2e2d..6bbd9eb32d 100644 --- a/keyboards/lucid/alexa_solder/config.h +++ b/keyboards/lucid/alexa_solder/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7667 // Maker Keyboards -#define PRODUCT_ID 0x0006 // Alexa -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Maker Keyboards -#define PRODUCT Alexa - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/lucid/alexa_solder/info.json b/keyboards/lucid/alexa_solder/info.json index 319cb71206..9f1c64363f 100644 --- a/keyboards/lucid/alexa_solder/info.json +++ b/keyboards/lucid/alexa_solder/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Alexa Solder", + "manufacturer": "Maker Keyboards", "url": "http://www.makerkeyboards.com", "maintainer": "Maker Keyboards", + "usb": { + "vid": "0x7667", + "pid": "0x0006", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/lucid/kbd8x_hs/config.h b/keyboards/lucid/kbd8x_hs/config.h index 1e5cff8e7f..e6e587c458 100644 --- a/keyboards/lucid/kbd8x_hs/config.h +++ b/keyboards/lucid/kbd8x_hs/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7667 // Lucid -#define PRODUCT_ID 0x0003 // KBD8X Hotswap PCB's -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Lucid -#define PRODUCT KBD8X_HS - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/lucid/kbd8x_hs/info.json b/keyboards/lucid/kbd8x_hs/info.json index 1a22c78326..5adeb63b8b 100644 --- a/keyboards/lucid/kbd8x_hs/info.json +++ b/keyboards/lucid/kbd8x_hs/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "KBD8X Hotswap PCB's", + "keyboard_name": "KBD8X Hotswap", + "manufacturer": "Lucid", "url": "http://www.lucidkb.com", "maintainer": "Lucid", + "usb": { + "vid": "0x7667", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/lucid/phantom_hs/config.h b/keyboards/lucid/phantom_hs/config.h index b94b345c16..bf9f1f371e 100644 --- a/keyboards/lucid/phantom_hs/config.h +++ b/keyboards/lucid/phantom_hs/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7667 // Lucid -#define PRODUCT_ID 0x0001 // Phantom -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Lucid -#define PRODUCT Phantom - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/lucid/phantom_hs/info.json b/keyboards/lucid/phantom_hs/info.json index 2aea46bdd1..5ab8f56608 100644 --- a/keyboards/lucid/phantom_hs/info.json +++ b/keyboards/lucid/phantom_hs/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Phantom", + "manufacturer": "Lucid", "url": "http://www.lucidkb.com", "maintainer": "Lucid", + "usb": { + "vid": "0x7667", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/lucid/phantom_solder/config.h b/keyboards/lucid/phantom_solder/config.h index 2c78c4f5ff..2fdc7ef475 100644 --- a/keyboards/lucid/phantom_solder/config.h +++ b/keyboards/lucid/phantom_solder/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7667 // Lucid -#define PRODUCT_ID 0x0002 // Phantom_Solder -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Lucid -#define PRODUCT Phantom - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/lucid/phantom_solder/info.json b/keyboards/lucid/phantom_solder/info.json index beee1ac2b2..950107367f 100644 --- a/keyboards/lucid/phantom_solder/info.json +++ b/keyboards/lucid/phantom_solder/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Phantom Solder", + "manufacturer": "Lucid", "url": "http://www.lucidkb.com", "maintainer": "Lucid", + "usb": { + "vid": "0x7667", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/lucid/scarlet/config.h b/keyboards/lucid/scarlet/config.h index 67c2fe7b07..3435720623 100644 --- a/keyboards/lucid/scarlet/config.h +++ b/keyboards/lucid/scarlet/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7667 // Lucid -#define PRODUCT_ID 0x0004 // Scarlet PCB's -#define DEVICE_VER 0x0001 // Version 1 -#define MANUFACTURER Lucid -#define PRODUCT Scarlet - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/lucid/scarlet/info.json b/keyboards/lucid/scarlet/info.json index 59526a9f4c..219a64a2ae 100644 --- a/keyboards/lucid/scarlet/info.json +++ b/keyboards/lucid/scarlet/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Scarlet PCB's", + "keyboard_name": "Scarlet", + "manufacturer": "Lucid", "url": "http://www.lucidkb.com", "maintainer": "Lucid", + "usb": { + "vid": "0x7667", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_all": { "layout": [ diff --git a/keyboards/lw67/config.h b/keyboards/lw67/config.h index 3561f4a2ad..0153a72c30 100644 --- a/keyboards/lw67/config.h +++ b/keyboards/lw67/config.h @@ -18,14 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C50 -#define PRODUCT_ID 0x9998 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Laneware Peripherals -#define PRODUCT LW-67 - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/lw67/info.json b/keyboards/lw67/info.json index ad15cc2264..329ff4eb36 100644 --- a/keyboards/lw67/info.json +++ b/keyboards/lw67/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "LW67", + "keyboard_name": "LW-67", + "manufacturer": "Laneware Peripherals", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4C50", + "pid": "0x9998", + "device_version": "0.0.1" + }, "layouts":{ "LAYOUT_ansi":{ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Mute", "x":16, "y":0.5}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Delete", "x":15.5, "y":2}, {"label":"PgUp", "x":16.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3.25}, {"label":"PgDn", "x":16.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4.25}, {"label":"\u2193", "x":15.25, "y":4.25}, {"label":"\u2192", "x":16.25, "y":4.25}] diff --git a/keyboards/lyso1/lck75/config.h b/keyboards/lyso1/lck75/config.h index 18dd381ece..2a9c2c3c80 100644 --- a/keyboards/lyso1/lck75/config.h +++ b/keyboards/lyso1/lck75/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x7856 -#define PRODUCT_ID 0x6163 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Lyso1 -#define PRODUCT lck75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/lyso1/lck75/info.json b/keyboards/lyso1/lck75/info.json index 4d04175e00..07476f4ebc 100644 --- a/keyboards/lyso1/lck75/info.json +++ b/keyboards/lyso1/lck75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "LCK75", + "manufacturer": "Lyso1", "url": "https://github.com/lyso1/LCK75", "maintainer": "Lyso1", + "usb": { + "vid": "0x7856", + "pid": "0x6163", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_default": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"F13", "x":14, "y":0}, {"label":"Mute", "x":15.5, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"PgDn", "x":15.5, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"[", "x":11.5, "y":2.25}, {"label":"]", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"PgUp", "x":15.5, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":";", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Del", "x":15.5, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Up", "x":14.25, "y":4.5}, {"label":"MO(1)", "x":15.5, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, {"label":"Left", "x":13.25, "y":5.5}, {"label":"Down", "x":14.25, "y":5.5}, {"label":"Right", "x":15.25, "y":5.5}] diff --git a/keyboards/lyso1/lefishe/config.h b/keyboards/lyso1/lefishe/config.h index a5bafa5413..dff7d1503f 100644 --- a/keyboards/lyso1/lefishe/config.h +++ b/keyboards/lyso1/lefishe/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x7856 -#define PRODUCT_ID 0x6169 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Lyso1 -#define PRODUCT lefishe - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/lyso1/lefishe/info.json b/keyboards/lyso1/lefishe/info.json index e31877a95b..5a98c2ea43 100644 --- a/keyboards/lyso1/lefishe/info.json +++ b/keyboards/lyso1/lefishe/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Le_Fishe", + "manufacturer": "Lyso1", "url": "", "maintainer": "Lyso1", + "usb": { + "vid": "0x7856", + "pid": "0x6169", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"label":"~", "x":2.25, "y":0}, {"label":"!", "x":3.25, "y":0}, {"label":"@", "x":4.25, "y":0}, {"label":"#", "x":5.25, "y":0}, {"label":"$", "x":6.25, "y":0}, {"label":"%", "x":7.25, "y":0}, {"label":"^", "x":8.25, "y":0}, {"label":"&", "x":9.25, "y":0}, {"label":"*", "x":10.25, "y":0}, {"label":"(", "x":11.25, "y":0}, {"label":")", "x":12.25, "y":0}, {"label":"_", "x":13.25, "y":0}, {"label":"+", "x":14.25, "y":0}, {"label":"Backspace", "x":15.25, "y":0, "w":2}, {"label":"Insert", "x":17.25, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"label":"Tab", "x":2.25, "y":1, "w":1.5}, {"label":"Q", "x":3.75, "y":1}, {"label":"W", "x":4.75, "y":1}, {"label":"E", "x":5.75, "y":1}, {"label":"R", "x":6.75, "y":1}, {"label":"T", "x":7.75, "y":1}, {"label":"Y", "x":8.75, "y":1}, {"label":"U", "x":9.75, "y":1}, {"label":"I", "x":10.75, "y":1}, {"label":"O", "x":11.75, "y":1}, {"label":"P", "x":12.75, "y":1}, {"label":"{", "x":13.75, "y":1}, {"label":"}", "x":14.75, "y":1}, {"label":"|", "x":15.75, "y":1, "w":1.5}, {"label":"Delete", "x":17.25, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"label":"Caps", "x":2.25, "y":2, "w":1.25}, {"label":"A", "x":4, "y":2}, {"label":"S", "x":5, "y":2}, {"label":"D", "x":6, "y":2}, {"label":"F", "x":7, "y":2}, {"label":"G", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":":", "x":13, "y":2}, {"label":"\"", "x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":2.25}, {"label":"PgUp", "x":17.25, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"label":"Shift", "x":2.25, "y":3, "w":2.25}, {"label":"Z", "x":4.5, "y":3}, {"label":"X", "x":5.5, "y":3}, {"label":"C", "x":6.5, "y":3}, {"label":"V", "x":7.5, "y":3}, {"label":"B", "x":8.5, "y":3}, {"label":"N", "x":9.5, "y":3}, {"label":"M", "x":10.5, "y":3}, {"label":"<", "x":11.5, "y":3}, {"label":">", "x":12.5, "y":3}, {"label":"?", "x":13.5, "y":3}, {"label":"Shift", "x":14.5, "y":3, "w":1.75}, {"label":"\u2191", "x":16.25, "y":3}, {"label":"PgDn", "x":17.25, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, {"label":"LGUI", "x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.5}, {"x":6.25, "y":4, "w":7}, {"label":"Alt", "x":13.25, "y":4, "w":1.5}, {"label":"\u2190", "x":15.25, "y":4}, {"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}] diff --git a/keyboards/lz/erghost/config.h b/keyboards/lz/erghost/config.h index 0936f6c271..41dac1ccbd 100644 --- a/keyboards/lz/erghost/config.h +++ b/keyboards/lz/erghost/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6C7A -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechlovin Studio -#define PRODUCT erGhost - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/lz/erghost/info.json b/keyboards/lz/erghost/info.json index 1a5c9abf64..11fb15898c 100644 --- a/keyboards/lz/erghost/info.json +++ b/keyboards/lz/erghost/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Erghost", + "keyboard_name": "erGhost", + "manufacturer": "Mechlovin Studio", "url": "", "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x6C7A", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":2, "y":0}, {"label":"0,2", "x":3, "y":0}, {"label":"0,3", "x":4, "y":0}, {"label":"0,4", "x":5, "y":0}, {"label":"0,5", "x":6, "y":0}, {"label":"0,6", "x":8.75, "y":0}, {"label":"0,7", "x":9.75, "y":0}, {"label":"0,8", "x":10.75, "y":0}, {"label":"0,9", "x":11.75, "y":0}, {"label":"0,10", "x":12.75, "y":0}, {"label":"0,11", "x":13.75, "y":0}, {"label":"0,12", "x":14.75, "y":0}, {"label":"0,14", "x":17, "y":0}, {"label":"0,15", "x":18, "y":0}, {"label":"0,16", "x":19, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":8.75, "y":1.25}, {"label":"1,8", "x":9.75, "y":1.25}, {"label":"1,9", "x":10.75, "y":1.25}, {"label":"1,10", "x":11.75, "y":1.25}, {"label":"1,11", "x":12.75, "y":1.25}, {"label":"1,12", "x":13.75, "y":1.25}, {"label":"1,13", "x":14.75, "y":1.25}, {"label":"0,13", "x":15.75, "y":1.25}, {"label":"1,14", "x":17, "y":1.25}, {"label":"1,15", "x":18, "y":1.25}, {"label":"1,16", "x":19, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":8.25, "y":2.25}, {"label":"2,7", "x":9.25, "y":2.25}, {"label":"2,8", "x":10.25, "y":2.25}, {"label":"2,9", "x":11.25, "y":2.25}, {"label":"2,10", "x":12.25, "y":2.25}, {"label":"2,11", "x":13.25, "y":2.25}, {"label":"2,12", "x":14.25, "y":2.25}, {"label":"2,13", "x":15.25, "y":2.25, "w":1.5}, {"label":"2,14", "x":17, "y":2.25}, {"label":"2,15", "x":18, "y":2.25}, {"label":"2,16", "x":19, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":8.5, "y":3.25}, {"label":"3,7", "x":9.5, "y":3.25}, {"label":"3,8", "x":10.5, "y":3.25}, {"label":"3,9", "x":11.5, "y":3.25}, {"label":"3,10", "x":12.5, "y":3.25}, {"label":"3,11", "x":13.5, "y":3.25}, {"label":"3,13", "x":14.5, "y":3.25, "w":1.25}, {"label":"3,12", "x":15.75, "y":3.25}, {"label":"4,0", "x":0, "y":4.25, "w":1.25}, {"label":"4,1", "x":1.25, "y":4.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"5,7", "x":8, "y":4.25}, {"label":"4,7", "x":9, "y":4.25}, {"label":"4,8", "x":10, "y":4.25}, {"label":"4,9", "x":11, "y":4.25}, {"label":"4,10", "x":12, "y":4.25}, {"label":"4,11", "x":13, "y":4.25}, {"label":"4,12", "x":14, "y":4.25, "w":1.75}, {"label":"4,13", "x":15.75, "y":4.25}, {"label":"4,15", "x":18, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,2", "x":3.75, "y":5.25, "w":1.25}, {"label":"5,6", "x":5, "y":5.25, "w":1.25}, {"x":6.25, "y":5.25}, {"label":"5,10", "x":8, "y":5.25, "w":1.75}, {"x":9.75, "y":5.25}, {"label":"5,11", "x":10.75, "y":5.25, "w":1.25}, {"label":"5,12", "x":12, "y":5.25, "w":1.25}, {"label":"5,13", "x":13.25, "y":5.25, "w":1.25}, {"label":"5,13", "x":14.5, "y":5.25, "w":1.25}, {"label":"5,14", "x":17, "y":5.25}, {"label":"5,15", "x":18, "y":5.25}, {"label":"5,16", "x":19, "y":5.25}] diff --git a/keyboards/m10a/config.h b/keyboards/m10a/config.h index e09942f93a..a04f8e4025 100644 --- a/keyboards/m10a/config.h +++ b/keyboards/m10a/config.h @@ -20,13 +20,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5241 // "RA" -#define PRODUCT_ID 0x00AA // 10-A -#define DEVICE_VER 0x0001 -#define MANUFACTURER RAMA WORKS -#define PRODUCT RAMA WORKS M10-A - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 3 diff --git a/keyboards/m10a/info.json b/keyboards/m10a/info.json index c4d82f13ab..49a8477623 100644 --- a/keyboards/m10a/info.json +++ b/keyboards/m10a/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Rama Works X Machine Industries M10-A Macropad", + "keyboard_name": "M10-A", + "manufacturer": "RAMA WORKS", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5241", + "pid": "0x00AA", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/m10a/keymaps/gam3cat/keymap.c b/keyboards/m10a/keymaps/gam3cat/keymap.c index 86231f8406..f962246ef3 100644 --- a/keyboards/m10a/keymaps/gam3cat/keymap.c +++ b/keyboards/m10a/keymaps/gam3cat/keymap.c @@ -115,7 +115,7 @@ void matrix_scan_user(void) { } layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _L0: custom_backlight_level(0); break; diff --git a/keyboards/machine_industries/m4_a/config.h b/keyboards/machine_industries/m4_a/config.h index f27cb8ae5b..d5f02ebffd 100644 --- a/keyboards/machine_industries/m4_a/config.h +++ b/keyboards/machine_industries/m4_a/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5241 // "RA" -#define PRODUCT_ID 0x004A // 4-A -#define DEVICE_VER 0x0001 -#define MANUFACTURER RAMA WORKS -#define PRODUCT M4-A - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 2 diff --git a/keyboards/machine_industries/m4_a/info.json b/keyboards/machine_industries/m4_a/info.json index 4a2f03e741..8caf54a4a4 100644 --- a/keyboards/machine_industries/m4_a/info.json +++ b/keyboards/machine_industries/m4_a/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Rama Works M4-A", + "keyboard_name": "M4-A", + "manufacturer": "RAMA WORKS", "url": "http://rama.works", "maintainer": "naut", + "usb": { + "vid": "0x5241", + "pid": "0x004A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/machkeyboards/mach3/config.h b/keyboards/machkeyboards/mach3/config.h index d78f8dce9b..1f3533d177 100644 --- a/keyboards/machkeyboards/mach3/config.h +++ b/keyboards/machkeyboards/mach3/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D41 -#define PRODUCT_ID 0x4D33 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MachKeyboard -#define PRODUCT Mach33 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/machkeyboards/mach3/info.json b/keyboards/machkeyboards/mach3/info.json index 42f29a9873..3eab9a1a3f 100644 --- a/keyboards/machkeyboards/mach3/info.json +++ b/keyboards/machkeyboards/mach3/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mach 3", + "manufacturer": "MachKeyboard", "url": "https://machkeyboards.com", "maintainer": "etiennelepagel", + "usb": { + "vid": "0x4D41", + "pid": "0x4D33", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_3x3": { "layout": [ diff --git a/keyboards/macro1/config.h b/keyboards/macro1/config.h index 54203ef2bf..d9ba969b3c 100644 --- a/keyboards/macro1/config.h +++ b/keyboards/macro1/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4C50 // "LP" = Laneware Peripherals -#define PRODUCT_ID 0x9999 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Laneware Peripherals -#define PRODUCT MACRO-1 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/macro1/info.json b/keyboards/macro1/info.json index dbb7bafa74..ddb15fb4e3 100644 --- a/keyboards/macro1/info.json +++ b/keyboards/macro1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MACRO1", + "keyboard_name": "MACRO-1", + "manufacturer": "Laneware Peripherals", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4C50", + "pid": "0x9999", + "device_version": "0.0.1" + }, "layouts":{ "LAYOUT_numpad":{ "layout":[ diff --git a/keyboards/macro3/config.h b/keyboards/macro3/config.h index 7e7b371960..9fa5d0ec18 100644 --- a/keyboards/macro3/config.h +++ b/keyboards/macro3/config.h @@ -6,13 +6,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC88B -#define PRODUCT_ID 0x3388 -#define DEVICE_VER 0x0003 -#define MANUFACTURER DPB -#define PRODUCT Macro3 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/macro3/info.json b/keyboards/macro3/info.json index a29313c2b3..f3ebdb8acd 100644 --- a/keyboards/macro3/info.json +++ b/keyboards/macro3/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Macro3", + "manufacturer": "DPB", "url": "https://github.com/davidphilipbarr/Macropads/tree/main/macro3", "maintainer": "@davidphilipbarr", + "usb": { + "vid": "0xC88B", + "pid": "0x3388", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/macrocat/config.h b/keyboards/macrocat/config.h new file mode 100644 index 0000000000..851cfe7427 --- /dev/null +++ b/keyboards/macrocat/config.h @@ -0,0 +1,11 @@ +// Copyright 2022 catmunch (@catmunch) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* rotary encoder */ +#define ENCODERS_PAD_A { D3 } +#define ENCODERS_PAD_B { D2 } +#define ENCODER_SWITCH B7 diff --git a/keyboards/macrocat/info.json b/keyboards/macrocat/info.json new file mode 100644 index 0000000000..bf3edb084d --- /dev/null +++ b/keyboards/macrocat/info.json @@ -0,0 +1,49 @@ +{ + "manufacturer": "Catmunch", + "keyboard_name": "MacroCat Keyboard", + "maintainer": "Catmunch", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "matrix_pins": { + "cols": ["B5", "B6", "C6", "C7"], + "rows": ["D4", "D6", "D7", "B4"] + }, + "processor": "atmega32u4", + "url": "https://github.com/catmunch/macrocat", + "usb": { + "device_version": "0.0.1", + "pid": "0x8086", + "vid": "0x2022" + }, + "layouts": { + "LAYOUT_numpad_4x4": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/macrocat/keymaps/default/keymap.c b/keyboards/macrocat/keymaps/default/keymap.c new file mode 100644 index 0000000000..b173938b70 --- /dev/null +++ b/keyboards/macrocat/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2022 catmunch (@catmunch) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { + {KC_PLUS, KC_9, KC_8, KC_7 }, + {KC_MINS, KC_6, KC_5, KC_4 }, + {KC_DOT, KC_3, KC_2, KC_1 }, + {KC_ENT, KC_SPACE, KC_0, MO(1)} + }, + [1] = { + {KC_ASTR, KC_MPRV, KC_MPLY,KC_MNXT}, + {KC_SLSH, KC_LPRN, KC_UP, KC_RPRN}, + {KC_COMM, KC_LEFT, KC_DOWN,KC_RIGHT}, + {KC_TAB, KC_BSPC, KC_0, KC_TRNS} + } +}; diff --git a/keyboards/macrocat/keymaps/oled/keymap.c b/keyboards/macrocat/keymaps/oled/keymap.c new file mode 100644 index 0000000000..b9d5d9a9df --- /dev/null +++ b/keyboards/macrocat/keymaps/oled/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2022 catmunch (@catmunch) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { + {KC_PLUS, KC_9, KC_8, KC_7 }, + {KC_MINS, KC_6, KC_5, KC_4 }, + {KC_DOT, KC_3, KC_2, KC_1 }, + {KC_ENT, KC_SPACE, KC_0, MO(1)} + }, + [1] = { + {KC_ASTR, KC_MPRV, KC_MPLY,KC_MNXT}, + {KC_SLSH, KC_LPRN, KC_UP, KC_RPRN}, + {KC_COMM, KC_LEFT, KC_DOWN,KC_RIGHT}, + {KC_TAB, KC_BSPC, KC_0, KC_TRNS} + }, + [2] = { + {KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO} + }, + [3] = { + {KC_NO, KC_NO, KC_NO, KC_NO}, + {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/macrocat/keymaps/oled/rules.mk b/keyboards/macrocat/keymaps/oled/rules.mk new file mode 100644 index 0000000000..ca8d16ba67 --- /dev/null +++ b/keyboards/macrocat/keymaps/oled/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/macrocat/keymaps/via/keymap.c b/keyboards/macrocat/keymaps/via/keymap.c new file mode 100644 index 0000000000..c10d6e1357 --- /dev/null +++ b/keyboards/macrocat/keymaps/via/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2022 catmunch (@catmunch) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { + {KC_PPLS, KC_9, KC_8, KC_7 }, + {KC_PMNS, KC_6, KC_5, KC_4 }, + {KC_PDOT, KC_3, KC_2, KC_1 }, + {KC_PENT, KC_SPACE, KC_P0, MO(1)} + }, + [1] = { + {KC_PAST, KC_NO, KC_NO, KC_NO}, + {KC_PSLS, KC_LPRN, KC_UP, KC_RPRN}, + {KC_COMM, KC_LEFT, KC_DOWN,KC_RIGHT}, + {KC_TAB, KC_BSPC, KC_P0, KC_TRNS} + }, + [2] = { + {KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO} + }, + [3] = { + {KC_NO, KC_NO, KC_NO, KC_NO}, + {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/macrocat/keymaps/via/rules.mk b/keyboards/macrocat/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/macrocat/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/macrocat/macrocat.c b/keyboards/macrocat/macrocat.c new file mode 100644 index 0000000000..aec76d1912 --- /dev/null +++ b/keyboards/macrocat/macrocat.c @@ -0,0 +1,193 @@ +// Copyright 2022 catmunch (@catmunch) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +static bool encoder_pressed = 0; +static bool encoder_switched_layer = 0; +static uint32_t encoder_last_release_time = 0; +static uint32_t encoder_press_combo = 0; +static uint8_t current_layer = 0; + +#ifdef OLED_ENABLE +static const char PROGMEM bongo_release[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192, 96, 96, 48, 48, 24, 12, 6, 14, 60,112, 96,224,192,192,192,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,192,128,128,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,240,124, 12, 12, 12, 12, 24,120,108, 14, 7, 3, 1, 0,128,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 7, 6, 14, 12, 28, 24, 48, 48, 24, 24, 12,252,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 3, 3, 3, 3, 7, 6, 6, 6, 6, 12, 12, 15, 15, 24, 24, 24, 24, 48, 48, 48, 48,112, 96, 96, 96,224,193,193,193,192,131,134,134,134, 12, 12, 0, 0, 0, 0, 0, 48, 56, 16,240,252, 12, 6,134, 6, 12, 60, 48, 32, 0, 0, 48,126,239,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 3, 3, 3, 3, 3, 6, 6, 6, 6, 12, 12, 15, 15, 24, 24, 24, 24, 56, 48, 48, 48,112, 96, 96, 96,225,207,254,248,192,128,128,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, +}; +static const char PROGMEM bongo_press_r[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192, 96, 96, 48, 48, 24, 12, 6, 14, 60,112, 96,224,192,192,192,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,192,128,128,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,240,124, 12, 12, 12, 12, 24,120,108, 14, 7, 3, 1, 0,128,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 7, 6, 14, 12, 28, 24, 48, 48, 24, 24, 12,252,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 3, 3, 3, 3, 7, 6, 6, 6, 6, 12, 12, 15, 15, 24, 24, 24, 24, 48, 48, 48, 48,112, 96, 96, 96,224,193,193,193,192,131,134,134,134, 12, 12, 0, 0, 0, 0, 0, 48, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,126,239,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 3, 3, 3, 3, 3, 6, 6, 22,126,111,227,192,224, 96, 96, 96, 96,112, 48, 48, 48,112, 96, 96, 96,225,207,254,248,192,128,128,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, +}; +static const char PROGMEM bongo_press_l[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192, 96, 96, 48, 48, 24, 12, 6, 14, 60,112, 96,224,192,192,192,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,192,128,128,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 96, 48, 24, 12, 14, 7, 3, 1, 0,128,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 7, 6, 14, 12, 28, 24, 48, 48, 24, 24, 12,252,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 3, 3, 3, 3, 7, 6, 6, 6, 6, 12, 12,124,252,206,131,129,192,192,192,192,224, 96, 96, 96, 96,224,193,193,193,192,131,134,134,134, 12, 12, 0, 0, 0, 0, 0, 48, 56, 16,240,252, 12, 6,134, 6, 12, 60, 48, 32, 0, 0, 48,126,239,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, 3, 6, 6, 6, 6, 12, 12, 15, 15, 24, 24, 24, 24, 56, 48, 48, 48,112, 96, 96, 96,225,207,254,248,192,128,128,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, +}; +static const char PROGMEM bongo_press_lr[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192, 96, 96, 48, 48, 24, 12, 6, 14, 60,112, 96,224,192,192,192,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,192,128,128,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 96, 48, 24, 12, 14, 7, 3, 1, 0,128,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 7, 6, 14, 12, 28, 24, 48, 48, 24, 24, 12,252,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 3, 3, 3, 3, 7, 6, 6, 6, 6, 12, 12,124,252,206,131,129,192,192,192,192,224, 96, 96, 96, 96,224,193,193,193,192,131,134,134,134, 12, 12, 0, 0, 0, 0, 0, 48, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,126,239,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, 3, 6, 6, 22,126,111,227,192,224, 96, 96, 96, 96,112, 48, 48, 48,112, 96, 96, 96,225,207,254,248,192,128,128,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, +}; +static const char PROGMEM layer[][116] = { + [0] = { + 248, 0, 0, 0, 0, 0, 0,160,160,192, 0, 0, 96,128,128,128,224, 0,192,160,160,160,192, 0,224, 64, 32, 32, 64, + 3, 2, 2, 2, 2, 0, 1, 2, 2, 3, 2,128,130,132,132,132,131, 0, 1, 2, 2, 2, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254,129,129, 97, 97, 25, 25,254,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 25, 25, 24, 24, 24, 24, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + [1] = { + 248, 0, 0, 0, 0, 0, 0,160,160,192, 0, 0, 96,128,128,128,224, 0,192,160,160,160,192, 0,224, 64, 32, 32, 64, + 3, 2, 2, 2, 2, 0, 1, 2, 2, 3, 2, 0, 2,132,132, 4, 3, 0, 1, 2, 2, 2, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 31, 31, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + [2] = { + 248, 0, 0, 0, 0, 0, 0,160,160,192, 0, 0, 96,128,128,128,224, 0,192,160,160,160,192, 0,224, 64, 32, 32, 64, + 3, 2, 2, 2, 2, 0, 1, 2, 2, 3, 2,128,130,132,132,132,131, 0, 1, 2, 2, 2, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134, 97, 97, 97, 97, 97, 97, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + [3] = { + 248, 0, 0, 0, 0, 0, 0,160,160,192, 0, 0, 96,128,128,128,224, 0,192,160,160,160,192, 0,224, 64, 32, 32, 64, + 3, 2, 2, 2, 2, 0, 1, 2, 2,131,130,128,130,132,132,132,131,128,129, 2, 2, 2, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 97, 97,121,121,135,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 24, 24, 24, 24, 24, 24, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + } +}; +static uint8_t key_pressed_l = 0; +static uint8_t key_pressed_r = 0; +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + char buffer[512]; + if (key_pressed_l && key_pressed_r) + memcpy_P(buffer, bongo_press_lr, 512); + else if (key_pressed_l) + memcpy_P(buffer, bongo_press_l, 512); + else if (key_pressed_r) + memcpy_P(buffer, bongo_press_r, 512); + else + memcpy_P(buffer, bongo_release, 512); + int highest_layer = 0; + for(int i=3;i>=0;--i){ + if (IS_LAYER_ON(i)) { + highest_layer = i; + break; + } + } + // Apply the layer info (4*29) + for(int i=0;i<4;i++){ + for(int j=0;j<29;j++){ + buffer[i*128+85+j] = pgm_read_byte_near(layer[highest_layer]+i*29+j); + } + } + oled_write_raw(buffer, 512); + return false; +} +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + if (record->event.pressed) { + if (record->event.key.col <= 1) + key_pressed_l++; + else + key_pressed_r++; + } else { + if (record->event.key.col <= 1) + key_pressed_l--; + else + key_pressed_r--; + } + return true; +} +#endif +void encoder_single_click(void) { + tap_code(KC_MPLY); +} +void encoder_double_click(void) { + tap_code(KC_MNXT); +} +void encoder_triple_click(void) { + tap_code(KC_MPRV); +} +void matrix_init_kb() { + matrix_init_user(); + + setPinInputHigh(ENCODER_SWITCH); +} +void matrix_scan_kb() { + matrix_scan_user(); + if (readPin(ENCODER_SWITCH)) { + if (encoder_pressed) { // release switch + encoder_pressed = 0; + encoder_press_combo += 1; + encoder_last_release_time = timer_read32(); + } + if (encoder_press_combo && timer_elapsed(encoder_last_release_time) > 300) { + // combo timeout + if (encoder_switched_layer) { // switch layer + encoder_switched_layer = 0; + } else { // click + switch (encoder_press_combo) { + case 1: + encoder_single_click(); + break; + case 2: + encoder_double_click(); + break; + default: + encoder_triple_click(); + } + } + encoder_press_combo = 0; + encoder_last_release_time = 0; + } + } else { + if (!encoder_pressed) { // press switch + encoder_pressed = 1; + } + } +} +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (clockwise) { + if (encoder_pressed) { + if (current_layer < 3) { + current_layer += 1; + layer_move(current_layer); + } + encoder_switched_layer = 1; + } else { + tap_code(KC_VOLU); + } + } else { + if (encoder_pressed) { + if (current_layer > 0) { + current_layer -= 1; + layer_move(current_layer); + } + encoder_switched_layer = 1; + } else { + tap_code(KC_VOLD); + } + } + return false; +} diff --git a/keyboards/macrocat/readme.md b/keyboards/macrocat/readme.md new file mode 100644 index 0000000000..42cf36dc16 --- /dev/null +++ b/keyboards/macrocat/readme.md @@ -0,0 +1,27 @@ +# macrocat + +![macrocat](https://i.imgur.com/ItLHGBfh.jpg) + +A cat like macro keyboard/numpad. + +* Keyboard Maintainer: [catmunch](https://github.com/catmunch) +* Hardware Supported: Fully Supported +* Hardware Availability: [MacroCat Keyboard](https://github.com/catmunch/macrocat) + +Make example for this keyboard (after setting up your build environment): + + make macrocat:default + +Flashing example for this keyboard: + + make macrocat: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 +* **Brand new atmega32u4 chip**: Plug the cable in, it will automatically boot into bootloader diff --git a/keyboards/macrocat/rules.mk b/keyboards/macrocat/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/macrocat/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/majistic/config.h b/keyboards/majistic/config.h index 6e823ae3d6..6c015fde36 100644 --- a/keyboards/majistic/config.h +++ b/keyboards/majistic/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6E55 -#define DEVICE_VER 0x0001 -#define MANUFACTURER yossiyossy -#define PRODUCT maJIStic - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/majistic/info.json b/keyboards/majistic/info.json index 8d8005c7f4..19b60ad2ee 100644 --- a/keyboards/majistic/info.json +++ b/keyboards/majistic/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "maJIStic", + "manufacturer": "yossiyossy", "url": "https://github.com/yossiyossy/maJIStic", "maintainer": "yossiyossy", + "usb": { + "vid": "0xFEED", + "pid": "0x6E55", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/makrosu/config.h b/keyboards/makrosu/config.h index b587477f8a..df9edb2f1c 100644 --- a/keyboards/makrosu/config.h +++ b/keyboards/makrosu/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xAB69 -#define PRODUCT_ID 0x8585 -#define DEVICE_VER 0x0001 -#define MANUFACTURER valdydesu_ -#define PRODUCT makrosu - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 6 diff --git a/keyboards/makrosu/info.json b/keyboards/makrosu/info.json index 84aca4a14c..30b17ebad3 100644 --- a/keyboards/makrosu/info.json +++ b/keyboards/makrosu/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MakrOSU", + "manufacturer": "Valdydesu_", "url": "", "maintainer": "Valdydesu_", + "usb": { + "vid": "0xAB69", + "pid": "0x8585", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/malevolti/lyra/rev1/config.h b/keyboards/malevolti/lyra/rev1/config.h index 18563f8270..1e0628c6d3 100644 --- a/keyboards/malevolti/lyra/rev1/config.h +++ b/keyboards/malevolti/lyra/rev1/config.h @@ -15,13 +15,6 @@ */ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4443 //DC -#define PRODUCT_ID 0x4C43 //LC -#define DEVICE_VER 0x3031 //01 -#define MANUFACTURER Dom -#define PRODUCT Lyra - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/malevolti/lyra/rev1/info.json b/keyboards/malevolti/lyra/rev1/info.json index 82dd811fd5..02c1a2421b 100644 --- a/keyboards/malevolti/lyra/rev1/info.json +++ b/keyboards/malevolti/lyra/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "lyra", + "keyboard_name": "Lyra", + "manufacturer": "Dom", "url": "", "maintainer": "malevolti", + "usb": { + "vid": "0x4443", + "pid": "0x4C43", + "device_version": "30.3.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/malevolti/superlyra/rev1/config.h b/keyboards/malevolti/superlyra/rev1/config.h index 62c005ff9d..6aebaf28b1 100644 --- a/keyboards/malevolti/superlyra/rev1/config.h +++ b/keyboards/malevolti/superlyra/rev1/config.h @@ -15,13 +15,6 @@ */ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4443 //DC -#define PRODUCT_ID 0x4C53 //LS -#define DEVICE_VER 0x3031 //01 -#define MANUFACTURER Dom -#define PRODUCT SuperLyra - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/malevolti/superlyra/rev1/info.json b/keyboards/malevolti/superlyra/rev1/info.json index c7dce70de5..5baf958117 100644 --- a/keyboards/malevolti/superlyra/rev1/info.json +++ b/keyboards/malevolti/superlyra/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "superlyra", + "keyboard_name": "SuperLyra", + "manufacturer": "Dom", "url": "", "maintainer": "malevolti", + "usb": { + "vid": "0x4443", + "pid": "0x4C53", + "device_version": "30.3.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/manta60/config.h b/keyboards/manta60/config.h index 7c9a3b5ebe..c0a58cd64b 100644 --- a/keyboards/manta60/config.h +++ b/keyboards/manta60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x991D -#define DEVICE_VER 0x0001 -#define MANUFACTURER kamonanban -#define PRODUCT manta60 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/manta60/info.json b/keyboards/manta60/info.json index 2210503b82..3b3b58a9c2 100644 --- a/keyboards/manta60/info.json +++ b/keyboards/manta60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "manta60", + "manufacturer": "kamonanban", "url": "https://github.com/KamoNanban", "maintainer": "kamonanban", + "usb": { + "vid": "0xFEED", + "pid": "0x991D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/manyboard/macro/config.h b/keyboards/manyboard/macro/config.h index 63db714e63..ebab49e36a 100644 --- a/keyboards/manyboard/macro/config.h +++ b/keyboards/manyboard/macro/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D42 // MB -#define PRODUCT_ID 0x0015 // 15 keys -#define DEVICE_VER 0x0103 -#define MANUFACTURER Manyboard -#define PRODUCT MB_Macro - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 4 diff --git a/keyboards/manyboard/macro/info.json b/keyboards/manyboard/macro/info.json index 13f89494dc..47eb066f49 100644 --- a/keyboards/manyboard/macro/info.json +++ b/keyboards/manyboard/macro/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "manyboard_macro", + "keyboard_name": "MB_Macro", + "manufacturer": "Manyboard", "url": "https://github.com/WillEhman/qmk_firmware/tree/dev_create_mb_macro", "maintainer": "William Ehman", + "usb": { + "vid": "0x4D42", + "pid": "0x0015", + "device_version": "1.0.3" + }, "layouts": { "LAYOUT_ortho_4x4": { "layout": [ diff --git a/keyboards/maple_computing/6ball/config.h b/keyboards/maple_computing/6ball/config.h index cc496d675a..591fae2d3e 100644 --- a/keyboards/maple_computing/6ball/config.h +++ b/keyboards/maple_computing/6ball/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCEEB -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER That-Canadian -#define PRODUCT 6-Ball - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 6 diff --git a/keyboards/maple_computing/6ball/info.json b/keyboards/maple_computing/6ball/info.json index fc742ad517..087372c186 100644 --- a/keyboards/maple_computing/6ball/info.json +++ b/keyboards/maple_computing/6ball/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "6-Ball", + "manufacturer": "That-Canadian", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCEEB", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/maple_computing/c39/config.h b/keyboards/maple_computing/c39/config.h index 45c503846f..538dbdbf28 100755 --- a/keyboards/maple_computing/c39/config.h +++ b/keyboards/maple_computing/c39/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCA17 -#define PRODUCT_ID 0xCA39 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Maple Computing -#define PRODUCT C39 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 13 diff --git a/keyboards/maple_computing/c39/info.json b/keyboards/maple_computing/c39/info.json index 3600570dde..971c483627 100755 --- a/keyboards/maple_computing/c39/info.json +++ b/keyboards/maple_computing/c39/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "C39", + "manufacturer": "Maple Computing", "url": "", "maintainer": "Space Cat", + "usb": { + "vid": "0xCA17", + "pid": "0xCA39", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Back", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"M1", "x":11.25, "y":0}, {"label":"M2", "x":12.25, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Enter", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"M3", "x":11.25, "y":1}, {"label":"M4", "x":12.25, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Fn", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"M5", "x":11.25, "y":2}, {"label":"M6", "x":12.25, "y":2}] diff --git a/keyboards/maple_computing/jnao/config.h b/keyboards/maple_computing/jnao/config.h index 7598e049ae..d89ca3ddee 100644 --- a/keyboards/maple_computing/jnao/config.h +++ b/keyboards/maple_computing/jnao/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1337 -#define PRODUCT_ID 0x6017 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Maple Computing -#define PRODUCT JNAO Keyboard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 12 diff --git a/keyboards/maple_computing/jnao/info.json b/keyboards/maple_computing/jnao/info.json index 4d8f332391..2b2fc17742 100644 --- a/keyboards/maple_computing/jnao/info.json +++ b/keyboards/maple_computing/jnao/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "JNAO", + "manufacturer": "Maple Computing", "url": "", "maintainer": "That-Canadian", + "usb": { + "vid": "0x1337", + "pid": "0x6017", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/README.md b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/README.md deleted file mode 100644 index fcb7037937..0000000000 --- a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Lets Split Eh Layout - -Check out [user readme](../../../../users/bbaserdem/README.md) for more info. - -# Usage - -Fill in after flashing diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/config.h b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/config.h deleted file mode 100755 index 47be76567e..0000000000 --- a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef CONFIG_KEYMAP_H -#define CONFIG_KEYMAP_H -#include "../../config.h" -#endif diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c deleted file mode 100755 index 73329c3114..0000000000 --- a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "lets_split_eh.h" -#include "bbaserdem.h" - - -void matrix_init_keymap (void) { -} - -layer_state_t layer_state_set_keymap(layer_state_t state) { - return state; -} - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // Main Dvorak layer - [_DV] = LAYOUT_letssplit_wrapper(DVORAK), - // Turkish and special character overlay - [_AL] = LAYOUT_letssplit_wrapper(ALTCHAR), - // Gaming layer - [_GA] = LAYOUT_letssplit_wrapper(GAME), - // Numbers layer - [_NU] = LAYOUT_letssplit_wrapper(NUMBERS), - // Settings layer - [_SE] = LAYOUT_letssplit_wrapper(SETTINGS), - // Mouse emulation layer - [_MO] = LAYOUT_letssplit_wrapper(MOUSE), - // Music layer - [_MU] = LAYOUT_letssplit_wrapper(MUSIC), -}; diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/rules.mk b/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/rules.mk deleted file mode 100755 index 7a37e989d8..0000000000 --- a/keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Build options - -BACKLIGHT_ENABLE = no # Switch LEDs -MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses -RGBLIGHT_ENABLE = yes # LED strips -TAP_DANCE_ENABLE = no # Use multi-tap features -AUDIO_ENABLE = no # Audio stuff - diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c index 398a324a0f..ba5b75a5cf 100644 --- a/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c +++ b/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c @@ -5,8 +5,8 @@ void matrix_init_keymap (void) { } -layer_state_t layer_state_set_keymap(layer_state_t state) { - +uint32_t layer_state_set_keymap(uint32_t state) { + return state; } diff --git a/keyboards/maple_computing/the_ruler/config.h b/keyboards/maple_computing/the_ruler/config.h index ec9687cc0b..61027372b9 100644 --- a/keyboards/maple_computing/the_ruler/config.h +++ b/keyboards/maple_computing/the_ruler/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1337 -#define PRODUCT_ID 0x6007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Maple Computing -#define PRODUCT The PCB Ruler - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 6 diff --git a/keyboards/maple_computing/the_ruler/info.json b/keyboards/maple_computing/the_ruler/info.json index 5f2b9fba8f..c0aa2b371b 100644 --- a/keyboards/maple_computing/the_ruler/info.json +++ b/keyboards/maple_computing/the_ruler/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "The Ruler", + "manufacturer": "Maple Computing", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x1337", + "pid": "0x6007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "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, "w":2}] diff --git a/keyboards/marksard/leftover30/config.h b/keyboards/marksard/leftover30/config.h index 5fc1b156a2..93fd345776 100644 --- a/keyboards/marksard/leftover30/config.h +++ b/keyboards/marksard/leftover30/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xDFA8 -#define DEVICE_VER 0x0001 -#define MANUFACTURER marksard -#define PRODUCT leftover30 - /* Encoder */ #define ENCODERS_PAD_A { F4 } #define ENCODERS_PAD_B { F5 } diff --git a/keyboards/marksard/leftover30/info.json b/keyboards/marksard/leftover30/info.json index 6ff164a90a..61f2a92251 100644 --- a/keyboards/marksard/leftover30/info.json +++ b/keyboards/marksard/leftover30/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Leftover30", + "manufacturer": "marksard", "url": "https://github.com/marksard/Keyboards", "maintainer": "marksard", + "usb": { + "vid": "0xFEED", + "pid": "0xDFA8", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/marksard/treadstone48/rev1/config.h b/keyboards/marksard/treadstone48/rev1/config.h index 68d1191156..0945f92e95 100644 --- a/keyboards/marksard/treadstone48/rev1/config.h +++ b/keyboards/marksard/treadstone48/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xDFA3 -#define DEVICE_VER 0x0010 -#define MANUFACTURER marksard -#define PRODUCT treadstone48 - /* key matrix size */ #define MATRIX_ROWS 16 #define MATRIX_COLS 6 diff --git a/keyboards/marksard/treadstone48/rev1/info.json b/keyboards/marksard/treadstone48/rev1/info.json index 8b90429d00..9182a3e9cf 100644 --- a/keyboards/marksard/treadstone48/rev1/info.json +++ b/keyboards/marksard/treadstone48/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Treadstone48", + "manufacturer": "marksard", "url": "https://github.com/marksard/Keyboards", "maintainer": "marksard", + "usb": { + "vid": "0xFEED", + "pid": "0xDFA3", + "device_version": "0.1.0" + }, "layouts": { "LAYOUT_base": { "layout": [ diff --git a/keyboards/marksard/treadstone48/rev2/config.h b/keyboards/marksard/treadstone48/rev2/config.h index e0353925be..7b18e4d898 100644 --- a/keyboards/marksard/treadstone48/rev2/config.h +++ b/keyboards/marksard/treadstone48/rev2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xDFA3 -#define DEVICE_VER 0x0020 -#define MANUFACTURER marksard -#define PRODUCT treadstone48 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 6 diff --git a/keyboards/marksard/treadstone48/rev2/info.json b/keyboards/marksard/treadstone48/rev2/info.json index 73527155e8..37c513e24e 100644 --- a/keyboards/marksard/treadstone48/rev2/info.json +++ b/keyboards/marksard/treadstone48/rev2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Treadstone48", + "manufacturer": "marksard", "url": "https://github.com/marksard/Keyboards", "maintainer": "marksard", + "usb": { + "vid": "0xFEED", + "pid": "0xDFA3", + "device_version": "0.2.0" + }, "layouts": { "LAYOUT_base": { "layout": [ diff --git a/keyboards/massdrop/alt/keymaps/charlesrocket/config.h b/keyboards/massdrop/alt/keymaps/charlesrocket/config.h new file mode 100644 index 0000000000..90b4a27f33 --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/charlesrocket/config.h @@ -0,0 +1,19 @@ +/* Copyright 2022 charlesrocket + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define UNICODE_SELECTED_MODES UC_BSD, UC_MAC, UC_LNX diff --git a/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c b/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c index bd11bad72f..8d4b3523eb 100644 --- a/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c +++ b/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c @@ -17,43 +17,207 @@ #include QMK_KEYBOARD_H enum alt_keycodes { - U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active - U_T_AGCR, //USB Toggle Automatic GCR control - DBG_TOG, //DEBUG Toggle On / Off - DBG_MTRX, //DEBUG Toggle Matrix Prints - DBG_KBD, //DEBUG Toggle Keyboard Prints - DBG_MOU, //DEBUG Toggle Mouse Prints - MD_BOOT, //Restart into bootloader after hold timeout + L_BRI = SAFE_RANGE, //LED Brightness Increase //Working + L_BRD, //LED Brightness Decrease //Working + L_EDG_I, //LED Edge Brightness Increase + L_EDG_D, //LED Edge Brightness Decrease + L_EDG_M, //LED Edge lighting mode + L_PTN, //LED Pattern Select Next //Working + L_PTP, //LED Pattern Select Previous //Working + L_PSI, //LED Pattern Speed Increase //Working + L_PSD, //LED Pattern Speed Decrease //Working + L_RATIOD, + L_RATIOI, + L_T_MD, //LED Toggle Mode //Working + L_T_ONF, //LED Toggle On / Off //Broken + L_ON, //LED On //Broken + L_OFF, //LED Off //Broken + L_T_BR, //LED Toggle Breath Effect //Working + L_T_PTD, //LED Toggle Scrolling Pattern Direction //Working + U_T_AGCR, //USB Toggle Automatic GCR control //Working + DBG_TOG, //DEBUG Toggle On / Off // + DBG_MTRX, //DEBUG Toggle Matrix Prints // + DBG_KBD, //DEBUG Toggle Keyboard Prints // + DBG_MOU, //DEBUG Toggle Mouse Prints // + DBG_FAC, //DEBUG Factory light testing (All on white) + MD_BOOT //Restart into bootloader after hold timeout //Working }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_65_ansi_blocker( + [0] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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( + [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_MUTE, - _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, - _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, _______, _______, _______, KC_PGUP, KC_VOLD, - _______, LAG_SWP, LAG_NRM, _______, KC_APP, _______, KC_HOME, KC_PGDN, KC_END + L_T_BR, L_PSD, L_BRI, L_PSI, L_EDG_I, _______, _______, _______, U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, + L_T_PTD, L_PTP, L_BRD, L_PTN, L_EDG_D, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, L_T_MD, L_T_ONF, _______, L_EDG_M, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD, + MO(2), _______, _______, DBG_FAC, KC_APP, _______, KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EEP_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, UC_RMOD, UC_MOD, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, + _______, 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), _______, _______, + _______, _______, _______, _______, _______, TG(3), _______, _______, _______ ), }; - #define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)) #define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL)) #define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT)) - bool process_record_user(uint16_t keycode, keyrecord_t *record) { static uint32_t key_timer; - + static uint8_t scroll_effect = 0; switch (keycode) { - case U_T_AUTO: - if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { - TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode"); + case L_BRI ... U_T_AGCR: + if (record->event.pressed) { + md_led_changed(); + } + break; + } + switch (keycode) { + case L_BRI: + if (record->event.pressed) { + if (LED_GCR_STEP > LED_GCR_MAX - gcr_desired) gcr_desired = LED_GCR_MAX; + else gcr_desired += LED_GCR_STEP; + if (led_animation_breathing) gcr_breathe = gcr_desired; + } + return false; + case L_BRD: + if (record->event.pressed) { + if (LED_GCR_STEP > gcr_desired) gcr_desired = 0; + else gcr_desired -= LED_GCR_STEP; + if (led_animation_breathing) gcr_breathe = gcr_desired; + } + return false; + case L_EDG_M: + if (record->event.pressed) { + led_edge_mode++; + if (led_edge_mode > LED_EDGE_MODE_MAX) { + led_edge_mode = LED_EDGE_MODE_ALL; + } + } + return false; + case L_EDG_I: + if (record->event.pressed) { + led_edge_brightness += 0.1; + if (led_edge_brightness > 1) { led_edge_brightness = 1; } + } + return false; + case L_EDG_D: + if (record->event.pressed) { + led_edge_brightness -= 0.1; + if (led_edge_brightness < 0) { led_edge_brightness = 0; } + } + return false; + case L_RATIOI: + if (record->event.pressed) { + led_ratio_brightness += 0.2; + if (led_ratio_brightness > 2.0) { led_ratio_brightness = 2.0; } + } + return false; + case L_RATIOD: + if (record->event.pressed) { + led_ratio_brightness -= 0.2; + if (led_ratio_brightness < 0.0) { led_ratio_brightness = 0.0; } + } + return false; + case L_PTN: + if (record->event.pressed) { + if (led_animation_id == led_setups_count - 1) led_animation_id = 0; + else led_animation_id++; + } + return false; + case L_PTP: + if (record->event.pressed) { + if (led_animation_id == 0) led_animation_id = led_setups_count - 1; + else led_animation_id--; + } + return false; + case L_PSI: + if (record->event.pressed) { + led_animation_speed += ANIMATION_SPEED_STEP; + } + return false; + case L_PSD: + if (record->event.pressed) { + led_animation_speed -= ANIMATION_SPEED_STEP; + if (led_animation_speed < 0) led_animation_speed = 0; + } + return false; + case L_T_MD: + if (record->event.pressed) { + led_lighting_mode++; + if (led_lighting_mode > LED_MODE_MAX_INDEX) led_lighting_mode = LED_MODE_NORMAL; + } + return false; + case L_T_ONF: + if (record->event.pressed) { + led_enabled = !led_enabled; + I2C3733_Control_Set(led_enabled); + } + return false; + case L_ON: + if (record->event.pressed) { + led_enabled = 1; + I2C3733_Control_Set(led_enabled); + } + return false; + case L_OFF: + if (record->event.pressed) { + led_enabled = 0; + I2C3733_Control_Set(led_enabled); + } + return false; + case L_T_BR: + if (record->event.pressed) { + led_animation_breathing = !led_animation_breathing; + if (led_animation_breathing) { + gcr_breathe = gcr_desired; + led_animation_breathe_cur = BREATHE_MIN_STEP; + breathe_dir = 1; + } + } + return false; + case L_T_PTD: + if (record->event.pressed) { + scroll_effect++; + if (scroll_effect == 1) { //Patterns with scroll move horizontal (Right to left) + led_animation_direction = 1; + led_animation_orientation = 0; + led_animation_circular = 0; + } else if (scroll_effect == 2) { //Patterns with scroll move vertical (Top to bottom) + led_animation_direction = 1; + led_animation_orientation = 1; + led_animation_circular = 0; + } else if (scroll_effect == 3) { //Patterns with scroll move vertical (Bottom to top) + led_animation_direction = 0; + led_animation_orientation = 1; + led_animation_circular = 0; + } else if (scroll_effect == 4) { //Patterns with scroll explode from center + led_animation_direction = 0; + led_animation_orientation = 0; + led_animation_circular = 1; + } else if (scroll_effect == 5) { //Patterns with scroll implode on center + led_animation_direction = 1; + led_animation_orientation = 0; + led_animation_circular = 1; + } else { //Patterns with scroll move horizontal (Left to right) + scroll_effect = 0; + led_animation_direction = 0; + led_animation_orientation = 0; + led_animation_circular = 0; + } } return false; case U_T_AGCR: @@ -61,6 +225,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); } return false; + case DBG_FAC: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + led_lighting_mode = LED_MODE_NORMAL; + led_edge_brightness = 1; + led_edge_mode = LED_EDGE_MODE_ALL; + led_animation_breathing = 0; + led_animation_id = 7; //led_programs.c led_setups leds_white index + gcr_desired = LED_GCR_MAX; + led_enabled = 1; + I2C3733_Control_Set(led_enabled); + } + return false; case DBG_TOG: if (record->event.pressed) { TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); @@ -90,33 +266,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; - 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_disable_noeeprom(); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } - } - return false; default: return true; } } + led_instruction_t led_instructions[] = { + { .flags = LED_FLAG_USE_ROTATE_PATTERN }, + { .flags = LED_FLAG_MATCH_ID | LED_FLAG_MATCH_LAYER | LED_FLAG_USE_RGB, .id0 = 0x1, .b = 253, .layer = 1 }, + { .flags = LED_FLAG_MATCH_ID | LED_FLAG_MATCH_LAYER | LED_FLAG_USE_RGB, .id0 = 0x1, .r = 253, .b = 253, .layer = 2 }, + { .flags = LED_FLAG_MATCH_LAYER | LED_FLAG_USE_PATTERN, .pattern_id = 8, .layer = 3 }, + { .end = 1 } + }; diff --git a/keyboards/massdrop/alt/keymaps/charlesrocket/rules.mk b/keyboards/massdrop/alt/keymaps/charlesrocket/rules.mk new file mode 100644 index 0000000000..d684e3a615 --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/charlesrocket/rules.mk @@ -0,0 +1,3 @@ +OPT_DEFS += -DUSE_MASSDROP_CONFIGURATOR +UNICODEMAP_ENABLE = yes +APL_ENABLE = yes diff --git a/keyboards/massdrop/alt/keymaps/pregame/rules.mk b/keyboards/massdrop/alt/keymaps/pregame/rules.mk index 5981633f7c..184405662a 100644 --- a/keyboards/massdrop/alt/keymaps/pregame/rules.mk +++ b/keyboards/massdrop/alt/keymaps/pregame/rules.mk @@ -8,6 +8,7 @@ DYNAMIC_MACRO_ENABLE = no # Dynamic macro recording and play MOUSEKEY_ENABLE = no # Enable mouse control keycodes. Increases firmware size. TAP_DANCE_ENABLE = no # Enable tap dance keys CONSOLE_ENABLE = no # Enable debugging console. Increases firmware size. +TERMINAL_ENABLE = no EXTRAKEY_ENABLE = yes # Audio control and System control # RAW_ENABLE = yes # Raw HID has not yet been implemented for this keyboard # COMBO_ENABLE # Key combo feature diff --git a/keyboards/massdrop/ctrl/keymaps/endgame/rules.mk b/keyboards/massdrop/ctrl/keymaps/endgame/rules.mk index c4fab8ad53..9502c242dd 100644 --- a/keyboards/massdrop/ctrl/keymaps/endgame/rules.mk +++ b/keyboards/massdrop/ctrl/keymaps/endgame/rules.mk @@ -7,6 +7,7 @@ MOUSEKEY_ENABLE = yes # Enable mouse control keycodes. Increases firmware size TAP_DANCE_ENABLE = yes # Enable tap dance keys CONSOLE_ENABLE = yes # Enable debugging console. Increases firmware size. SRC += config_led.c # Used to add files to the compilation/linking list. +TERMINAL_ENABLE = yes EXTRAKEY_ENABLE = yes # Audio control and System control # RAW_ENABLE = yes # Raw HID has not yet been implemented for this keyboard # COMBO_ENABLE # Key combo feature diff --git a/keyboards/massdrop/ctrl/keymaps/matthewrobo/rules.mk b/keyboards/massdrop/ctrl/keymaps/matthewrobo/rules.mk index 4bb43f525b..e834404e29 100644 --- a/keyboards/massdrop/ctrl/keymaps/matthewrobo/rules.mk +++ b/keyboards/massdrop/ctrl/keymaps/matthewrobo/rules.mk @@ -7,6 +7,7 @@ MOUSEKEY_ENABLE = no # Enable mouse control keycodes. Increases firmware size. TAP_DANCE_ENABLE = no # Enable tap dance keys CONSOLE_ENABLE = no # Enable debugging console. Increases firmware size. SRC += config_led.c # Used to add files to the compilation/linking list. +TERMINAL_ENABLE = no EXTRAKEY_ENABLE = yes # Audio control and System control #RAW_ENABLE = yes #Raw HID has not yet been implemented for this keyboard #COMBO_ENABLE #Key combo feature diff --git a/keyboards/massdrop/ctrl/keymaps/via/keymap.c b/keyboards/massdrop/ctrl/keymaps/via/keymap.c new file mode 100644 index 0000000000..4fb4f3cbde --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/via/keymap.c @@ -0,0 +1,140 @@ +/* Made by InonL (@InonL), June 2022 + * Based on the default keymap, added two blank layers for VIA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 ctrl_keycodes { + U_T_AUTO = USER00, //USB Extra Port Toggle Auto Detect / Always Active + U_T_AGCR, //USB Toggle Automatic GCR control + DBG_TOG, //DEBUG Toggle On / Off + DBG_MTRX, //DEBUG Toggle Matrix Prints + DBG_KBD, //DEBUG Toggle Keyboard Prints + DBG_MOU, //DEBUG Toggle Mouse Prints + MD_BOOT, //Restart into bootloader after hold timeout +}; + +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_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, + _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +#define MODS_SHIFT (get_mods() & MOD_MASK_SHIFT) +#define MODS_CTRL (get_mods() & MOD_MASK_CTRL) +#define MODS_ALT (get_mods() & MOD_MASK_ALT) + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint32_t key_timer; + + switch (keycode) { + case U_T_AUTO: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode"); + } + return false; + case U_T_AGCR: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); + } + return false; + case DBG_TOG: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); + } + return false; + case DBG_MTRX: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix"); + } + return false; + case DBG_KBD: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard"); + } + return false; + case DBG_MOU: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); + } + return false; + case MD_BOOT: + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 500) { + reset_keyboard(); + } + } + return false; + 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_disable_noeeprom(); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + default: + return true; //Process all other keycodes normally + } +} diff --git a/keyboards/massdrop/ctrl/keymaps/via/rules.mk b/keyboards/massdrop/ctrl/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/massdrop/ctrl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/rules.mk b/keyboards/massdrop/ctrl/keymaps/xanimos/rules.mk index 2913eff83b..43a312ce4e 100644 --- a/keyboards/massdrop/ctrl/keymaps/xanimos/rules.mk +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/rules.mk @@ -8,6 +8,7 @@ TAP_DANCE_ENABLE = yes # Enable tap dance keys CONSOLE_ENABLE = no # Enable debugging console. Increases firmware size. SRC += config_led.c # Used to add files to the compilation/linking list. EXTRAKEY_ENABLE = yes # Audio control and System control +TERMINAL_ENABLE = no # RAW_ENABLE = yes # Raw HID has not yet been implemented for this keyboard # COMBO_ENABLE # Key combo feature # LEADER_ENABLE # Enable leader key chording diff --git a/keyboards/massdrop/thekey/config.h b/keyboards/massdrop/thekey/config.h index a195628203..c9608fab7a 100644 --- a/keyboards/massdrop/thekey/config.h +++ b/keyboards/massdrop/thekey/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Drop -#define PRODUCT The Key - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 3 diff --git a/keyboards/massdrop/thekey/info.json b/keyboards/massdrop/thekey/info.json index ac4c17e8c8..437b5d7409 100644 --- a/keyboards/massdrop/thekey/info.json +++ b/keyboards/massdrop/thekey/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "The Key", + "manufacturer": "Drop", "url": "https://drop.com/buy/stack-overflow-the-key-macropad", "maintainer": "massdrop", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/massdrop/thekey_v2/config.h b/keyboards/massdrop/thekey_v2/config.h new file mode 100644 index 0000000000..f7abf7bc82 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/config.h @@ -0,0 +1,43 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + */ +#define MATRIX_ROW_PINS { D4 } +#define MATRIX_COL_PINS { D2, D1, D0 } + +#define DIODE_DIRECTION ROW2COL + +#define RGB_DI_PIN B1 +#define RGBLED_NUM 5 +#define RGBLIGHT_LED_MAP {4, 0, 1, 2, 3} +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 10 +#define RGBLIGHT_VAL_STEP 15 +#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +#define RGBLIGHT_LAYERS /* Enable lighting layers */ +#define RGBLIGHT_LAYER_BLINK /* Enable lighting layer blink */ diff --git a/keyboards/massdrop/thekey_v2/info.json b/keyboards/massdrop/thekey_v2/info.json new file mode 100644 index 0000000000..a808f37637 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "The Key V2", + "manufacturer": "Drop", + "url": "https://drop.com/buy/stack-overflow-the-key-v2-macropad", + "maintainer": "massdrop", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "K00 (D4,D2)", "x": 0, "y": 0 }, + { "label": "K01 (D4,D1)", "x": 1, "y": 0 }, + { "label": "K02 (D4,D0)", "x": 2, "y": 0 } + ] + } + } +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c new file mode 100644 index 0000000000..fb45d5e224 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/default-macos/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_LGUI, KC_C, KC_V), + +}; diff --git a/keyboards/massdrop/thekey_v2/keymaps/default/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..5e1de6068b --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_LCTL, KC_C, KC_V), + +}; diff --git a/keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c new file mode 100644 index 0000000000..f3699e752f --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/rgb-control-macos/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + LAYER_SWITCH = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default */ + [0] = LAYOUT(LAYER_SWITCH, G(KC_C), G(KC_V)), + + /* RGB Toggle + Mode Change */ + [1] = LAYOUT(LAYER_SWITCH, RGB_TOG, RGB_MOD), + + /* RGB Brightness */ + [2] = LAYOUT(LAYER_SWITCH, RGB_VAD, RGB_VAI), + + /* RGB Hue */ + [3] = LAYOUT(LAYER_SWITCH, RGB_HUD, RGB_HUI), + + /* RGB Saturation */ + [4] = LAYOUT(LAYER_SWITCH, RGB_SAD, RGB_SAI), + +}; + +/* Lighting layers */ + +const rgblight_segment_t PROGMEM layer_indicator_0[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_WHITE}, + {1, 4, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_1[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_OFF}, + {1, 1, HSV_WHITE}, + {2, 3, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_2[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 2, HSV_OFF}, + {2, 1, HSV_WHITE}, + {3, 2, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_3[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_OFF}, + {3, 1, HSV_WHITE}, + {4, 1, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_4[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, HSV_OFF}, + {4, 1, HSV_WHITE} +); + +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer_indicator_0, + layer_indicator_1, + layer_indicator_2, + layer_indicator_3, + layer_indicator_4 +); + +void keyboard_post_init_user(void) { + /* Enable the LED layers */ + rgblight_layers = rgb_layers; +} + +/* Layer handler */ + +uint16_t layer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LAYER_SWITCH: + if (record->event.pressed) { + if (layer > 0) { + layer_off(layer); + } + + rgblight_unblink_layer(layer); + layer = (layer + 1) % 5; + rgblight_blink_layer_repeat(layer, 1000, 1); + + if (layer > 0) { + layer_on(layer); + } + } + return false; + default: + return true; + } +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c new file mode 100644 index 0000000000..4246973654 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/rgb-control/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + LAYER_SWITCH = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default */ + [0] = LAYOUT(LAYER_SWITCH, C(KC_C), C(KC_V)), + + /* RGB Toggle + Mode Change */ + [1] = LAYOUT(LAYER_SWITCH, RGB_TOG, RGB_MOD), + + /* RGB Brightness */ + [2] = LAYOUT(LAYER_SWITCH, RGB_VAD, RGB_VAI), + + /* RGB Hue */ + [3] = LAYOUT(LAYER_SWITCH, RGB_HUD, RGB_HUI), + + /* RGB Saturation */ + [4] = LAYOUT(LAYER_SWITCH, RGB_SAD, RGB_SAI), + +}; + +/* Lighting layers */ + +const rgblight_segment_t PROGMEM layer_indicator_0[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_WHITE}, + {1, 4, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_1[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_OFF}, + {1, 1, HSV_WHITE}, + {2, 3, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_2[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 2, HSV_OFF}, + {2, 1, HSV_WHITE}, + {3, 2, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_3[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 3, HSV_OFF}, + {3, 1, HSV_WHITE}, + {4, 1, HSV_OFF} +); + +const rgblight_segment_t PROGMEM layer_indicator_4[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, HSV_OFF}, + {4, 1, HSV_WHITE} +); + +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer_indicator_0, + layer_indicator_1, + layer_indicator_2, + layer_indicator_3, + layer_indicator_4 +); + +void keyboard_post_init_user(void) { + /* Enable the LED layers */ + rgblight_layers = rgb_layers; +} + +/* Layer handler */ + +uint16_t layer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LAYER_SWITCH: + if (record->event.pressed) { + if (layer > 0) { + layer_off(layer); + } + + rgblight_unblink_layer(layer); + layer = (layer + 1) % 5; + rgblight_blink_layer_repeat(layer, 1000, 1); + + if (layer > 0) { + layer_on(layer); + } + } + return false; + default: + return true; + } +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c new file mode 100644 index 0000000000..33d19734bc --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste-macos/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + TK_URL = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(TK_URL, G(KC_C), G(KC_V)), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TK_URL: + if (record->event.pressed) { + // when keycode TK_URL is pressed + SEND_STRING("https://stackoverflow.com/\n"); + } + break; + default: + break; + } + return true; +} diff --git a/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c new file mode 100644 index 0000000000..5becddfa2a --- /dev/null +++ b/keyboards/massdrop/thekey_v2/keymaps/url-copy-paste/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + TK_URL = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(TK_URL, C(KC_C), C(KC_V)), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TK_URL: + if (record->event.pressed) { + // when keycode TK_URL is pressed + SEND_STRING("https://stackoverflow.com/"); + } + break; + default: + break; + } + return true; +} diff --git a/keyboards/massdrop/thekey_v2/readme.md b/keyboards/massdrop/thekey_v2/readme.md new file mode 100644 index 0000000000..ef4d6ec716 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/readme.md @@ -0,0 +1,38 @@ +# The Key V2 + +![The Key V2](https://massdrop-s3.imgix.net/product-images/stack-overflow-the-key-v2-macropad/FP/vSqOp9eUQNGXW4zl3EVQ_7528-copy-pdp.jpg) + + +The Stack Overflow "The Key V2" is a 3 button macropad based on atmega32u4 with hot-swappble Kailh Black Box switches. + +> Last year, we brought Stack Overflow’s iconic April Fool’s joke to life. Advertised as the new (and only) way to copy and paste on the site, it was an ultra-compact macropad called The Key. The punchline-turned product was a huge hit, selling over 10K units and earning a nearly 5-star average review. Now, we’re back with a second act: The Key V2. The same size as its portable predecessor, this punchline-turned-product has a few notable changes—including an acrylic case to accent its two built-in RGB LEDs. Plus, we made it hot-swappable, so you can easily change out the switches for a truly custom experience. And just like the original, a portion of all proceeds from The Key V2 will go to the data-driven social startup digitalundivided. + +Keyboard Maintainer: [Drop / Massdrop](https://github.com/Massdrop/qmk_firmware) + +Hardware Supported: Massdrop, Inc. **The Key V2** + +Hardware Availability: Limited Release - https://drop.com/buy/stack-overflow-the-key-v2-macropad + + +Make example for this keyboard (after setting up your build environment): +```bash +# default provided by Drop / Stack Overflow +make massdrop/thekey_v2:default +# common modification where C = CTRL+C, V = CTRL+V +make massdrop/thekey_v2:url-copy-paste +``` + +Flashing example for this keyboard: +```bash +# install in dfu mode +make massdrop/thekey_v2:default:dfu +``` + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). +Make example for this keyboard (after setting up your build environment): + +## Bootloader + +Enter the bootloader as follows: +* **Bootmagic reset**: Hold down the "Stack Overflow" key, the "left-most" or furthest from the USB plug while inserting the USB cable for a few seconds. The LEDs will **NOT** turn on. +* **Physical reset button**: Briefly press and hold the reset button while pluggin in the USB port. The LEDs on the back will **NOT** turn on. Depending on your case revision, you may have to remove the 4 screws on the back plate to access the switch OR you can use the associated access hole on newer releases. diff --git a/keyboards/massdrop/thekey_v2/rules.mk b/keyboards/massdrop/thekey_v2/rules.mk new file mode 100644 index 0000000000..a0a1e94e36 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/massdrop/thekey_v2/thekey_v2.c b/keyboards/massdrop/thekey_v2/thekey_v2.c new file mode 100644 index 0000000000..b1a824d9d4 --- /dev/null +++ b/keyboards/massdrop/thekey_v2/thekey_v2.c @@ -0,0 +1,17 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "thekey_v2.h" diff --git a/keyboards/massdrop/thekey_v2/thekey_v2.h b/keyboards/massdrop/thekey_v2/thekey_v2.h new file mode 100644 index 0000000000..c3b8e1a8ea --- /dev/null +++ b/keyboards/massdrop/thekey_v2/thekey_v2.h @@ -0,0 +1,27 @@ +/* Copyright 2022 Jason Wihardja + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K00, K01, K02 \ +) { \ + { K00, K01, K02 }, \ +} diff --git a/keyboards/matchstickworks/southpad/config.h b/keyboards/matchstickworks/southpad/config.h index 8831599828..6ccf439740 100644 --- a/keyboards/matchstickworks/southpad/config.h +++ b/keyboards/matchstickworks/southpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MatchstickWorks -#define PRODUCT SouthPad - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/matchstickworks/southpad/info.json b/keyboards/matchstickworks/southpad/info.json index c020bb79f1..d7380644ff 100644 --- a/keyboards/matchstickworks/southpad/info.json +++ b/keyboards/matchstickworks/southpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "SouthPad", + "manufacturer": "MatchstickWorks", "url": "", "maintainer": "MatchstickWorks", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_6x4_southpaw": { "layout": [ diff --git a/keyboards/matrix/abelx/config.h b/keyboards/matrix/abelx/config.h index d3c6a569b1..218e3b53a4 100644 --- a/keyboards/matrix/abelx/config.h +++ b/keyboards/matrix/abelx/config.h @@ -19,13 +19,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D58 // MX -#define PRODUCT_ID 0xAB87 // abelx keyboard -#define DEVICE_VER 0x0001 -#define MANUFACTURER MATRIX -#define PRODUCT ABELX - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/matrix/abelx/info.json b/keyboards/matrix/abelx/info.json index 18bed65bc0..121251f3b5 100644 --- a/keyboards/matrix/abelx/info.json +++ b/keyboards/matrix/abelx/info.json @@ -1,9 +1,13 @@ { - "keyboard_name": "Matrix ABELX keyboard", + "keyboard_name": "ABELX", + "manufacturer": "Matrix", "url": "", "maintainer": "qmk", - "width": 18.25, - "height": 6.5, + "usb": { + "vid": "0x4D58", + "pid": "0xAB87", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25},{"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/matrix/cain_re/config.h b/keyboards/matrix/cain_re/config.h index 6bacf1c949..e564576459 100644 --- a/keyboards/matrix/cain_re/config.h +++ b/keyboards/matrix/cain_re/config.h @@ -21,13 +21,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D58 // MX -#define PRODUCT_ID 0x0106 // cain -#define DEVICE_VER 0x0001 -#define MANUFACTURER Matrix LAB -#define PRODUCT Matrix Cain Keyboard - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 12 diff --git a/keyboards/matrix/cain_re/info.json b/keyboards/matrix/cain_re/info.json index 8cf49e7fc8..ee2f0382ee 100644 --- a/keyboards/matrix/cain_re/info.json +++ b/keyboards/matrix/cain_re/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Matrix Cain Keyboard", + "keyboard_name": "Cain", + "manufacturer": "Matrix", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4D58", + "pid": "0x0106", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Num Lock", "x":15.5, "y":1.5}, {"label":"/", "x":16.5, "y":1.5}, {"label":"*", "x":17.5, "y":1.5}, {"label":"-", "x":18.5, "y":1.5}, {"label":"Insert", "x":20, "y":1.5}, {"label":"Home", "x":21, "y":1.5}, {"label":"PgUp", "x":22, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"7", "x":15.5, "y":2.5}, {"label":"8", "x":16.5, "y":2.5}, {"label":"9", "x":17.5, "y":2.5}, {"label":"+", "x":18.5, "y":2.5}, {"label":"Delete", "x":20, "y":2.5}, {"label":"End", "x":21, "y":2.5}, {"label":"PgDn", "x":22, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"4", "x":15.5, "y":3.5}, {"label":"5", "x":16.5, "y":3.5}, {"label":"6", "x":17.5, "y":3.5}, {"label":"+", "x":18.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"1", "x":15.5, "y":4.5}, {"label":"2", "x":16.5, "y":4.5}, {"label":"3", "x":17.5, "y":4.5}, {"label":"Enter", "x":18.5, "y":4.5}, {"label":"\u2191", "x":21, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Win", "x":1.5, "y":5.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Win", "x":12.5, "y":5.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"0", "x":15.5, "y":5.5}, {"label":"0", "x":16.5, "y":5.5}, {"label":".", "x":17.5, "y":5.5}, {"label":"Enter", "x":18.5, "y":5.5}, {"label":"\u2190", "x":20, "y":5.5}, {"label":"\u2193", "x":21, "y":5.5}, {"label":"\u2192", "x":22, "y":5.5}] diff --git a/keyboards/matrix/falcon/config.h b/keyboards/matrix/falcon/config.h index afd0b5d3ef..ff3287d735 100644 --- a/keyboards/matrix/falcon/config.h +++ b/keyboards/matrix/falcon/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D58 -#define PRODUCT_ID 0x474E -#define DEVICE_VER 0x0001 -#define MANUFACTURER Matrix Lab -#define PRODUCT Falcon - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/matrix/falcon/info.json b/keyboards/matrix/falcon/info.json index aeaaa7f9f2..f1b7267681 100644 --- a/keyboards/matrix/falcon/info.json +++ b/keyboards/matrix/falcon/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Matrix Lab Falcon", + "keyboard_name": "Falcon", + "manufacturer": "Matrix Lab", "url": "", "maintainer": "yulei (Astro)", + "usb": { + "vid": "0x4D58", + "pid": "0x474E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_hhkb": { "layout": [ diff --git a/keyboards/matrix/m12og/rev1/config.h b/keyboards/matrix/m12og/rev1/config.h index 204ece1617..b83c0eece2 100644 --- a/keyboards/matrix/m12og/rev1/config.h +++ b/keyboards/matrix/m12og/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D58 -#define PRODUCT_ID 0x0369 -#define DEVICE_VER 0x0001 -#define MANUFACTURER matrix -#define PRODUCT m12og_v1 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/matrix/m12og/rev1/info.json b/keyboards/matrix/m12og/rev1/info.json index 25cfe6bafc..3406beab76 100644 --- a/keyboards/matrix/m12og/rev1/info.json +++ b/keyboards/matrix/m12og/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Matrix 8XV1.2 OG rev1", + "keyboard_name": "m12og_v1", + "manufacturer": "Matrix", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0x4D58", + "pid": "0x0369", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/matrix/m12og/rev2/config.h b/keyboards/matrix/m12og/rev2/config.h index fae5192a33..5f68217319 100644 --- a/keyboards/matrix/m12og/rev2/config.h +++ b/keyboards/matrix/m12og/rev2/config.h @@ -6,13 +6,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D58 // MX -#define PRODUCT_ID 0x8712 // matrix 1.2 og -#define DEVICE_VER 0x0001 -#define MANUFACTURER matrix -#define PRODUCT M12OG - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 14 diff --git a/keyboards/matrix/m12og/rev2/info.json b/keyboards/matrix/m12og/rev2/info.json index 72514b09ab..d747108bed 100644 --- a/keyboards/matrix/m12og/rev2/info.json +++ b/keyboards/matrix/m12og/rev2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Matrix 8XV1.2 OG ISO/ANSI", + "keyboard_name": "M12OG", + "manufacturer": "Matrix", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4D58", + "pid": "0x8712", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Win", "x":1.5, "y":5.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Menu", "x":12.5, "y":5.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h index 5d615dbad6..df053270d8 100644 --- a/keyboards/matrix/m20add/config.h +++ b/keyboards/matrix/m20add/config.h @@ -7,13 +7,6 @@ #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D58 // MX -#define PRODUCT_ID 0x20AD // 8XV2.0 Additional -#define DEVICE_VER 0x0001 -#define MANUFACTURER MATRIX -#define PRODUCT 8XV2.0 Additional - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/matrix/m20add/info.json b/keyboards/matrix/m20add/info.json index 90649d1c60..4aa7f19efb 100644 --- a/keyboards/matrix/m20add/info.json +++ b/keyboards/matrix/m20add/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Matrix 2.0 Additional", + "keyboard_name": "8XV2.0 Additional", + "manufacturer": "Matrix", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4D58", + "pid": "0x20AD", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi_tsangan": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Win", "x":1.5, "y":5.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Menu", "x":12.5, "y":5.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/matrix/me/config.h b/keyboards/matrix/me/config.h index 033198ef65..e9230d11e8 100644 --- a/keyboards/matrix/me/config.h +++ b/keyboards/matrix/me/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D58 // MX -#define PRODUCT_ID 0x454D // ME -#define DEVICE_VER 0x0001 -#define MANUFACTURER Matrix Lab -#define PRODUCT Matrix ME - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/matrix/me/info.json b/keyboards/matrix/me/info.json index cad1b3f70e..af42327f06 100644 --- a/keyboards/matrix/me/info.json +++ b/keyboards/matrix/me/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Matrix ME", + "manufacturer": "Matrix Lab", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4D58", + "pid": "0x454D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi_tsangan": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Win", "x":1.5, "y":5.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Menu", "x":12.5, "y":5.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h index 84877f6a5c..28bcf4ee6e 100644 --- a/keyboards/matrix/noah/config.h +++ b/keyboards/matrix/noah/config.h @@ -7,13 +7,6 @@ #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D58 // MX -#define PRODUCT_ID 0x0065 // noah 65 -#define DEVICE_VER 0x0001 -#define MANUFACTURER matrix -#define PRODUCT NOAH - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/matrix/noah/info.json b/keyboards/matrix/noah/info.json index 61c07feb57..5a4477931b 100644 --- a/keyboards/matrix/noah/info.json +++ b/keyboards/matrix/noah/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "NOAH", + "manufacturer": "Matrix", "url": "", "maintainer": "astro", + "usb": { + "vid": "0x4D58", + "pid": "0x0065", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/matthewdias/m3n3van/config.h b/keyboards/matthewdias/m3n3van/config.h index cef9d8d70a..2d0d1ffc4c 100644 --- a/keyboards/matthewdias/m3n3van/config.h +++ b/keyboards/matthewdias/m3n3van/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D64 -#define PRODUCT_ID 0x2323 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Matthew Dias -#define PRODUCT m3n3van - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/matthewdias/m3n3van/info.json b/keyboards/matthewdias/m3n3van/info.json index 240c203c29..347868cffb 100644 --- a/keyboards/matthewdias/m3n3van/info.json +++ b/keyboards/matthewdias/m3n3van/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "m3n3van", + "manufacturer": "Matthew Dias", "url": "https://github.com/matthewdias/m3n3van/tree/main/rev2", "maintainer": "matthewdias", + "usb": { + "vid": "0x6D64", + "pid": "0x2323", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/matthewdias/minim/config.h b/keyboards/matthewdias/minim/config.h index 9f31ba31cf..db837e3990 100644 --- a/keyboards/matthewdias/minim/config.h +++ b/keyboards/matthewdias/minim/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xAAAA -#define DEVICE_VER 0x0001 -#define MANUFACTURER Matthew Dias -#define PRODUCT minim - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 14 diff --git a/keyboards/matthewdias/minim/info.json b/keyboards/matthewdias/minim/info.json index 0ac146b9a2..58d2066bd4 100644 --- a/keyboards/matthewdias/minim/info.json +++ b/keyboards/matthewdias/minim/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "minim", + "manufacturer": "Matthew Dias", "url": "https://github.com/matthewdias/minim", "maintainer": "matthewdias", + "usb": { + "vid": "0xFEED", + "pid": "0xAAAA", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/matthewdias/model_v/config.h b/keyboards/matthewdias/model_v/config.h index d1c5dcd81d..a111faa315 100644 --- a/keyboards/matthewdias/model_v/config.h +++ b/keyboards/matthewdias/model_v/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D64 -#define PRODUCT_ID 0x6D76 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Matthew Dias -#define PRODUCT model-v - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/matthewdias/model_v/info.json b/keyboards/matthewdias/model_v/info.json index cdb0efd951..0e279d5df4 100644 --- a/keyboards/matthewdias/model_v/info.json +++ b/keyboards/matthewdias/model_v/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "model-v", + "manufacturer": "Matthew Dias", "maintainer": "matthewdias", + "usb": { + "vid": "0x6D64", + "pid": "0x6D76", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split": { "layout": [ diff --git a/keyboards/matthewdias/txuu/config.h b/keyboards/matthewdias/txuu/config.h index f81c300a13..1bc4f33d6d 100644 --- a/keyboards/matthewdias/txuu/config.h +++ b/keyboards/matthewdias/txuu/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D64 -#define PRODUCT_ID 0x2809 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Matthew Dias -#define PRODUCT txuu - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/matthewdias/txuu/info.json b/keyboards/matthewdias/txuu/info.json index 20efca6978..c5606388de 100644 --- a/keyboards/matthewdias/txuu/info.json +++ b/keyboards/matthewdias/txuu/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Txuu", + "manufacturer": "Matthew Dias", "maintainer": "matthewdias", + "usb": { + "vid": "0x6D64", + "pid": "0x2809", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_65_ansi_blocker_split_bs" }, diff --git a/keyboards/maxipad/config.h b/keyboards/maxipad/config.h index 7a4b00ccad..c9bfc3ea61 100644 --- a/keyboards/maxipad/config.h +++ b/keyboards/maxipad/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER wootpatoot -#define PRODUCT maxipad - /* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/maxipad/info.json b/keyboards/maxipad/info.json index 881bba63e6..5670d8d361 100644 --- a/keyboards/maxipad/info.json +++ b/keyboards/maxipad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "maxipad", + "manufacturer": "wootpatoot", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_grid": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}] diff --git a/keyboards/maxr1998/phoebe/config.h b/keyboards/maxr1998/phoebe/config.h index cce72108c5..b410a836c9 100644 --- a/keyboards/maxr1998/phoebe/config.h +++ b/keyboards/maxr1998/phoebe/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define PRODUCT Phoebe - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/maxr1998/phoebe/info.json b/keyboards/maxr1998/phoebe/info.json index 1b22277d8a..03a2dd94f8 100644 --- a/keyboards/maxr1998/phoebe/info.json +++ b/keyboards/maxr1998/phoebe/info.json @@ -16,6 +16,11 @@ "key_lock": true, "leader": true }, + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/maxr1998/pulse4k/config.h b/keyboards/maxr1998/pulse4k/config.h index 4b9c60aac2..fbabd8b2bb 100644 --- a/keyboards/maxr1998/pulse4k/config.h +++ b/keyboards/maxr1998/pulse4k/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Maxr1998 -#define PRODUCT Pulse 4k - /* Key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/maxr1998/pulse4k/info.json b/keyboards/maxr1998/pulse4k/info.json index 7caa85072a..f5ff668edf 100644 --- a/keyboards/maxr1998/pulse4k/info.json +++ b/keyboards/maxr1998/pulse4k/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pulse 4k", + "manufacturer": "Maxr1998", "url": "https://github.com/Maxr1998/Pulse_4k", "maintainer": "Maxr1998", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mb44/config.h b/keyboards/mb44/config.h index daafe52b41..ce71f485d0 100644 --- a/keyboards/mb44/config.h +++ b/keyboards/mb44/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6d62 -#define PRODUCT_ID 0x6d62 -#define DEVICE_VER 0x0001 -#define MANUFACTURER melonbred - - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/mb44/info.json b/keyboards/mb44/info.json index 47527443d4..4f916a0bf0 100644 --- a/keyboards/mb44/info.json +++ b/keyboards/mb44/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MB-44", + "manufacturer": "melonbred", "url": "", "maintainer": "melonbred", + "usb": { + "vid": "0x6D62", + "pid": "0x6D62", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/mc_76k/config.h b/keyboards/mc_76k/config.h index cc7ac306f4..7a783ce327 100644 --- a/keyboards/mc_76k/config.h +++ b/keyboards/mc_76k/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4D43 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT MC-76K - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/mc_76k/info.json b/keyboards/mc_76k/info.json index 411886886e..db07a87f35 100644 --- a/keyboards/mc_76k/info.json +++ b/keyboards/mc_76k/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "mc_76k", + "keyboard_name": "MC-76K", + "manufacturer": "Yiancar-Designs", "url": "www.yiancar-designs.com", "maintainer": "Yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x4D43", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"F13", "x":14, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"|", "x":13, "y":1.5}, {"label":"Delete", "x":14, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Backspace", "x":13.5, "y":2.5, "w":1.5}, {"label":"Ctrl", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"Fn", "x":14, "y":4.5}, {"label":"Caps Lock", "x":0, "y":5.5, "w":1.5}, {"label":"Win", "x":1.5, "y":5.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Win", "x":12.5, "y":5.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}] diff --git a/keyboards/mechanickeys/miniashen40/config.h b/keyboards/mechanickeys/miniashen40/config.h index bf2ea6e00f..c3a097bf77 100644 --- a/keyboards/mechanickeys/miniashen40/config.h +++ b/keyboards/mechanickeys/miniashen40/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4B // MechanicKeys -#define PRODUCT_ID 0x6D6E -#define DEVICE_VER 0x0001 -#define MANUFACTURER MechanicKeys -#define PRODUCT MINI ASHEN 40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/mechanickeys/miniashen40/info.json b/keyboards/mechanickeys/miniashen40/info.json index bf46a8bdcd..94779c888f 100644 --- a/keyboards/mechanickeys/miniashen40/info.json +++ b/keyboards/mechanickeys/miniashen40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mini Ashen 40", + "manufacturer": "MechanicKeys", "url": "", "maintainer": "jfescobar18", + "usb": { + "vid": "0x4D4B", + "pid": "0x6D6E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechanickeys/undead60m/config.h b/keyboards/mechanickeys/undead60m/config.h index e819cf9971..bbf8bc2f71 100644 --- a/keyboards/mechanickeys/undead60m/config.h +++ b/keyboards/mechanickeys/undead60m/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4B // MechanicKeys -#define PRODUCT_ID 0x3C4D -#define DEVICE_VER 0x0001 -#define MANUFACTURER MechanicKeys -#define PRODUCT Undead 60-M - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/mechanickeys/undead60m/info.json b/keyboards/mechanickeys/undead60m/info.json index 5032974857..db1fd60446 100644 --- a/keyboards/mechanickeys/undead60m/info.json +++ b/keyboards/mechanickeys/undead60m/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Undead-60M", + "keyboard_name": "Undead 60-M", + "manufacturer": "MechanicKeys", "url": "", "maintainer": "jfescobar18", + "usb": { + "vid": "0x4D4B", + "pid": "0x3C4D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechbrewery/mb65h/config.h b/keyboards/mechbrewery/mb65h/config.h index 5f7e78e32d..3715e66c98 100644 --- a/keyboards/mechbrewery/mb65h/config.h +++ b/keyboards/mechbrewery/mb65h/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4252 //BR -#define PRODUCT_ID 0x0002 //hotswap -#define DEVICE_VER 0x0001 -#define MANUFACTURER MechBrewery -#define PRODUCT MB65H - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/mechbrewery/mb65h/info.json b/keyboards/mechbrewery/mb65h/info.json index 82469e7031..87c07f44dc 100644 --- a/keyboards/mechbrewery/mb65h/info.json +++ b/keyboards/mechbrewery/mb65h/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "mb65h", + "keyboard_name": "MB65H", + "manufacturer": "MechBrewery", "url": "", "maintainer": "AnthonyNguyen168", + "usb": { + "vid": "0x4252", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { diff --git a/keyboards/mechbrewery/mb65h/keymaps/default/keymap.c b/keyboards/mechbrewery/mb65h/keymaps/default/keymap.c index 9c62755928..3905a3053d 100644 --- a/keyboards/mechbrewery/mb65h/keymaps/default/keymap.c +++ b/keyboards/mechbrewery/mb65h/keymaps/default/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [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_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/mechbrewery/mb65h/keymaps/via/keymap.c b/keyboards/mechbrewery/mb65h/keymaps/via/keymap.c index 85f94da297..cf736eeac4 100644 --- a/keyboards/mechbrewery/mb65h/keymaps/via/keymap.c +++ b/keyboards/mechbrewery/mb65h/keymaps/via/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [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_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/config.h b/keyboards/mechbrewery/mb65s/config.h index be4deb08b5..c3c90f53e6 100644 --- a/keyboards/mechbrewery/mb65s/config.h +++ b/keyboards/mechbrewery/mb65s/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4252 //BR -#define PRODUCT_ID 0x3635 //65 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MechBrewery -#define PRODUCT MB65S - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/mechbrewery/mb65s/info.json b/keyboards/mechbrewery/mb65s/info.json index 79b10339b0..3ad4c7b2c2 100644 --- a/keyboards/mechbrewery/mb65s/info.json +++ b/keyboards/mechbrewery/mb65s/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "mb65s", + "keyboard_name": "MB65S", + "manufacturer": "MechBrewery", "url": "", "maintainer": "AnthonyNguyen168", + "usb": { + "vid": "0x4252", + "pid": "0x3635", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ @@ -188,7 +194,6 @@ {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, - {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, @@ -203,6 +208,7 @@ {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, + {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, @@ -265,6 +271,7 @@ {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, @@ -279,8 +286,7 @@ {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, - {"x":12.75, "y":2}, - {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, diff --git a/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker/keymap.c index 0076da3dc8..fce4b5cd3b 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_ansi_blocker_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_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker_7u_spc/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker_7u_spc/keymap.c index a19f132295..eb9fc329f3 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker_7u_spc/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/ansi_blocker_7u_spc/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_ansi_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_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c index 1e071c610e..755b3a4b0e 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [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_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker/keymap.c index 1cff877fbb..c76a62feaa 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker/keymap.c @@ -55,8 +55,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_iso_blocker_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_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c index 6071438dc1..4eed1f0e8c 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c @@ -55,8 +55,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_iso_blocker_7u_spc( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, - _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechbrewery/mb65s/keymaps/via/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/via/keymap.c index e3c4c76fc2..94046b8833 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/via/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/via/keymap.c @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [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_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/mechkeys/acr60/config.h b/keyboards/mechkeys/acr60/config.h index 7fb907153a..a27841231a 100644 --- a/keyboards/mechkeys/acr60/config.h +++ b/keyboards/mechkeys/acr60/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCA60 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MECHKEYS -#define PRODUCT ACR60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mechkeys/acr60/info.json b/keyboards/mechkeys/acr60/info.json index 0e42e5162e..79fcfba429 100644 --- a/keyboards/mechkeys/acr60/info.json +++ b/keyboards/mechkeys/acr60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ACR60", + "manufacturer": "MechKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xCA60", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_2_shifts": "LAYOUT_all" }, diff --git a/keyboards/mechkeys/alu84/config.h b/keyboards/mechkeys/alu84/config.h index 3700ced8cf..a6435fa4f5 100755 --- a/keyboards/mechkeys/alu84/config.h +++ b/keyboards/mechkeys/alu84/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCA75 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MECHKEYS -#define PRODUCT ALU84 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/mechkeys/alu84/info.json b/keyboards/mechkeys/alu84/info.json index 55d01489dc..e67ab405d9 100644 --- a/keyboards/mechkeys/alu84/info.json +++ b/keyboards/mechkeys/alu84/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ALU84", + "manufacturer": "MechKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xCA75", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_75_ansi" }, diff --git a/keyboards/mechkeys/espectro/config.h b/keyboards/mechkeys/espectro/config.h index e328f276eb..2d7fec72e2 100755 --- a/keyboards/mechkeys/espectro/config.h +++ b/keyboards/mechkeys/espectro/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCA96 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MECHKEYS -#define PRODUCT Espectro - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 13 diff --git a/keyboards/mechkeys/espectro/info.json b/keyboards/mechkeys/espectro/info.json index cb34f6938c..d293c96978 100644 --- a/keyboards/mechkeys/espectro/info.json +++ b/keyboards/mechkeys/espectro/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Espectro", + "manufacturer": "MechKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xCA96", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/mechkeys/mechmini/v1/config.h b/keyboards/mechkeys/mechmini/v1/config.h index a64127f597..c4d1ecc528 100644 --- a/keyboards/mechkeys/mechmini/v1/config.h +++ b/keyboards/mechkeys/mechmini/v1/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCA40 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MECHKEYS -#define PRODUCT Mechmini - /* matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/mechkeys/mechmini/v1/info.json b/keyboards/mechkeys/mechmini/v1/info.json index f48fddd066..6a17171154 100644 --- a/keyboards/mechkeys/mechmini/v1/info.json +++ b/keyboards/mechkeys/mechmini/v1/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MechMini v1", + "keyboard_name": "MechMini", + "manufacturer": "MechKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xCA40", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechkeys/mechmini/v2/config.h b/keyboards/mechkeys/mechmini/v2/config.h index 7936caef00..507c89a520 100755 --- a/keyboards/mechkeys/mechmini/v2/config.h +++ b/keyboards/mechkeys/mechmini/v2/config.h @@ -17,14 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xAF99 -#define PRODUCT_ID 0xCA40 -#define DEVICE_VER 0x0002 -#define MANUFACTURER MECHKEYS -#undef PRODUCT -#define PRODUCT Mechmini 2 - /* key matrix size */ #undef MATRIX_COLS #undef MATRIX_ROWS diff --git a/keyboards/mechkeys/mechmini/v2/info.json b/keyboards/mechkeys/mechmini/v2/info.json index 1d0d727a3e..0dfe5877a5 100644 --- a/keyboards/mechkeys/mechmini/v2/info.json +++ b/keyboards/mechkeys/mechmini/v2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MechMini 2", + "manufacturer": "MechKeys", "url": "https://mechkeys.ca/pages/mechmini-2-guide", "maintainer": "qmk", + "usb": { + "vid": "0xAF99", + "pid": "0xCA40", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_ortho": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Caps", "x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"GUI", "x":3, "y":3}, {"label":"MO(1)", "x":4, "y":3}, {"label":"Space", "x":5, "y":3}, {"label":"Space", "x":6, "y":3}, {"label":"MO(2)", "x":7, "y":3}, {"label":"←", "x":8, "y":3}, {"label":"↓", "x":9, "y":3}, {"label":"↑", "x":10, "y":3}, {"label":"→", "x":11, "y":3}] diff --git a/keyboards/mechkeys/mechmini/v2/keymaps/wsturgiss/keymap.c b/keyboards/mechkeys/mechmini/v2/keymaps/wsturgiss/keymap.c index 689a9ce36e..218936a19b 100644 --- a/keyboards/mechkeys/mechmini/v2/keymaps/wsturgiss/keymap.c +++ b/keyboards/mechkeys/mechmini/v2/keymaps/wsturgiss/keymap.c @@ -87,7 +87,7 @@ void matrix_scan_user(void) { //change colors and rgb modes on layer change layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case raise: rgblight_mode_noeeprom(1); rgblight_setrgb(0xc7, 0x00, 0xf4); @@ -103,3 +103,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; }; + diff --git a/keyboards/mechkeys/mk60/config.h b/keyboards/mechkeys/mk60/config.h index 680c498ef4..03fc30bc2d 100644 --- a/keyboards/mechkeys/mk60/config.h +++ b/keyboards/mechkeys/mk60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechkeys -#define PRODUCT mechkeys mk60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mechkeys/mk60/info.json b/keyboards/mechkeys/mk60/info.json index cb50412378..b322a589ab 100644 --- a/keyboards/mechkeys/mk60/info.json +++ b/keyboards/mechkeys/mk60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MK60", + "manufacturer": "MechKeys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechllama/g35/keymaps/default/keymap.c b/keyboards/mechllama/g35/keymaps/default/keymap.c index 09d7afe171..4568f54f54 100644 --- a/keyboards/mechllama/g35/keymaps/default/keymap.c +++ b/keyboards/mechllama/g35/keymaps/default/keymap.c @@ -67,7 +67,7 @@ const char* get_layer_name(uint8_t layer) { } bool oled_task_user(void) { - oled_write_ln_P(get_layer_name(get_highest_layer(layer_state)), false); + oled_write_ln_P(get_layer_name(biton32(layer_state)), false); return false; } #endif diff --git a/keyboards/mechlovin/hannah910/hannah910.c b/keyboards/mechlovin/hannah910/hannah910.c index 70c1a7b8e3..3237636be2 100644 --- a/keyboards/mechlovin/hannah910/hannah910.c +++ b/keyboards/mechlovin/hannah910/hannah910.c @@ -34,20 +34,20 @@ void led_set_kb(uint8_t usb_led) { layer_state_t layer_state_set_user(layer_state_t state) { // if on layer 1, turn on D2 LED, otherwise off. - if (get_highest_layer(state) == 1) { + if (biton32(state) == 1) { writePinHigh(D2); } else { writePinLow(D2); } // if on layer 2, turn on D1 LED, otherwise off. - if (get_highest_layer(state) == 2) { + if (biton32(state) == 2) { writePinHigh(D1); } else { writePinLow(D1); } // if on layer 3, turn on D0 LED, otherwise off. - if (get_highest_layer(state) == 3) { + if (biton32(state) == 3) { writePinHigh(D0); } else { writePinLow(D0); diff --git a/keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c b/keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c index e0634d85dc..437233be52 100644 --- a/keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c +++ b/keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c @@ -53,9 +53,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; bool led_update_user(led_t led_state) { - + // Toggle CAPS_LOCK LED normally - + # if LED_PIN_ON_STATE == 0 // invert the whole thing to avoid having to conditionally !led_state.x later led_state.raw = ~led_state.raw; @@ -69,30 +69,30 @@ bool led_update_user(led_t led_state) { } layer_state_t layer_state_set_user(layer_state_t state) { - - uint8_t layer = get_highest_layer(state); - + + uint8_t layer = biton32(state); + #if defined(LED_NUM_LOCK_PIN) && defined(LED_SCROLL_LOCK_PIN) switch (layer) { case 0: - writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE); - writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE); + writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE); + writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE); break; case 1: - writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE); - writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE); + writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE); + writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE); break; case 2: - writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE); - writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE); + writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE); + writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE); break; case 3: - writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE); - writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE); + writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE); + writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE); break; } #endif - return state; + return state; } diff --git a/keyboards/mechlovin/hex6c/config.h b/keyboards/mechlovin/hex6c/config.h index b79b5211c2..d76d271047 100644 --- a/keyboards/mechlovin/hex6c/config.h +++ b/keyboards/mechlovin/hex6c/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C -#define PRODUCT_ID 0x6C01 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechlovin Studio and Hex Keyboard -#define PRODUCT Hex6C - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 21 diff --git a/keyboards/mechlovin/hex6c/info.json b/keyboards/mechlovin/hex6c/info.json index 0d8a6529db..5c01225cd7 100644 --- a/keyboards/mechlovin/hex6c/info.json +++ b/keyboards/mechlovin/hex6c/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "hex-6C", + "keyboard_name": "Hex6C", + "manufacturer": "Mechlovin Studio and Hex Keyboard", "url": "", "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x4D4C", + "pid": "0x6C01", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/infinity875/config.h b/keyboards/mechlovin/infinity875/config.h index 6b6a8147f6..0f81a71f96 100644 --- a/keyboards/mechlovin/infinity875/config.h +++ b/keyboards/mechlovin/infinity875/config.h @@ -19,11 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C // ML -#define PRODUCT_ID 0x0875 -#define DEVICE_VER 0x0001 -#define PRODUCT Infinity87.5 /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/mechlovin/infinity875/info.json b/keyboards/mechlovin/infinity875/info.json index e24c0d1cc2..9c9fe10a10 100644 --- a/keyboards/mechlovin/infinity875/info.json +++ b/keyboards/mechlovin/infinity875/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Infinity87.5", + "manufacturer": "Mechlovin.Studio", "url": "", "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x4D4C", + "pid": "0x0875", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi_split_bs_rshift": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":2, "y":0}, {"label":"0,2", "x":3, "y":0}, {"label":"0,3", "x":4, "y":0}, {"label":"0,4", "x":5, "y":0}, {"label":"0,5", "x":6.5, "y":0}, {"label":"0,6", "x":7.5, "y":0}, {"label":"0,7", "x":8.5, "y":0}, {"label":"0,8", "x":9.5, "y":0}, {"label":"0,9", "x":11, "y":0}, {"label":"0,10", "x":12, "y":0}, {"label":"0,11", "x":13, "y":0}, {"label":"0,12", "x":14, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"0,15", "x":16.25, "y":0}, {"label":"0,16", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x":10, "y":1.25}, {"label":"1,11", "x":11, "y":1.25}, {"label":"1,12", "x":12, "y":1.25}, {"label":"1,13", "x":13, "y":1.25}, {"label":"2,13", "x":14, "y":1.25}, {"label":"1,14", "x":15.25, "y":1.25}, {"label":"1,15", "x":16.25, "y":1.25}, {"label":"1,16", "x":17.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,10", "x":10.5, "y":2.25}, {"label":"2,11", "x":11.5, "y":2.25}, {"label":"2,12", "x":12.5, "y":2.25}, {"label":"3,12", "x":13.5, "y":2.25, "w":1.5}, {"label":"2,14", "x":15.25, "y":2.25}, {"label":"2,15", "x":16.25, "y":2.25}, {"label":"2,16", "x":17.25, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,10", "x":10.75, "y":3.25}, {"label":"3,11", "x":11.75, "y":3.25}, {"label":"3,13", "x":12.75, "y":3.25, "w":2.25}, {"label":"4,0", "x":0, "y":4.25, "w":2.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"4,7", "x":7.25, "y":4.25}, {"label":"4,8", "x":8.25, "y":4.25}, {"label":"4,9", "x":9.25, "y":4.25}, {"label":"4,10", "x":10.25, "y":4.25}, {"label":"4,11", "x":11.25, "y":4.25}, {"label":"4,12", "x":12.25, "y":4.25}, {"label":"4,13", "x":13.25, "y":4.25, "w":1.75}, {"label":"4,15", "x":16.25, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,6", "x":3.75, "y":5.25, "w":6.25}, {"label":"5,10", "x":10, "y":5.25, "w":1.25}, {"label":"5,11", "x":11.25, "y":5.25, "w":1.25}, {"label":"5,12", "x":12.5, "y":5.25, "w":1.25}, {"label":"5,13", "x":13.75, "y":5.25, "w":1.25}, {"label":"5,14", "x":15.25, "y":5.25}, {"label":"5,15", "x":16.25, "y":5.25}, {"label":"5,16", "x":17.25, "y":5.25}] diff --git a/keyboards/mechlovin/infinity88/config.h b/keyboards/mechlovin/infinity88/config.h index edbb628e7b..c6eeb108f9 100644 --- a/keyboards/mechlovin/infinity88/config.h +++ b/keyboards/mechlovin/infinity88/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C // ML -#define PRODUCT_ID 0x8802 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Team.Mechlovin -#define PRODUCT Infinity 88 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/mechlovin/infinity88/info.json b/keyboards/mechlovin/infinity88/info.json index edf91c4687..126e463917 100644 --- a/keyboards/mechlovin/infinity88/info.json +++ b/keyboards/mechlovin/infinity88/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "infinity88", + "keyboard_name": "Infinity 88", + "manufacturer": "Team.Mechlovin", "url": "", "maintainer": "mechlovin", + "usb": { + "vid": "0x4D4C", + "pid": "0x8802", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/infinityce/config.h b/keyboards/mechlovin/infinityce/config.h index 838fc1da7f..1fbb5690d4 100644 --- a/keyboards/mechlovin/infinityce/config.h +++ b/keyboards/mechlovin/infinityce/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C // ML-Mechlovin -#define PRODUCT_ID 0x8801 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Team.Mechlovin -#define PRODUCT Infinity CE /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/mechlovin/infinityce/info.json b/keyboards/mechlovin/infinityce/info.json index 6b3b2f8adf..f85aa21278 100644 --- a/keyboards/mechlovin/infinityce/info.json +++ b/keyboards/mechlovin/infinityce/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Infinity CE", + "manufacturer": "Team.Mechlovin", "url": "", "maintainer": "Team Mechlovin'", + "usb": { + "vid": "0x4D4C", + "pid": "0x8801", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/jay60/config.h b/keyboards/mechlovin/jay60/config.h index 521b8ae0db..b0e3d3bd4b 100644 --- a/keyboards/mechlovin/jay60/config.h +++ b/keyboards/mechlovin/jay60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C -#define PRODUCT_ID 0x0600 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechlovin Studio -#define PRODUCT Jay60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/mechlovin/jay60/info.json b/keyboards/mechlovin/jay60/info.json index d4c0f57dd6..69e336fa31 100644 --- a/keyboards/mechlovin/jay60/info.json +++ b/keyboards/mechlovin/jay60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Jay60", + "manufacturer": "Mechlovin Studio", "url": "", "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x4D4C", + "pid": "0x0600", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/kanu/config.h b/keyboards/mechlovin/kanu/config.h index 3e5c0ee676..880d87a4ac 100644 --- a/keyboards/mechlovin/kanu/config.h +++ b/keyboards/mechlovin/kanu/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C // ML-MechLovin' -#define PRODUCT_ID 0x4B4E // KN-Kanu -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechlovin -#define PRODUCT Kanu - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mechlovin/kanu/info.json b/keyboards/mechlovin/kanu/info.json index 1049ba7d1d..7e4f902bfb 100644 --- a/keyboards/mechlovin/kanu/info.json +++ b/keyboards/mechlovin/kanu/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kanu", + "manufacturer": "Mechlovin", "url": "", "maintainer": "Team Mechlovin'", + "usb": { + "vid": "0x4D4C", + "pid": "0x4B4E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/kay60/config.h b/keyboards/mechlovin/kay60/config.h index ae321a6491..7896a6edf4 100644 --- a/keyboards/mechlovin/kay60/config.h +++ b/keyboards/mechlovin/kay60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C -#define PRODUCT_ID 0x0601 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechlovin Studio -#define PRODUCT Kay60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 @@ -52,6 +45,7 @@ along with this program. If not, see . //#define LED_SCROLL_LOCK_PIN B2 //#define LED_COMPOSE_PIN B3 //#define LED_KANA_PIN B4 +#define LED_PIN_ON_STATE 0 //#define BACKLIGHT_PIN B7 //#define BACKLIGHT_LEVELS 3 diff --git a/keyboards/mechlovin/kay60/info.json b/keyboards/mechlovin/kay60/info.json index adcbc594d4..86298b5582 100644 --- a/keyboards/mechlovin/kay60/info.json +++ b/keyboards/mechlovin/kay60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "kay60", + "keyboard_name": "Kay60", + "manufacturer": "Mechlovin Studio", "url": "", "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x4D4C", + "pid": "0x0601", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/kay60/keymaps/default/keymap.c b/keyboards/mechlovin/kay60/keymaps/default/keymap.c index 10546ece4d..8acd5409f5 100644 --- a/keyboards/mechlovin/kay60/keymaps/default/keymap.c +++ b/keyboards/mechlovin/kay60/keymaps/default/keymap.c @@ -22,8 +22,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_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, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, TO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_MENU, KC_LCTL + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL ), [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/mechlovin/kay60/keymaps/via/keymap.c b/keyboards/mechlovin/kay60/keymaps/via/keymap.c index 34b8cb9822..0bb6219cef 100644 --- a/keyboards/mechlovin/kay60/keymaps/via/keymap.c +++ b/keyboards/mechlovin/kay60/keymaps/via/keymap.c @@ -22,8 +22,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_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, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, TO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_MENU, KC_LCTL + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL ), [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/mechlovin/kay65/config.h b/keyboards/mechlovin/kay65/config.h index cc1b991672..09e841804e 100644 --- a/keyboards/mechlovin/kay65/config.h +++ b/keyboards/mechlovin/kay65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C -#define PRODUCT_ID 0x6502 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Team Mechlovin -#define PRODUCTION Kay65 Rev. 1 - #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mechlovin/kay65/info.json b/keyboards/mechlovin/kay65/info.json index 7afccc81c0..ec96aba032 100644 --- a/keyboards/mechlovin/kay65/info.json +++ b/keyboards/mechlovin/kay65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Kay65", + "keyboard_name": "Kay65 Rev. 1", + "manufacturer": "Team Mechlovin", "url": "", "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x4D4C", + "pid": "0x6502", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/olly/bb/config.h b/keyboards/mechlovin/olly/bb/config.h index 3110a9589c..52b1e77f6a 100644 --- a/keyboards/mechlovin/olly/bb/config.h +++ b/keyboards/mechlovin/olly/bb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C -#define PRODUCT_ID 0xD181 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechlovin.Studio -#define PRODUCT Olly BB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 19 diff --git a/keyboards/mechlovin/olly/bb/info.json b/keyboards/mechlovin/olly/bb/info.json index fbc9bae3eb..c37f167bdb 100644 --- a/keyboards/mechlovin/olly/bb/info.json +++ b/keyboards/mechlovin/olly/bb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Mechlovin Olly", + "keyboard_name": "Olly BB", + "manufacturer": "Mechlovin.Studio", "url": "", "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x4D4C", + "pid": "0xD181", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/olly/jf/config.h b/keyboards/mechlovin/olly/jf/config.h index f1c40cb365..d9d839b3b8 100644 --- a/keyboards/mechlovin/olly/jf/config.h +++ b/keyboards/mechlovin/olly/jf/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C -#define PRODUCT_ID 0xD180 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mechlovin.Studio -#define PRODUCT Olly JF - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 19 diff --git a/keyboards/mechlovin/olly/jf/info.json b/keyboards/mechlovin/olly/jf/info.json index ab57d31787..96ea429cb9 100644 --- a/keyboards/mechlovin/olly/jf/info.json +++ b/keyboards/mechlovin/olly/jf/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Mechlovin Olly", + "keyboard_name": "Olly JF", + "manufacturer": "Mechlovin.Studio", "url": "", "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x4D4C", + "pid": "0xD180", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/pisces/config.h b/keyboards/mechlovin/pisces/config.h index 48a94eb262..217c63f7e4 100644 --- a/keyboards/mechlovin/pisces/config.h +++ b/keyboards/mechlovin/pisces/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C // ML-Mechlovin -#define PRODUCT_ID 0x6501 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Team.Mechlovin -#define PRODUCT Pisces65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mechlovin/pisces/info.json b/keyboards/mechlovin/pisces/info.json index 57da5b4a0e..20b521636f 100644 --- a/keyboards/mechlovin/pisces/info.json +++ b/keyboards/mechlovin/pisces/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "pisces", + "keyboard_name": "Pisces65", + "manufacturer": "Team.Mechlovin", "url": "", "maintainer": "mechlovin", + "usb": { + "vid": "0x4D4C", + "pid": "0x6501", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/serratus/config.h b/keyboards/mechlovin/serratus/config.h index 0bb9ccbea9..965c34bbd0 100644 --- a/keyboards/mechlovin/serratus/config.h +++ b/keyboards/mechlovin/serratus/config.h @@ -19,11 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C // ML -#define PRODUCT_ID 0x0870 -#define DEVICE_VER 0x0001 -#define PRODUCT Serratus Rev.1 /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/mechlovin/serratus/info.json b/keyboards/mechlovin/serratus/info.json index 209ee4a330..fe891d5987 100644 --- a/keyboards/mechlovin/serratus/info.json +++ b/keyboards/mechlovin/serratus/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Serratus", + "keyboard_name": "Serratus Rev.1", + "manufacturer": "Mechlovin Studio", "url": "", "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x4D4C", + "pid": "0x0870", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/th1800/config.h b/keyboards/mechlovin/th1800/config.h index f8c4567825..423af0bc14 100644 --- a/keyboards/mechlovin/th1800/config.h +++ b/keyboards/mechlovin/th1800/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C // ML-Mechlovin -#define PRODUCT_ID 0x1800 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Team Mechlovin -#define PRODUCT th1800 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/mechlovin/th1800/info.json b/keyboards/mechlovin/th1800/info.json index 8efddf61a1..535903586c 100644 --- a/keyboards/mechlovin/th1800/info.json +++ b/keyboards/mechlovin/th1800/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "th-1800", + "manufacturer": "Team Mechlovin", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4D4C", + "pid": "0x1800", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechlovin/tmkl/config.h b/keyboards/mechlovin/tmkl/config.h index 9a1d865e29..ad5cd60338 100644 --- a/keyboards/mechlovin/tmkl/config.h +++ b/keyboards/mechlovin/tmkl/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4C // ML -#define PRODUCT_ID 0xC601 // Commissions 60v1 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Team Mechlovin -#define PRODUCT TMKL - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/mechlovin/tmkl/info.json b/keyboards/mechlovin/tmkl/info.json index b57ea89fa7..80922903ce 100644 --- a/keyboards/mechlovin/tmkl/info.json +++ b/keyboards/mechlovin/tmkl/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "tmkl", + "keyboard_name": "TMKL", + "manufacturer": "Team Mechlovin", "maintainer": "Team Mechlovin", + "usb": { + "vid": "0x4D4C", + "pid": "0xC601", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechlovin/zed60/config.h b/keyboards/mechlovin/zed60/config.h new file mode 100644 index 0000000000..7d096d3e96 --- /dev/null +++ b/keyboards/mechlovin/zed60/config.h @@ -0,0 +1,79 @@ +/* +Copyright 2022 Mechlovin' + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B10, B2, B1, B0, A2 } +#define MATRIX_COL_PINS { A10, A3, A9, A8, B15, B14, B13, B12, B5, B4, B3, A15, B7, B6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define LED_CAPS_LOCK_PIN A4 + +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN A7 +#define RGBLED_NUM 22 +#define RGBLIGHT_LIMIT_VAL 255 + +#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 RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + +# define RGBLIGHT_EFFECT_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_EFFECT_KNIGHT +# define RGBLIGHT_EFFECT_CHRISTMAS +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLIGHT_EFFECT_RGB_TEST +# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/mechwild/waka60/f411/eeprom/halconf.h b/keyboards/mechlovin/zed60/halconf.h similarity index 92% rename from keyboards/mechwild/waka60/f411/eeprom/halconf.h rename to keyboards/mechlovin/zed60/halconf.h index b57977316a..ccf7447285 100644 --- a/keyboards/mechwild/waka60/f411/eeprom/halconf.h +++ b/keyboards/mechlovin/zed60/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Kyle McCreery +/* Copyright 2022 QMK * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ #pragma once -#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE #include_next diff --git a/keyboards/mechlovin/zed60/info.json b/keyboards/mechlovin/zed60/info.json new file mode 100644 index 0000000000..11c3e87247 --- /dev/null +++ b/keyboards/mechlovin/zed60/info.json @@ -0,0 +1,156 @@ +{ + "keyboard_name": "Zed60", + "manufacturer": "Mechlovin Studio", + "url": "", + "maintainer": "Mechlovin' Studio", + "usb": { + "vid": "0x4D4C", + "pid": "0x0602", + "device_version": "0.0.1" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" + }, + "layouts": { + "LAYOUT_60_ansi_split_bs_rshift": { + "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.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 2.75}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/mechlovin/zed60/keymaps/default/keymap.c b/keyboards/mechlovin/zed60/keymaps/default/keymap.c new file mode 100644 index 0000000000..d71ba8685e --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 Mechlovin' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define LT1_CAP LT(1, KC_CAPS) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_split_bs_rshift( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PENT, + _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/mechlovin/zed60/keymaps/default/readme.md b/keyboards/mechlovin/zed60/keymaps/default/readme.md new file mode 100644 index 0000000000..c7d59d9829 --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Zed60 diff --git a/keyboards/mechlovin/zed60/keymaps/via/keymap.c b/keyboards/mechlovin/zed60/keymaps/via/keymap.c new file mode 100644 index 0000000000..8b3096d780 --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/via/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2022 Mechlovin' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define LT1_CAP LT(1, KC_CAPS) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_split_bs_rshift( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, + 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PENT, + _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/mechlovin/zed60/keymaps/via/readme.md b/keyboards/mechlovin/zed60/keymaps/via/readme.md new file mode 100644 index 0000000000..b05c87e476 --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for Zed60 diff --git a/keyboards/mechlovin/zed60/keymaps/via/rules.mk b/keyboards/mechlovin/zed60/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mechwild/waka60/f411/eeprom/mcuconf.h b/keyboards/mechlovin/zed60/mcuconf.h similarity index 88% rename from keyboards/mechwild/waka60/f411/eeprom/mcuconf.h rename to keyboards/mechlovin/zed60/mcuconf.h index da43021663..0a9c3ca2c5 100644 --- a/keyboards/mechwild/waka60/f411/eeprom/mcuconf.h +++ b/keyboards/mechlovin/zed60/mcuconf.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Kyle McCreery +/* Copyright 2022 QMK * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,5 +18,6 @@ #include_next -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/mechlovin/zed60/readme.md b/keyboards/mechlovin/zed60/readme.md new file mode 100644 index 0000000000..f740a421a8 --- /dev/null +++ b/keyboards/mechlovin/zed60/readme.md @@ -0,0 +1,27 @@ +# zed60 + +![zed60](https://i.imgur.com/KyTpfmMl.png) + +Zed60 PCB, 60% keyboard PCB. +* Keyboard Maintainer: [Mechlovin'](https://mechlovin.studio) +* Hardware Supported: Zed60, APM32F103 +* Hardware Availability: [Mechlovin'](https://mechlovin.studio) + +Make example for this keyboard (after setting up your build environment): + + make mechlovin/zed60:default + +Flashing example for this keyboard: + + make mechlovin/zed60: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 `RESET` 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/mechlovin/zed60/rules.mk b/keyboards/mechlovin/zed60/rules.mk new file mode 100644 index 0000000000..d90d20b776 --- /dev/null +++ b/keyboards/mechlovin/zed60/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino + + +# 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 = yes # 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 = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +WS2812_DRIVER = spi diff --git a/keyboards/mechlovin/zed60/zed60.c b/keyboards/mechlovin/zed60/zed60.c new file mode 100644 index 0000000000..fb0c44ec3d --- /dev/null +++ b/keyboards/mechlovin/zed60/zed60.c @@ -0,0 +1,17 @@ +/* Copyright 2022 Mechlovin' Studio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "zed60.h" diff --git a/keyboards/mechlovin/zed60/zed60.h b/keyboards/mechlovin/zed60/zed60.h new file mode 100644 index 0000000000..36ffa18330 --- /dev/null +++ b/keyboards/mechlovin/zed60/zed60.h @@ -0,0 +1,66 @@ +/* Copyright 2022 Mechlovin' + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" +#define XXX KC_NO + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └───────┘ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌──────────┐ + │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3C │ 2.75u RShift + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘ + * │40 │41 │42 │46 │4A │4B │4C │4D │ Standard + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ + +#define LAYOUT_60_ansi_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }, \ +} + +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }, \ +} + diff --git a/keyboards/mechstudio/dawn/config.h b/keyboards/mechstudio/dawn/config.h index ebfc44ee74..362e2297b2 100644 --- a/keyboards/mechstudio/dawn/config.h +++ b/keyboards/mechstudio/dawn/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D53 -#define PRODUCT_ID 0x0004 -#define DEVICE_VER 0x0004 -#define MANUFACTURER Mech Studio -#define PRODUCT Dawn - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/mechstudio/dawn/info.json b/keyboards/mechstudio/dawn/info.json index 6ab1540d35..c40496ae49 100644 --- a/keyboards/mechstudio/dawn/info.json +++ b/keyboards/mechstudio/dawn/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Dawn", + "manufacturer": "Mech Studio", "url": "https://mech.studio/projects/dawn/", "maintainer": "dejaeghered", + "usb": { + "vid": "0x4D53", + "pid": "0x0004", + "device_version": "0.0.4" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechstudio/ud_40_ortho/config.h b/keyboards/mechstudio/ud_40_ortho/config.h index 9520fdd396..e83484b2da 100644 --- a/keyboards/mechstudio/ud_40_ortho/config.h +++ b/keyboards/mechstudio/ud_40_ortho/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D53 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Mech Studio -#define PRODUCT UD_40 Ortholinear - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/mechstudio/ud_40_ortho/info.json b/keyboards/mechstudio/ud_40_ortho/info.json index f0bc1524a8..7f36d7d7fc 100644 --- a/keyboards/mechstudio/ud_40_ortho/info.json +++ b/keyboards/mechstudio/ud_40_ortho/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "UD_40 ortho", + "keyboard_name": "UD_40 Ortholinear", + "manufacturer": "Mech Studio", "url": "https://mech.studio/projects/ud_40/", "maintainer": "dejaeghered", + "usb": { + "vid": "0x4D53", + "pid": "0x0002", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_ortho_4x12": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] diff --git a/keyboards/mechwild/bbs/bbs.c b/keyboards/mechwild/bbs/bbs.c new file mode 100644 index 0000000000..cbfaa5ce59 --- /dev/null +++ b/keyboards/mechwild/bbs/bbs.c @@ -0,0 +1,22 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "bbs.h" + +#ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { return false; } + switch (index) { + case 0: + if(active) { tap_code(KC_CLCK); } + break; + break; + } + return true; +} +#endif + +void eeconfig_init_kb() { + steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT + eeconfig_init_user(); +} \ No newline at end of file diff --git a/keyboards/mechwild/bbs/bbs.h b/keyboards/mechwild/bbs/bbs.h new file mode 100644 index 0000000000..2088b68646 --- /dev/null +++ b/keyboards/mechwild/bbs/bbs.h @@ -0,0 +1,26 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B,\ + k23, k24, k25, k26, k27, k28 \ +) { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k16, k17, k18, k19, k1A, k1B }, \ + { k26, k27, k28, k23, k24, k25 } \ +} diff --git a/keyboards/mechwild/bbs/config.h b/keyboards/mechwild/bbs/config.h new file mode 100644 index 0000000000..c7b1880fa0 --- /dev/null +++ b/keyboards/mechwild/bbs/config.h @@ -0,0 +1,89 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 6 + +/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */ +#define DIP_SWITCH_PINS { A0 } + +/* status light pins using the on board LED for the blackpill */ +#define LED_CAPS_LOCK_PIN C13 +#define LED_PIN_ON_STATE 0 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B12, B10, B13, B1, B14 } +#define MATRIX_COL_PINS { B0, A7, A6, A5, A4, A3 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/mechwild/bbs/info.json b/keyboards/mechwild/bbs/info.json new file mode 100644 index 0000000000..a6b6747df6 --- /dev/null +++ b/keyboards/mechwild/bbs/info.json @@ -0,0 +1,49 @@ +{ + "keyboard_name": "BB Steno", + "manufacturer": "MechWild", + "maintainer": "kylemccreery", + "url": "https://mechwild.com/product/bb-steno/", + "usb": { + "vid": "0x6D77", + "pid": "0x170E", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"k00", "x":0, "y":0.5}, + {"label":"k01", "x":1, "y":0.5}, + {"label":"k02", "x":2, "y":0.25}, + {"label":"k03", "x":3, "y":0.125}, + {"label":"k04", "x":4, "y":0.25}, + {"label":"k05", "x":5, "y":0.25}, + {"label":"k06", "x":6.75, "y":0.25}, + {"label":"k07", "x":7.75, "y":0.25}, + {"label":"k08", "x":8.75, "y":0.125}, + {"label":"k09", "x":9.75, "y":0.25}, + {"label":"k0A", "x":10.75, "y":0.5}, + {"label":"k0B", "x":11.75, "y":0.5}, + + {"label":"k10", "x":0, "y":1.5}, + {"label":"k11", "x":1, "y":1.5}, + {"label":"k12", "x":2, "y":1.25}, + {"label":"k13", "x":3, "y":1.125}, + {"label":"k14", "x":4, "y":1.25}, + {"label":"k15", "x":5, "y":1.25}, + {"label":"k16", "x":6.75, "y":1.25}, + {"label":"k17", "x":7.75, "y":1.25}, + {"label":"k18", "x":8.75, "y":1.125}, + {"label":"k19", "x":9.75, "y":1.25}, + {"label":"k1A", "x":10.75, "y":1.5}, + {"label":"k1B", "x":11.75, "y":1.5}, + + {"label":"k23", "x":2.75, "y":3.25, "h":1.5}, + {"label":"k24", "x":3.75, "y":3.25, "h":1.5}, + {"label":"k25", "x":4.75, "y":3, "h":1.5}, + {"label":"k26", "x":7, "y":3, "h":1.5}, + {"label":"k27", "x":8, "y":3.25, "h":1.5}, + {"label":"k28", "x":9, "y":3.25, "h":1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/mechwild/bbs/keymaps/default/keymap.c b/keyboards/mechwild/bbs/keymaps/default/keymap.c new file mode 100644 index 0000000000..a37401eca4 --- /dev/null +++ b/keyboards/mechwild/bbs/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "keymap_steno.h" + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1 +}; + +/* + * k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B,\ + * k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B,\ + * k23, k24, k25, k26, k27, k28 \ + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + STN_RES1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, + STN_RES2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, + STN_A, STN_O, STN_N1, STN_N2, STN_E, STN_U + ), + [_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 + ) +}; diff --git a/keyboards/mechwild/bbs/readme.md b/keyboards/mechwild/bbs/readme.md new file mode 100644 index 0000000000..b13e8fb54e --- /dev/null +++ b/keyboards/mechwild/bbs/readme.md @@ -0,0 +1,27 @@ +# BB Steno (BBS) + +![BBS](https://i.imgur.com/XIjlzKOh.png) + +A bare-bones stenography keyboard. No bells or whistles. Simple, cheap, effective, steno. + +* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery) +* Hardware Supported: BBS v0.1 +* Hardware Availability: [BBS on MechWild](https://mechwild.com/product/bb-steno/) + +Make example for this keyboard (after setting up your build environment): + + make mechwild/bbs:default + +Flashing example for this keyboard: + + make mechwild/bbs: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 (assigned to the top left key) and plug in the keyboard while holding it. +* **Physical reset button**: Press and hold the boot0 button on the blackpill, tap and release the nrst button on the blackpill, then release the boot0 button. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available. diff --git a/keyboards/mechwild/bbs/rules.mk b/keyboards/mechwild/bbs/rules.mk new file mode 100644 index 0000000000..0e59cba428 --- /dev/null +++ b/keyboards/mechwild/bbs/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F401 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +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 +DIP_SWITCH_ENABLE = yes # Dip Switch Enabled + +# Necessary for stenography functionality +STENO_ENABLE = yes # Enable stenography endpoint +NKRO_ENABLE = yes # Enable N-Key Rollover +KEYBOARD_SHARED_EP = yes # Needed to free up an endpoint in blackpill \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/config.h b/keyboards/mechwild/mercutio/config.h index 2c318848c5..64dee1bf31 100755 --- a/keyboards/mechwild/mercutio/config.h +++ b/keyboards/mechwild/mercutio/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D77 // mw = "MechWild" -#define PRODUCT_ID 0x1703 -#define DEVICE_VER 0x0100 -#define MANUFACTURER MechWild -#define PRODUCT Mercutio - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 7 @@ -46,6 +39,9 @@ /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW +/* Define custom font */ +#define OLED_FONT_H "lib/mercutiofont.c" + /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 @@ -53,4 +49,4 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE \ No newline at end of file +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/mechwild/mercutio/info.json b/keyboards/mechwild/mercutio/info.json index cc663f2215..f3323ac48f 100644 --- a/keyboards/mechwild/mercutio/info.json +++ b/keyboards/mechwild/mercutio/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MechWild Mercutio", + "keyboard_name": "Mercutio", + "manufacturer": "MechWild", "url": "mechwild.com", "maintainer": "kylemccreery", + "usb": { + "vid": "0x6D77", + "pid": "0x1703", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"encoder", "x":12, "y":0}, {"label":"1.5u", "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}, {"label":"1.5u", "x":11.5, "y":1, "w":1.5}, {"label":"1.75u", "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}, {"label":"1.25u", "x":11.75, "y":2, "w":1.25}, {"label":"1.25u", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"label":"1.75u", "x":11.25, "y":3, "w":1.75},{"label":"1.25u", "x":0, "y":4, "w":1.25}, {"label":"1u", "x":1.25, "y":4}, {"label":"1.25u", "x":2.25, "y":4, "w":1.25}, {"label":"2.25u", "x":3.5, "y":4, "w":2.25}, {"label":"1u", "x":5.75, "y":4}, {"label":"2.75u", "x":6.75, "y":4, "w":2.75}, {"label":"1.25u", "x":9.5, "y":4, "w":1.25}, {"label":"1u", "x":10.75, "y":4}, {"label":"1.25u", "x":11.75, "y":4, "w":1.25}] diff --git a/keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c b/keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c index 6062b8c73d..8ed7f60dd7 100644 --- a/keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c @@ -65,19 +65,13 @@ 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 ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - } - return true; -} +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + }; #endif #ifdef OLED_ENABLE diff --git a/keyboards/mechwild/mercutio/keymaps/bongocat/rules.mk b/keyboards/mechwild/mercutio/keymaps/bongocat/rules.mk index a475e2b6cd..74290f3abe 100644 --- a/keyboards/mechwild/mercutio/keymaps/bongocat/rules.mk +++ b/keyboards/mechwild/mercutio/keymaps/bongocat/rules.mk @@ -1,3 +1,4 @@ WPM_ENABLE = yes VIA_ENABLE = yes -MOUSEKEY_ENABLE = no \ No newline at end of file +MOUSEKEY_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechwild/mercutio/keymaps/default/config.h b/keyboards/mechwild/mercutio/keymaps/default/config.h index 235effacd7..b428d6e260 100644 --- a/keyboards/mechwild/mercutio/keymaps/default/config.h +++ b/keyboards/mechwild/mercutio/keymaps/default/config.h @@ -15,6 +15,3 @@ */ #pragma once - -/* Define custom font */ -#define OLED_FONT_H "keyboards/mechwild/mercutio/lib/mercutiofont.c" \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/default/keymap.c b/keyboards/mechwild/mercutio/keymaps/default/keymap.c index 8f433292b5..f5066996c0 100644 --- a/keyboards/mechwild/mercutio/keymaps/default/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/default/keymap.c @@ -46,38 +46,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 ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - } - return true; -} -#endif - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand -} - -static void render_name(void) { - static const char PROGMEM mercutio_name[] = { - 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6, - 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, 0x00 - }; - oled_write_P(mercutio_name, false); -} - -bool oled_task_user(void) { - render_name(); - return false; -} +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; #endif diff --git a/keyboards/mechwild/mercutio/keymaps/default/rules.mk b/keyboards/mechwild/mercutio/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/mechwild/mercutio/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechwild/mercutio/keymaps/fancy/config.h b/keyboards/mechwild/mercutio/keymaps/fancy/config.h index 235effacd7..b428d6e260 100644 --- a/keyboards/mechwild/mercutio/keymaps/fancy/config.h +++ b/keyboards/mechwild/mercutio/keymaps/fancy/config.h @@ -15,6 +15,3 @@ */ #pragma once - -/* Define custom font */ -#define OLED_FONT_H "keyboards/mechwild/mercutio/lib/mercutiofont.c" \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/fancy/keymap.c b/keyboards/mechwild/mercutio/keymaps/fancy/keymap.c index 96457be6d2..ca1ac03d2b 100755 --- a/keyboards/mechwild/mercutio/keymaps/fancy/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/fancy/keymap.c @@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } } } - return true; + return false; } #endif diff --git a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c index 36dcd4816f..50b1b6471c 100644 --- a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c @@ -160,7 +160,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { tap_code(KC_VOLD); } } - return true; + return false; } #endif @@ -292,7 +292,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { oled_write(get_u8_str(get_current_wpm(), ' '), false); */ - return true; + return false; } void suspend_power_down_user(void) { diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/config.h b/keyboards/mechwild/mercutio/keymaps/jonavin/config.h index 09909e28c9..1722a2c25c 100644 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/config.h +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/config.h @@ -17,9 +17,6 @@ #pragma once -/* Define custom font */ -#define OLED_FONT_H "lib/mercutiofont.c" - #define TAPPING_TOGGLE 2 // TT set to two taps diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c index 869a9f73ab..5447279e56 100755 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c @@ -17,7 +17,6 @@ #include QMK_KEYBOARD_H -#include #include "jonavin.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -54,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { Defaults never changes if no encoder present to change it */ typedef struct { - char keydesc[6]; // this will be displayed on OLED + char keydesc[6]; // this will be displayed on OLED uint16_t keycode; // this is the keycode that will be sent when activted } keycodedescType; @@ -69,7 +68,7 @@ static const keycodedescType PROGMEM keyselection[] = { {"C-A-D", KC_CAD}, // Ctrl-Alt-Del {"AltF4", KC_AF4}, {"PLAY", KC_MEDIA_PLAY_PAUSE}, - {"RESET", RESET}, // firmware flash mode + {"FLASH", RESET}, // firmware flash mode }; #define MAX_KEYSELECTION sizeof(keyselection)/sizeof(keyselection[0]) @@ -153,7 +152,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } break; } - return true; + return false; } #endif @@ -201,15 +200,13 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } render_logo(); oled_set_cursor(8,2); - char fn_str[12]; switch(get_selected_layer()){ case 0: oled_write_P(PSTR("BASE"), false); break; case 1: - sprintf(fn_str, "FN %5s", selectedkey_rec.keydesc); - oled_write(fn_str, false); - //oled_write_P(PSTR("FN "), false); + oled_write_P(PSTR("FN "), false); + oled_write(selectedkey_rec.keydesc, false); break; case 2: oled_write_P(PSTR("LOWER"), false); @@ -230,8 +227,8 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { oled_write_P(PSTR("Temp BASE"), false); break; case 1: - sprintf(fn_str, "Temp FN %5s", selectedkey_rec.keydesc); - oled_write(fn_str, false); + oled_write_P(PSTR("Temp FN "), false); + oled_write(selectedkey_rec.keydesc, false); break; case 2: oled_write_P(PSTR("Temp LOWER"), false); @@ -246,12 +243,11 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { led_t led_state = host_keyboard_led_state(); oled_set_cursor(8,0); uint8_t wpm_count; - char wpm_str[10]; wpm_count=get_current_wpm(); if (wpm_count > 020) { // how wpm when > 20 - sprintf(wpm_str, " WPM: %03d", wpm_count); - oled_write(wpm_str, false); + oled_write_P(PSTR(" WPM: "), false); + oled_write(get_u8_str(wpm_count, ' '), false); } else { oled_write_P(PSTR(" JONAVIN "), false); // otherwise display keymap name } diff --git a/keyboards/mechwild/mercutio/keymaps/via/config.h b/keyboards/mechwild/mercutio/keymaps/via/config.h index 235effacd7..b428d6e260 100644 --- a/keyboards/mechwild/mercutio/keymaps/via/config.h +++ b/keyboards/mechwild/mercutio/keymaps/via/config.h @@ -15,6 +15,3 @@ */ #pragma once - -/* Define custom font */ -#define OLED_FONT_H "keyboards/mechwild/mercutio/lib/mercutiofont.c" \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/via/keymap.c b/keyboards/mechwild/mercutio/keymaps/via/keymap.c index 8f433292b5..f5066996c0 100755 --- a/keyboards/mechwild/mercutio/keymaps/via/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/via/keymap.c @@ -46,38 +46,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 ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - } - return true; -} -#endif - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand -} - -static void render_name(void) { - static const char PROGMEM mercutio_name[] = { - 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6, - 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, 0x00 - }; - oled_write_P(mercutio_name, false); -} - -bool oled_task_user(void) { - render_name(); - return false; -} +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; #endif diff --git a/keyboards/mechwild/mercutio/keymaps/via/rules.mk b/keyboards/mechwild/mercutio/keymaps/via/rules.mk index 16d33cd89f..f1adcab005 100644 --- a/keyboards/mechwild/mercutio/keymaps/via/rules.mk +++ b/keyboards/mechwild/mercutio/keymaps/via/rules.mk @@ -1,2 +1,2 @@ VIA_ENABLE = yes - +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechwild/mercutio/mercutio.c b/keyboards/mechwild/mercutio/mercutio.c index e4f4377f32..890bf869de 100755 --- a/keyboards/mechwild/mercutio/mercutio.c +++ b/keyboards/mechwild/mercutio/mercutio.c @@ -16,3 +16,44 @@ #include "mercutio.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if(!encoder_update_user(index, clockwise)) { + return false; + } + + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } + return true; +} +#endif + +#ifdef OLED_ENABLE +static const char PROGMEM mercutio_name[] = { + 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6, + 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, 0x00 +}; + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand +} + +bool oled_task_kb(void) { + if(!oled_task_user()) { + return false; + } + + oled_write_P(mercutio_name, false); + return true; +} +#endif diff --git a/keyboards/mechwild/mokulua/info.json b/keyboards/mechwild/mokulua/info.json deleted file mode 100644 index 0be62ecf80..0000000000 --- a/keyboards/mechwild/mokulua/info.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "keyboard_name": "Mokulua", - "url": "https://mechwild.com", - "maintainer": "kylemccreery", - "layouts": { - "LAYOUT": { - "layout": [{"x":0.5, "y":0}, {"x":1.5, "y":0}, {"x":15.75, "y":0}, {"x":16.75, "y":0}, {"x":0.47, "y":1, "w":1.5}, {"x":1.97, "y":1}, {"x":15.5, "y":1}, {"x":16.5, "y":1, "w":1.5}, {"x":0.37, "y":2, "w":1.75}, {"x":2.12, "y":2}, {"x":15.85, "y":2}, {"x":16.85, "y":2, "w":1.75}, {"x":0.22, "y":3, "w":1.25}, {"x":1.47, "y":3}, {"x":2.47, "y":3}, {"x":9.43, "y":3}, {"x":15.5, "y":3}, {"x":16.5, "y":3}, {"x":17.5, "y":3, "w":1.25}, {"x":0.47, "y":4}, {"x":1.47, "y":4}, {"x":2.47, "y":4}, {"x":9.68, "y":4}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}, {"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":0.5, "y":2.25}, {"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":0.75, "y":3.25}, {"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":1.25, "y":4.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.57, "y":4.25}, {"x":1, "y":5.25, "w":1.25}, {"x":2.25, "y":5.25, "w":1.5}, {"x":3.75, "y":5.25, "w":1.5}, {"x":5.32, "y":5.25}, {"x":-1.5, "y":2}, {"x":-0.5, "y":2}, {"x":0.5, "y":2}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":-1.0, "y":3}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":-1.75, "y":4}, {"x":-0.75, "y":4}, {"x":0.25, "y":4}, {"x":1.25, "y":4}, {"x":2.25, "y":4}, {"x":-1.25, "y":5}, {"x":-0.25, "y":5}, {"x":0.75, "y":5}, {"x":1.75, "y":5}, {"x":-1.25, "y":6, "w":1.5}, {"x":0.25, "y":6, "w":1.5}, {"x":1.75, "y":6, "w":1.25}] - } - } -} diff --git a/keyboards/mechwild/mokulua/mirrored/config.h b/keyboards/mechwild/mokulua/mirrored/config.h new file mode 100644 index 0000000000..599d0543e4 --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/config.h @@ -0,0 +1,89 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* Key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 6 + +/* Key matrix pins */ +#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 } +#define UNUSED_PINS + +/* Encoder pins */ +#define ENCODERS_PAD_A { D2 } +#define ENCODERS_PAD_B { B2 } + +/* Encoder resolution */ +#define ENCODER_RESOLUTION 4 +#define TAP_CODE_DELAY 10 + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define OLED_FONT_H "keyboards/mechwild/mokulua/glcdfont.c" + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D3 +#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 RGB_DI_PIN B6 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== 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 +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/mechwild/mokulua/mirrored/info.json b/keyboards/mechwild/mokulua/mirrored/info.json new file mode 100644 index 0000000000..15ed63a858 --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/info.json @@ -0,0 +1,93 @@ +{ + "keyboard_name": "Mokulua Mirrored", + "manufacturer": "MechWild", + "url": "https://mechwild.com", + "maintainer": "kylemccreery", + "usb": { + "vid": "0x6D77", + "pid": "0x170C", + "device_version": "1.0.3" + }, + "layouts": { + "LAYOUT_mirrored": { + "layout": [ + {"label":"Esc", "x":0.62, "y":0}, + {"label":"1!", "x":1.62, "y":0}, + {"label":"2@", "x":2.62, "y":0}, + {"label":"3#", "x":3.62, "y":0}, + {"label":"4$", "x":4.62, "y":0}, + {"label":"5%", "x":5.62, "y":0}, + {"label":"6^", "x":6.62, "y":0}, + {"label":"7&", "x":10.12, "y":0}, + {"label":"8*", "x":11.12, "y":0}, + {"label":"9(", "x":12.12, "y":0}, + {"label":"0)", "x":13.12, "y":0}, + {"label":"-_", "x":14.12, "y":0}, + {"label":"Backspace", "x":15.12, "y":0}, + {"label":"Backspace", "x":16.12, "y":0}, + + {"label":"Tab", "x":0.37, "y":1, "w":1.5}, + {"label":"Q", "x":1.87, "y":1}, + {"label":"W", "x":2.87, "y":1}, + {"label":"E", "x":3.87, "y":1}, + {"label":"R", "x":4.87, "y":1}, + {"label":"T", "x":5.87, "y":1}, + {"label":"Y", "x":6.87, "y":1}, + {"label":"Y", "x":9.87, "y":1}, + {"label":"U", "x":10.87, "y":1}, + {"label":"I", "x":11.87, "y":1}, + {"label":"O", "x":12.87, "y":1}, + {"label":"P", "x":13.87, "y":1}, + {"label":"]}", "x":14.87, "y":1}, + {"label":"\\|", "x":15.87, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0.25, "y":2, "w":1.75}, + {"label":"A", "x":2, "y":2}, + {"label":"S", "x":3, "y":2}, + {"label":"D", "x":4, "y":2}, + {"label":"F", "x":5, "y":2}, + {"label":"G", "x":6, "y":2}, + {"label":"H", "x":7, "y":2}, + {"label":";:", "x":9.75, "y":2}, + {"label":"H", "x":10.75, "y":2}, + {"label":"J", "x":11.75, "y":2}, + {"label":"K", "x":12.75, "y":2}, + {"label":"L", "x":13.75, "y":2}, + {"label":"'\"", "x":14.75, "y":2}, + {"label":"Enter", "x":15.75, "y":2, "w":1.75}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"Mute", "x":7.37, "y":3}, + {"label":"Mute", "x":9.37, "y":3}, + {"label":"B", "x":10.5, "y":3}, + {"label":"N", "x":11.5, "y":3}, + {"label":"M", "x":12.5, "y":3}, + {"label":",<", "x":13.5, "y":3}, + {"label":".>", "x":14.5, "y":3}, + {"label":"\u2191", "x":15.5, "y":3}, + {"label":"Shift", "x":16.5, "y":3, "w":1.25}, + + {"label":"Ctrl", "x":0.25, "y":4}, + {"label":"GUI", "x":1.25, "y":4}, + {"label":"Alt", "x":2.25, "y":4}, + {"label":"Fn2", "x":3.5, "y":4, "w":1.25}, + {"label":"Fn1/Space", "x":4.94, "y":4, "h":1.5}, + {"label":"Fn2/Space", "x":5.94, "y":4, "h":1.5}, + {"label":"RGB Mode -", "x":7.13, "y":4}, + {"label":"RGB Mode +", "x":9.62, "y":4}, + {"label":"Fn2/Space", "x":10.81, "y":4, "h":1.5}, + {"label":"Fn1/Space", "x":11.81, "y":4, "h":1.5}, + {"label":"Fn2", "x":13, "y":4, "w":1.25}, + {"label":"\u2190", "x":14.5, "y":4}, + {"label":"\u2193", "x":15.5, "y":4}, + {"label":"\u2192", "x":16.5, "y":4} + ] + } + } +} diff --git a/keyboards/mechwild/mokulua/mirrored/keymaps/default/keymap.c b/keyboards/mechwild/mokulua/mirrored/keymaps/default/keymap.c new file mode 100644 index 0000000000..90b457889a --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define FN1_SPC LT(1, KC_SPC) +#define FN2_SPC LT(2, KC_SPC) + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, _______, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, KC_BSLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_SCLN, 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_MUTE, KC_MUTE, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(2), FN1_SPC, FN2_SPC, RGB_RMOD, RGB_MOD, FN2_SPC, FN1_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + [_FN2] = LAYOUT( + _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/mechwild/mokulua/mirrored/keymaps/default/readme.md b/keyboards/mechwild/mokulua/mirrored/keymaps/default/readme.md new file mode 100644 index 0000000000..727105dcba --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Mokulua using a mirrored right-half diff --git a/keyboards/mechwild/mokulua/mirrored/keymaps/via/keymap.c b/keyboards/mechwild/mokulua/mirrored/keymaps/via/keymap.c new file mode 100644 index 0000000000..90b457889a --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define FN1_SPC LT(1, KC_SPC) +#define FN2_SPC LT(2, KC_SPC) + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, _______, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, KC_BSLS, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_SCLN, 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_MUTE, KC_MUTE, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(2), FN1_SPC, FN2_SPC, RGB_RMOD, RGB_MOD, FN2_SPC, FN1_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + [_FN2] = LAYOUT( + _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/mechwild/mokulua/mirrored/keymaps/via/readme.md b/keyboards/mechwild/mokulua/mirrored/keymaps/via/readme.md new file mode 100644 index 0000000000..37aca6eac7 --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for Mokulua using a mirrored right-half diff --git a/keyboards/mechwild/mokulua/mirrored/keymaps/via/rules.mk b/keyboards/mechwild/mokulua/mirrored/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mechwild/mokulua/mirrored/mirrored.c b/keyboards/mechwild/mokulua/mirrored/mirrored.c new file mode 100644 index 0000000000..6b5410642a --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/mirrored.c @@ -0,0 +1,82 @@ +// Copyright 2022 Kyle McCreery (@Kyle McCreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "mirrored.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + case 1: + if (clockwise) { + tap_code(KC_PGUP); + } else { + tap_code(KC_PGDN); + } + break; + + } + return true; +} +#endif + +#ifdef OLED_ENABLE + oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; // flips the display 270 degrees + } + + static void render_logo(void) { // Render MechWild "MW" Logo + static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; + static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; + static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; + static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; + oled_set_cursor(0,0); + oled_write_P(logo_1, false); + oled_set_cursor(0,1); + oled_write_P(logo_2, false); + oled_set_cursor(0,2); + oled_write_P(logo_3, false); + oled_set_cursor(0,3); + oled_write_P(logo_4, false); + } + bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_logo(); + oled_set_cursor(0,6); + + oled_write_ln_P(PSTR("Layer"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_ln_P(PSTR("Base"), false); + break; + case 1: + oled_write_ln_P(PSTR("FN 1"), false); + break; + case 2: + oled_write_ln_P(PSTR("FN 2"), false); + break; + case 3: + oled_write_ln_P(PSTR("FN 3"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_ln_P(PSTR(""), false); + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + return false; + } +#endif diff --git a/keyboards/mechwild/mokulua/mirrored/mirrored.h b/keyboards/mechwild/mokulua/mirrored/mirrored.h new file mode 100644 index 0000000000..66df5cdd6b --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/mirrored.h @@ -0,0 +1,31 @@ +// Copyright 2022 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_mirrored( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L36, L37, R30, R31, R32, R33, R34, R35, R36, R37, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ +) { \ + { 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 }, \ + { L46, L36, L37, L26, L16, L06 }, \ + { R06, R05, R04, R03, R02, R01 }, \ + { R16, R15, R14, R13, R12, R11 }, \ + { R26, R25, R24, R23, R22, R21 }, \ + { R37, R36, R35, R34, R33, R32 }, \ + { R46, R45, R44, R43, R42, R41 }, \ + { R40, R31, R30, R20, R10, R00 } \ +} + +#define LAYOUT LAYOUT_mirrored \ No newline at end of file diff --git a/keyboards/mechwild/mokulua/mirrored/rules.mk b/keyboards/mechwild/mokulua/mirrored/rules.mk new file mode 100644 index 0000000000..5aae5c7c76 --- /dev/null +++ b/keyboards/mechwild/mokulua/mirrored/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # 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 diff --git a/keyboards/mechwild/mokulua/mokulua.c b/keyboards/mechwild/mokulua/mokulua.c deleted file mode 100644 index 57c800ef89..0000000000 --- a/keyboards/mechwild/mokulua/mokulua.c +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2022 Kyle McCreery (@Kyle McCreery) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "mokulua.h" - -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - case 1: - if (clockwise) { - tap_code(KC_PGUP); - } else { - tap_code(KC_PGDN); - } - break; - - } - return true; -} -#endif - -#ifdef OLED_ENABLE - oled_rotation_t oled_init_kb(oled_rotation_t rotation) { - return OLED_ROTATION_270; // flips the display 270 degrees - } - - static void render_logo(void) { // Render MechWild "MW" Logo - static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; - static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; - static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; - static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; - oled_set_cursor(0,0); - oled_write_P(logo_1, false); - oled_set_cursor(0,1); - oled_write_P(logo_2, false); - oled_set_cursor(0,2); - oled_write_P(logo_3, false); - oled_set_cursor(0,3); - oled_write_P(logo_4, false); - } - bool oled_task_kb(void) { - if (!oled_task_user()) { - return false; - } - render_logo(); - oled_set_cursor(0,6); - - oled_write_ln_P(PSTR("Layer"), false); - - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_ln_P(PSTR("Base"), false); - break; - case 1: - oled_write_ln_P(PSTR("FN 1"), false); - break; - case 2: - oled_write_ln_P(PSTR("FN 2"), false); - break; - case 3: - oled_write_ln_P(PSTR("FN 3"), false); - break; - default: - oled_write_ln_P(PSTR("Undef"), false); - } - oled_write_ln_P(PSTR(""), false); - // Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); - oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); - return false; - } -#endif diff --git a/keyboards/mechwild/mokulua/rules.mk b/keyboards/mechwild/mokulua/rules.mk index 17eb654430..3a87a143e5 100644 --- a/keyboards/mechwild/mokulua/rules.mk +++ b/keyboards/mechwild/mokulua/rules.mk @@ -1,22 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable encoder -OLED_ENABLE = yes # Enable OLED Screen -OLED_DRIVER = SSD1306 # Define OLED Driver -SPLIT_KEYBOARD = yes # Define split functionality +DEFAULT_FOLDER = mechwild/mokulua/standard \ No newline at end of file diff --git a/keyboards/mechwild/mokulua/config.h b/keyboards/mechwild/mokulua/standard/config.h similarity index 90% rename from keyboards/mechwild/mokulua/config.h rename to keyboards/mechwild/mokulua/standard/config.h index a424bc6648..9726f7bf99 100644 --- a/keyboards/mechwild/mokulua/config.h +++ b/keyboards/mechwild/mokulua/standard/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D77 // mw = "MechWild" -#define PRODUCT_ID 0x170B -#define DEVICE_VER 0x0103 -#define MANUFACTURER MechWild -#define PRODUCT Mokulua - /* Key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 6 @@ -56,9 +49,7 @@ # define RGBLIGHT_VAL_STEP 8 # define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ # define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations enable ==*/ -//# define RGBLIGHT_ANIMATIONS -/*== or choose animations ==*/ +/*== choose RGB animations ==*/ //# define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -79,6 +70,9 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ @@ -128,5 +122,5 @@ /* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/mechwild/mokulua/standard/info.json b/keyboards/mechwild/mokulua/standard/info.json new file mode 100644 index 0000000000..74bcd0b16f --- /dev/null +++ b/keyboards/mechwild/mokulua/standard/info.json @@ -0,0 +1,92 @@ +{ + "keyboard_name": "Mokulua Standard", + "manufacturer": "MechWild", + "url": "https://mechwild.com", + "maintainer": "kylemccreery", + "usb": { + "vid": "0x6D77", + "pid": "0x170B", + "device_version": "1.0.3" + }, + "layouts": { + "LAYOUT_standard": { + "layout": [ + {"label":"Esc", "x":0.62, "y":0}, + {"label":"1!", "x":1.62, "y":0}, + {"label":"2@", "x":2.62, "y":0}, + {"label":"3#", "x":3.62, "y":0}, + {"label":"4$", "x":4.62, "y":0}, + {"label":"5%", "x":5.62, "y":0}, + {"label":"6^", "x":6.62, "y":0}, + {"label":"7&", "x":9.62, "y":0}, + {"label":"8*", "x":10.62, "y":0}, + {"label":"9(", "x":11.62, "y":0}, + {"label":"0)", "x":12.62, "y":0}, + {"label":"-_", "x":13.62, "y":0}, + {"label":"Backspace", "x":14.62, "y":0}, + {"label":"Backspace", "x":15.62, "y":0}, + + {"label":"Tab", "x":0.37, "y":1, "w":1.5}, + {"label":"Q", "x":1.87, "y":1}, + {"label":"W", "x":2.87, "y":1}, + {"label":"E", "x":3.87, "y":1}, + {"label":"R", "x":4.87, "y":1}, + {"label":"T", "x":5.87, "y":1}, + {"label":"Y", "x":6.87, "y":1}, + {"label":"U", "x":10.37, "y":1}, + {"label":"I", "x":11.37, "y":1}, + {"label":"O", "x":12.37, "y":1}, + {"label":"P", "x":13.37, "y":1}, + {"label":"]}", "x":14.37, "y":1}, + {"label":"\\|", "x":15.37, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0.25, "y":2, "w":1.75}, + {"label":"A", "x":2, "y":2}, + {"label":"S", "x":3, "y":2}, + {"label":"D", "x":4, "y":2}, + {"label":"F", "x":5, "y":2}, + {"label":"G", "x":6, "y":2}, + {"label":"H", "x":7, "y":2}, + {"label":";:", "x":9.75, "y":2}, + {"label":"H", "x":10.75, "y":2}, + {"label":"J", "x":11.75, "y":2}, + {"label":"K", "x":12.75, "y":2}, + {"label":"L", "x":13.75, "y":2}, + {"label":"'\"", "x":14.75, "y":2}, + {"label":"Enter", "x":15.75, "y":2, "w":1.75}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"Mute", "x":7.37, "y":3}, + {"label":"Mute", "x":9.37, "y":3}, + {"label":"B", "x":10.5, "y":3}, + {"label":"N", "x":11.5, "y":3}, + {"label":"M", "x":12.5, "y":3}, + {"label":",<", "x":13.5, "y":3}, + {"label":".>", "x":14.5, "y":3}, + {"label":"\u2191", "x":15.5, "y":3}, + {"label":"Shift", "x":16.5, "y":3, "w":1.25}, + + {"label":"Ctrl", "x":0.25, "y":4}, + {"label":"GUI", "x":1.25, "y":4}, + {"label":"Alt", "x":2.25, "y":4}, + {"label":"Fn2", "x":3.5, "y":4, "w":1.25}, + {"label":"Fn1/Space", "x":4.94, "y":4, "h":1.5}, + {"label":"Fn2/Space", "x":5.94, "y":4, "h":1.5}, + {"label":"RGB Mode -", "x":7.13, "y":4}, + {"label":"RGB Mode +", "x":9.62, "y":4}, + {"label":"Fn2/Space", "x":10.81, "y":4, "h":1.5}, + {"label":"Fn1/Space", "x":11.81, "y":4, "h":1.5}, + {"label":"Fn2", "x":13, "y":4, "w":1.25}, + {"label":"\u2190", "x":14.5, "y":4}, + {"label":"\u2193", "x":15.5, "y":4}, + {"label":"\u2192", "x":16.5, "y":4} + ] + } + } +} diff --git a/keyboards/mechwild/mokulua/keymaps/default/keymap.c b/keyboards/mechwild/mokulua/standard/keymaps/default/keymap.c similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/default/keymap.c rename to keyboards/mechwild/mokulua/standard/keymaps/default/keymap.c diff --git a/keyboards/mechwild/mokulua/keymaps/default/readme.md b/keyboards/mechwild/mokulua/standard/keymaps/default/readme.md similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/default/readme.md rename to keyboards/mechwild/mokulua/standard/keymaps/default/readme.md diff --git a/keyboards/mechwild/mokulua/keymaps/silly/config.h b/keyboards/mechwild/mokulua/standard/keymaps/silly/config.h similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/silly/config.h rename to keyboards/mechwild/mokulua/standard/keymaps/silly/config.h diff --git a/keyboards/mechwild/mokulua/keymaps/silly/keymap.c b/keyboards/mechwild/mokulua/standard/keymaps/silly/keymap.c similarity index 89% rename from keyboards/mechwild/mokulua/keymaps/silly/keymap.c rename to keyboards/mechwild/mokulua/standard/keymaps/silly/keymap.c index 9463f162c0..104377f876 100644 --- a/keyboards/mechwild/mokulua/keymaps/silly/keymap.c +++ b/keyboards/mechwild/mokulua/standard/keymaps/silly/keymap.c @@ -47,20 +47,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef OLED_ENABLE - static void render_logo(void) { // Render MechWild "MW" Logo - static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; - static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; - static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; - static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; - oled_set_cursor(0,0); - oled_write_P(logo_1, false); - oled_set_cursor(0,1); - oled_write_P(logo_2, false); - oled_set_cursor(0,2); - oled_write_P(logo_3, false); - oled_set_cursor(0,3); - oled_write_P(logo_4, false); - } + static void render_logo(void) { // Render MechWild "MW" Logo + static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; + static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; + static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; + static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; + oled_set_cursor(0,0); + oled_write_P(logo_1, false); + oled_set_cursor(0,1); + oled_write_P(logo_2, false); + oled_set_cursor(0,2); + oled_write_P(logo_3, false); + oled_set_cursor(0,3); + oled_write_P(logo_4, false); + } bool oled_task_user(void) { render_logo(); oled_set_cursor(0,6); diff --git a/keyboards/mechwild/mokulua/keymaps/silly/readme.md b/keyboards/mechwild/mokulua/standard/keymaps/silly/readme.md similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/silly/readme.md rename to keyboards/mechwild/mokulua/standard/keymaps/silly/readme.md diff --git a/keyboards/mechwild/mokulua/standard/keymaps/silly/rules.mk b/keyboards/mechwild/mokulua/standard/keymaps/silly/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/mechwild/mokulua/standard/keymaps/silly/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mechwild/mokulua/keymaps/via/keymap.c b/keyboards/mechwild/mokulua/standard/keymaps/via/keymap.c similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/via/keymap.c rename to keyboards/mechwild/mokulua/standard/keymaps/via/keymap.c diff --git a/keyboards/mechwild/mokulua/keymaps/via/readme.md b/keyboards/mechwild/mokulua/standard/keymaps/via/readme.md similarity index 100% rename from keyboards/mechwild/mokulua/keymaps/via/readme.md rename to keyboards/mechwild/mokulua/standard/keymaps/via/readme.md diff --git a/keyboards/mechwild/mokulua/standard/keymaps/via/rules.mk b/keyboards/mechwild/mokulua/standard/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/mechwild/mokulua/standard/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mechwild/mokulua/standard/rules.mk b/keyboards/mechwild/mokulua/standard/rules.mk new file mode 100644 index 0000000000..5aae5c7c76 --- /dev/null +++ b/keyboards/mechwild/mokulua/standard/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # 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 diff --git a/keyboards/mechwild/mokulua/standard/standard.c b/keyboards/mechwild/mokulua/standard/standard.c new file mode 100644 index 0000000000..4bccb70e3f --- /dev/null +++ b/keyboards/mechwild/mokulua/standard/standard.c @@ -0,0 +1,82 @@ +// Copyright 2022 Kyle McCreery (@Kyle McCreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "standard.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + case 1: + if (clockwise) { + tap_code(KC_PGUP); + } else { + tap_code(KC_PGDN); + } + break; + + } + return true; +} +#endif + +#ifdef OLED_ENABLE + oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; // flips the display 270 degrees + } + + static void render_logo(void) { // Render MechWild "MW" Logo + static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; + static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; + static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; + static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; + oled_set_cursor(0,0); + oled_write_P(logo_1, false); + oled_set_cursor(0,1); + oled_write_P(logo_2, false); + oled_set_cursor(0,2); + oled_write_P(logo_3, false); + oled_set_cursor(0,3); + oled_write_P(logo_4, false); + } + bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_logo(); + oled_set_cursor(0,6); + + oled_write_ln_P(PSTR("Layer"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_ln_P(PSTR("Base"), false); + break; + case 1: + oled_write_ln_P(PSTR("FN 1"), false); + break; + case 2: + oled_write_ln_P(PSTR("FN 2"), false); + break; + case 3: + oled_write_ln_P(PSTR("FN 3"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_ln_P(PSTR(""), false); + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + return false; + } +#endif diff --git a/keyboards/mechwild/mokulua/mokulua.h b/keyboards/mechwild/mokulua/standard/standard.h similarity index 94% rename from keyboards/mechwild/mokulua/mokulua.h rename to keyboards/mechwild/mokulua/standard/standard.h index 95ea1e3709..0484340e8d 100644 --- a/keyboards/mechwild/mokulua/mokulua.h +++ b/keyboards/mechwild/mokulua/standard/standard.h @@ -7,7 +7,7 @@ #define ___ KC_NO -#define LAYOUT( \ +#define LAYOUT_standard( \ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ L10, L11, L12, L13, L14, L15, L16, R11, R12, R13, R14, R15, R16, \ L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ @@ -27,3 +27,5 @@ { R41, R42, R43, R44, R45, R46 }, \ { R00, R20, R31, R30, R40, ___ } \ } + +#define LAYOUT LAYOUT_standard diff --git a/keyboards/mechwild/murphpad/config.h b/keyboards/mechwild/murphpad/config.h index 3995546e8e..428d6391d0 100644 --- a/keyboards/mechwild/murphpad/config.h +++ b/keyboards/mechwild/murphpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D77 // mw = "MechWild" -#define PRODUCT_ID 0x1705 -#define DEVICE_VER 0x0301 -#define MANUFACTURER MechWild -#define PRODUCT MurphPad - /* Key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 5 diff --git a/keyboards/mechwild/murphpad/info.json b/keyboards/mechwild/murphpad/info.json index 42e01d2ca4..ae4f24f9fa 100644 --- a/keyboards/mechwild/murphpad/info.json +++ b/keyboards/mechwild/murphpad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MechWild MurphPad", + "keyboard_name": "MurphPad", + "manufacturer": "MechWild", "url": "mechwild.com", "maintainer": "Kyle McCreery", + "usb": { + "vid": "0x6D77", + "pid": "0x1705", + "device_version": "3.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechwild/murphpad/keymaps/default/keymap.c b/keyboards/mechwild/murphpad/keymaps/default/keymap.c index fe46e8ce5e..b818ed4eb2 100644 --- a/keyboards/mechwild/murphpad/keymaps/default/keymap.c +++ b/keyboards/mechwild/murphpad/keymaps/default/keymap.c @@ -18,10 +18,10 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - _BASE, - _FN1, - _FN2, - _FN3 + _BASE, + _FN1, + _FN2, + _FN3 }; @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( KC_F1, KC_F2, KC_F3, KC_F4, - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_MUTE, KC_P4, KC_P5, KC_P6, _______, MO(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT, @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ ), - [_FN2] = LAYOUT( + [_FN2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ ), - [_FN3] = LAYOUT( + [_FN3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -73,76 +73,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - case 1: - if (clockwise) { - tap_code(KC_BRIU); - } else { - tap_code(KC_BRID); - } - break; - } - return true; -} -#endif - -#ifdef OLED_ENABLE - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_270; // flips the display 270 degrees - } - - static void render_logo(void) { // Render MechWild "MW" Logo - static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; - static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; - static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; - static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; - oled_set_cursor(0,0); - oled_write_P(logo_1, false); - oled_set_cursor(0,1); - oled_write_P(logo_2, false); - oled_set_cursor(0,2); - oled_write_P(logo_3, false); - oled_set_cursor(0,3); - oled_write_P(logo_4, false); - } - - bool oled_task_user(void) { - render_logo(); - oled_set_cursor(0,6); - - oled_write_ln_P(PSTR("Layer"), false); - - switch (get_highest_layer(layer_state)) { - case _BASE: - oled_write_ln_P(PSTR("Base"), false); - break; - case _FN1: - oled_write_ln_P(PSTR("FN 1"), false); - break; - case _FN2: - oled_write_ln_P(PSTR("FN 2"), false); - break; - case _FN3: - oled_write_ln_P(PSTR("FN 3"), false); - break; - default: - oled_write_ln_P(PSTR("Undef"), false); - } - oled_write_ln_P(PSTR(""), false); - // Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); - oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); - return false; - } +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, + [_FN1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_FN2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_FN3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; #endif diff --git a/keyboards/mechwild/murphpad/keymaps/default/rules.mk b/keyboards/mechwild/murphpad/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/mechwild/murphpad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c index 043eeb992b..d7c03bd228 100644 --- a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c @@ -274,7 +274,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { break; } } - return true; + return false; } #endif @@ -296,6 +296,10 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } #ifdef LANDSCAPE_MODE + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_0; // do not flip the display + } + bool oled_task_user(void) { render_logo(); @@ -365,10 +369,6 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { // regular mode #ifndef LANDSCAPE_MODE - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_270; // flips the display 270 degrees - } - bool oled_task_user(void) { render_logo(); oled_set_cursor(0,5); diff --git a/keyboards/mechwild/murphpad/keymaps/via/keymap.c b/keyboards/mechwild/murphpad/keymaps/via/keymap.c index 4f4f6d571a..8117a0fd6a 100644 --- a/keyboards/mechwild/murphpad/keymaps/via/keymap.c +++ b/keyboards/mechwild/murphpad/keymaps/via/keymap.c @@ -16,24 +16,26 @@ #include QMK_KEYBOARD_H // Defines names for use in layer keycodes and the keymap + enum layer_names { - _BASE, - _FN1, - _FN2, - _FN3 + _BASE, + _FN1, + _FN2, + _FN3 }; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( KC_F1, KC_F2, KC_F3, KC_F4, - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_MUTE, KC_P4, KC_P5, KC_P6, _______, MO(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT, KC_BSPC, KC_P0, _______, KC_PDOT, _______, - KC_F5, KC_F6, KC_F7 + KC_F5, KC_F6, KC_F7 ), [_FN1] = LAYOUT( @@ -58,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ ), - [_FN3] = LAYOUT( + [_FN3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -71,76 +73,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - case 1: - if (clockwise) { - tap_code(KC_BRIU); - } else { - tap_code(KC_BRID); - } - break; - } - return true; -} -#endif - -#ifdef OLED_ENABLE - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_270; // flips the display 270 degrees - } - - static void render_logo(void) { // Render MechWild "MW" Logo - static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00}; - static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00}; - static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00}; - static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00}; - oled_set_cursor(0,0); - oled_write_P(logo_1, false); - oled_set_cursor(0,1); - oled_write_P(logo_2, false); - oled_set_cursor(0,2); - oled_write_P(logo_3, false); - oled_set_cursor(0,3); - oled_write_P(logo_4, false); - } - - bool oled_task_user(void) { - render_logo(); - oled_set_cursor(0,6); - - oled_write_ln_P(PSTR("Layer"), false); - - switch (get_highest_layer(layer_state)) { - case _BASE: - oled_write_ln_P(PSTR("Base"), false); - break; - case _FN1: - oled_write_ln_P(PSTR("FN 1"), false); - break; - case _FN2: - oled_write_ln_P(PSTR("FN 2"), false); - break; - case _FN3: - oled_write_ln_P(PSTR("FN 3"), false); - break; - default: - oled_write_ln_P(PSTR("Undef"), false); - } - oled_write_ln_P(PSTR(""), false); - // Host Keyboard LED Status - led_t led_state = host_keyboard_led_state(); - oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); - oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); - oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); - return false; - } +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, + [_FN1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_FN2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_FN3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; #endif diff --git a/keyboards/mechwild/murphpad/keymaps/via/rules.mk b/keyboards/mechwild/murphpad/keymaps/via/rules.mk index 36b7ba9cbc..1189f4ad19 100644 --- a/keyboards/mechwild/murphpad/keymaps/via/rules.mk +++ b/keyboards/mechwild/murphpad/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechwild/murphpad/murphpad.c b/keyboards/mechwild/murphpad/murphpad.c index a39f1bfc7e..ba5183f2c3 100644 --- a/keyboards/mechwild/murphpad/murphpad.c +++ b/keyboards/mechwild/murphpad/murphpad.c @@ -15,3 +15,79 @@ */ #include "murphpad.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + case 1: + if (clockwise) { + tap_code(KC_BRIU); + } else { + tap_code(KC_BRID); + } + break; + } + return true; +} +#endif + +#ifdef OLED_ENABLE +static const char PROGMEM mw_logo[] = { + 0x8A, 0x8B, 0x8C, 0x8D, '\r', + 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, + 0xCA, 0xCB, 0xCC, 0xCD, '\r', + 0x20, 0x8E, 0x8F, 0x90, 0x00}; + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; // flips the display 270 degrees +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + oled_write_P(mw_logo, false); // Render MechWild "MW" Logo + oled_set_cursor(0,6); + + oled_write_ln_P(PSTR("Layer"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_ln_P(PSTR("Base"), false); + break; + case 1: + oled_write_ln_P(PSTR("FN 1"), false); + break; + case 2: + oled_write_ln_P(PSTR("FN 2"), false); + break; + case 3: + oled_write_ln_P(PSTR("FN 3"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + + oled_write_ln_P(PSTR(""), false); + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + + return true; +} +#endif diff --git a/keyboards/mechwild/obe/config.h b/keyboards/mechwild/obe/config.h index 59702791b0..23d8c94318 100644 --- a/keyboards/mechwild/obe/config.h +++ b/keyboards/mechwild/obe/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D77 // mw = "MechWild" -#define PRODUCT_ID 0x1707 -#define DEVICE_VER 0x0201 -#define MANUFACTURER MechWild -#define PRODUCT OrangeBoyErgo - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 10 diff --git a/keyboards/mechwild/obe/f401/eeprom/rules.mk b/keyboards/mechwild/obe/f401/eeprom/rules.mk index c2c0bbd5d6..4707020e58 100644 --- a/keyboards/mechwild/obe/f401/eeprom/rules.mk +++ b/keyboards/mechwild/obe/f401/eeprom/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/obe/f401/rules.mk b/keyboards/mechwild/obe/f401/rules.mk index f1304648f0..1b21bbaf77 100644 --- a/keyboards/mechwild/obe/f401/rules.mk +++ b/keyboards/mechwild/obe/f401/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/obe/f411/eeprom/rules.mk b/keyboards/mechwild/obe/f411/eeprom/rules.mk index b823aa31cc..3d2f9bcf05 100644 --- a/keyboards/mechwild/obe/f411/eeprom/rules.mk +++ b/keyboards/mechwild/obe/f411/eeprom/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/obe/f411/rules.mk b/keyboards/mechwild/obe/f411/rules.mk index b32a8b7f5b..c25a64f4b3 100644 --- a/keyboards/mechwild/obe/f411/rules.mk +++ b/keyboards/mechwild/obe/f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/obe/info.json b/keyboards/mechwild/obe/info.json index c03b735df6..fbae09e15c 100644 --- a/keyboards/mechwild/obe/info.json +++ b/keyboards/mechwild/obe/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MechWild OBE", + "keyboard_name": "OrangeBoyErgo", + "manufacturer": "MechWild", "url": "mechwild.com", "maintainer": "Kyle McCreery", + "usb": { + "vid": "0x6D77", + "pid": "0x1707", + "device_version": "2.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mechwild/waka60/config.h b/keyboards/mechwild/waka60/config.h index 057ca383be..cba318d575 100644 --- a/keyboards/mechwild/waka60/config.h +++ b/keyboards/mechwild/waka60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D77 // mw = "MechWild" -#define PRODUCT_ID 0x1709 -#define DEVICE_VER 0x0101 -#define MANUFACTURER MechWild -#define PRODUCT Waka60 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/mechwild/waka60/f401/eeprom/config.h b/keyboards/mechwild/waka60/f401/config.h similarity index 100% rename from keyboards/mechwild/waka60/f401/eeprom/config.h rename to keyboards/mechwild/waka60/f401/config.h diff --git a/keyboards/mechwild/waka60/f401/eeprom/rules.mk b/keyboards/mechwild/waka60/f401/eeprom/rules.mk index c2c0bbd5d6..4707020e58 100644 --- a/keyboards/mechwild/waka60/f401/eeprom/rules.mk +++ b/keyboards/mechwild/waka60/f401/eeprom/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/waka60/f401/halconf.h b/keyboards/mechwild/waka60/f401/halconf.h new file mode 100644 index 0000000000..25309fc70f --- /dev/null +++ b/keyboards/mechwild/waka60/f401/halconf.h @@ -0,0 +1,25 @@ +/* Copyright 2021 Kyle McCreery + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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_PAL TRUE +#define HAL_USE_GPT TRUE + +#include_next + diff --git a/keyboards/mechwild/waka60/f401/mcuconf.h b/keyboards/mechwild/waka60/f401/mcuconf.h new file mode 100644 index 0000000000..95339690cf --- /dev/null +++ b/keyboards/mechwild/waka60/f401/mcuconf.h @@ -0,0 +1,27 @@ +/* Copyright 2021 Kyle McCreery + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE +#undef STM32_GPT_USE_TIM4 +#define STM32_GPT_USE_TIM4 TRUE \ No newline at end of file diff --git a/keyboards/mechwild/waka60/f401/rules.mk b/keyboards/mechwild/waka60/f401/rules.mk index f1304648f0..1b21bbaf77 100644 --- a/keyboards/mechwild/waka60/f401/rules.mk +++ b/keyboards/mechwild/waka60/f401/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/waka60/f411/eeprom/config.h b/keyboards/mechwild/waka60/f411/config.h similarity index 100% rename from keyboards/mechwild/waka60/f411/eeprom/config.h rename to keyboards/mechwild/waka60/f411/config.h diff --git a/keyboards/mechwild/waka60/f411/eeprom/rules.mk b/keyboards/mechwild/waka60/f411/eeprom/rules.mk index b823aa31cc..3d2f9bcf05 100644 --- a/keyboards/mechwild/waka60/f411/eeprom/rules.mk +++ b/keyboards/mechwild/waka60/f411/eeprom/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/waka60/f411/halconf.h b/keyboards/mechwild/waka60/f411/halconf.h new file mode 100644 index 0000000000..25309fc70f --- /dev/null +++ b/keyboards/mechwild/waka60/f411/halconf.h @@ -0,0 +1,25 @@ +/* Copyright 2021 Kyle McCreery + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for 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_PAL TRUE +#define HAL_USE_GPT TRUE + +#include_next + diff --git a/keyboards/mechwild/waka60/f411/mcuconf.h b/keyboards/mechwild/waka60/f411/mcuconf.h new file mode 100644 index 0000000000..f903d8880f --- /dev/null +++ b/keyboards/mechwild/waka60/f411/mcuconf.h @@ -0,0 +1,27 @@ +/* Copyright 2021 Kyle McCreery + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE +#undef STM32_GPT_USE_TIM4 +#define STM32_GPT_USE_TIM4 TRUE diff --git a/keyboards/mechwild/waka60/f411/rules.mk b/keyboards/mechwild/waka60/f411/rules.mk index b32a8b7f5b..c25a64f4b3 100644 --- a/keyboards/mechwild/waka60/f411/rules.mk +++ b/keyboards/mechwild/waka60/f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mechwild/waka60/info.json b/keyboards/mechwild/waka60/info.json index 87549849b9..8e9a2c11f1 100644 --- a/keyboards/mechwild/waka60/info.json +++ b/keyboards/mechwild/waka60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MechWild Waka60", + "keyboard_name": "Waka60", + "manufacturer": "MechWild", "url": "mechwild.com", "maintainer": "Kyle McCreery", + "usb": { + "vid": "0x6D77", + "pid": "0x1709", + "device_version": "1.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mehkee96/config.h b/keyboards/mehkee96/config.h index 98e359f980..8eba6e278e 100644 --- a/keyboards/mehkee96/config.h +++ b/keyboards/mehkee96/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0200 -#define MANUFACTURER Mehkee -#define PRODUCT 96KEE - /* matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 15 diff --git a/keyboards/mehkee96/info.json b/keyboards/mehkee96/info.json index 050adaa767..34b9b001c8 100644 --- a/keyboards/mehkee96/info.json +++ b/keyboards/mehkee96/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "mehkee96", + "keyboard_name": "96KEE", + "manufacturer": "Mehkee", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x20A0", + "pid": "0x422D", + "device_version": "2.0.0" + }, "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":"Print Screen", "x":13, "y":0}, {"label":"Delete", "x":14, "y":0}, {"label":"Home", "x":15, "y":0}, {"label":"End", "x":16, "y":0}, {"label":"Page Up", "x":17, "y":0}, {"label":"Page Down", "x":18, "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":"Num Lock", "x":15, "y":1}, {"label":"P/", "x":16, "y":1}, {"label":"P*", "x":17, "y":1}, {"label":"P-", "x":18, "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":"P7", "x":15, "y":2}, {"label":"P8", "x":16, "y":2}, {"label":"P9", "x":17, "y":2}, {"label":"P+", "x":18, "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":"P4", "x":15, "y":3}, {"label":"P5", "x":16, "y":3}, {"label":"P6", "x":17, "y":3}, {"label":"P+", "x":18, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":",", "x":9.25, "y":4}, {"label":".", "x":10.25, "y":4}, {"label":"/", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"Up", "x":14, "y":4}, {"label":"P1", "x":15, "y":4}, {"label":"P2", "x":16, "y":4}, {"label":"P3", "x":17, "y":4}, {"label":"PEnter", "x":18, "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}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"label":"Fn", "x":12, "y":5}, {"label":"Left", "x":13, "y":5}, {"label":"Down", "x":14, "y":5}, {"label":"Right", "x":15, "y":5}, {"label":"P0", "x":16, "y":5}, {"label":"P.", "x":17, "y":5}, {"label":"PEnter", "x":18, "y":5}] diff --git a/keyboards/meletrix/zoom65/config.h b/keyboards/meletrix/zoom65/config.h index 6d6f6d18eb..d3a0a2f3b0 100644 --- a/keyboards/meletrix/zoom65/config.h +++ b/keyboards/meletrix/zoom65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x806B -#define PRODUCT_ID 0x0004 -#define DEVICE_VER 0x0001 -#define MANUFACTURER meletrix -#define PRODUCT zoom65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/meletrix/zoom65/info.json b/keyboards/meletrix/zoom65/info.json index 8cc7dce8c3..ea128402e9 100644 --- a/keyboards/meletrix/zoom65/info.json +++ b/keyboards/meletrix/zoom65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "zoom65", + "manufacturer": "meletrix", "url": "https://zoom65.com/", "maintainer": "spbgzh", + "usb": { + "vid": "0x806B", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/meletrix/zoom65_lite/config.h b/keyboards/meletrix/zoom65_lite/config.h index 1f98a4dfda..d3a0a2f3b0 100644 --- a/keyboards/meletrix/zoom65_lite/config.h +++ b/keyboards/meletrix/zoom65_lite/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x806C -#define PRODUCT_ID 0x0005 -#define DEVICE_VER 0x0001 -#define MANUFACTURER meletrix -#define PRODUCT zoom65_lite - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/meletrix/zoom65_lite/info.json b/keyboards/meletrix/zoom65_lite/info.json index 5bfddbd095..aa2c141139 100644 --- a/keyboards/meletrix/zoom65_lite/info.json +++ b/keyboards/meletrix/zoom65_lite/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "zoom65_lite", + "manufacturer": "meletrix", "url": "https://zoom65.com/", "maintainer": "spbgzh", + "usb": { + "vid": "0x806C", + "pid": "0x0005", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/meletrix/zoom87/config.h b/keyboards/meletrix/zoom87/config.h new file mode 100644 index 0000000000..89e8cf5611 --- /dev/null +++ b/keyboards/meletrix/zoom87/config.h @@ -0,0 +1,56 @@ +/* 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 + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_ROW_PINS { B3, B7, B2, F0, D3, D0 } +#define MATRIX_COL_PINS { D6, D7, D1, D5, F7, D4, F5, F4, F1, C7, C6, B6, B5, B4, E6, B1, B0 } + +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN F6 +#define LED_PIN_ON_STATE 0 + +#define RGB_DI_PIN D2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 10 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */ + #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 +#endif + diff --git a/keyboards/meletrix/zoom87/info.json b/keyboards/meletrix/zoom87/info.json new file mode 100644 index 0000000000..5d37e84c01 --- /dev/null +++ b/keyboards/meletrix/zoom87/info.json @@ -0,0 +1,612 @@ +{ + "keyboard_name": "zoom87", + "manufacturer": "meletrix", + "url": "https://zoom65.com/", + "maintainer": "spbgzh", + "usb": { + "vid": "0x906F", + "pid": "0x0007", + "device_version": "0.0.1" + }, + "layout_aliases": { + "LAYOUT_87": "LAYOUT_tkl_f13", + "LAYOUT_87_split_bs": "LAYOUT_tkl_f13_split_bs", + "LAYOUT_87_split_lshift": "LAYOUT_tkl_f13_split_lshift", + "LAYOUT_87_split_rshift": "LAYOUT_tkl_f13_split_rshift", + "LAYOUT_87_split_space": "LAYOUT_tkl_f13_split_space" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "x": 3.75, "y": 5.25, "w": 2.25 }, + { "x": 6, "y": 5.25, "w": 1.25 }, + { "x": 7.25, "y": 5.25, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_split_bs": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_split_lshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_split_rshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_split_space": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "x": 3.75, "y": 5.25, "w": 2.25 }, + { "x": 6, "y": 5.25, "w": 1.25 }, + { "x": 7.25, "y": 5.25, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/meletrix/zoom87/keymaps/default/keymap.c b/keyboards/meletrix/zoom87/keymaps/default/keymap.c new file mode 100644 index 0000000000..393d49b836 --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom87/keymaps/default/readme.md b/keyboards/meletrix/zoom87/keymaps/default/readme.md new file mode 100644 index 0000000000..5a5a49c468 --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for zoom87 diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13/keymap.c b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13/keymap.c new file mode 100644 index 0000000000..e4ae35a203 --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13/readme.md b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13/readme.md new file mode 100644 index 0000000000..0d04949fa4 --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13/readme.md @@ -0,0 +1 @@ +# The tkl_f13 keymap for zoom87 diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_bs/keymap.c b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_bs/keymap.c new file mode 100644 index 0000000000..916e885cbe --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_bs/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_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_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_bs/readme.md b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_bs/readme.md new file mode 100644 index 0000000000..872c77f91a --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_bs/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_split_bs keymap for zoom87 diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_lshift/keymap.c b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_lshift/keymap.c new file mode 100644 index 0000000000..3b5db2c61b --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_lshift/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_split_lshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13_split_lshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_lshift/readme.md b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_lshift/readme.md new file mode 100644 index 0000000000..a386f41b90 --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_lshift/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_split_lshift keymap for zoom87 diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_rshift/keymap.c b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_rshift/keymap.c new file mode 100644 index 0000000000..9950abf7a6 --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_rshift/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_split_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_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13_split_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_rshift/readme.md b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_rshift/readme.md new file mode 100644 index 0000000000..d978de20ae --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_rshift/readme.md @@ -0,0 +1 @@ +# The tkl_f13_split_rshift keymap for zoom87 diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_space/keymap.c b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_space/keymap.c new file mode 100644 index 0000000000..051c743b63 --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_space/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_split_space( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13_split_space( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_space/readme.md b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_space/readme.md new file mode 100644 index 0000000000..d978de20ae --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/default_tkl_f13_split_space/readme.md @@ -0,0 +1 @@ +# The tkl_f13_split_rshift keymap for zoom87 diff --git a/keyboards/meletrix/zoom87/keymaps/via/keymap.c b/keyboards/meletrix/zoom87/keymaps/via/keymap.c new file mode 100644 index 0000000000..3e2d7acee4 --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/meletrix/zoom87/keymaps/via/readme.md b/keyboards/meletrix/zoom87/keymaps/via/readme.md new file mode 100644 index 0000000000..40fd5138b3 --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for zoom87 diff --git a/keyboards/meletrix/zoom87/keymaps/via/rules.mk b/keyboards/meletrix/zoom87/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/meletrix/zoom87/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/meletrix/zoom87/readme.md b/keyboards/meletrix/zoom87/readme.md new file mode 100644 index 0000000000..9ad821387a --- /dev/null +++ b/keyboards/meletrix/zoom87/readme.md @@ -0,0 +1,27 @@ +# zoom87 + +More Info at [meletrix](https://meletrix.com/) +​ + +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: zoom 87 +* Hardware Availability: [zoom87](https://meletrix.com/collections/) +​ + +Make example for this keyboard (after setting up your build environment): + + make meletrix/zoom87:default + +Flashing example for this keyboard: + + make meletrix/zoom87: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 + PageUp +* 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/meletrix/zoom87/rules.mk b/keyboards/meletrix/zoom87/rules.mk new file mode 100644 index 0000000000..85a4a905a5 --- /dev/null +++ b/keyboards/meletrix/zoom87/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/meletrix/zoom87/zoom87.c b/keyboards/meletrix/zoom87/zoom87.c new file mode 100644 index 0000000000..59fc2ba3c8 --- /dev/null +++ b/keyboards/meletrix/zoom87/zoom87.c @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "zoom87.h" diff --git a/keyboards/meletrix/zoom87/zoom87.h b/keyboards/meletrix/zoom87/zoom87.h new file mode 100644 index 0000000000..03b94bfc40 --- /dev/null +++ b/keyboards/meletrix/zoom87/zoom87.h @@ -0,0 +1,218 @@ +/* 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 + +#include "quantum.h" + + +/* Standard Arrangement + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │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 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │4d │ │4f │ + * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │50 │51 │52 │55 │56 │57 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K55, K56, K57, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, K55, K56, K57, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13 + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │4c │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_split_bs + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │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 │4c │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_split_lshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ │4f │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_split_lshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_split_rshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │4c │4d │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_split_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_split_space + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │4c │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │55 │56 │57 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_split_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K55, K56, K57, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, K55, K56, K55, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} diff --git a/keyboards/melgeek/mach80/config.h b/keyboards/melgeek/mach80/config.h index 0e98030e25..aab6083eb0 100755 --- a/keyboards/melgeek/mach80/config.h +++ b/keyboards/melgeek/mach80/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x0080 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT Mach80 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/melgeek/mach80/info.json b/keyboards/melgeek/mach80/info.json index ea7c628c6f..82e42ab44b 100755 --- a/keyboards/melgeek/mach80/info.json +++ b/keyboards/melgeek/mach80/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mach80", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0x0080", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/melgeek/mj61/config.h b/keyboards/melgeek/mj61/config.h index 0b5bd9ff48..407beba1e8 100644 --- a/keyboards/melgeek/mj61/config.h +++ b/keyboards/melgeek/mj61/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0xED61 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT MJ61 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/melgeek/mj61/info.json b/keyboards/melgeek/mj61/info.json index 52c98ecdab..559ea8da32 100644 --- a/keyboards/melgeek/mj61/info.json +++ b/keyboards/melgeek/mj61/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MJ61", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0xED61", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h index ddd953e1de..407beba1e8 100644 --- a/keyboards/melgeek/mj63/config.h +++ b/keyboards/melgeek/mj63/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x6063 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT MJ63 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/melgeek/mj63/info.json b/keyboards/melgeek/mj63/info.json index 5c5983abd0..ab5c1c0ef9 100644 --- a/keyboards/melgeek/mj63/info.json +++ b/keyboards/melgeek/mj63/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MJ63", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0x6063", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_arrow": { "layout": [ diff --git a/keyboards/melgeek/mj64/config.h b/keyboards/melgeek/mj64/config.h index 684c48720b..407beba1e8 100644 --- a/keyboards/melgeek/mj64/config.h +++ b/keyboards/melgeek/mj64/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x6064 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT MJ64 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/melgeek/mj64/info.json b/keyboards/melgeek/mj64/info.json index 61a7ded2a1..d5a1d8340a 100644 --- a/keyboards/melgeek/mj64/info.json +++ b/keyboards/melgeek/mj64/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MJ64", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0x6064", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_64_ansi": { "layout": [ diff --git a/keyboards/melgeek/mj65/config.h b/keyboards/melgeek/mj65/config.h index 4cf4f3f233..e009feed5b 100644 --- a/keyboards/melgeek/mj65/config.h +++ b/keyboards/melgeek/mj65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x0065 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT MJ65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/melgeek/mj65/info.json b/keyboards/melgeek/mj65/info.json index e5fffa6d83..7eb67d30b3 100644 --- a/keyboards/melgeek/mj65/info.json +++ b/keyboards/melgeek/mj65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MJ65", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0x0065", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [ diff --git a/keyboards/melgeek/mj6xy/config.h b/keyboards/melgeek/mj6xy/config.h index 4a6336c1c9..fb02fddc1f 100755 --- a/keyboards/melgeek/mj6xy/config.h +++ b/keyboards/melgeek/mj6xy/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT MJ6XY - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 diff --git a/keyboards/melgeek/mj6xy/info.json b/keyboards/melgeek/mj6xy/info.json index 712b97295c..7bd66020b0 100755 --- a/keyboards/melgeek/mj6xy/info.json +++ b/keyboards/melgeek/mj6xy/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MJ6XY", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/melgeek/mojo68/config.h b/keyboards/melgeek/mojo68/config.h index ee441be0e1..3ef18c6785 100755 --- a/keyboards/melgeek/mojo68/config.h +++ b/keyboards/melgeek/mojo68/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x0068 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT MoJo68 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/melgeek/mojo68/info.json b/keyboards/melgeek/mojo68/info.json index 843637d901..4f7ae646be 100755 --- a/keyboards/melgeek/mojo68/info.json +++ b/keyboards/melgeek/mojo68/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MoJo68", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0x0068", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_68_ansi": { "layout": [ diff --git a/keyboards/melgeek/mojo75/config.h b/keyboards/melgeek/mojo75/config.h index 2db335dafb..67c79df409 100644 --- a/keyboards/melgeek/mojo75/config.h +++ b/keyboards/melgeek/mojo75/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x7075 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT MOJO75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/melgeek/mojo75/info.json b/keyboards/melgeek/mojo75/info.json index 95f750b9f2..7c3133d207 100644 --- a/keyboards/melgeek/mojo75/info.json +++ b/keyboards/melgeek/mojo75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MoJo75", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0x7075", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_75_ansi": { "layout": [ diff --git a/keyboards/melgeek/tegic/config.h b/keyboards/melgeek/tegic/config.h index d264ec5e31..b16fb73b0d 100755 --- a/keyboards/melgeek/tegic/config.h +++ b/keyboards/melgeek/tegic/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x0081 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT tegic - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/melgeek/tegic/info.json b/keyboards/melgeek/tegic/info.json index 21a12ee113..5526ec080c 100755 --- a/keyboards/melgeek/tegic/info.json +++ b/keyboards/melgeek/tegic/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "tegic", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0x0081", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tegic_ansi": { "layout": [ diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h index 0f294c9e00..2b5f6e5955 100644 --- a/keyboards/melgeek/z70ultra/config.h +++ b/keyboards/melgeek/z70ultra/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x6570 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT Z70Ultra - /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/melgeek/z70ultra/info.json b/keyboards/melgeek/z70ultra/info.json index e24b177070..9cb5ad05fe 100644 --- a/keyboards/melgeek/z70ultra/info.json +++ b/keyboards/melgeek/z70ultra/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Z70Ultra", + "manufacturer": "MelGeek", "url": "", "maintainer": "melgeek001365", + "usb": { + "vid": "0xEDED", + "pid": "0x6570", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/meme/config.h b/keyboards/meme/config.h index 58bc794ee8..6346e855c0 100644 --- a/keyboards/meme/config.h +++ b/keyboards/meme/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Switchmod Keyboards -#define PRODUCT Meme - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/meme/info.json b/keyboards/meme/info.json index 57bf54633f..07327ce3c8 100644 --- a/keyboards/meme/info.json +++ b/keyboards/meme/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Meme", + "manufacturer": "Switchmod Keyboards", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_spicy": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/meow65/config.h b/keyboards/meow65/config.h index 20f725ee30..22d4ed54df 100644 --- a/keyboards/meow65/config.h +++ b/keyboards/meow65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6E64 // Hai-Ninh Dang -#define PRODUCT_ID 0x4D36 -#define DEVICE_VER 0x0001 -#define MANUFACTURER mrninhvn -#define PRODUCT Meow65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/meow65/info.json b/keyboards/meow65/info.json index 7221a518bd..85d6e8577b 100644 --- a/keyboards/meow65/info.json +++ b/keyboards/meow65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "meow65", + "keyboard_name": "Meow65", + "manufacturer": "mrninhvn", "url": "https://github.com/mrninhvn/meow65-pcb", "maintainer": "mrninhvn", + "usb": { + "vid": "0x6E64", + "pid": "0x4D36", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_65_ansi_blocker" }, diff --git a/keyboards/merge/iso_macro/config.h b/keyboards/merge/iso_macro/config.h index 05ca6f05f7..94a53e6946 100644 --- a/keyboards/merge/iso_macro/config.h +++ b/keyboards/merge/iso_macro/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4D65 -#define PRODUCT_ID 0x1200 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Merge -#define PRODUCT ISO Macro - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/merge/iso_macro/info.json b/keyboards/merge/iso_macro/info.json index df31150821..bdade6a712 100644 --- a/keyboards/merge/iso_macro/info.json +++ b/keyboards/merge/iso_macro/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ISO Macro", + "manufacturer": "Merge", "url": "", "maintainer": "duoshock", + "usb": { + "vid": "0x4D65", + "pid": "0x1200", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/merge/uc1/config.h b/keyboards/merge/uc1/config.h index f33d7a6548..1679d589f8 100644 --- a/keyboards/merge/uc1/config.h +++ b/keyboards/merge/uc1/config.h @@ -16,12 +16,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4D65 -#define PRODUCT_ID 0x5543 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Merge -#define PRODUCT UC-1 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 2 diff --git a/keyboards/merge/uc1/info.json b/keyboards/merge/uc1/info.json index 5452e1e7cb..ed4beff454 100644 --- a/keyboards/merge/uc1/info.json +++ b/keyboards/merge/uc1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "UC-1", + "manufacturer": "Merge", "url": "https://mergedesign.store/products/uc-1", "maintainer": "duoshock", + "usb": { + "vid": "0x4D65", + "pid": "0x5543", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/merge/um70/config.h b/keyboards/merge/um70/config.h index a1374aa9a3..1556626e52 100644 --- a/keyboards/merge/um70/config.h +++ b/keyboards/merge/um70/config.h @@ -16,12 +16,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4D65 -#define PRODUCT_ID 0x3222 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Merge -#define PRODUCT UM-70 - #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/merge/um70/info.json b/keyboards/merge/um70/info.json index f0fc07a95e..20b0d918f7 100644 --- a/keyboards/merge/um70/info.json +++ b/keyboards/merge/um70/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "UM-70", + "manufacturer": "Merge", "url": "https://mergedesign.store/um-70", "maintainer": "duoshock", + "usb": { + "vid": "0x4D65", + "pid": "0x3222", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_rspace_2u_bksp": { "layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0, "w":2}, {"x":17.75, "y":0}, {"x":1.5, "y":1, "w":1.5}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1, "w":1.5}, {"x":17.75, "y":1}, {"x":0, "y":2}, {"x":1.5, "y":2, "w":1.75}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2, "w":2.25}, {"x":17.75, "y":2}, {"x":0, "y":3}, {"x":1.5, "y":3, "w":2.25}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3, "w":1.75}, {"x":16.5, "y":3.25}, {"x":0, "y":4}, {"x":1.5, "y":4, "w":1.25}, {"x":2.75, "y":4, "w":1.25}, {"x":4, "y":4, "w":1.25}, {"x":5.25, "y":4, "w":1.25}, {"x":6.5, "y":4, "w":2.25}, {"x":9.5, "y":4, "w":2.75}, {"x":12.25, "y":4, "w":1.5}, {"x":13.75, "y":4, "w":1.5}, {"x":15.5, "y":4.25}, {"x":16.5, "y":4.25}, {"x":17.5, "y":4.25}] diff --git a/keyboards/merge/um80/config.h b/keyboards/merge/um80/config.h new file mode 100644 index 0000000000..9e39647343 --- /dev/null +++ b/keyboards/merge/um80/config.h @@ -0,0 +1,57 @@ +/* Copyright 2021 duoshock + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config_common.h" + +#define MATRIX_ROWS 12 +#define MATRIX_COLS 8 + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7, C7 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, D6, D4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define SOFT_SERIAL_PIN D2 +#define SPLIT_USB_DETECT +#define MASTER_LEFT +#define SPLIT_MODS_ENABLE + +#define RGB_DI_PIN D3 +#define RGBLIGHT_SPLIT +#define RGBLED_NUM 100 +#define RGBLED_SPLIT { 48, 52 } +#ifdef RGB_MATRIX_ENABLE +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_SPLIT RGBLED_SPLIT +#endif +#define RGBLIGHT_SLEEP +#define RGBLIGHT_LIMIT_VAL 120 + +#define DEBOUNCE 5 + +#define AUDIO_PIN B6 + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(STARTUP_SOUND) +#endif + +#define ENCODERS_PAD_A { B4 } +#define ENCODERS_PAD_B { B5 } + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file diff --git a/keyboards/merge/um80/info.json b/keyboards/merge/um80/info.json new file mode 100644 index 0000000000..1f367c9183 --- /dev/null +++ b/keyboards/merge/um80/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "UM-80", + "manufacturer": "Merge", + "url": "https://mergedesign.store/um-80", + "maintainer": "duoshock", + "usb": { + "vid": "0x4D65", + "pid": "0x3241", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_rspace_split_bksp": { + "layout": [{"label":"Esc", "x":1.5, "y":0}, {"label":"F1", "x":2.75, "y":0}, {"label":"F2", "x":3.75, "y":0}, {"label":"F3", "x":4.75, "y":0}, {"label":"F4", "x":5.75, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":10.25, "y":0}, {"label":"F8", "x":11.25, "y":0}, {"label":"F9", "x":12.5, "y":0}, {"label":"F10", "x":13.5, "y":0}, {"label":"F11", "x":14.5, "y":0}, {"label":"F12", "x":15.5, "y":0}, {"label":"Del", "x":16.75, "y":0}, {"label":"Encoder", "x":18.25, "y":0}, {"label":"~", "x":1.5, "y":1.25}, {"label":"!", "x":2.5, "y":1.25}, {"label":"@", "x":3.5, "y":1.25}, {"label":"#", "x":4.5, "y":1.25}, {"label":"$", "x":5.5, "y":1.25}, {"label":"%", "x":6.5, "y":1.25}, {"label":"^", "x":7.5, "y":1.25}, {"label":"&", "x":9.75, "y":1.25}, {"label":"*", "x":10.75, "y":1.25}, {"label":"(", "x":11.75, "y":1.25}, {"label":")", "x":12.75, "y":1.25}, {"label":"_", "x":13.75, "y":1.25}, {"label":"+", "x":14.75, "y":1.25}, {"label":"~", "x":15.75, "y":1.25}, {"label":"Bksp", "x":16.75, "y":1.25}, {"label":"Home", "x":18.25, "y":1.25}, {"label":"M0", "x":0, "y":2.25}, {"label":"Tab", "x":1.5, "y":2.25, "w":1.5}, {"label":"Q", "x":3, "y":2.25}, {"label":"W", "x":4, "y":2.25}, {"label":"E", "x":5, "y":2.25}, {"label":"R", "x":6, "y":2.25}, {"label":"T", "x":7, "y":2.25}, {"label":"Y", "x":9.25, "y":2.25}, {"label":"U", "x":10.25, "y":2.25}, {"label":"I", "x":11.25, "y":2.25}, {"label":"O", "x":12.25, "y":2.25}, {"label":"P", "x":13.25, "y":2.25}, {"label":"{", "x":14.25, "y":2.25}, {"label":"}", "x":15.25, "y":2.25}, {"label":"|", "x":16.25, "y":2.25, "w":1.5}, {"label":"PgUp", "x":18.25, "y":2.25}, {"label":"M1", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.5, "y":3.25, "w":1.75}, {"label":"A", "x":3.25, "y":3.25}, {"label":"S", "x":4.25, "y":3.25}, {"label":"D", "x":5.25, "y":3.25}, {"label":"F", "x":6.25, "y":3.25}, {"label":"G", "x":7.25, "y":3.25}, {"label":"H", "x":9.5, "y":3.25}, {"label":"J", "x":10.5, "y":3.25}, {"label":"K", "x":11.5, "y":3.25}, {"label":"L", "x":12.5, "y":3.25}, {"label":":", "x":13.5, "y":3.25}, {"label":"\"", "x":14.5, "y":3.25}, {"label":"Enter", "x":15.5, "y":3.25, "w":2.25}, {"label":"PgDn", "x":18.25, "y":3.25}, {"label":"M2", "x":0, "y":4.25}, {"label":"Shift", "x":1.5, "y":4.25, "w":2.25}, {"label":"Z", "x":3.75, "y":4.25}, {"label":"X", "x":4.75, "y":4.25}, {"label":"C", "x":5.75, "y":4.25}, {"label":"V", "x":6.75, "y":4.25}, {"label":"B", "x":7.75, "y":4.25}, {"label":"N", "x":10, "y":4.25}, {"label":"M", "x":11, "y":4.25}, {"label":"<", "x":12, "y":4.25}, {"label":">", "x":13, "y":4.25}, {"label":"?", "x":14, "y":4.25}, {"label":"Shift", "x":15, "y":4.25, "w":1.75}, {"label":"\u2191", "x":17, "y":4.5}, {"label":"M3", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.5, "y":5.25, "w":1.25}, {"label":"Win", "x":2.75, "y":5.25, "w":1.25}, {"label":"Alt", "x":4, "y":5.25, "w":1.25}, {"x":5.25, "y":5.25, "w":1.25}, {"x":6.5, "y":5.25, "w":2.25}, {"x":10, "y":5.25, "w":2.75}, {"label":"Alt", "x":12.75, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":14.25, "y":5.25, "w":1.5}, {"label":"\u2190", "x":16, "y":5.5}, {"label":"\u2193", "x":17, "y":5.5}, {"label":"\u2192", "x":18, "y":5.5}] + } + } +} diff --git a/keyboards/merge/um80/keymaps/default/keymap.c b/keyboards/merge/um80/keymaps/default/keymap.c new file mode 100644 index 0000000000..04dea2c1be --- /dev/null +++ b/keyboards/merge/um80/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2021 duoshock + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#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| Del| |EC | + * '---------------------------' '-------------------------------' '---' + * .---------------------------. .-------------------------------. .---. + * |Esc| 1| 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =|` |Bsp| |Hom| + * .---. |-------------------------. .---------------------------------| |---| + * | 1| |Tab | Q| W| E| R| T| | Y| U| I| O| P| [| ]| \ | |PgU| + * |---| |-------------------------. '---------------------------------| |---| + * | 2| |CapsL | A| S| D| F| G| | H| J| K| L| ;| :| Retn | |PgD| + * |---| |----------------------------. '--------------------------------| .---. '---' + * | 3| |Shft | Z| X| C| V| B| | N| M| ,| ,| /| Shift| |Up | + * |---| |----------------------------| |---------------------------' .-----------. + * | 4| |Ctl |Gui |Alt |Fn0 |Space | | Space| Alt| Ctl| |Lef|Dow|Rig| + * '---' '----------------------------' '-----------------------' '-----------' + */ + +[0] = LAYOUT_rspace_split_bksp( + KC_ESC, KC_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_GRV, KC_BSPC, KC_HOME, + KC_1, KC_TAB, KC_Q, KC_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_2, KC_CAPS, KC_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_3, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_4, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +), + +[1] = LAYOUT_rspace_split_bksp( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_rspace_split_bksp( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_rspace_split_bksp( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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/merge/um80/keymaps/default/readme.md b/keyboards/merge/um80/keymaps/default/readme.md new file mode 100644 index 0000000000..a5bfc566d9 --- /dev/null +++ b/keyboards/merge/um80/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# Default UM-80 Layout + +![UM-80 Layout Image](https://i.imgur.com/YsW6FSZ.jpeg) + +This is the default layout that comes flashed on every UM-80. diff --git a/keyboards/merge/um80/keymaps/default/rules.mk b/keyboards/merge/um80/keymaps/default/rules.mk new file mode 100644 index 0000000000..1888ce3a12 --- /dev/null +++ b/keyboards/merge/um80/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +WPM_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/merge/um80/keymaps/via/config.h b/keyboards/merge/um80/keymaps/via/config.h new file mode 100644 index 0000000000..c60f7b110a --- /dev/null +++ b/keyboards/merge/um80/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 duoshock + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE diff --git a/keyboards/merge/um80/keymaps/via/keymap.c b/keyboards/merge/um80/keymaps/via/keymap.c new file mode 100644 index 0000000000..04dea2c1be --- /dev/null +++ b/keyboards/merge/um80/keymaps/via/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2021 duoshock + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#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| Del| |EC | + * '---------------------------' '-------------------------------' '---' + * .---------------------------. .-------------------------------. .---. + * |Esc| 1| 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =|` |Bsp| |Hom| + * .---. |-------------------------. .---------------------------------| |---| + * | 1| |Tab | Q| W| E| R| T| | Y| U| I| O| P| [| ]| \ | |PgU| + * |---| |-------------------------. '---------------------------------| |---| + * | 2| |CapsL | A| S| D| F| G| | H| J| K| L| ;| :| Retn | |PgD| + * |---| |----------------------------. '--------------------------------| .---. '---' + * | 3| |Shft | Z| X| C| V| B| | N| M| ,| ,| /| Shift| |Up | + * |---| |----------------------------| |---------------------------' .-----------. + * | 4| |Ctl |Gui |Alt |Fn0 |Space | | Space| Alt| Ctl| |Lef|Dow|Rig| + * '---' '----------------------------' '-----------------------' '-----------' + */ + +[0] = LAYOUT_rspace_split_bksp( + KC_ESC, KC_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_GRV, KC_BSPC, KC_HOME, + KC_1, KC_TAB, KC_Q, KC_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_2, KC_CAPS, KC_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_3, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_4, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +), + +[1] = LAYOUT_rspace_split_bksp( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_rspace_split_bksp( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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_rspace_split_bksp( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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/merge/um80/keymaps/via/rules.mk b/keyboards/merge/um80/keymaps/via/rules.mk new file mode 100644 index 0000000000..cc9055e91e --- /dev/null +++ b/keyboards/merge/um80/keymaps/via/rules.mk @@ -0,0 +1,6 @@ +VIA_ENABLE = yes +WPM_ENABLE = yes +LTO_ENABLE = yes +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no diff --git a/keyboards/merge/um80/readme.md b/keyboards/merge/um80/readme.md new file mode 100644 index 0000000000..fe4c5e8392 --- /dev/null +++ b/keyboards/merge/um80/readme.md @@ -0,0 +1,22 @@ +# UM-80 + +![UM-80](https://i.imgur.com/JVEC4Ntl.jpeg) + +UM-80 is a split keyboard in 75% layout with RGB, macro keys, OLED screen and encoder housed in PLA 3D printed cases sold by Merge. [Product page](https://mergedesign.store/products/um-80) + +* Keyboard Maintainer: [duoshock](https://github.com/duoshock) +* Hardware Availability: [Merge Store](https://mergedesign.store/products/um-80) + +Make example for this keyboard (after setting up your build environment): + + make merge/um80: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 Esc key on the left side or '7' key on the right side 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 `RESET` if it is available. \ No newline at end of file diff --git a/keyboards/merge/um80/rules.mk b/keyboards/merge/um80/rules.mk new file mode 100644 index 0000000000..8865137009 --- /dev/null +++ b/keyboards/merge/um80/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +SPLIT_KEYBOARD = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 diff --git a/keyboards/merge/um80/um80.c b/keyboards/merge/um80/um80.c new file mode 100644 index 0000000000..557197c89d --- /dev/null +++ b/keyboards/merge/um80/um80.c @@ -0,0 +1,123 @@ +/* Copyright 2021 duoshock + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "um80.h" + +#ifndef WPM_ENABLE +# define get_current_wpm() 0 +#endif + +#ifdef OLED_ENABLE +void suspend_power_down_kb(void) { + oled_off(); + suspend_power_down_user(); +} + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_90; + } + + return rotation; +} + +//UM-80 logo +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0,0,0,0,0,0,0,0,0,0,128,192,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224,192,192,128,128,192, + 192,224,224,224,224,224,224,224,224,192,192,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,3,1,0,1,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,254,252,240,0,0,0,0,0,0,0,0,0,254,254,254,0,0,0,0,0,0,254,254,254, + 0,0,0,254,254,254,252,248,224,192,128,224,248,252,254,254,254,0,0,128,128,128,128,128,128,0,0,0,120,252,254,206, + 206,206,206,254,124,120,0,0,240,248,252,62,30,14,14,30,62,252,248,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,240,192,128,0,128,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,127,63,15,0,0,0,0,0,0,0,0,0,15,63,63,124,112,112,112,112,124,63,63,15,0,0,0,127,127,127,0,1,7,15, + 15,7,1,0,127,127,127,0,0,3,3,3,3,3,3,1,0,30,63,127,123,113,113,113,123,127,63,30,0,0,15,31,63,124,120,112,112,120, + 124,63,31,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,3,3,1,1,3,3,7,7,7,7,7,7,7,7,3,3,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,0,0,0,0,0,0,0,0,0,0,0,0,0 + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} + + +// 32 * 18 Merge logo +static const char PROGMEM merge_logo[] = { + 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x0e, + 0x06, 0x04, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0, 0xc0, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc0, + 0x80, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, + 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, + 0x01, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00 +}; + +static void print_status_narrow(void) { + oled_set_cursor(0,1); + oled_write_raw_P(merge_logo, sizeof(merge_logo)); + oled_set_cursor(0,5); + oled_write_P(PSTR("-----"), false); + oled_set_cursor(0,6); + oled_write_P(PSTR("LYR "), false); + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("0"), false); + break; + case 1: + oled_write_P(PSTR("1"), false); + break; + case 2: + oled_write_P(PSTR("2"), false); + break; + case 3: + oled_write_P(PSTR("3"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR(" "), false); + oled_write_P(PSTR("CAP "), false); + oled_write_P(PSTR("."), led_usb_state.caps_lock); + oled_write_P(PSTR("NUM "), false); + oled_write_P(PSTR("."), led_usb_state.num_lock); + oled_write_P(PSTR("SCR "), false); + oled_write_P(PSTR("."), led_usb_state.scroll_lock); + //oled_write_ln_P(PSTR(" "), false); + oled_write_P(PSTR("-----"), false); + + // WPM counter Start + oled_set_cursor(0,13); + oled_write(" ", false); + oled_write(get_u8_str(get_current_wpm(), '0'), false); + oled_set_cursor(0,14); + oled_write(" WPM ", false); + // WPM counter End +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { return false; } + if (is_keyboard_master()) { + print_status_narrow(); + //render_logo(); + } else { + render_logo(); + //print_status_narrow(); + } + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/merge/um80/um80.h b/keyboards/merge/um80/um80.h new file mode 100644 index 0000000000..9e17b70021 --- /dev/null +++ b/keyboards/merge/um80/um80.h @@ -0,0 +1,43 @@ +/* Copyright 2021 duoshock + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_rspace_split_bksp( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, R07, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, R17, R37, \ + L27, L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, R26, R27, R47, \ + L37, L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, R36, R57, \ + L47, L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45, R56,\ + L57, L50, L51, L52, L53, L54, R50, R51, R52, R53, R54, R55 \ +) { \ + { L00, L01, L02, L03, L04, L05, L06, XXX }, \ + { L10, L11, L12, L13, L14, L15, L16, XXX }, \ + { L20, L21, L22, L23, L24, L25, XXX, L27 }, \ + { L30, L31, L32, L33, L34, L35, XXX, L37 }, \ + { L40, L41, L42, L43, L44, L45, XXX, L47 }, \ + { L50, L51, L52, L53, L54, XXX, XXX, L57 }, \ + { R00, R01, R02, R03, R04, R05, R06, R07 }, \ + { R10, R11, R12, R13, R14, R15, R16, R17 }, \ + { R20, R21, R22, R23, R24, R25, R26, R27 }, \ + { R30, R31, R32, R33, R34, R35, R36, R37 }, \ + { R40, R41, R42, R43, R44, R45, XXX, R47 }, \ + { R50, R51, R52, R53, R54, R55, R56, R57 } \ +} diff --git a/keyboards/merge/uma/config.h b/keyboards/merge/uma/config.h index 46bad7185f..72e9eaf6b8 100644 --- a/keyboards/merge/uma/config.h +++ b/keyboards/merge/uma/config.h @@ -16,12 +16,6 @@ #include "config_common.h" -#define VENDOR_ID 0x4D65 -#define PRODUCT_ID 0x3232 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Merge -#define PRODUCT UM-A - #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/merge/uma/info.json b/keyboards/merge/uma/info.json index 8cd1ca3ddd..96ed8c0148 100644 --- a/keyboards/merge/uma/info.json +++ b/keyboards/merge/uma/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "UM-A", + "manufacturer": "Merge", "url": "https://mergedesign.store/products/um-a", "maintainer": "duoshock", + "usb": { + "vid": "0x4D65", + "pid": "0x3232", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi_rspace_2u_bksp": { "layout": [{"label":"Esc", "x":1.5, "y":0}, {"label":"!", "x":2.5, "y":0}, {"label":"@", "x":3.5, "y":0}, {"label":"#", "x":4.5, "y":0}, {"label":"$", "x":5.5, "y":0}, {"label":"%", "x":6.5, "y":0}, {"label":"^", "x":7.5, "y":0}, {"label":"&", "x":10.5, "y":0}, {"label":"*", "x":11.5, "y":0}, {"label":"(", "x":12.5, "y":0}, {"label":")", "x":13.5, "y":0}, {"label":"_", "x":14.5, "y":0}, {"label":"+", "x":15.5, "y":0}, {"label":"Backspace", "x":16.5, "y":0, "w":2}, {"label":"Encoder", "x":19, "y":0}, {"label":"Tab", "x":1.5, "y":1, "w":1.5}, {"label":"Q", "x":3, "y":1}, {"label":"W", "x":4, "y":1}, {"label":"E", "x":5, "y":1}, {"label":"R", "x":6, "y":1}, {"label":"T", "x":7, "y":1}, {"label":"Y", "x":10, "y":1}, {"label":"U", "x":11, "y":1}, {"label":"I", "x":12, "y":1}, {"label":"O", "x":13, "y":1}, {"label":"P", "x":14, "y":1}, {"label":"{", "x":15, "y":1}, {"label":"}", "x":16, "y":1}, {"label":"|", "x":17, "y":1, "w":1.5}, {"label":"Home", "x":19, "y":1}, {"label":"M0", "x":0, "y":2}, {"label":"Caps Lock", "x":1.5, "y":2, "w":1.75}, {"label":"A", "x":3.25, "y":2}, {"label":"S", "x":4.25, "y":2}, {"label":"D", "x":5.25, "y":2}, {"label":"F", "x":6.25, "y":2}, {"label":"G", "x":7.25, "y":2}, {"label":"H", "x":10.25, "y":2}, {"label":"J", "x":11.25, "y":2}, {"label":"K", "x":12.25, "y":2}, {"label":"L", "x":13.25, "y":2}, {"label":":", "x":14.25, "y":2}, {"label":"\"", "x":15.25, "y":2}, {"label":"Enter", "x":16.25, "y":2, "w":2.25}, {"label":"End", "x":19, "y":2}, {"label":"M1", "x":0, "y":3}, {"label":"Shift", "x":1.5, "y":3, "w":2.25}, {"label":"Z", "x":3.75, "y":3}, {"label":"X", "x":4.75, "y":3}, {"label":"C", "x":5.75, "y":3}, {"label":"V", "x":6.75, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"B", "x":9.75, "y":3}, {"label":"N", "x":10.75, "y":3}, {"label":"M", "x":11.75, "y":3}, {"label":"<", "x":12.75, "y":3}, {"label":">", "x":13.75, "y":3}, {"label":"?", "x":14.75, "y":3}, {"label":"Shift", "x":15.75, "y":3, "w":1.75}, {"label":"\u2191", "x":17.75, "y":3.25}, {"label":"M2", "x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Win", "x":2.75, "y":4, "w":1.25}, {"label":"Alt", "x":5.25, "y":4, "w":1.25}, {"x":6.5, "y":4, "w":2.25}, {"x":9.75, "y":4, "w":2.75}, {"label":"Alt", "x":13.5, "y":4, "w":1.5}, {"label":"Ctrl", "x":15, "y":4, "w":1.5}, {"label":"\u2190", "x":16.75, "y":4.25}, {"label":"\u2193", "x":17.75, "y":4.25}, {"label":"\u2192", "x":18.75, "y":4.25}] diff --git a/keyboards/mesa/mesa_tkl/config.h b/keyboards/mesa/mesa_tkl/config.h index 348d95a809..eaf740d69c 100644 --- a/keyboards/mesa/mesa_tkl/config.h +++ b/keyboards/mesa/mesa_tkl/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E5A -#define PRODUCT_ID 0x8001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mesa Keyboards -#define PRODUCT Mesa TKL - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/mesa/mesa_tkl/info.json b/keyboards/mesa/mesa_tkl/info.json index c546ae5e97..e1bf4b1dc9 100644 --- a/keyboards/mesa/mesa_tkl/info.json +++ b/keyboards/mesa/mesa_tkl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mesa TKL", + "manufacturer": "Mesa Keyboards", "url": "https://mesakeyboards.com", "maintainer": "MesaKeyboards", + "usb": { + "vid": "0x4E5A", + "pid": "0x8001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Back Space", "x":13, "y":1.25}, {"label":"Split BkSp", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"label":"NUBS", "x":1.25, "y":4.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Fn", "x":14, "y":4.25}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Win", "x":1.5, "y":5.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Win", "x":12.5, "y":5.25}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] diff --git a/keyboards/meson/config.h b/keyboards/meson/config.h index 3abeb479a2..c7c0a3e43e 100644 --- a/keyboards/meson/config.h +++ b/keyboards/meson/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Luciano M -#define PRODUCT Meson - /* key matrix size */ #define MATRIX_ROWS 8 // 4 rows each half #define MATRIX_COLS 7 diff --git a/keyboards/meson/info.json b/keyboards/meson/info.json index fd4fd1b6fc..cc052c37fa 100644 --- a/keyboards/meson/info.json +++ b/keyboards/meson/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Meson", + "manufacturer": "Luciano M", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/metamechs/timberwolf/config.h b/keyboards/metamechs/timberwolf/config.h index fa0791a8ea..76a9086723 100644 --- a/keyboards/metamechs/timberwolf/config.h +++ b/keyboards/metamechs/timberwolf/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D6D // MetaMechs -#define PRODUCT_ID 0x5754 // TW -#define DEVICE_VER 0x0001 -#define MANUFACTURER MetaMechs -#define PRODUCT Timber Wolf - /* key matrix size */ #define MATRIX_COLS 9 #define MATRIX_ROWS 12 diff --git a/keyboards/metamechs/timberwolf/info.json b/keyboards/metamechs/timberwolf/info.json index 602ef358c5..89e5e796b8 100644 --- a/keyboards/metamechs/timberwolf/info.json +++ b/keyboards/metamechs/timberwolf/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Timber Wolf", + "manufacturer": "MetaMechs", "url": "https://geekhack.org/index.php?topic=102520.0", "maintainer": "Croktopus", + "usb": { + "vid": "0x6D6D", + "pid": "0x5754", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mexsistor/ludmila/config.h b/keyboards/mexsistor/ludmila/config.h index 431e1a9118..19c7e5a8de 100644 --- a/keyboards/mexsistor/ludmila/config.h +++ b/keyboards/mexsistor/ludmila/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x69CC -#define PRODUCT_ID 0x6BF6 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Kevin M. -#define PRODUCT Ludmila Macropad - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 2 diff --git a/keyboards/mexsistor/ludmila/info.json b/keyboards/mexsistor/ludmila/info.json index 7df5d57670..d682d3e6cb 100644 --- a/keyboards/mexsistor/ludmila/info.json +++ b/keyboards/mexsistor/ludmila/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ludmila", + "keyboard_name": "Ludmila Macropad", + "manufacturer": "Kevin M.", "url": "", "maintainer": "Kevin M.", + "usb": { + "vid": "0x69CC", + "pid": "0x6BF6", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mikeneko65/config.h b/keyboards/mikeneko65/config.h index 33faf278f1..d5faaba618 100644 --- a/keyboards/mikeneko65/config.h +++ b/keyboards/mikeneko65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7934 -#define PRODUCT_ID 0x6D54 -#define DEVICE_VER 0x0001 -#define MANUFACTURER takishim -#define PRODUCT Mikeneko 65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mikeneko65/info.json b/keyboards/mikeneko65/info.json index 458b29df48..e7ac610859 100644 --- a/keyboards/mikeneko65/info.json +++ b/keyboards/mikeneko65/info.json @@ -1,10 +1,91 @@ { "keyboard_name": "Mikeneko 65", + "manufacturer": "takishim", "url": "https://github.com/takishim/mikeneko65", "maintainer": "takishim", + "usb": { + "vid": "0x7934", + "pid": "0x6D54", + "device_version": "0.0.1" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_blocker" + }, "layouts": { - "LAYOUT_all": { - "layout": [{"x":0, "y":0.25}, {"x":1, "y":0.25}, {"x":2, "y":0.25}, {"x":3, "y":0.25}, {"x":4, "y":0.25}, {"x":5, "y":0.25}, {"x":6, "y":0.25}, {"x":7, "y":0.25}, {"x":8, "y":0.25}, {"x":9, "y":0.25}, {"x":10, "y":0.25}, {"x":11, "y":0.25}, {"x":12, "y":0.25}, {"x":13, "y":0.25, "w":2}, {"x":15, "y":0.25}, {"x":0, "y":1.25, "w":1.5}, {"x":1.5, "y":1.25}, {"x":2.5, "y":1.25}, {"x":3.5, "y":1.25}, {"x":4.5, "y":1.25}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25}, {"x":7.5, "y":1.25}, {"x":8.5, "y":1.25}, {"x":9.5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.25}, {"x":12.5, "y":1.25}, {"x":13.5, "y":1.25, "w":1.5}, {"x":15, "y":1.25}, {"x":0, "y":2.25, "w":1.75}, {"x":1.75, "y":2.25}, {"x":2.75, "y":2.25}, {"x":3.75, "y":2.25}, {"x":4.75, "y":2.25}, {"x":5.75, "y":2.25}, {"x":6.75, "y":2.25}, {"x":7.75, "y":2.25}, {"x":8.75, "y":2.25}, {"x":9.75, "y":2.25}, {"x":10.75, "y":2.25}, {"x":11.75, "y":2.25}, {"x":12.75, "y":2.25, "w":2.25}, {"x":15, "y":2.25}, {"x":0, "y":3.25, "w":2.25}, {"x":2.25, "y":3.25}, {"x":3.25, "y":3.25}, {"x":4.25, "y":3.25}, {"x":5.25, "y":3.25}, {"x":6.25, "y":3.25}, {"x":7.25, "y":3.25}, {"x":8.25, "y":3.25}, {"x":9.25, "y":3.25}, {"x":10.25, "y":3.25}, {"x":11.25, "y":3.25}, {"x":12.25, "y":3.25, "w":1.75}, {"x":14, "y":3.25}, {"x":15, "y":3.25}, {"x":0, "y":4.25, "w":1.25}, {"x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25, "w":1.25}, {"x":3.75, "y":4.25, "w":6.25}, {"x":10, "y":4.25, "w":1.25}, {"x":11.25, "y":4.25, "w":1.25}, {"x":13, "y":4.25}, {"x":14, "y":4.25}, {"x":15, "y":4.25}] + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] } } } diff --git a/keyboards/mikeneko65/keymaps/default/keymap.c b/keyboards/mikeneko65/keymaps/default/keymap.c index 108ba0beb0..60b46db34a 100644 --- a/keyboards/mikeneko65/keymaps/default/keymap.c +++ b/keyboards/mikeneko65/keymaps/default/keymap.c @@ -22,14 +22,14 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_all( + [_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_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT ), - [_FN] = LAYOUT_all( + [_FN] = LAYOUT_65_ansi_blocker( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/mikeneko65/keymaps/via/keymap.c b/keyboards/mikeneko65/keymaps/via/keymap.c index 2b9d125809..b5cc1a0dd1 100644 --- a/keyboards/mikeneko65/keymaps/via/keymap.c +++ b/keyboards/mikeneko65/keymaps/via/keymap.c @@ -24,28 +24,28 @@ enum layer_names { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_L0] = LAYOUT_all( + [_L0] = 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(_L1), KC_LEFT, KC_DOWN, KC_RGHT ), - [_L1] = LAYOUT_all( + [_L1] = LAYOUT_65_ansi_blocker( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_L2] = LAYOUT_all( + [_L2] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [_L3] = LAYOUT_all( + [_L3] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/mikeneko65/mikeneko65.h b/keyboards/mikeneko65/mikeneko65.h index 5f4a913fc9..9273b0fdbc 100644 --- a/keyboards/mikeneko65/mikeneko65.h +++ b/keyboards/mikeneko65/mikeneko65.h @@ -19,7 +19,7 @@ #include "quantum.h" -#define LAYOUT_all( \ +#define LAYOUT_65_ansi_blocker( \ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k214, \ diff --git a/keyboards/mikeneko65/rules.mk b/keyboards/mikeneko65/rules.mk index 1275531ef6..59fa2e87f8 100644 --- a/keyboards/mikeneko65/rules.mk +++ b/keyboards/mikeneko65/rules.mk @@ -16,3 +16,5 @@ 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 + +LAYOUTS = 65_ansi_blocker diff --git a/keyboards/miller/gm862/config.h b/keyboards/miller/gm862/config.h index 57a832dc08..2420230247 100644 --- a/keyboards/miller/gm862/config.h +++ b/keyboards/miller/gm862/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B42 -#define PRODUCT_ID 0x0223 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MILLER -#define PRODUCT GM862 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/miller/gm862/info.json b/keyboards/miller/gm862/info.json index 5c784d1a18..189aba686b 100644 --- a/keyboards/miller/gm862/info.json +++ b/keyboards/miller/gm862/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "GM862", + "manufacturer": "MILLER", "url": "", "maintainer": "MILLER", + "usb": { + "vid": "0x4B42", + "pid": "0x0223", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [ diff --git a/keyboards/millipad/config.h b/keyboards/millipad/config.h index cfc91a2a16..82fdeb3953 100644 --- a/keyboards/millipad/config.h +++ b/keyboards/millipad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1A1B -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jirou -#define PRODUCT millipad - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 6 diff --git a/keyboards/millipad/info.json b/keyboards/millipad/info.json index a50f69aa6f..4f0318ce65 100644 --- a/keyboards/millipad/info.json +++ b/keyboards/millipad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "millipad", + "manufacturer": "Jirou", "url": "https://github.com/GLozares/millipad", "maintainer": "Jirou", + "usb": { + "vid": "0xFEED", + "pid": "0x1A1B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mini_elixivy/config.h b/keyboards/mini_elixivy/config.h index 863934df6b..5955d4b5cb 100644 --- a/keyboards/mini_elixivy/config.h +++ b/keyboards/mini_elixivy/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER minibois -#define PRODUCT mini_elixivy - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mini_elixivy/info.json b/keyboards/mini_elixivy/info.json index 44143a3c1b..6c6f962127 100644 --- a/keyboards/mini_elixivy/info.json +++ b/keyboards/mini_elixivy/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "mini_elixivy", + "manufacturer": "minibois", "url": "https://github.com/minibois/elixivy", "maintainer": "minibois", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout":[ diff --git a/keyboards/mini_ten_key_plus/config.h b/keyboards/mini_ten_key_plus/config.h index c8a44356f2..893a8a6a60 100644 --- a/keyboards/mini_ten_key_plus/config.h +++ b/keyboards/mini_ten_key_plus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER minibois -#define PRODUCT mini_ten_key_plus - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 5 diff --git a/keyboards/mini_ten_key_plus/info.json b/keyboards/mini_ten_key_plus/info.json index cf3916bb68..b596fe5f48 100644 --- a/keyboards/mini_ten_key_plus/info.json +++ b/keyboards/mini_ten_key_plus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "mini_ten_key_plus", + "manufacturer": "minibois", "url": "https://github.com/minibois/ten-key-plus", "maintainer": "minibois", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout":[ diff --git a/keyboards/miniaxe/config.h b/keyboards/miniaxe/config.h index 3c0ddf9074..43d3066f9e 100644 --- a/keyboards/miniaxe/config.h +++ b/keyboards/miniaxe/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3939 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ENDO Katsuhiro -#define PRODUCT MiniAxe - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 5 diff --git a/keyboards/miniaxe/info.json b/keyboards/miniaxe/info.json index 40c9def62c..9780ffe554 100644 --- a/keyboards/miniaxe/info.json +++ b/keyboards/miniaxe/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MiniAxe", + "manufacturer": "ENDO Katsuhiro", "url": "", "maintainer": "ka2hiro", + "usb": { + "vid": "0xFEED", + "pid": "0x3939", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_3": { "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Cmd", "x":2, "y":3}, {"label":"⇓", "x":3, "y":3}, {"label":"Ctrl", "x":4, "y":3}, {"x":6, "y":3}, {"label":"⇑", "x":7, "y":3}, {"label":"Opt", "x":8, "y":3}] diff --git a/keyboards/minimacro5/config.h b/keyboards/minimacro5/config.h index b48b5df21e..e839fea224 100644 --- a/keyboards/minimacro5/config.h +++ b/keyboards/minimacro5/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCEEB -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER leafcutterlabs -#define PRODUCT miniMACRO5 - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 5 diff --git a/keyboards/minimacro5/info.json b/keyboards/minimacro5/info.json index 5649c57de4..0dba5c0e6c 100644 --- a/keyboards/minimacro5/info.json +++ b/keyboards/minimacro5/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "minimacro5", + "keyboard_name": "miniMACRO5", + "manufacturer": "leafcutterlabs", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCEEB", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_1x5": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":5, "y":0}] diff --git a/keyboards/minimacro5/keymaps/devdev/keymap.c b/keyboards/minimacro5/keymaps/devdev/keymap.c index 3c203fcc37..d7f998fa3a 100644 --- a/keyboards/minimacro5/keymaps/devdev/keymap.c +++ b/keyboards/minimacro5/keymaps/devdev/keymap.c @@ -37,7 +37,7 @@ enum tap_dances{ bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder*/ - switch(get_highest_layer(layer_state)){ + switch(biton32(layer_state)){ case _MAIN: if (clockwise) { tap_code(KC_VOLU); diff --git a/keyboards/mino/hotswap/config.h b/keyboards/mino/hotswap/config.h index 27ec49f379..62583e7156 100644 --- a/keyboards/mino/hotswap/config.h +++ b/keyboards/mino/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7877 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ShandonCodes -#define PRODUCT Mino - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/mino/hotswap/info.json b/keyboards/mino/hotswap/info.json index 996dcf3b62..32231595ae 100644 --- a/keyboards/mino/hotswap/info.json +++ b/keyboards/mino/hotswap/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mino", + "manufacturer": "ShandonCodes", "url": "https://qmk.fm/keyboards/", "maintainer": "ShandonCodes", + "usb": { + "vid": "0x7877", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/mint60/config.h b/keyboards/mint60/config.h index ee44ae446b..2b5b831456 100644 --- a/keyboards/mint60/config.h +++ b/keyboards/mint60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Eucalyn -#define PRODUCT Mint60 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/mint60/info.json b/keyboards/mint60/info.json index 377b134c74..e0deae38ee 100644 --- a/keyboards/mint60/info.json +++ b/keyboards/mint60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mint60", + "manufacturer": "Eucalyn", "url": "", "maintainer": "eucalyn", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/misonoworks/chocolatebar/config.h b/keyboards/misonoworks/chocolatebar/config.h index a1da636fd9..8581a545d3 100644 --- a/keyboards/misonoworks/chocolatebar/config.h +++ b/keyboards/misonoworks/chocolatebar/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D77 // "mW" - misonoWorks -#define PRODUCT_ID 0xC456 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MisonoWorks -#define PRODUCT Chocolate Bar - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 16 diff --git a/keyboards/misonoworks/chocolatebar/info.json b/keyboards/misonoworks/chocolatebar/info.json index d22d9da7ac..409b1119b7 100644 --- a/keyboards/misonoworks/chocolatebar/info.json +++ b/keyboards/misonoworks/chocolatebar/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Chocolate Bar", + "manufacturer": "MisonoWorks", "url": "https://github.com/misonoworks/chocolate-bar", "maintainer": "Robin Bayardo", + "usb": { + "vid": "0x6D77", + "pid": "0xC456", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/misonoworks/karina/config.h b/keyboards/misonoworks/karina/config.h index 6cd5f20e89..e77f0fcff5 100644 --- a/keyboards/misonoworks/karina/config.h +++ b/keyboards/misonoworks/karina/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -// descriptors -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xC456 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MisonoWorks -#define PRODUCT Karina - // matrix #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/misonoworks/karina/info.json b/keyboards/misonoworks/karina/info.json index bfa4944c74..b76a16e7e7 100644 --- a/keyboards/misonoworks/karina/info.json +++ b/keyboards/misonoworks/karina/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Karina", + "manufacturer": "MisonoWorks", "url": "https://github.com/autumnisacutie/karina", "maintainer": "MisonoWorks", + "usb": { + "vid": "0xFEED", + "pid": "0xC456", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/misterknife/knife66/config.h b/keyboards/misterknife/knife66/config.h index 0dd85dfdfc..6f8fa4836d 100644 --- a/keyboards/misterknife/knife66/config.h +++ b/keyboards/misterknife/knife66/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xAC11 -#define PRODUCT_ID 0x4172 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MisterKnife -#define PRODUCT Knife66 - #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/misterknife/knife66/info.json b/keyboards/misterknife/knife66/info.json index 983811fe31..7ed334ee92 100644 --- a/keyboards/misterknife/knife66/info.json +++ b/keyboards/misterknife/knife66/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Knife66", + "manufacturer": "MisterKnife", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xAC11", + "pid": "0x4172", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15.5, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14.25, "y":3.25}, {"x":15.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":2.25, "y":4}, {"x":3.25, "y":4, "w":1.25}, {"x":4.5, "y":4, "w":2.25}, {"x":6.75, "y":4, "w":2.75}, {"x":9.5, "y":4, "w":1.25}, {"x":10.75, "y":4}, {"x":11.75, "y":4, "w":1.25}, {"x":13.25, "y":4.25}, {"x":14.25, "y":4.25}, {"x":15.25, "y":4.25}] diff --git a/keyboards/misterknife/knife66_iso/config.h b/keyboards/misterknife/knife66_iso/config.h index 0c390e8593..4b3b858075 100644 --- a/keyboards/misterknife/knife66_iso/config.h +++ b/keyboards/misterknife/knife66_iso/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xAC11 -#define PRODUCT_ID 0x4173 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MisterKnife -#define PRODUCT Knife66 ISO - #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/misterknife/knife66_iso/info.json b/keyboards/misterknife/knife66_iso/info.json index 6411a480ee..da475626a4 100644 --- a/keyboards/misterknife/knife66_iso/info.json +++ b/keyboards/misterknife/knife66_iso/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Knife66_iso", + "keyboard_name": "Knife66 ISO", + "manufacturer": "MisterKnife", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xAC11", + "pid": "0x4173", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mitosis/config.h b/keyboards/mitosis/config.h index 5c2a0b9657..1310866fbb 100644 --- a/keyboards/mitosis/config.h +++ b/keyboards/mitosis/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Unknown -#define PRODUCT Mitosis - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 10 diff --git a/keyboards/mitosis/info.json b/keyboards/mitosis/info.json index a5a45ddf9b..07d3c8f5ec 100644 --- a/keyboards/mitosis/info.json +++ b/keyboards/mitosis/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mitosis", + "manufacturer": "Unknown", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0.75}, {"x":1, "y":0.25}, {"x":2, "y":0}, {"x":3, "y":0.25}, {"x":4, "y":0.125}, {"x":7, "y":0.125}, {"x":8, "y":0.25}, {"x":9, "y":0}, {"x":10, "y":0.25}, {"x":11, "y":0.75}, {"x":0, "y":1.75}, {"x":1, "y":1.25}, {"x":2, "y":1}, {"x":3, "y":1.25}, {"x":4, "y":1.125}, {"x":7, "y":1.125}, {"x":8, "y":1.25}, {"x":9, "y":1}, {"x":10, "y":1.25}, {"x":11, "y":1.75}, {"x":0, "y":2.75}, {"x":1, "y":2.25}, {"x":2, "y":2}, {"x":3, "y":2.25}, {"x":4, "y":2.125}, {"x":7, "y":2.125}, {"x":8, "y":2.25}, {"x":9, "y":2}, {"x":10, "y":2.25}, {"x":11, "y":2.75}, {"x":1.5, "y":3.75}, {"x":2.5, "y":3.75}, {"x":3.5, "y":3.75}, {"x":4.5, "y":3.75}, {"x":6.5, "y":3.75}, {"x":7.5, "y":3.75}, {"x":8.5, "y":3.75}, {"x":9.5, "y":3.75}, {"x":1.5, "y":4.75}, {"x":2.5, "y":4.75}, {"x":3.5, "y":4.75}, {"x":4.5, "y":4.75}, {"x":6.5, "y":4.75}, {"x":7.5, "y":4.75}, {"x":8.5, "y":4.75}, {"x":9.5, "y":4.75}] diff --git a/keyboards/mitosis/keymaps/carvac_dv/keymap.c b/keyboards/mitosis/keymaps/carvac_dv/keymap.c index 842556324f..c67f2e387c 100644 --- a/keyboards/mitosis/keymaps/carvac_dv/keymap.c +++ b/keyboards/mitosis/keymaps/carvac_dv/keymap.c @@ -105,7 +105,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _STD: @@ -121,3 +121,4 @@ void matrix_scan_user(void) { break; } }; + diff --git a/keyboards/mitosis/keymaps/datagrok/keymap.c b/keyboards/mitosis/keymaps/datagrok/keymap.c index 2611e1194c..220c140af0 100644 --- a/keyboards/mitosis/keymaps/datagrok/keymap.c +++ b/keyboards/mitosis/keymaps/datagrok/keymap.c @@ -102,7 +102,7 @@ const size_t defaultlayers_n = sizeof(defaultlayers) / sizeof(defaultlayers[0]); // New keycode KC_LAYO rotates between available default layers (for e.g., // selecting a base layout). Shift+KC_LAYO makes the current one persistent. bool process_record_layout(uint16_t keycode, keyrecord_t *record) { - uint8_t default_layer; + uint32_t default_layer; uint8_t i; #if defined(AUDIO_ENABLE) float saved_song[][2] = SONG(COIN_SOUND); @@ -121,7 +121,7 @@ bool process_record_layout(uint16_t keycode, keyrecord_t *record) { } else { // rotate default layer. // find the current default layer - default_layer = get_highest_layer(default_layer_state); + default_layer = biton32(default_layer_state); // find next valid default layer for (i = 1; i < defaultlayers_n; i++) { if (defaultlayers[(default_layer + i) % defaultlayers_n]) { diff --git a/keyboards/mitosis/keymaps/default/keymap.c b/keyboards/mitosis/keymaps/default/keymap.c index 27b2eb2525..6132ad6f78 100644 --- a/keyboards/mitosis/keymaps/default/keymap.c +++ b/keyboards/mitosis/keymaps/default/keymap.c @@ -77,7 +77,7 @@ static bool singular_key = false; bool process_record_user(uint16_t keycode, keyrecord_t *record) { uint8_t layer; - layer = get_highest_layer(layer_state); // get the current layer + layer = biton32(layer_state); // get the current layer //custom layer handling for tri_layer, switch (keycode) { @@ -174,7 +174,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _MALT: @@ -193,3 +193,4 @@ void matrix_scan_user(void) { break; } }; + diff --git a/keyboards/mitosis/keymaps/mjt/keymap.c b/keyboards/mitosis/keymaps/mjt/keymap.c index 0946e40b8e..f00bf59556 100644 --- a/keyboards/mitosis/keymaps/mjt/keymap.c +++ b/keyboards/mitosis/keymaps/mjt/keymap.c @@ -181,7 +181,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } uint8_t layer; - layer = get_highest_layer(layer_state); // get the current layer + layer = biton32(layer_state); // get the current layer //custom layer handling for tri_layer, switch (keycode) { @@ -310,7 +310,7 @@ void music_scale_user(void) #endif void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _QWERTY: diff --git a/keyboards/mitosis/keymaps/nzen/keymap.c b/keyboards/mitosis/keymaps/nzen/keymap.c index c981441bc9..d9fd3641bc 100644 --- a/keyboards/mitosis/keymaps/nzen/keymap.c +++ b/keyboards/mitosis/keymaps/nzen/keymap.c @@ -175,7 +175,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _QWERTY: @@ -205,3 +205,5 @@ void matrix_scan_user(void) { void matrix_init_user(void) { set_unicode_input_mode(UC_LNX); // or UC_WINC }; + + diff --git a/keyboards/miuni32/config.h b/keyboards/miuni32/config.h index cf8b875b2f..4d6964dafb 100644 --- a/keyboards/miuni32/config.h +++ b/keyboards/miuni32/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bigtuna.io -#define PRODUCT Miuni32 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 11 diff --git a/keyboards/miuni32/info.json b/keyboards/miuni32/info.json index 016c772f19..b9ee96c755 100644 --- a/keyboards/miuni32/info.json +++ b/keyboards/miuni32/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "miuni32", + "keyboard_name": "Miuni32", + "manufacturer": "Bigtuna.io", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "w":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}] diff --git a/keyboards/mixi/config.h b/keyboards/mixi/config.h index c5cac8ca6e..e833357945 100644 --- a/keyboards/mixi/config.h +++ b/keyboards/mixi/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4752 -#define PRODUCT_ID 0x4D49 -#define DEVICE_VER 0x0001 -#define MANUFACTURER gregorio -#define PRODUCT Mixi - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/mixi/info.json b/keyboards/mixi/info.json index 6b55464aa1..c1f60e8ee7 100644 --- a/keyboards/mixi/info.json +++ b/keyboards/mixi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mixi", + "manufacturer": "gregorio", "url": "https://tokopedia.com/sell-stuffs", "maintainer": "ohchiko", + "usb": { + "vid": "0x4752", + "pid": "0x4D49", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ml/gas75/config.h b/keyboards/ml/gas75/config.h index 4afc29952b..4f35c4c265 100644 --- a/keyboards/ml/gas75/config.h +++ b/keyboards/ml/gas75/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC0B0 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ML -#define PRODUCT Gas75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/ml/gas75/info.json b/keyboards/ml/gas75/info.json index e6084a1835..4810c22d7e 100644 --- a/keyboards/ml/gas75/info.json +++ b/keyboards/ml/gas75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Gas75", + "manufacturer": "ML", "url": "https://item.taobao.com/item.htm?ft=t&id=652142230132", "maintainer": "ML", + "usb": { + "vid": "0xC0B0", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mlego/m48/keymaps/default/keymap.c b/keyboards/mlego/m48/keymaps/default/keymap.c index 175f42b9b9..5eb40a332a 100644 --- a/keyboards/mlego/m48/keymaps/default/keymap.c +++ b/keyboards/mlego/m48/keymaps/default/keymap.c @@ -106,10 +106,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJ] = LAYOUT_ortho_4x12( - _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/mlego/m60_split/rev2/rules.mk b/keyboards/mlego/m60_split/rev2/rules.mk index cb8f4bd951..c10aed3e16 100644 --- a/keyboards/mlego/m60_split/rev2/rules.mk +++ b/keyboards/mlego/m60_split/rev2/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mmkzoo65/config.h b/keyboards/mmkzoo65/config.h index 18d7c40ca6..b562a40859 100644 --- a/keyboards/mmkzoo65/config.h +++ b/keyboards/mmkzoo65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7BA1 -#define PRODUCT_ID 0x6505 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MWStudio -#define PRODUCT MMKZOO65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mmkzoo65/info.json b/keyboards/mmkzoo65/info.json index 682c2238fc..e83b0cc767 100644 --- a/keyboards/mmkzoo65/info.json +++ b/keyboards/mmkzoo65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MMKZOO65", + "manufacturer": "MWStudio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x7BA1", + "pid": "0x6505", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mnk1800s/config.h b/keyboards/mnk1800s/config.h index 1c7ec21a29..49cae28b57 100755 --- a/keyboards/mnk1800s/config.h +++ b/keyboards/mnk1800s/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x3138 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT MNK1800s - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/mnk1800s/info.json b/keyboards/mnk1800s/info.json index 9dd79dbf7d..7c2a2738b7 100755 --- a/keyboards/mnk1800s/info.json +++ b/keyboards/mnk1800s/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MNK1800s", + "manufacturer": "Yiancar-Designs", "url": "https://yiancar-designs.com", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x3138", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mnk50/config.h b/keyboards/mnk50/config.h index 9e49bd5c96..5458dc44a8 100755 --- a/keyboards/mnk50/config.h +++ b/keyboards/mnk50/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4D35 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT MNK50 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 14 diff --git a/keyboards/mnk50/info.json b/keyboards/mnk50/info.json index 2d174ead3c..c4d222138b 100755 --- a/keyboards/mnk50/info.json +++ b/keyboards/mnk50/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MNK50", + "manufacturer": "Yiancar-Designs", "url": "https://yiancar-designs.com", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x4D35", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mnk75/config.h b/keyboards/mnk75/config.h index a0aec085d3..1e64e8074e 100755 --- a/keyboards/mnk75/config.h +++ b/keyboards/mnk75/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4D37 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT MNK75 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/mnk75/info.json b/keyboards/mnk75/info.json index 65b2100da5..24f54f8c00 100755 --- a/keyboards/mnk75/info.json +++ b/keyboards/mnk75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MNK75", + "manufacturer": "Yiancar-Designs", "url": "https://yiancar-designs.com", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x4D37", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"x":15, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":15, "y":3.5}, {"x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"x":15, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5, "w":1.25}, {"x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":2.75}, {"x":6.5, "y":5.5, "w":1.25}, {"x":7.75, "y":5.5, "w":2.25}, {"x":10, "y":5.5, "w":1.25}, {"x":11.25, "y":5.5, "w":1.25}, {"x":13, "y":5.5}, {"x":14, "y":5.5}, {"x":15, "y":5.5}] diff --git a/keyboards/mntre/config.h b/keyboards/mntre/config.h index af5f810741..45d47bad68 100644 --- a/keyboards/mntre/config.h +++ b/keyboards/mntre/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1302 -#define DEVICE_VER 0x0002 -#define MANUFACTURER MNT Research GmbH -#define PRODUCT MNT Reform USB Keyboard (Standalone) - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/mntre/info.json b/keyboards/mntre/info.json index cf3ce47394..77ffdb2809 100644 --- a/keyboards/mntre/info.json +++ b/keyboards/mntre/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MNT Reform USB Keyboard (Standalone)", + "manufacturer": "MNT Research GmbH", "url": "https://shop.mntmn.com/products/mnt-reform-usb-keyboard-standalone", "maintainer": "cdc-mkb", + "usb": { + "vid": "0xFEED", + "pid": "0x1302", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mode/m65ha_alpha/config.h b/keyboards/mode/m65ha_alpha/config.h index cdeffe6fa3..b8edfeee82 100644 --- a/keyboards/mode/m65ha_alpha/config.h +++ b/keyboards/mode/m65ha_alpha/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00DE -#define PRODUCT_ID 0x6566 // 65A + 1 since the pre-alpha version was 6565 -#define DEVICE_VER 0x0065 // A for release Alpha -#define MANUFACTURER Mode -#define PRODUCT SixtyFive HA - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 @@ -49,8 +42,6 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -#define STM32_HSECLK 8000000 - #define OPENDRAIN_INDICATORS #define LED_CAPS_LOCK_PIN A6 diff --git a/keyboards/mode/m65ha_alpha/info.json b/keyboards/mode/m65ha_alpha/info.json index a25d22714e..c2ae3d385d 100644 --- a/keyboards/mode/m65ha_alpha/info.json +++ b/keyboards/mode/m65ha_alpha/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Mode SixtyFive HA", + "keyboard_name": "SixtyFive HA", + "manufacturer": "Mode", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x00DE", + "pid": "0x6566", + "device_version": "0.6.5" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mode/m65ha_alpha/mcuconf.h b/keyboards/mode/m65ha_alpha/mcuconf.h index e4cefd0b75..0ca8c64850 100644 --- a/keyboards/mode/m65ha_alpha/mcuconf.h +++ b/keyboards/mode/m65ha_alpha/mcuconf.h @@ -17,19 +17,6 @@ #pragma once #include_next -#undef STM32_PLLM_VALUE -#undef STM32_PLLN_VALUE -#undef STM32_PLLP_VALUE -#undef STM32_PLLQ_VALUE -#undef STM32_PPRE1 -#undef STM32_PPRE2 - -#define STM32_PLLM_VALUE 4 -#define STM32_PLLN_VALUE 168 -#define STM32_PLLP_VALUE 4 -#define STM32_PLLQ_VALUE 7 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV1 #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/mode/m65ha_alpha/rules.mk b/keyboards/mode/m65ha_alpha/rules.mk index 191428572e..091e076bd0 100644 --- a/keyboards/mode/m65ha_alpha/rules.mk +++ b/keyboards/mode/m65ha_alpha/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = GENERIC_STM32_F401XC # Bootloader selection BOOTLOADER = stm32-dfu @@ -17,5 +18,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 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/config.h b/keyboards/mode/m65hi_alpha/config.h index daacee56ce..3886755cb3 100644 --- a/keyboards/mode/m65hi_alpha/config.h +++ b/keyboards/mode/m65hi_alpha/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00DE -#define PRODUCT_ID 0x6574 // For 65I + 1 (for alpha, since pre-alpha 6573) -#define DEVICE_VER 0x0065 // A for A (alpha) -#define MANUFACTURER Mode -#define PRODUCT SixtyFive HI - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 @@ -49,8 +42,6 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -#define STM32_HSECLK 8000000 - #define OPENDRAIN_INDICATORS #define LED_CAPS_LOCK_PIN A6 diff --git a/keyboards/mode/m65hi_alpha/info.json b/keyboards/mode/m65hi_alpha/info.json index aa5f98efc6..231299e6d1 100644 --- a/keyboards/mode/m65hi_alpha/info.json +++ b/keyboards/mode/m65hi_alpha/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Mode SixtyFive HI", + "keyboard_name": "SixtyFive HI", + "manufacturer": "Mode", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x00DE", + "pid": "0x6574", + "device_version": "0.6.5" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mode/m65hi_alpha/mcuconf.h b/keyboards/mode/m65hi_alpha/mcuconf.h index 97f2ee51ee..dd68a8c1e7 100644 --- a/keyboards/mode/m65hi_alpha/mcuconf.h +++ b/keyboards/mode/m65hi_alpha/mcuconf.h @@ -22,19 +22,6 @@ #pragma once #include_next -#undef STM32_PLLM_VALUE -#undef STM32_PLLN_VALUE -#undef STM32_PLLP_VALUE -#undef STM32_PLLQ_VALUE -#undef STM32_PPRE1 -#undef STM32_PPRE2 - -#define STM32_PLLM_VALUE 4 -#define STM32_PLLN_VALUE 168 -#define STM32_PLLP_VALUE 4 -#define STM32_PLLQ_VALUE 7 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV1 #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/mode/m65hi_alpha/rules.mk b/keyboards/mode/m65hi_alpha/rules.mk index 191428572e..091e076bd0 100644 --- a/keyboards/mode/m65hi_alpha/rules.mk +++ b/keyboards/mode/m65hi_alpha/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = GENERIC_STM32_F401XC # Bootloader selection BOOTLOADER = stm32-dfu @@ -17,5 +18,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 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 9cd3bfcb35..4459e37145 100644 --- a/keyboards/mode/m65s/config.h +++ b/keyboards/mode/m65s/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00DE -#define PRODUCT_ID 0x6583 // For 65S -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mode -#define PRODUCT SixtyFive S - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 @@ -49,8 +42,6 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -#define STM32_HSECLK 8000000 - #define OPENDRAIN_INDICATORS #define LED_CAPS_LOCK_PIN C8 diff --git a/keyboards/mode/m65s/info.json b/keyboards/mode/m65s/info.json index cb0cf8c12c..511a05bf8f 100644 --- a/keyboards/mode/m65s/info.json +++ b/keyboards/mode/m65s/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Mode SixtyFive S", + "keyboard_name": "SixtyFive S", + "manufacturer": "Mode", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x00DE", + "pid": "0x6583", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mode/m65s/mcuconf.h b/keyboards/mode/m65s/mcuconf.h index 97f2ee51ee..dd68a8c1e7 100644 --- a/keyboards/mode/m65s/mcuconf.h +++ b/keyboards/mode/m65s/mcuconf.h @@ -22,19 +22,6 @@ #pragma once #include_next -#undef STM32_PLLM_VALUE -#undef STM32_PLLN_VALUE -#undef STM32_PLLP_VALUE -#undef STM32_PLLQ_VALUE -#undef STM32_PPRE1 -#undef STM32_PPRE2 - -#define STM32_PLLM_VALUE 4 -#define STM32_PLLN_VALUE 168 -#define STM32_PLLP_VALUE 4 -#define STM32_PLLQ_VALUE 7 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV1 #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/mode/m65s/rules.mk b/keyboards/mode/m65s/rules.mk index bb3ebaee28..91f94bfa10 100644 --- a/keyboards/mode/m65s/rules.mk +++ b/keyboards/mode/m65s/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = GENERIC_STM32_F401XC # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mode/m75h/config.h b/keyboards/mode/m75h/config.h index 6618d2bdbd..0dff69fac9 100644 --- a/keyboards/mode/m75h/config.h +++ b/keyboards/mode/m75h/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00DE -#define PRODUCT_ID 0x7572 // For 75H -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mode -#define PRODUCT Mode 75H - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 16 @@ -50,8 +43,6 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -#define STM32_HSECLK 8000000 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/mode/m75h/info.json b/keyboards/mode/m75h/info.json index 91584e8863..e3b5c6d64b 100644 --- a/keyboards/mode/m75h/info.json +++ b/keyboards/mode/m75h/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Mode 75H", + "keyboard_name": "75H", + "manufacturer": "Mode", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x00DE", + "pid": "0x7572", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mode/m75h/mcuconf.h b/keyboards/mode/m75h/mcuconf.h index 97f2ee51ee..dd68a8c1e7 100644 --- a/keyboards/mode/m75h/mcuconf.h +++ b/keyboards/mode/m75h/mcuconf.h @@ -22,19 +22,6 @@ #pragma once #include_next -#undef STM32_PLLM_VALUE -#undef STM32_PLLN_VALUE -#undef STM32_PLLP_VALUE -#undef STM32_PLLQ_VALUE -#undef STM32_PPRE1 -#undef STM32_PPRE2 - -#define STM32_PLLM_VALUE 4 -#define STM32_PLLN_VALUE 168 -#define STM32_PLLP_VALUE 4 -#define STM32_PLLQ_VALUE 7 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV1 #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/mode/m75h/readme.md b/keyboards/mode/m75h/readme.md index a663847278..7b9a6a8710 100644 --- a/keyboards/mode/m75h/readme.md +++ b/keyboards/mode/m75h/readme.md @@ -1,8 +1,6 @@ -# Mode SixtyFive M65S +# Mode SixtyFive M75H -![MODE75](https://raw.githubusercontent.com/Gondolindrim/file_hosting/main/mode_sixtyfive/Group_95_1024x1024.jpg) - -The M65S is the solderable PCB for the Mode SixtyFive keyboard, a sixty-five-percent high-end keyboard sold by [Mode Designs](https://shop.modedesigns.com/). +The M75H is the hot-swappable PCB for the Mode SeventyFive keyboard, a seventy-five-percent high-end keyboard sold by [Mode Designs](https://shop.modedesigns.com/). - Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim) - Hardware Supported: proprietary PCB using STM32F401 controller @@ -10,10 +8,10 @@ The M65S is the solderable PCB for the Mode SixtyFive keyboard, a sixty-five-per Make example for this keyboard (after setting up your build environment): - make mode/m65s:default + make mode/m75h:default Flashing example for this keyboard: - make mode/m65s:default:flash + make mode/m75h: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/mode/m75h/rules.mk b/keyboards/mode/m75h/rules.mk index f7659378cc..76752ec1b3 100644 --- a/keyboards/mode/m75h/rules.mk +++ b/keyboards/mode/m75h/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = GENERIC_STM32_F401XC # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mode/m75s/config.h b/keyboards/mode/m75s/config.h index 9e902a1585..5da8543e95 100644 --- a/keyboards/mode/m75s/config.h +++ b/keyboards/mode/m75s/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x00DE -#define PRODUCT_ID 0x7583 // For 75S -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mode -#define PRODUCT Mode 75S - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 16 @@ -50,8 +43,6 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -#define STM32_HSECLK 8000000 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/mode/m75s/info.json b/keyboards/mode/m75s/info.json index d45cee20dc..2b58f194fb 100644 --- a/keyboards/mode/m75s/info.json +++ b/keyboards/mode/m75s/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Mode 75S", + "keyboard_name": "75S", + "manufacturer": "Mode", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x00DE", + "pid": "0x7583", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mode/m75s/mcuconf.h b/keyboards/mode/m75s/mcuconf.h index 97f2ee51ee..dd68a8c1e7 100644 --- a/keyboards/mode/m75s/mcuconf.h +++ b/keyboards/mode/m75s/mcuconf.h @@ -22,19 +22,6 @@ #pragma once #include_next -#undef STM32_PLLM_VALUE -#undef STM32_PLLN_VALUE -#undef STM32_PLLP_VALUE -#undef STM32_PLLQ_VALUE -#undef STM32_PPRE1 -#undef STM32_PPRE2 - -#define STM32_PLLM_VALUE 4 -#define STM32_PLLN_VALUE 168 -#define STM32_PLLP_VALUE 4 -#define STM32_PLLQ_VALUE 7 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV1 #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/mode/m75s/rules.mk b/keyboards/mode/m75s/rules.mk index f7659378cc..76752ec1b3 100644 --- a/keyboards/mode/m75s/rules.mk +++ b/keyboards/mode/m75s/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = GENERIC_STM32_F401XC # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/mokey/ginkgo65/config.h b/keyboards/mokey/ginkgo65/config.h index 3660989267..5b09351e32 100644 --- a/keyboards/mokey/ginkgo65/config.h +++ b/keyboards/mokey/ginkgo65/config.h @@ -15,13 +15,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6653 -#define PRODUCT_ID 0x3365 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mokey -#define PRODUCT ginkgo 65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/mokey/ginkgo65/info.json b/keyboards/mokey/ginkgo65/info.json index 080d97feeb..462d1869b6 100644 --- a/keyboards/mokey/ginkgo65/info.json +++ b/keyboards/mokey/ginkgo65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ginkgo65", + "keyboard_name": "ginkgo 65", + "manufacturer": "Mokey", "url": "", "maintainer": "rhmokey", + "usb": { + "vid": "0x6653", + "pid": "0x3365", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_65_ansi_blocker" }, diff --git a/keyboards/mokey/ginkgo65hot/config.h b/keyboards/mokey/ginkgo65hot/config.h index 5b73c4dc98..63d633d661 100644 --- a/keyboards/mokey/ginkgo65hot/config.h +++ b/keyboards/mokey/ginkgo65hot/config.h @@ -15,19 +15,12 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6653 -#define PRODUCT_ID 0x3366 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mokey -#define PRODUCT ginkgo65hot - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -#define MATRIX_ROW_PINS { F7, B7, F5, F1, B0 } -#define MATRIX_COL_PINS { C7, F6, B2, F4, B3, E6, D0, D1, D2, D3, D5, D4, D6, D7, B4 } +#define MATRIX_ROW_PINS { B0, B1, B2, B3, F7 } +#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, E6, D0, D1, D2, D3, D5, D4, D6, D7, B4 } #define UNUSED_PINS #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/mokey/ginkgo65hot/info.json b/keyboards/mokey/ginkgo65hot/info.json index e2e96c167c..dbe99e1909 100644 --- a/keyboards/mokey/ginkgo65hot/info.json +++ b/keyboards/mokey/ginkgo65hot/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ginkgo65hot", + "manufacturer": "Mokey", "url": "", "maintainer": "mokey", + "usb": { + "vid": "0x6653", + "pid": "0x3366", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mokey/mokey63/config.h b/keyboards/mokey/mokey63/config.h index 504a274143..86ff35ad5c 100644 --- a/keyboards/mokey/mokey63/config.h +++ b/keyboards/mokey/mokey63/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6653 -#define PRODUCT_ID 0x063A -#define DEVICE_VER 0x0001 -#define MANUFACTURER rhmokey -#define PRODUCT MOKEY63 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mokey/mokey63/info.json b/keyboards/mokey/mokey63/info.json index 476667dfbc..f34c47050e 100644 --- a/keyboards/mokey/mokey63/info.json +++ b/keyboards/mokey/mokey63/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mokey63", + "manufacturer": "Mokey", "url": "", "maintainer": "mokey", + "usb": { + "vid": "0x6653", + "pid": "0x063A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mokey/mokey64/config.h b/keyboards/mokey/mokey64/config.h index 52345ed973..60a0b69d38 100644 --- a/keyboards/mokey/mokey64/config.h +++ b/keyboards/mokey/mokey64/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x6653 -#define PRODUCT_ID 0x001A -#define DEVICE_VER 0x0001 - -#define MANUFACTURER rhmokey -#define PRODUCT MOKEY64 - #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mokey/mokey64/info.json b/keyboards/mokey/mokey64/info.json index 62b9c90493..4673f1120c 100644 --- a/keyboards/mokey/mokey64/info.json +++ b/keyboards/mokey/mokey64/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Mokey64", + "manufacturer": "Mokey", "url": "", "maintainer": "mokey", + "usb": { + "vid": "0x6653", + "pid": "0x001A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mokey/xox70/config.h b/keyboards/mokey/xox70/config.h index f5c08c4480..3c1448ee75 100644 --- a/keyboards/mokey/xox70/config.h +++ b/keyboards/mokey/xox70/config.h @@ -15,13 +15,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6653 -#define PRODUCT_ID 0x3370 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mokey -#define PRODUCT XOX 70 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/mokey/xox70/info.json b/keyboards/mokey/xox70/info.json index 5baa620bc6..73aa7e8dec 100644 --- a/keyboards/mokey/xox70/info.json +++ b/keyboards/mokey/xox70/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "xox70", + "keyboard_name": "XOX 70", + "manufacturer": "Mokey", "url": "", "maintainer": "Mokey", + "usb": { + "vid": "0x6653", + "pid": "0x3370", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mokey/xox70hot/config.h b/keyboards/mokey/xox70hot/config.h index bc2279e3d1..3c1448ee75 100644 --- a/keyboards/mokey/xox70hot/config.h +++ b/keyboards/mokey/xox70hot/config.h @@ -15,13 +15,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6653 -#define PRODUCT_ID 0x3371 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mokey -#define PRODUCT xox70hot - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/mokey/xox70hot/info.json b/keyboards/mokey/xox70hot/info.json index a1fc86924f..8a490265ec 100644 --- a/keyboards/mokey/xox70hot/info.json +++ b/keyboards/mokey/xox70hot/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "xox70hot", + "keyboard_name": "XOX 70 Hotswap", + "manufacturer": "Mokey", "url": "", "maintainer": "rhmokey", + "usb": { + "vid": "0x6653", + "pid": "0x3371", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_tkl_nofrow_ansi_tsangan" }, diff --git a/keyboards/molecule/config.h b/keyboards/molecule/config.h index 419554ed2c..5327b0bd52 100755 --- a/keyboards/molecule/config.h +++ b/keyboards/molecule/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER bbrfkr -#define PRODUCT molecule - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/molecule/info.json b/keyboards/molecule/info.json index 9f65262170..e820ad9968 100755 --- a/keyboards/molecule/info.json +++ b/keyboards/molecule/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "molecule", + "manufacturer": "bbrfkr", "url": "https://github.com/bbrfkr/keyboards/tree/master/molecule", "maintainer": "bbrfkr", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/momoka_ergo/config.h b/keyboards/momoka_ergo/config.h index e8fe01f504..441c5f4305 100644 --- a/keyboards/momoka_ergo/config.h +++ b/keyboards/momoka_ergo/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER StefanGrindelwald -#define PRODUCT Momoka Ergo - /* key matrix size */ #define MATRIX_ROWS 14 #define MATRIX_COLS 6 @@ -116,12 +109,7 @@ along with this program. If not, see . /* Bootmagic Lite key configuration */ //#define BOOTMAGIC_LITE_ROW 0 //#define BOOTMAGIC_LITE_COLUMN 0 -#define BOOTMAGIC_KEY_SALT KC_RSFT||KC_LSFT -#define BOOTMAGIC_KEY_SKIP KC_ESC -#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_NO -#define OOTMAGIC_KEY_BOOTLOADER KC_RCTL||KC_LCTL -#define BOOTMAGIC_KEY_EE_HANDS_LEFT KC_T -#define BOOTMAGIC_KEY_EE_HANDS_RIGHT KC_Y + #define USE_SERIAL #define SPLIT_USB_DETECT #define EE_HANDS diff --git a/keyboards/momoka_ergo/info.json b/keyboards/momoka_ergo/info.json index 058596fe55..c4d6cf38d7 100644 --- a/keyboards/momoka_ergo/info.json +++ b/keyboards/momoka_ergo/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MOMOKA_ERGO", + "keyboard_name": "Momoka Ergo", + "manufacturer": "StefanGrindelwald", "url": "", "maintainer": "StefanGrindelwald", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/momokai/tap_trio/config.h b/keyboards/momokai/tap_trio/config.h index 8dc38b10ea..431a570e15 100644 --- a/keyboards/momokai/tap_trio/config.h +++ b/keyboards/momokai/tap_trio/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x69F9 // "69" + "Popular Racing Movie 9" = Momokai (?) -#define PRODUCT_ID 0x0006 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Momokai -#define PRODUCT Tap Trio - #define MATRIX_ROWS 1 #define MATRIX_COLS 6 diff --git a/keyboards/momokai/tap_trio/info.json b/keyboards/momokai/tap_trio/info.json index efe4fc6111..8f3c6ebb6d 100644 --- a/keyboards/momokai/tap_trio/info.json +++ b/keyboards/momokai/tap_trio/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Momokai Tap Trio", + "keyboard_name": "Tap Trio", + "manufacturer": "Momokai", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x69F9", + "pid": "0x0006", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/monarch/config.h b/keyboards/monarch/config.h index 90131c5931..f725621c81 100644 --- a/keyboards/monarch/config.h +++ b/keyboards/monarch/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4011 -#define PRODUCT_ID 0x43C1 -#define DEVICE_VER 0x0001 -#define MANUFACTURER DoCallMeKing -#define PRODUCT Monarch - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/monarch/info.json b/keyboards/monarch/info.json index f8bc67f1c1..7e615207b6 100644 --- a/keyboards/monarch/info.json +++ b/keyboards/monarch/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Monarch", + "manufacturer": "DoCallMeKing", "url": "", "maintainer": "Ramon Imbao", + "usb": { + "vid": "0x4011", + "pid": "0x43C1", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [{"x":0.25, "y":0.25}, {"x":1.25, "y":0.25}, {"x":2.25, "y":0.25}, {"x":3.25, "y":0.25}, {"x":4.25, "y":0.25}, {"x":5.25, "y":0.25}, {"x":6.25, "y":0.25}, {"x":7.25, "y":0.25}, {"x":8.25, "y":0.25}, {"x":9.25, "y":0.25}, {"x":10.25, "y":0.25}, {"x":11.25, "y":0.25}, {"x":12.25, "y":0.25}, {"x":13.25, "y":0.25}, {"x":14.25, "y":0.25}, {"x":15.75, "y":0.25}, {"x":0.25, "y":1.25, "w":1.5}, {"x":1.75, "y":1.25}, {"x":2.75, "y":1.25}, {"x":3.75, "y":1.25}, {"x":4.75, "y":1.25}, {"x":5.75, "y":1.25}, {"x":6.75, "y":1.25}, {"x":7.75, "y":1.25}, {"x":8.75, "y":1.25}, {"x":9.75, "y":1.25}, {"x":10.75, "y":1.25}, {"x":11.75, "y":1.25}, {"x":12.75, "y":1.25}, {"x":13.75, "y":1.25, "w":1.5}, {"x":15.75, "y":1.75}, {"x":0.25, "y":2.25, "w":1.75}, {"x":2, "y":2.25}, {"x":3, "y":2.25}, {"x":4, "y":2.25}, {"x":5, "y":2.25}, {"x":6, "y":2.25}, {"x":7, "y":2.25}, {"x":8, "y":2.25}, {"x":9, "y":2.25}, {"x":10, "y":2.25}, {"x":11, "y":2.25}, {"x":12, "y":2.25}, {"x":13, "y":2.25, "w":2.25}, {"x":15.75, "y":2.75}, {"x":0.25, "y":3.25, "w":2.25}, {"x":2.5, "y":3.25}, {"x":3.5, "y":3.25}, {"x":4.5, "y":3.25}, {"x":5.5, "y":3.25}, {"x":6.5, "y":3.25}, {"x":7.5, "y":3.25}, {"x":8.5, "y":3.25}, {"x":9.5, "y":3.25}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.25}, {"x":12.5, "y":3.25, "w":1.75}, {"x":14.5, "y":3.5}, {"x":0.25, "y":4.25, "w":1.5}, {"x":1.75, "y":4.25}, {"x":2.75, "y":4.25, "w":1.5}, {"x":4.25, "y":4.25, "w":7}, {"x":11.25, "y":4.25, "w":1.5}, {"x":13.5, "y":4.5}, {"x":14.5, "y":4.5}, {"x":15.5, "y":4.5}] diff --git a/keyboards/monoflex60/config.h b/keyboards/monoflex60/config.h index 6e02810027..b8b1b810e3 100644 --- a/keyboards/monoflex60/config.h +++ b/keyboards/monoflex60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xDEB4 -#define PRODUCT_ID 0x60EB -#define DEVICE_VER 0x0001 -#define MANUFACTURER SanitGo Customs -#define PRODUCT Monoflex 60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/monoflex60/info.json b/keyboards/monoflex60/info.json index 7a4fb99447..64fc9f789a 100644 --- a/keyboards/monoflex60/info.json +++ b/keyboards/monoflex60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Monoflex 60", + "manufacturer": "SanitGo Customs", "url": "", "maintainer": "keyten", + "usb": { + "vid": "0xDEB4", + "pid": "0x60EB", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/monstargear/xo87/rgb/config.h b/keyboards/monstargear/xo87/rgb/config.h index dabca04514..9dab7c7dda 100644 --- a/keyboards/monstargear/xo87/rgb/config.h +++ b/keyboards/monstargear/xo87/rgb/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D47 // MG for Monstargear -#define PRODUCT_ID 0x584F // XO for XO87 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Monstargear -#define PRODUCT XO87 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/monstargear/xo87/rgb/info.json b/keyboards/monstargear/xo87/rgb/info.json index 000eb9b65e..9605d5888c 100644 --- a/keyboards/monstargear/xo87/rgb/info.json +++ b/keyboards/monstargear/xo87/rgb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "XO87 RGB", + "manufacturer": "Monstargear", "url": "https://www.monstargears.com/", "maintainer": "qmk", + "usb": { + "vid": "0x4D47", + "pid": "0x584F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] diff --git a/keyboards/monstargear/xo87/solderable/config.h b/keyboards/monstargear/xo87/solderable/config.h index d5d4540514..460538600f 100644 --- a/keyboards/monstargear/xo87/solderable/config.h +++ b/keyboards/monstargear/xo87/solderable/config.h @@ -20,13 +20,6 @@ #define brightnessMax 8 -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D47 // MG for Monstargear -#define PRODUCT_ID 0x5344 // SD for Soldered -#define DEVICE_VER 0x0001 -#define MANUFACTURER Monstargear -#define PRODUCT XO87 Soldered - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 diff --git a/keyboards/monstargear/xo87/solderable/info.json b/keyboards/monstargear/xo87/solderable/info.json index 52a7877903..d07bdfc6be 100644 --- a/keyboards/monstargear/xo87/solderable/info.json +++ b/keyboards/monstargear/xo87/solderable/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "XO87 Solderable", + "keyboard_name": "XO87 Soldered", + "manufacturer": "Monstargear", "url": "https://www.monstargears.com/", "maintainer": "qmk", + "usb": { + "vid": "0x4D47", + "pid": "0x5344", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/montsinger/rebound/rev1/config.h b/keyboards/montsinger/rebound/rev1/config.h index afd174266e..b7481c789f 100644 --- a/keyboards/montsinger/rebound/rev1/config.h +++ b/keyboards/montsinger/rebound/rev1/config.h @@ -16,14 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x552F -#define DEVICE_VER 0x0002 -#define MANUFACTURER Montsinger -#define PRODUCT Rebound - /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/montsinger/rebound/rev1/info.json b/keyboards/montsinger/rebound/rev1/info.json index 4bfd500950..f4b4362470 100644 --- a/keyboards/montsinger/rebound/rev1/info.json +++ b/keyboards/montsinger/rebound/rev1/info.json @@ -1,7 +1,13 @@ { - "keyboard": "montsinger/rebound/rev1", + "keyboard": "Rebound Rev1", + "manufacturer": "Montsinger", "url": "https://montsinger.net", "maintainer": "rossman360", + "usb": { + "vid": "0xFEED", + "pid": "0x552F", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_ortho_4x12": { "layout": [ diff --git a/keyboards/montsinger/rebound/rev2/config.h b/keyboards/montsinger/rebound/rev2/config.h index 9f4956081b..e71e12c97c 100644 --- a/keyboards/montsinger/rebound/rev2/config.h +++ b/keyboards/montsinger/rebound/rev2/config.h @@ -16,14 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x552F -#define DEVICE_VER 0x0002 -#define MANUFACTURER Montsinger -#define PRODUCT Rebound - /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/montsinger/rebound/rev2/info.json b/keyboards/montsinger/rebound/rev2/info.json index b732b9487b..99e07ef405 100644 --- a/keyboards/montsinger/rebound/rev2/info.json +++ b/keyboards/montsinger/rebound/rev2/info.json @@ -1,7 +1,13 @@ { - "keyboard":"montsinger/rebound/rev2", + "keyboard":"Rebound Rev2", + "manufacturer": "Montsinger", "url": "https://montsinger.net", "maintainer": "rossman360", + "usb": { + "vid": "0xFEED", + "pid": "0x552F", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/montsinger/rebound/rev3/config.h b/keyboards/montsinger/rebound/rev3/config.h index c93ce59b99..2a5cde0343 100644 --- a/keyboards/montsinger/rebound/rev3/config.h +++ b/keyboards/montsinger/rebound/rev3/config.h @@ -16,14 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x552F -#define DEVICE_VER 0x0002 -#define MANUFACTURER Montsinger -#define PRODUCT Rebound - /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/montsinger/rebound/rev3/info.json b/keyboards/montsinger/rebound/rev3/info.json index aa435c7815..e2ba432c57 100644 --- a/keyboards/montsinger/rebound/rev3/info.json +++ b/keyboards/montsinger/rebound/rev3/info.json @@ -1,7 +1,13 @@ { - "keyboard":"montsinger/rebound/rev3", + "keyboard":"Rebound Rev3", + "manufacturer": "Montsinger", "url": "https://montsinger.net", "maintainer": "rossman360", + "usb": { + "vid": "0xFEED", + "pid": "0x552F", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/montsinger/rebound/rev4/config.h b/keyboards/montsinger/rebound/rev4/config.h index 60a255f49d..06bdd561b9 100644 --- a/keyboards/montsinger/rebound/rev4/config.h +++ b/keyboards/montsinger/rebound/rev4/config.h @@ -16,14 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0x524D -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Montsinger -#define PRODUCT Rebound - /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/montsinger/rebound/rev4/info.json b/keyboards/montsinger/rebound/rev4/info.json index d76547a216..bfe2b6a372 100644 --- a/keyboards/montsinger/rebound/rev4/info.json +++ b/keyboards/montsinger/rebound/rev4/info.json @@ -1,7 +1,13 @@ { - "keyboard":"montsinger/rebound/rev4", + "keyboard":"Rebound Rev4", + "manufacturer": "Montsinger", "url": "https://montsinger.net", "maintainer": "rossman360", + "usb": { + "vid": "0x524D", + "pid": "0x0001", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/montsinger/rewind/config.h b/keyboards/montsinger/rewind/config.h index 09ddf2c209..3e7577f7c9 100644 --- a/keyboards/montsinger/rewind/config.h +++ b/keyboards/montsinger/rewind/config.h @@ -16,14 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x552F -#define DEVICE_VER 0x0002 -#define MANUFACTURER Montsinger -#define PRODUCT Rewind - /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/montsinger/rewind/info.json b/keyboards/montsinger/rewind/info.json index ecd7c21117..5e0bf1e3e1 100644 --- a/keyboards/montsinger/rewind/info.json +++ b/keyboards/montsinger/rewind/info.json @@ -1,7 +1,13 @@ { - "keyboard":"montsinger/rewind", + "keyboard":"Rewind", + "manufacturer": "Montsinger", "url": "https://montsinger.net", "maintainer": "rossman360", + "usb": { + "vid": "0xFEED", + "pid": "0x552F", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_ortho_5x10": { "layout": [ diff --git a/keyboards/moon/config.h b/keyboards/moon/config.h index 5f23cfd755..361fc5ba9d 100644 --- a/keyboards/moon/config.h +++ b/keyboards/moon/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xFCB8 -#define DEVICE_VER 0x0001 -#define MANUFACTURER EVE -#define PRODUCT Moon - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 11 diff --git a/keyboards/moon/info.json b/keyboards/moon/info.json index b25f34eb0c..782f5b24e3 100644 --- a/keyboards/moon/info.json +++ b/keyboards/moon/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Moon", + "manufacturer": "EVE", "url": "https://geekhack.org/index.php?topic=90379.0", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xFCB8", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index 9930e64063..b0ff86ee81 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -20,17 +20,8 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -// clang-format off -#define VENDOR_ID 0x3297 -#define PRODUCT_ID 0x1969 -#define MANUFACTURER ZSA Technology Labs -#define PRODUCT Moonlander Mark I -#define DEVICE_VER 0x0001 #define WEBUSB_LANDING_PAGE_URL u8"configure.ergodox-ez.com" -// clang-format on - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 7 diff --git a/keyboards/moonlander/info.json b/keyboards/moonlander/info.json index 60b560eeee..6322dccd5b 100644 --- a/keyboards/moonlander/info.json +++ b/keyboards/moonlander/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Moonlander Mark I", + "manufacturer": "ZSA Technology Labs", "url": "zsa.io/moonlander", "maintainer": "ZSA via Drashna", + "usb": { + "vid": "0x3297", + "pid": "0x1969", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_moonlander": { "layout": [ diff --git a/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h b/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h index 6ea1541da2..44679baf74 100644 --- a/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/morizon/config.h b/keyboards/morizon/config.h index 4b419283cb..98d53259d4 100644 --- a/keyboards/morizon/config.h +++ b/keyboards/morizon/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Steven Karrmann -#define PRODUCT Morizon - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/morizon/info.json b/keyboards/morizon/info.json index 5e22001c79..6c0c20837b 100644 --- a/keyboards/morizon/info.json +++ b/keyboards/morizon/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Morizon", + "manufacturer": "Steven Karrmann", "url": "https://github.com/skarrmann/morizon", "maintainer": "Steven Karrmann", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mountainblocks/mb17/config.h b/keyboards/mountainblocks/mb17/config.h index 9667d9e551..820c371693 100644 --- a/keyboards/mountainblocks/mb17/config.h +++ b/keyboards/mountainblocks/mb17/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D42 -#define PRODUCT_ID 0x0017 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mountainblocks -#define PRODUCT MB17 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/mountainblocks/mb17/info.json b/keyboards/mountainblocks/mb17/info.json index b3bf74cdb2..46f1133aad 100644 --- a/keyboards/mountainblocks/mb17/info.json +++ b/keyboards/mountainblocks/mb17/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MB17", + "manufacturer": "Mountainblocks", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4D42", + "pid": "0x0017", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":1, "h":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":0, "y":4, "w":2}, {"x":2, "y":4}, {"x":3, "y":3, "h":2}] diff --git a/keyboards/ms_sculpt/config.h b/keyboards/ms_sculpt/config.h new file mode 100644 index 0000000000..710fc756af --- /dev/null +++ b/keyboards/ms_sculpt/config.h @@ -0,0 +1,16 @@ +// Copyright 2022 Jean Bernard (@jn-bernard) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +#define BOOTMAGIC_LITE_ROW 4 +#define BOOTMAGIC_LITE_COLUMN 13 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 18 diff --git a/keyboards/ms_sculpt/info.json b/keyboards/ms_sculpt/info.json new file mode 100644 index 0000000000..734b1443bc --- /dev/null +++ b/keyboards/ms_sculpt/info.json @@ -0,0 +1,130 @@ +{ + "manufacturer": "Jean Bernard", + "keyboard_name": "ms_sculpt", + "maintainer": "jn-bernard", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": false, + "mousekey": false, + "nkro": false + }, + "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"], + "unused": ["B13", "A1", "B9"], + "ghost": true, + "io_delay": 5 + }, + "processor": "STM32F401", + "url": "", + "usb": { + "polling_interval": 1, + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0, "w":1, "h":0.8}, + {"label":"F1", "x":1, "y":0, "w":1, "h":0.8}, + {"label":"F2", "x":2, "y":0, "w":1, "h":0.8}, + {"label":"F3", "x":3, "y":0, "w":1, "h":0.8}, + {"label":"F4", "x":4, "y":0, "w":1, "h":0.8}, + {"label":"F5", "x":5, "y":0, "w":1, "h":0.8}, + {"label":"F6", "x":6, "y":0, "w":1, "h":0.8}, + {"label":"F7", "x":8, "y":0, "w":0.975, "h":0.8}, + {"label":"F8", "x":8.975, "y":0, "w":0.975, "h":0.8}, + {"label":"F9", "x":9.95, "y":0, "w":0.975, "h":0.8}, + {"label":"F10", "x":10.925, "y":0, "w":0.975, "h":0.8}, + {"label":"F11", "x":11.9, "y":0, "w":0.975, "h":0.8}, + {"label":"F12", "x":12.875, "y":0, "w":0.975, "h":0.8}, + {"label":"Print Screen", "x":13.85, "y":0, "w":0.975, "h":0.8}, + {"label":"Scroll Lock", "x":14.825, "y":0, "w":0.975, "h":0.8}, + {"label":"Pause", "x":15.8, "y":0, "w":0.975, "h":0.8}, + {"label":"Calculator", "x":16.775, "y":0, "w":0.975, "h":0.8}, + + {"label":"`~", "x":0, "y":0.8}, + {"label":"1!", "x":1, "y":0.8}, + {"label":"2@", "x":2, "y":0.8}, + {"label":"3#", "x":3, "y":0.8}, + {"label":"4$", "x":4, "y":0.8}, + {"label":"5%", "x":5, "y":0.8}, + {"label":"6^", "x":6, "y":0.8}, + {"label":"7&", "x":8, "y":0.8, "w":1.5}, + {"label":"8*", "x":9.5, "y":0.8}, + {"label":"9(", "x":10.5, "y":0.8}, + {"label":"0)", "x":11.5, "y":0.8}, + {"label":"-_", "x":12.5, "y":0.8}, + {"label":"=+", "x":13.5, "y":0.8}, + {"label":"Backspace", "x":14.5, "y":0.8, "w":2.25}, + {"label":"Delete", "x":16.75, "y":0.8, "h":2}, + {"label":"Home", "x":17.75, "y":0.8}, + + {"label":"Tab", "x":0, "y":1.8, "w":1.25}, + {"label":"Q", "x":1.25, "y":1.8}, + {"label":"W", "x":2.25, "y":1.8}, + {"label":"E", "x":3.25, "y":1.8}, + {"label":"R", "x":4.25, "y":1.8}, + {"label":"T", "x":5.25, "y":1.8, "w":1.75}, + {"label":"Y", "x":8, "y":1.8, "w":1.25}, + {"label":"U", "x":9.25, "y":1.8}, + {"label":"I", "x":10.25, "y":1.8}, + {"label":"O", "x":11.25, "y":1.8}, + {"label":"P", "x":12.25, "y":1.8}, + {"label":"[{", "x":13.25, "y":1.8}, + {"label":"]}", "x":14.25, "y":1.8}, + {"label":"End", "x":17.75, "y":1.8}, + + {"label":"Shift", "x":0, "y":2.8, "w":1.5}, + {"label":"A", "x":1.5, "y":2.8}, + {"label":"S", "x":2.5, "y":2.8}, + {"label":"D", "x":3.5, "y":2.8}, + {"label":"F", "x":4.5, "y":2.8}, + {"label":"G", "x":5.5, "y":2.8, "w":1.5}, + {"label":"H", "x":8, "y":2.8, "w":1.5}, + {"label":"J", "x":9.5, "y":2.8}, + {"label":"K", "x":10.5, "y":2.8}, + {"label":"L", "x":11.5, "y":2.8}, + {"label":";:", "x":12.5, "y":2.8}, + {"label":"'@", "x":13.5, "y":2.8}, + {"label":"#~", "x":14.5, "y":2.8}, + {"label":"Enter", "x":15.5, "y":1.8, "w":1.25, "h":2}, + {"label":"Insert", "x":16.75, "y":2.8}, + {"label":"Page Up", "x":17.75, "y":2.8}, + + {"label":"Shift", "x":0, "y":3.8}, + {"label":"\\|", "x":1, "y":3.8}, + {"label":"Z", "x":2, "y":3.8}, + {"label":"X", "x":3, "y":3.8}, + {"label":"C", "x":4, "y":3.8}, + {"label":"V", "x":5, "y":3.8}, + {"label":"B", "x":6, "y":3.8}, + {"label":"N", "x":8, "y":3.8, "w":2}, + {"label":"M", "x":10, "y":3.8}, + {"label":",<", "x":11, "y":3.8}, + {"label":".>", "x":12, "y":3.8}, + {"label":"/?", "x":13, "y":3.8}, + {"label":"Shift", "x":14, "y":3.8, "w":2.75}, + {"label":"\u2191", "x":16.75, "y":3.8}, + {"label":"Page Down", "x":17.75, "y":3.8}, + + {"label":"Ctrl", "x":0, "y":4.8, "w":1.5}, + {"label":"GUI", "x":1.5, "y":4.8, "w":1.5}, + {"label":"Alt", "x":3, "y":4.8, "w":1.5}, + {"label":"Space", "x":4.5, "y":4.8, "w":3}, + {"label":"Space", "x":7.5, "y":4.8, "w":3}, + {"label":"AltGr", "x":10.5, "y":4.8, "w":1.5}, + {"label":"App", "x":12, "y":4.8, "w":1.5}, + {"label":"Ctrl", "x":13.5, "y":4.8, "w":2.25}, + {"label":"\u2190", "x":15.75, "y":4.8}, + {"label":"\u2192", "x":16.75, "y":4.8}, + {"label":"\u2193", "x":17.75, "y":4.8} + ] + } + } +} diff --git a/keyboards/ms_sculpt/keymaps/default/keymap.c b/keyboards/ms_sculpt/keymaps/default/keymap.c new file mode 100644 index 0000000000..b82c37a773 --- /dev/null +++ b/keyboards/ms_sculpt/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2022 Jean Bernard (@jn-bernard) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_layers { + _BASE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_iso( \ + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCREEN, KC_SLCK, KC_PAUSE, KC_CALC, \ + KC_GRV, KC_1, KC_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_END, \ + 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_NUHS, KC_ENT, KC_INS, 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_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), +}; diff --git a/keyboards/ms_sculpt/ms_sculpt.h b/keyboards/ms_sculpt/ms_sculpt.h new file mode 100644 index 0000000000..056f7d5b5d --- /dev/null +++ b/keyboards/ms_sculpt/ms_sculpt.h @@ -0,0 +1,25 @@ +// Copyright 2022 Jean Bernard (@jn-bernard) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define LAYOUT_iso( \ + k4D, k7C, k7B, k1B, k4B, k1A, k1F, k79, k77, k75, k78, k73, k13, k71, k31, k01, k23, \ + k7D, k0D, k0C, k2D, k1D, k7A, k7F, k09, k07, k05, k04, k15, k74, k08, k03, k21, \ + k0A, k0B, k1C, k2B, k2A, k2F, k19, k29, k27, k25, k24, k14, k17, k51, \ + k2C, k3D, k4C, k3B, k3A, k4A, k49, k39, k37, k35, k34, k45, k65, k33, k18, k11, \ + k5E, k6C, k5D, k5C, k5B, k5A, k6A, k69, k59, k57, k55, k44, k52, k63, k53, \ + k6H, k3F, k4G, k6B, k68, k46, k43, k60, k48, k64, k61 \ +) \ +{ \ + {KC_NO, k01, KC_NO, k03, k04, k05, KC_NO, k07, k08, k09, k0A, k0B, k0C, k0D, KC_NO, KC_NO, KC_NO, KC_NO}, \ + {KC_NO, k11, KC_NO, k13, k14, k15, KC_NO, k17, k18, k19, k1A, k1B, k1C, k1D, KC_NO, k1F, KC_NO, KC_NO}, \ + {KC_NO, k21, KC_NO, k23, k24, k25, KC_NO, k27, KC_NO, k29, k2A, k2B, k2C, k2D, KC_NO, k2F, KC_NO, KC_NO}, \ + {KC_NO, k31, KC_NO, k33, k34, k35, KC_NO, k37, KC_NO, k39, k3A, k3B, k6C, k3D, KC_NO, k3F, KC_NO, KC_NO}, \ + {KC_NO, KC_NO, KC_NO, k43, k44, k45, k46, KC_NO, k48, k49, k4A, k4B, k4C, k4D, KC_NO, KC_NO, k4G, KC_NO}, \ + {KC_NO, k51, k52, k53, k65, k55, KC_NO, k57, KC_NO, k59, k5A, k5B, k5C, k5D, k5E, KC_NO, KC_NO, KC_NO}, \ + {k60, k61, KC_NO, k63, k64, KC_NO, KC_NO, KC_NO, k68, k69, k6A, k6B, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k6H}, \ + {KC_NO, k71, KC_NO, k73, k74, k75, KC_NO, k77, k78, k79, k7A, k7B, k7C, k7D, KC_NO, k7F, KC_NO, KC_NO} \ +} diff --git a/keyboards/ms_sculpt/readme.md b/keyboards/ms_sculpt/readme.md new file mode 100644 index 0000000000..c490234de6 --- /dev/null +++ b/keyboards/ms_sculpt/readme.md @@ -0,0 +1,27 @@ +# ms_sculpt + +![ms_sculpt_with_cold_dry_joints](https://user-images.githubusercontent.com/105235786/168012266-4e235bf5-8d34-4731-ab17-2308a9d9a29e.jpg) + +MS Sculpt Keyboard ISO-layout wired to STM32F401 / blackpill + +* Keyboard Maintainer: [Jean Bernard](https://github.com/jn-bernard) +* Hardware Supported: MS Sculpt Keyboard ISO-layout, STM32F401 +* Hardware Availability: Ebay + +Make example for this keyboard (after setting up your build environment): + + make ms_sculpt:default + +Flashing example for this keyboard: + + make ms_sculpt:default:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/ms_sculpt/rules.mk b/keyboards/ms_sculpt/rules.mk new file mode 100644 index 0000000000..d64abe822d --- /dev/null +++ b/keyboards/ms_sculpt/rules.mk @@ -0,0 +1,3 @@ +# This file intentionally left blank +DEBOUNCE_TYPE = sym_eager_pk +DEBOUNCE = 3 diff --git a/keyboards/mschwingen/modelm/config.h b/keyboards/mschwingen/modelm/config.h index 57ac1c089b..439faf5055 100644 --- a/keyboards/mschwingen/modelm/config.h +++ b/keyboards/mschwingen/modelm/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x558E -#define DEVICE_VER 0x0001 -#define MANUFACTURER mschwingen -#define PRODUCT IBM Model M 101/102 - /* key matrix size */ #define MATRIX_ROWS 16 #define MATRIX_COLS 8 diff --git a/keyboards/mschwingen/modelm/info.json b/keyboards/mschwingen/modelm/info.json index 3a34f92180..37bdb91160 100644 --- a/keyboards/mschwingen/modelm/info.json +++ b/keyboards/mschwingen/modelm/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "atmega32U4 board for IBM Model M", + "keyboard_name": "IBM Model M 101/102", + "manufacturer": "mschwingen", "url": "", "maintainer": "mschwingen", + "usb": { + "vid": "0xFEED", + "pid": "0x558E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mschwingen/modelm/modelm.c b/keyboards/mschwingen/modelm/modelm.c index 0ff58f4be3..7dcd4ac024 100644 --- a/keyboards/mschwingen/modelm/modelm.c +++ b/keyboards/mschwingen/modelm/modelm.c @@ -163,8 +163,8 @@ void update_layer_leds(void) { static uint8_t old_layer = 255; static uint8_t old_default_layer = 255; - layer = get_highest_layer(layer_state); - default_layer = get_highest_layer(default_layer_state); + layer = biton32(layer_state); + default_layer = biton32(default_layer_state); if (isRecording && timer_elapsed(blink_cycle_timer) > 150) { blink_state = !blink_state; diff --git a/keyboards/mss_studio/m63_rgb/config.h b/keyboards/mss_studio/m63_rgb/config.h index ad5fbfa1c3..e2aae8469f 100644 --- a/keyboards/mss_studio/m63_rgb/config.h +++ b/keyboards/mss_studio/m63_rgb/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4B -#define PRODUCT_ID 0x6063 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mss Studio -#define PRODUCT M63 RGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/mss_studio/m63_rgb/info.json b/keyboards/mss_studio/m63_rgb/info.json index 651e58a100..577903c264 100644 --- a/keyboards/mss_studio/m63_rgb/info.json +++ b/keyboards/mss_studio/m63_rgb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "M63 RGB", + "manufacturer": "Mss Studio", "url": "", "maintainer": "HorrorTroll", + "usb": { + "vid": "0x4D4B", + "pid": "0x6063", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_arrow": { "layout": [ diff --git a/keyboards/mss_studio/m64_rgb/config.h b/keyboards/mss_studio/m64_rgb/config.h index 0c7f8d17e1..d8ac27024b 100644 --- a/keyboards/mss_studio/m64_rgb/config.h +++ b/keyboards/mss_studio/m64_rgb/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D4B -#define PRODUCT_ID 0x6064 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mss Studio -#define PRODUCT M64 RGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/mss_studio/m64_rgb/info.json b/keyboards/mss_studio/m64_rgb/info.json index 264e894377..971a213cb7 100644 --- a/keyboards/mss_studio/m64_rgb/info.json +++ b/keyboards/mss_studio/m64_rgb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "M64 RGB", + "manufacturer": "Mss Studio", "url": "", "maintainer": "HorrorTroll", + "usb": { + "vid": "0x4D4B", + "pid": "0x6064", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_64_ansi": { "layout": [ diff --git a/keyboards/mt/blocked65/config.h b/keyboards/mt/blocked65/config.h index 86e574feed..bc7dfcadcd 100644 --- a/keyboards/mt/blocked65/config.h +++ b/keyboards/mt/blocked65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5746 //WF -#define PRODUCT_ID 0x0001 //Blocked65 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Dou -#define PRODUCT Blocked65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mt/blocked65/info.json b/keyboards/mt/blocked65/info.json index aea7165abc..92f85b0798 100644 --- a/keyboards/mt/blocked65/info.json +++ b/keyboards/mt/blocked65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Wheatfield blocked 65% keyboard", + "keyboard_name": "Blocked65", + "manufacturer": "Dou", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5746", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"PrScr", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4, "w":1.25}, {"label":"Alt", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] diff --git a/keyboards/mt/mt40/config.h b/keyboards/mt/mt40/config.h index 6626b24f3a..5dfa0a10a1 100644 --- a/keyboards/mt/mt40/config.h +++ b/keyboards/mt/mt40/config.h @@ -19,15 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D - -#define DEVICE_VER 0x0001 - -#define MANUFACTURER ThomasDehaeze -#define PRODUCT MT40 - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 15 diff --git a/keyboards/mt/mt40/info.json b/keyboards/mt/mt40/info.json index 48a2b9233b..3f3c1fc374 100644 --- a/keyboards/mt/mt40/info.json +++ b/keyboards/mt/mt40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MT40", + "manufacturer": "ThomasDehaeze", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x20A0", + "pid": "0x422D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_planck_mit": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3, "w":2}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] diff --git a/keyboards/mt/mt64rgb/config.h b/keyboards/mt/mt64rgb/config.h index ea7659b471..92c7ad8166 100644 --- a/keyboards/mt/mt64rgb/config.h +++ b/keyboards/mt/mt64rgb/config.h @@ -17,14 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D54 // "MT" -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MT -#define PRODUCT MT64RGB - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/mt/mt64rgb/info.json b/keyboards/mt/mt64rgb/info.json index 840863bc24..b641badfa4 100644 --- a/keyboards/mt/mt64rgb/info.json +++ b/keyboards/mt/mt64rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "mt64rgb", + "keyboard_name": "MT64RGB", + "manufacturer": "MT", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4D54", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_64_ansi": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] diff --git a/keyboards/mt/mt84/config.h b/keyboards/mt/mt84/config.h index bde8919ba7..6b67d84b60 100644 --- a/keyboards/mt/mt84/config.h +++ b/keyboards/mt/mt84/config.h @@ -17,14 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D54 // "MT" -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MT -#define PRODUCT MT84 - - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/mt/mt84/info.json b/keyboards/mt/mt84/info.json index aaded30962..9be93e7e70 100644 --- a/keyboards/mt/mt84/info.json +++ b/keyboards/mt/mt84/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "mt84", + "keyboard_name": "MT84", + "manufacturer": "MT", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4D54", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_75_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "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":"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":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "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":"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}, {"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}] diff --git a/keyboards/mt/mt980/config.h b/keyboards/mt/mt980/config.h index ff6c5807df..567e06d1ac 100644 --- a/keyboards/mt/mt980/config.h +++ b/keyboards/mt/mt980/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Wheat Field Peripherals -#define PRODUCT MT980 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/mt/mt980/info.json b/keyboards/mt/mt980/info.json index be89ec8fc0..1e0ffaf11e 100644 --- a/keyboards/mt/mt980/info.json +++ b/keyboards/mt/mt980/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "mt980", + "keyboard_name": "MT980", + "manufacturer": "Wheat Field Peripherals", "url": "https://shop110310565.taobao.com", "maintainer": "walkerstop", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mt/split75/config.h b/keyboards/mt/split75/config.h index 63c9492c31..dce3f6eea8 100644 --- a/keyboards/mt/split75/config.h +++ b/keyboards/mt/split75/config.h @@ -1,11 +1,5 @@ #pragma once -#define VENDOR_ID 0x594D -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER YMDK -#define PRODUCT Split75 - /* matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 14 diff --git a/keyboards/mt/split75/info.json b/keyboards/mt/split75/info.json index 1d0609a378..3a83e816e2 100644 --- a/keyboards/mt/split75/info.json +++ b/keyboards/mt/split75/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "split75", + "keyboard_name": "Split75", + "manufacturer": "YMDK", "url": "", "maintainer": "Michael L. Walker", + "usb": { + "vid": "0x594D", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"ESC", "x":2.25, "y":0}, {"label":"F1", "x":3.25, "y":0}, {"label":"F2", "x":4.25, "y":0}, {"label":"F3", "x":5.25, "y":0}, {"label":"F4", "x":6.25, "y":0}, {"label":"F5", "x":7.25, "y":0}, {"label":"F6", "x":8.25, "y":0}, {"label":"F7", "x":10.25, "y":0}, {"label":"F8", "x":11.25, "y":0}, {"label":"F9", "x":12.25, "y":0}, {"label":"F10", "x":13.25, "y":0}, {"label":"F11", "x":14.25, "y":0}, {"label":"F12", "x":15.25, "y":0}, {"label":"Prt", "x":16.25, "y":0}, {"label":"Ins", "x":17.25, "y":0}, {"label":"Del", "x":18.25, "y":0}, {"label":"8", "x":0, "y":1}, {"label":"9", "x":1, "y":1}, {"label":"~", "x":2.25, "y":1}, {"label":"!", "x":3.25, "y":1}, {"label":"@", "x":4.25, "y":1}, {"label":"#", "x":5.25, "y":1}, {"label":"$", "x":6.25, "y":1}, {"label":"%", "x":7.25, "y":1}, {"label":"^", "x":8.25, "y":1}, {"label":"&", "x":10.25, "y":1}, {"label":"*", "x":11.25, "y":1}, {"label":"(", "x":12.25, "y":1}, {"label":")", "x":13.25, "y":1}, {"label":"_", "x":14.25, "y":1}, {"label":"+", "x":15.25, "y":1}, {"label":"Backspace", "x":16.25, "y":1, "w":2}, {"label":"Home", "x":18.25, "y":1}, {"label":"6", "x":0, "y":2}, {"label":"7", "x":1, "y":2}, {"label":"Tab", "x":2.25, "y":2, "w":1.5}, {"label":"Q", "x":3.75, "y":2}, {"label":"W", "x":4.75, "y":2}, {"label":"E", "x":5.75, "y":2}, {"label":"R", "x":6.75, "y":2}, {"label":"T", "x":7.75, "y":2}, {"label":"Y", "x":9.75, "y":2}, {"label":"U", "x":10.75, "y":2}, {"label":"I", "x":11.75, "y":2}, {"label":"O", "x":12.75, "y":2}, {"label":"P", "x":13.75, "y":2}, {"label":"{", "x":14.75, "y":2}, {"label":"}", "x":15.75, "y":2}, {"label":"|", "x":16.75, "y":2, "w":1.5}, {"label":"PgUp", "x":18.25, "y":2}, {"label":"4", "x":0, "y":3}, {"label":"5", "x":1, "y":3}, {"label":"Caps Lock", "x":2.25, "y":3, "w":1.75}, {"label":"A", "x":4, "y":3}, {"label":"S", "x":5, "y":3}, {"label":"D", "x":6, "y":3}, {"label":"F", "x":7, "y":3}, {"label":"G", "x":8, "y":3}, {"label":"H", "x":10, "y":3}, {"label":"J", "x":11, "y":3}, {"label":"K", "x":12, "y":3}, {"label":"L", "x":13, "y":3}, {"label":":", "x":14, "y":3}, {"label":"\"", "x":15, "y":3}, {"label":"Enter", "x":16, "y":3, "w":2.25}, {"label":"PgDn", "x":18.25, "y":3}, {"label":"2", "x":0, "y":4}, {"label":"3", "x":1, "y":4}, {"label":"Shift", "x":2.25, "y":4, "w":2.25}, {"label":"Z", "x":4.5, "y":4}, {"label":"X", "x":5.5, "y":4}, {"label":"C", "x":6.5, "y":4}, {"label":"V", "x":7.5, "y":4}, {"label":"B", "x":8.5, "y":4}, {"label":"N", "x":10.5, "y":4}, {"label":"M", "x":11.5, "y":4}, {"label":"<", "x":12.5, "y":4}, {"label":">", "x":13.5, "y":4}, {"label":"?", "x":14.5, "y":4}, {"label":"Shift", "x":15.5, "y":4, "w":1.75}, {"label":"\u2191", "x":17.25, "y":4}, {"label":"End", "x":18.25, "y":4}, {"label":"0", "x":0, "y":5}, {"label":"1", "x":1, "y":5}, {"label":"Ctrl", "x":2.25, "y":5, "w":1.25}, {"label":"Win", "x":3.5, "y":5, "w":1.25}, {"label":"Alt", "x":4.75, "y":5, "w":1.25}, {"x":6, "y":5, "w":2}, {"x":8, "y":5}, {"x":10, "y":5, "w":2.75}, {"label":"Alt", "x":12.75, "y":5, "w":1.25}, {"label":"Fn", "x":14, "y":5}, {"label":"Ctrl", "x":15, "y":5, "w":1.25}, {"label":"\u2190", "x":16.25, "y":5}, {"label":"\u2193", "x":17.25, "y":5}, {"label":"\u2192", "x":18.25, "y":5}] diff --git a/keyboards/mtbkeys/mtb60/hotswap/config.h b/keyboards/mtbkeys/mtb60/hotswap/config.h index c235686cc8..09fec112d1 100644 --- a/keyboards/mtbkeys/mtb60/hotswap/config.h +++ b/keyboards/mtbkeys/mtb60/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MTBKeys -#define PRODUCT honeyboard60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mtbkeys/mtb60/hotswap/info.json b/keyboards/mtbkeys/mtb60/hotswap/info.json index 9e4ae0be29..a7e94e8bbc 100644 --- a/keyboards/mtbkeys/mtb60/hotswap/info.json +++ b/keyboards/mtbkeys/mtb60/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MTB60", + "keyboard_name": "MTB60 Hotswap", + "manufacturer": "MTBKeys", "url": "mtbkeys.com", "maintainer": "kgieselman", + "usb": { + "vid": "0xFEED", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_60_ansi" }, diff --git a/keyboards/mtbkeys/mtb60/solder/config.h b/keyboards/mtbkeys/mtb60/solder/config.h index 7b0909492d..3187166bcc 100644 --- a/keyboards/mtbkeys/mtb60/solder/config.h +++ b/keyboards/mtbkeys/mtb60/solder/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MTBKeys -#define PRODUCT MTB60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mtbkeys/mtb60/solder/info.json b/keyboards/mtbkeys/mtb60/solder/info.json index c2e49e8f77..ab60075874 100644 --- a/keyboards/mtbkeys/mtb60/solder/info.json +++ b/keyboards/mtbkeys/mtb60/solder/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MTB60", + "keyboard_name": "MTB60 Solder", + "manufacturer": "MTBKeys", "url": "mtbkeys.com", "maintainer": "MTBKeys", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/mwstudio/alicekk/alicekk.c b/keyboards/mwstudio/alicekk/alicekk.c new file mode 100644 index 0000000000..96c468066a --- /dev/null +++ b/keyboards/mwstudio/alicekk/alicekk.c @@ -0,0 +1,30 @@ +/* Copyright 2022 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 . + */ +#include "alicekk.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_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } + return true; +} +#endif diff --git a/keyboards/mwstudio/alicekk/alicekk.h b/keyboards/mwstudio/alicekk/alicekk.h new file mode 100644 index 0000000000..8bd3cfee87 --- /dev/null +++ b/keyboards/mwstudio/alicekk/alicekk.h @@ -0,0 +1,32 @@ +/* Copyright 2022 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 + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K401, K402, K404, K405, K408, K410, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \ + { KC_NO, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { KC_NO, K401, K402, KC_NO, K404, K405, KC_NO, KC_NO, K408, KC_NO, K410, KC_NO, K412, K413, K414 } \ +} diff --git a/keyboards/mwstudio/alicekk/chconf.h b/keyboards/mwstudio/alicekk/chconf.h new file mode 100644 index 0000000000..7507db8aa1 --- /dev/null +++ b/keyboards/mwstudio/alicekk/chconf.h @@ -0,0 +1,23 @@ +/* Copyright 2022 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 CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next diff --git a/keyboards/mwstudio/alicekk/config.h b/keyboards/mwstudio/alicekk/config.h new file mode 100644 index 0000000000..0c5a34fdf5 --- /dev/null +++ b/keyboards/mwstudio/alicekk/config.h @@ -0,0 +1,71 @@ +/* Copyright 2022 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7BA1 +#define PRODUCT_ID 0x3201 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MWStudio +#define PRODUCT AlickKK + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { A3, A5, A6, A7, B0 } +#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, A4, A2, A1, B6, B5, B4, B3, A15 } + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define FORCE_NKRO + + +#define RGB_DI_PIN B1 + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 +#define RGB_MATRIX_STARTUP_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_LIMIT_VAL 200 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#define ENCODERS_PAD_A { B11 } +#define ENCODERS_PAD_B { B10 } diff --git a/keyboards/mwstudio/alicekk/keymaps/default/keymap.c b/keyboards/mwstudio/alicekk/keymaps/default/keymap.c new file mode 100644 index 0000000000..fef4de0244 --- /dev/null +++ b/keyboards/mwstudio/alicekk/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2022 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 . + */ + + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + 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_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, MO(1), 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, _______, + _______, RGB_TOG, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/mwstudio/alicekk/keymaps/via/keymap.c b/keyboards/mwstudio/alicekk/keymaps/via/keymap.c new file mode 100644 index 0000000000..e81fb90c4e --- /dev/null +++ b/keyboards/mwstudio/alicekk/keymaps/via/keymap.c @@ -0,0 +1,96 @@ +/* Copyright 2022 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + 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_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, MO(1), 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, _______, + _______, RGB_TOG, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + + +#ifdef ENCODER_ENABLE +#define ENCODERS 1 +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = {{6, 4}}; +static keypos_t encoder_ccw[ENCODERS] = {{7, 4}}; + + +void encoder_action_unregister(void) { +#ifdef ENCODERS + for (uint8_t index = 0; index < ENCODERS; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t) { + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1) + }; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +#endif +} + +void encoder_action_register(uint8_t index, bool clockwise) { + keyevent_t encoder_event = (keyevent_t) { + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1) + }; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + 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/mwstudio/alicekk/keymaps/via/rules.mk b/keyboards/mwstudio/alicekk/keymaps/via/rules.mk new file mode 100644 index 0000000000..541a15608a --- /dev/null +++ b/keyboards/mwstudio/alicekk/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = no diff --git a/keyboards/mwstudio/alicekk/mcuconf.h b/keyboards/mwstudio/alicekk/mcuconf.h new file mode 100644 index 0000000000..460b5f5877 --- /dev/null +++ b/keyboards/mwstudio/alicekk/mcuconf.h @@ -0,0 +1,22 @@ +/* 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 + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + diff --git a/keyboards/mwstudio/alicekk/readme.md b/keyboards/mwstudio/alicekk/readme.md new file mode 100644 index 0000000000..f37629e7bb --- /dev/null +++ b/keyboards/mwstudio/alicekk/readme.md @@ -0,0 +1,22 @@ +# AliceKK + +![AliceKK](https://i.imgur.com/xfjynwgh.jpeg) + +Support STM32F103CBT6 keyboard. + +* Keyboard Maintainer: [TW59420](https://github.com/TW59420) +* Hardware Supported: STM32F103CBT6 + +Make example for this keyboard (after setting up your build environment): + + make mwstudio/alicekk:default + +Flashing example for this keyboard: + + make mwstudio/alicekk: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**: Short press the button on the back of the PCB to enter the Bootloader and flash the firmware +* **Keycode in layout**: Press the key mapped to RESET if it is available diff --git a/keyboards/mwstudio/alicekk/rules.mk b/keyboards/mwstudio/alicekk/rules.mk new file mode 100644 index 0000000000..3c4396fabf --- /dev/null +++ b/keyboards/mwstudio/alicekk/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes + + diff --git a/keyboards/mwstudio/mw65_black/config.h b/keyboards/mwstudio/mw65_black/config.h index 9cd1aade78..c7ca78706f 100644 --- a/keyboards/mwstudio/mw65_black/config.h +++ b/keyboards/mwstudio/mw65_black/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7BA1 -#define PRODUCT_ID 0x6500 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MWStudio -#define PRODUCT MW65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mwstudio/mw65_black/info.json b/keyboards/mwstudio/mw65_black/info.json index 1245157792..ccf09114da 100644 --- a/keyboards/mwstudio/mw65_black/info.json +++ b/keyboards/mwstudio/mw65_black/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MW65_BLACK", + "keyboard_name": "MW65 Black", + "manufacturer": "MWStudio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x7BA1", + "pid": "0x6500", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mwstudio/mw65_rgb/config.h b/keyboards/mwstudio/mw65_rgb/config.h index d484f7e351..2fd67e9e79 100644 --- a/keyboards/mwstudio/mw65_rgb/config.h +++ b/keyboards/mwstudio/mw65_rgb/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7BA1 -#define PRODUCT_ID 0x6502 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MWStudio -#define PRODUCT MW65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mwstudio/mw65_rgb/info.json b/keyboards/mwstudio/mw65_rgb/info.json index 870a848b85..9518a2b54c 100644 --- a/keyboards/mwstudio/mw65_rgb/info.json +++ b/keyboards/mwstudio/mw65_rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "MW65_RGB", + "keyboard_name": "MW65 RGB", + "manufacturer": "MWStudio", "url": "", "maintainer": "TW59420", + "usb": { + "vid": "0x7BA1", + "pid": "0x6502", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c index ddcd3f6642..78a17233e3 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c @@ -95,9 +95,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { 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)); + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 3)); } else { - tap_code(dynamic_keymap_get_keycode(get_highest_layer(layer_state), 4, 4)); + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 4)); } } return true; diff --git a/keyboards/mwstudio/mw75/config.h b/keyboards/mwstudio/mw75/config.h index 1cc00618e8..2c9e3839b8 100644 --- a/keyboards/mwstudio/mw75/config.h +++ b/keyboards/mwstudio/mw75/config.h @@ -18,14 +18,6 @@ #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7BA1 -#define PRODUCT_ID 0x7501 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MWStudio -#define PRODUCT MW75 - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 15 diff --git a/keyboards/mwstudio/mw75/info.json b/keyboards/mwstudio/mw75/info.json index 2eabde1495..e861c5ea23 100644 --- a/keyboards/mwstudio/mw75/info.json +++ b/keyboards/mwstudio/mw75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MW75", + "manufacturer": "MWStudio", "url": "", "maintainer": "TW59420", + "usb": { + "vid": "0x7BA1", + "pid": "0x7501", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mwstudio/mw75r2/config.h b/keyboards/mwstudio/mw75r2/config.h index 4430d12a91..0886a9effb 100644 --- a/keyboards/mwstudio/mw75r2/config.h +++ b/keyboards/mwstudio/mw75r2/config.h @@ -18,14 +18,6 @@ #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7BA1 -#define PRODUCT_ID 0x7502 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MWStudio -#define PRODUCT MW75R2 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/mwstudio/mw75r2/info.json b/keyboards/mwstudio/mw75r2/info.json index ade25ee7b9..fc6f8e4c80 100644 --- a/keyboards/mwstudio/mw75r2/info.json +++ b/keyboards/mwstudio/mw75r2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MW75R2", + "manufacturer": "MWStudio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x7BA1", + "pid": "0x7502", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/mxss/config.h b/keyboards/mxss/config.h index 67f5b8fa27..1ef9a5fc0f 100644 --- a/keyboards/mxss/config.h +++ b/keyboards/mxss/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D78 // "Mx" -> MxBlue -#define PRODUCT_ID 0x5353 // "SS" -> MxSS -#define DEVICE_VER 0x0001 -#define MANUFACTURER MxBlue -#define PRODUCT MxSS - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/mxss/info.json b/keyboards/mxss/info.json index 3a0e25d86a..765d266e35 100644 --- a/keyboards/mxss/info.json +++ b/keyboards/mxss/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "MxSS", - "maintainer": "qmk", + "manufacturer": "MxBlue", "url": "https://geekhack.org/index.php?topic=94986.0", + "maintainer": "qmk", + "usb": { + "vid": "0x4D78", + "pid": "0x5353", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/mysticworks/wyvern/config.h b/keyboards/mysticworks/wyvern/config.h index 82b4939fcf..864be372c4 100644 --- a/keyboards/mysticworks/wyvern/config.h +++ b/keyboards/mysticworks/wyvern/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device Descriptor Parameter */ -#define VENDOR_ID 0x4D59 // "MY" - Mystic Works -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Mystic Works -#define PRODUCT Wyvern - /* Key Matrix Size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/mysticworks/wyvern/info.json b/keyboards/mysticworks/wyvern/info.json index 3e649a6cc3..5492929ab5 100644 --- a/keyboards/mysticworks/wyvern/info.json +++ b/keyboards/mysticworks/wyvern/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Wyvern", + "manufacturer": "Mystic Works", "url": "https://mysticworks.xyz", "maintainer": "mysticworks", + "usb": { + "vid": "0x4D59", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/nack/config.h b/keyboards/nack/config.h index 82daf71037..798d4ee12d 100644 --- a/keyboards/nack/config.h +++ b/keyboards/nack/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -#define VENDOR_ID 0xDA12 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER farfalleflickan -#define PRODUCT nack keyboard - #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/nack/info.json b/keyboards/nack/info.json index e906bcbb99..9444eb3ad3 100644 --- a/keyboards/nack/info.json +++ b/keyboards/nack/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "nack", + "manufacturer": "farfalleflickan", "url": "https://github.com/farfalleflickan/nack", "maintainer": "farfalleflickan", + "usb": { + "vid": "0xDA12", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_ortho_4x13" }, diff --git a/keyboards/nacly/sodium42/config.h b/keyboards/nacly/sodium42/config.h index 94c6d903e1..b04468d9f1 100644 --- a/keyboards/nacly/sodium42/config.h +++ b/keyboards/nacly/sodium42/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBEEF -#define PRODUCT_ID 0xFED0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER nacly -#define PRODUCT sodium42 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/nacly/sodium42/info.json b/keyboards/nacly/sodium42/info.json index 0597d17dc0..b8b72121dd 100644 --- a/keyboards/nacly/sodium42/info.json +++ b/keyboards/nacly/sodium42/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "sodium42", + "manufacturer": "nacly", "url": "https://nacly.net", "maintainer": "nacly", + "usb": { + "vid": "0xBEEF", + "pid": "0xFED0", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nacly/sodium50/config.h b/keyboards/nacly/sodium50/config.h index 0247752d3f..5f92ca1c8c 100644 --- a/keyboards/nacly/sodium50/config.h +++ b/keyboards/nacly/sodium50/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBEEF -#define PRODUCT_ID 0xFED0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER nacly -#define PRODUCT sodium50 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/nacly/sodium50/info.json b/keyboards/nacly/sodium50/info.json index 254e4a11cd..ca96685f4c 100644 --- a/keyboards/nacly/sodium50/info.json +++ b/keyboards/nacly/sodium50/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "sodium50", + "manufacturer": "nacly", "url": "https://nacly.net", "maintainer": "nacly", + "usb": { + "vid": "0xBEEF", + "pid": "0xFED0", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nacly/sodium62/config.h b/keyboards/nacly/sodium62/config.h index b6140db5f6..88f5c349c0 100644 --- a/keyboards/nacly/sodium62/config.h +++ b/keyboards/nacly/sodium62/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBEEF -#define PRODUCT_ID 0xFED0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER nacly -#define PRODUCT sodium62 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/nacly/sodium62/info.json b/keyboards/nacly/sodium62/info.json index f1dc474dcc..8794696998 100644 --- a/keyboards/nacly/sodium62/info.json +++ b/keyboards/nacly/sodium62/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "sodium62", + "manufacturer": "nacly", "url": "https://nacly.net", "maintainer": "nacly", + "usb": { + "vid": "0xBEEF", + "pid": "0xFED0", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nacly/splitreus62/config.h b/keyboards/nacly/splitreus62/config.h index 51013ee967..42e3739341 100644 --- a/keyboards/nacly/splitreus62/config.h +++ b/keyboards/nacly/splitreus62/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBEEF -#define PRODUCT_ID 0xFED0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER NaCly -#define PRODUCT Splitreus62 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 12 diff --git a/keyboards/nacly/splitreus62/info.json b/keyboards/nacly/splitreus62/info.json index a9f9b540a9..a237ff2262 100644 --- a/keyboards/nacly/splitreus62/info.json +++ b/keyboards/nacly/splitreus62/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "splitreus62", + "keyboard_name": "Splitreus62", + "manufacturer": "NaCly", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xBEEF", + "pid": "0xFED0", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0.6}, {"x":1, "y":0.6}, {"x":2, "y":0.35}, {"x":3, "y":0}, {"x":4, "y":0.35}, {"x":5, "y":0.7}, {"x":9, "y":0.7}, {"x":10, "y":0.35}, {"x":11, "y":0}, {"x":12, "y":0.35}, {"x":13, "y":0.6}, {"x":14, "y":0.6}, {"x":0, "y":1.6}, {"x":1, "y":1.6}, {"x":2, "y":1.35}, {"x":3, "y":1}, {"x":4, "y":1.35}, {"x":5, "y":1.7}, {"x":9, "y":1.7}, {"x":10, "y":1.35}, {"x":11, "y":1}, {"x":12, "y":1.35}, {"x":13, "y":1.6}, {"x":14, "y":1.6}, {"x":0, "y":2.6}, {"x":1, "y":2.6}, {"x":2, "y":2.35}, {"x":3, "y":2}, {"x":4, "y":2.35}, {"x":5, "y":2.7}, {"x":9, "y":2.7}, {"x":10, "y":2.35}, {"x":11, "y":2}, {"x":12, "y":2.35}, {"x":13, "y":2.6}, {"x":14, "y":2.6}, {"x":0, "y":3.6}, {"x":1, "y":3.6}, {"x":2, "y":3.35}, {"x":3, "y":3}, {"x":4, "y":3.35}, {"x":5, "y":3.7}, {"x":9, "y":3.7}, {"x":10, "y":3.35}, {"x":11, "y":3}, {"x":12, "y":3.35}, {"x":13, "y":3.6}, {"x":14, "y":3.6}, {"x":0, "y":4.6}, {"x":1, "y":4.6}, {"x":2, "y":4.35}, {"x":3, "y":4}, {"x":4, "y":4.35}, {"x":5, "y":4.7}, {"x":6, "y":3.95, "h":1.5}, {"x":8, "y":3.95, "h":1.5}, {"x":9, "y":4.7}, {"x":10, "y":4.35}, {"x":11, "y":4}, {"x":12, "y":4.35}, {"x":13, "y":4.6}, {"x":14, "y":4.6}] diff --git a/keyboards/nacly/ua62/config.h b/keyboards/nacly/ua62/config.h index 803bddc294..0637a9a3d3 100644 --- a/keyboards/nacly/ua62/config.h +++ b/keyboards/nacly/ua62/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xBEEF -#define PRODUCT_ID 0xFFFF -#define DEVICE_VER 0x0001 -#define MANUFACTURER NaCly -#define PRODUCT UA62 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/nacly/ua62/info.json b/keyboards/nacly/ua62/info.json index 4090b43d11..6562aee7c3 100644 --- a/keyboards/nacly/ua62/info.json +++ b/keyboards/nacly/ua62/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ua62", + "keyboard_name": "UA62", + "manufacturer": "NaCly", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xBEEF", + "pid": "0xFFFF", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0.6}, {"x":1, "y":0.6}, {"x":2, "y":0.35}, {"x":3, "y":0}, {"x":4, "y":0.35}, {"x":5, "y":0.7}, {"x":9, "y":0.7}, {"x":10, "y":0.35}, {"x":11, "y":0}, {"x":12, "y":0.35}, {"x":13, "y":0.6}, {"x":14, "y":0.6}, {"x":0, "y":1.6}, {"x":1, "y":1.6}, {"x":2, "y":1.35}, {"x":3, "y":1}, {"x":4, "y":1.35}, {"x":5, "y":1.7}, {"x":9, "y":1.7}, {"x":10, "y":1.35}, {"x":11, "y":1}, {"x":12, "y":1.35}, {"x":13, "y":1.6}, {"x":14, "y":1.6}, {"x":0, "y":2.6}, {"x":1, "y":2.6}, {"x":2, "y":2.35}, {"x":3, "y":2}, {"x":4, "y":2.35}, {"x":5, "y":2.7}, {"x":9, "y":2.7}, {"x":10, "y":2.35}, {"x":11, "y":2}, {"x":12, "y":2.35}, {"x":13, "y":2.6}, {"x":14, "y":2.6}, {"x":0, "y":3.6}, {"x":1, "y":3.6}, {"x":2, "y":3.35}, {"x":3, "y":3}, {"x":4, "y":3.35}, {"x":5, "y":3.7}, {"x":9, "y":3.7}, {"x":10, "y":3.35}, {"x":11, "y":3}, {"x":12, "y":3.35}, {"x":13, "y":3.6}, {"x":14, "y":3.6}, {"x":0, "y":4.6}, {"x":1, "y":4.6}, {"x":2, "y":4.35}, {"x":3, "y":4}, {"x":4, "y":4.35}, {"x":5, "y":4.7}, {"x":6, "y":3.95, "h":1.5}, {"x":8, "y":3.95, "h":1.5}, {"x":9, "y":4.7}, {"x":10, "y":4.35}, {"x":11, "y":4}, {"x":12, "y":4.35}, {"x":13, "y":4.6}, {"x":14, "y":4.6}] diff --git a/keyboards/nasu/config.h b/keyboards/nasu/config.h index 15ed75d5c0..ec0a22a9a6 100644 --- a/keyboards/nasu/config.h +++ b/keyboards/nasu/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4E53 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT Nasu - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/nasu/info.json b/keyboards/nasu/info.json index fb191dc1fd..e2cd10fca6 100644 --- a/keyboards/nasu/info.json +++ b/keyboards/nasu/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Nasu", + "manufacturer": "Yiancar-Designs", "url": "https://yiancar-designs.com", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x4E53", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/ncc1701kb/config.h b/keyboards/ncc1701kb/config.h index bcc507032d..09a54276cb 100644 --- a/keyboards/ncc1701kb/config.h +++ b/keyboards/ncc1701kb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1701 -#define DEVICE_VER 0x0001 -#define MANUFACTURER J2L Designs -#define PRODUCT NCC1701KB - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/ncc1701kb/info.json b/keyboards/ncc1701kb/info.json index 396c317136..628341fde0 100644 --- a/keyboards/ncc1701kb/info.json +++ b/keyboards/ncc1701kb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "NCC-1701-KB", + "manufacturer": "J2L Designs", "url": "", "maintainer": "jessel92", + "usb": { + "vid": "0xFEED", + "pid": "0x1701", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/neito/config.h b/keyboards/neito/config.h index c638b800c4..1ad5401f30 100644 --- a/keyboards/neito/config.h +++ b/keyboards/neito/config.h @@ -16,13 +16,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xB9F7 // "Oliver Granlund" -#define PRODUCT_ID 0xB44C // "Neito" -#define DEVICE_VER 0x0001 -#define MANUFACTURER Oliver Granlund -#define PRODUCT Neito - #define MATRIX_ROWS 10 #define MATRIX_COLS 8 #define MATRIX_ROW_PINS { E6, F0, F5, F6, C7, C6, B4, D7, D6, D4 } diff --git a/keyboards/neito/info.json b/keyboards/neito/info.json index dbc5fad525..884a97b136 100644 --- a/keyboards/neito/info.json +++ b/keyboards/neito/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Neito", + "manufacturer": "Oliver Granlund", "url": "olli.works", "maintainer": "Oliver Granlund", + "usb": { + "vid": "0xB9F7", + "pid": "0xB44C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nek_type_a/config.h b/keyboards/nek_type_a/config.h index 701a75ebba..054441b02b 100644 --- a/keyboards/nek_type_a/config.h +++ b/keyboards/nek_type_a/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER miker -#define PRODUCT nek_type_a - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/nek_type_a/info.json b/keyboards/nek_type_a/info.json index 17e4674035..f5e93269ad 100644 --- a/keyboards/nek_type_a/info.json +++ b/keyboards/nek_type_a/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "NEK Type A", + "manufacturer": "miker", "url": "", "maintainer": "ecopoesis", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nemui/config.h b/keyboards/nemui/config.h index 32b757d610..a782caf748 100644 --- a/keyboards/nemui/config.h +++ b/keyboards/nemui/config.h @@ -16,13 +16,6 @@ */ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6400 -#define PRODUCT_ID 0x2371 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Bachoo -#define PRODUCT Nemui - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/nemui/info.json b/keyboards/nemui/info.json index 7a2f231d10..f88d906fe5 100644 --- a/keyboards/nemui/info.json +++ b/keyboards/nemui/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "nemui", + "keyboard_name": "Nemui", + "manufacturer": "Bachoo", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x6400", + "pid": "0x2371", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/neokeys/g67/element_hs/config.h b/keyboards/neokeys/g67/element_hs/config.h index 3efc322d8d..2994931e73 100644 --- a/keyboards/neokeys/g67/element_hs/config.h +++ b/keyboards/neokeys/g67/element_hs/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E4B // "NK" -#define PRODUCT_ID 0x5049 -#define DEVICE_VER 0x0100 -#define MANUFACTURER NEO Keys -#define PRODUCT Element G67 Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/neokeys/g67/element_hs/info.json b/keyboards/neokeys/g67/element_hs/info.json index 3b20d10402..554313f6fa 100644 --- a/keyboards/neokeys/g67/element_hs/info.json +++ b/keyboards/neokeys/g67/element_hs/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "NEO Keys Element Hotswap", + "keyboard_name": "Element G67 Hotswap", + "manufacturer": "NEO Keys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E4B", + "pid": "0x5049", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/neokeys/g67/hotswap/config.h b/keyboards/neokeys/g67/hotswap/config.h index d5303fa050..5c45f7ef94 100644 --- a/keyboards/neokeys/g67/hotswap/config.h +++ b/keyboards/neokeys/g67/hotswap/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E4B // "NK" -#define PRODUCT_ID 0x5048 -#define DEVICE_VER 0x0100 -#define MANUFACTURER NEO Keys -#define PRODUCT Palette G67 Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/neokeys/g67/hotswap/info.json b/keyboards/neokeys/g67/hotswap/info.json index 65b364bf44..db3619d5c9 100644 --- a/keyboards/neokeys/g67/hotswap/info.json +++ b/keyboards/neokeys/g67/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "NEO Keys Palette G67 Hotswap", + "keyboard_name": "Palette G67 Hotswap", + "manufacturer": "NEO Keys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E4B", + "pid": "0x5048", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/neokeys/g67/soldered/config.h b/keyboards/neokeys/g67/soldered/config.h index 4672d96f11..9ea69bd3fe 100644 --- a/keyboards/neokeys/g67/soldered/config.h +++ b/keyboards/neokeys/g67/soldered/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E4B // "NK" -#define PRODUCT_ID 0x5053 -#define DEVICE_VER 0x0100 -#define MANUFACTURER NEO Keys -#define PRODUCT Palette G67 Soldered - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/neokeys/g67/soldered/info.json b/keyboards/neokeys/g67/soldered/info.json index b7738039bd..d8da39a4fb 100644 --- a/keyboards/neokeys/g67/soldered/info.json +++ b/keyboards/neokeys/g67/soldered/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "NEO Keys Palette G67 Soldered", + "keyboard_name": "Palette G67 Soldered", + "manufacturer": "NEO Keys", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E4B", + "pid": "0x5053", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c new file mode 100644 index 0000000000..6b3be48044 --- /dev/null +++ b/keyboards/neson_design/700e/700e.c @@ -0,0 +1,388 @@ +/** + * @file 700e.c + * + Copyright 2022 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + +#include "700e.h" +#include "i2c_master.h" +#include "drivers/led/issi/is31fl3731.h" + +enum { + SELF_TESTING, + CAPS_ALERT, + NORMAL, +}; + +enum { + ST_STAGE_1, + ST_STAGE_2, + ST_STAGE_3, +}; + +// alert state update interval +#define ALERT_INTERVAL 500 +// self testing state update interval +#define ST_INTERVAL 100 +// self testing start index +#define ST_DEFAULT_INDEX 15 +// self testing stage delay +#define ST_STAGE_DELAY 10 +// self testing stage cycle count +#define ST_STAGE_COUNT 4 +// self testing stage end duration +#define ST_END_DURATION 10 + +// led index +#define ST_LEFT_BEGIN 0 +#ifdef DRIVER_ADDR_2 +#define ST_LEFT_SIZE 4 +#else +#define ST_LEFT_SIZE 2 +#endif +#define ST_LEFT_END (ST_LEFT_BEGIN+ST_LEFT_SIZE-1) +#ifdef DRIVER_ADDR_2 +#define ST_RIGHT_BEGIN 60 +#else +#define ST_RIGHT_BEGIN 30 +#endif +#ifdef DRIVER_ADDR_2 +#define ST_RIGHT_SIZE 4 +#else +#define ST_RIGHT_SIZE 2 +#endif +#define ST_RIGHT_END (ST_RIGHT_BEGIN+ST_RIGHT_SIZE-1) + +#ifdef RGBLIGHT_ENABLE + +typedef struct { + uint8_t state; + uint8_t testing; + bool alert; + uint8_t index; + uint8_t delay; + uint8_t count; + bool dir; + uint8_t duration; + uint16_t ticks; +} rgb_state_t; + +static rgb_state_t rgb_state = { + .state = //NORMAL, + SELF_TESTING, + .testing = ST_STAGE_1, + .ticks = 0, + .alert = false, + .index = ST_DEFAULT_INDEX, + .delay = ST_STAGE_DELAY, + .count = ST_STAGE_COUNT, + .dir = true, + .duration = ST_END_DURATION, +}; + +static void update_ticks(void) +{ + rgb_state.ticks = timer_read(); +} + +static void self_testing(void) +{ + if (timer_elapsed(rgb_state.ticks) < ST_INTERVAL) return; + HSV hsv = rgblight_get_hsv(); + + RGB led = hsv_to_rgb(hsv); + switch(rgb_state.testing) { + case ST_STAGE_1: + if (rgb_state.index !=0 ) { + IS31FL3731_set_color_all(0, 0, 0); + } + + if (rgb_state.index >= ST_LEFT_END) { + for (int i = rgb_state.index - 1; i < DRIVER_LED_TOTAL - rgb_state.index + 1; i++) { + IS31FL3731_set_color(i, led.r, led.g, led.b); + } + if (rgb_state.index == ST_LEFT_END) { + rgb_state.index = ST_LEFT_BEGIN; + } else { + rgb_state.index -= ST_LEFT_SIZE; + } + } else{ + if (rgb_state.delay > 0) { + rgb_state.delay--; + } else { + // move to stage 2 + rgb_state.index = ST_LEFT_BEGIN+ST_LEFT_SIZE; + rgb_state.testing = ST_STAGE_2; + } + } + break; + case ST_STAGE_2: { + // clear all + 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); + } + for (i = 0; i < ST_RIGHT_SIZE; i++) { + 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); + } + rgb_state.index += ST_LEFT_SIZE+ST_RIGHT_SIZE; + if (rgb_state.index == ST_RIGHT_BEGIN) { + rgb_state.dir = !rgb_state.dir; + rgb_state.count--; + } + } 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); + } + rgb_state.index -= ST_LEFT_SIZE + ST_RIGHT_SIZE; + if (rgb_state.index == ST_LEFT_BEGIN+ST_LEFT_SIZE) { + rgb_state.dir = !rgb_state.dir; + rgb_state.count--; + } + } + + if (rgb_state.count == 0) { + // move to stage 3 + rgb_state.testing = ST_STAGE_3; + rgb_state.index = 0; + rgb_state.delay = ST_STAGE_DELAY; + rgb_state.duration = ST_END_DURATION; + } + } + break; + case ST_STAGE_3: + if (rgb_state.index != DRIVER_LED_TOTAL/2) { + IS31FL3731_set_color_all(0, 0, 0); + } + + // light left and right + + if (rgb_state.index == DRIVER_LED_TOTAL/2) { + if (rgb_state.duration) { + rgb_state.duration--; + } else { + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgb_state.state = CAPS_ALERT; + } else { + rgb_state.state = NORMAL; + rgblight_set(); + } + } + } else { + // left + for (int i = 0; i < rgb_state.index+1; i++) { + 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); + } + rgb_state.index ++; + } + break; + } + + update_ticks(); +} + +const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { + /* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + // left CA + {0, C1_1, C3_2, C4_2}, + {0, C1_2, C2_2, C4_3}, + {0, C1_3, C2_3, C3_3}, + {0, C1_4, C2_4, C3_4}, + {0, C1_5, C2_5, C3_5}, + {0, C1_6, C2_6, C3_6}, + {0, C1_7, C2_7, C3_7}, + {0, C1_8, C2_8, C3_8}, + + {0, C9_1, C8_1, C7_1}, + {0, C9_2, C8_2, C7_2}, + {0, C9_3, C8_3, C7_3}, + {0, C9_4, C8_4, C7_4}, + {0, C9_5, C8_5, C7_5}, + {0, C9_6, C8_6, C7_6}, + {0, C9_7, C8_7, C6_6}, + {0, C9_8, C7_7, C6_7}, + // left CB + {0, C1_9, C3_10, C4_10}, + {0, C1_10, C2_10, C4_11}, + {0, C1_11, C2_11, C3_11}, + {0, C1_12, C2_12, C3_12}, + {0, C1_13, C2_13, C3_13}, + {0, C1_14, C2_14, C3_14}, + {0, C1_15, C2_15, C3_15}, + {0, C1_16, C2_16, C3_16}, + + {0, C9_9, C8_9, C7_9}, + {0, C9_10, C8_10, C7_10}, + {0, C9_11, C8_11, C7_11}, + {0, C9_12, C8_12, C7_12}, + {0, C9_13, C8_13, C7_13}, + {0, C9_14, C8_14, C7_14}, + {0, C9_15, C8_15, C6_14}, + {0, C9_16, C7_15, C6_15}, + + // right CA + {1, C1_1, C3_2, C4_2}, + {1, C1_2, C2_2, C4_3}, + {1, C1_3, C2_3, C3_3}, + {1, C1_4, C2_4, C3_4}, + {1, C1_5, C2_5, C3_5}, + {1, C1_6, C2_6, C3_6}, + {1, C1_7, C2_7, C3_7}, + {1, C1_8, C2_8, C3_8}, + + {1, C9_1, C8_1, C7_1}, + {1, C9_2, C8_2, C7_2}, + {1, C9_3, C8_3, C7_3}, + {1, C9_4, C8_4, C7_4}, + {1, C9_5, C8_5, C7_5}, + {1, C9_6, C8_6, C7_6}, + {1, C9_7, C8_7, C6_6}, + {1, C9_8, C7_7, C6_7}, + // right CB + {1, C1_9, C3_10, C4_10}, + {1, C1_10, C2_10, C4_11}, + {1, C1_11, C2_11, C3_11}, + {1, C1_12, C2_12, C3_12}, + {1, C1_13, C2_13, C3_13}, + {1, C1_14, C2_14, C3_14}, + {1, C1_15, C2_15, C3_15}, + {1, C1_16, C2_16, C3_16}, + + {1, C9_9, C8_9, C7_9}, + {1, C9_10, C8_10, C7_10}, + {1, C9_11, C8_11, C7_11}, + {1, C9_12, C8_12, C7_12}, + {1, C9_13, C8_13, C7_13}, + {1, C9_14, C8_14, C7_14}, + {1, C9_15, C8_15, C6_14}, + {1, C9_16, C7_15, C6_15}, +}; + +void matrix_init_kb(void) +{ + setPinOutput(LED_CAPS_LOCK_PIN); + writePinLow(LED_CAPS_LOCK_PIN); + + i2c_init(); + IS31FL3731_init(DRIVER_ADDR_1); +#ifdef DRIVER_ADDR_2 + IS31FL3731_init(DRIVER_ADDR_2); +#endif + for (int index = 0; index < DRIVER_LED_TOTAL; index++) { + IS31FL3731_set_led_control_register(index, true, true, true); + } + IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); +#ifdef DRIVER_ADDR_2 + IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1); +#endif + update_ticks(); + matrix_init_user(); +} + +#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 (rgb_state.state == SELF_TESTING) { + 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); + LED_TYPE leds[4]; + for (int i = 0; i < 4; i++) { + leds[i].r = ALERM_LED_G; + leds[i].g = ALERM_LED_R; + leds[i].b = ALERM_LED_B; + } + ws2812_setleds(leds, 4); + } else { + IS31FL3731_set_color_all(0, 0, 0); + LED_TYPE leds[4] = {0}; + ws2812_setleds(leds, 4); + } + + if (timer_elapsed(rgb_state.ticks) > ALERT_INTERVAL) { + rgb_state.alert = !rgb_state.alert; + update_ticks(); + } + } + + IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0); +#ifdef DRIVER_ADDR_2 + IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1); +#endif + + housekeeping_task_user(); +} + +void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) +{ + if (rgb_state.state != NORMAL) return; + + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + IS31FL3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); + } + LED_TYPE leds[4]; + for (int i = 0; i < 4; i++) { + leds[i].r = start_led[DRIVER_LED_TOTAL+i].g; + leds[i].g = start_led[DRIVER_LED_TOTAL+i].r; + leds[i].b = start_led[DRIVER_LED_TOTAL+i].b; + } + //ws2812_setleds(start_led+DRIVER_LED_TOTAL, 4); + ws2812_setleds(leds, 4); +} + +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); + + if (rgb_state.state != SELF_TESTING) { + if (led_state.caps_lock) { + rgb_state.state = CAPS_ALERT; + update_ticks(); + } else { + rgb_state.state = NORMAL; + rgblight_set(); + } + } + } + return res; +} + +#endif \ No newline at end of file diff --git a/keyboards/neson_design/700e/700e.h b/keyboards/neson_design/700e/700e.h new file mode 100644 index 0000000000..f096868d32 --- /dev/null +++ b/keyboards/neson_design/700e/700e.h @@ -0,0 +1,38 @@ +/** + * @file 700e.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 + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F,\ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F\ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h new file mode 100644 index 0000000000..f1f26cdbc1 --- /dev/null +++ b/keyboards/neson_design/700e/config.h @@ -0,0 +1,71 @@ +/** + * config.h + * + Copyright 2022 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4E65 //'Ne' +#define PRODUCT_ID 0x700E // +#define DEVICE_VER 0x0001 +#define MANUFACTURER Neson Design +#define PRODUCT 700E Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 +#define MATRIX_ROW_PINS { E6, B7, F6, F1, F0} +#define MATRIX_COL_PINS { F7, B0, B3, B1, B2, F4, C7, C6, B6, B5, B4, D7, D3, D2, D6, D4} +#define UNUSED_PINS +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + + +#define DRIVER_1_LED_TOTAL 32 +#define DRIVER_2_LED_TOTAL 32 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_COUNT 2 +#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) + +#define LED_CAPS_LOCK_PIN F5 + +//rgb light setting +#define RGBLED_NUM 68 +#define RGB_DI_PIN D5 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +//#define RGBLIGHT_LIMIT_VAL 192 + +#define USB_SUSPEND_WAKEUP_DELAY 1000 diff --git a/keyboards/neson_design/700e/info.json b/keyboards/neson_design/700e/info.json new file mode 100644 index 0000000000..270f1ed53c --- /dev/null +++ b/keyboards/neson_design/700e/info.json @@ -0,0 +1,11 @@ +{ + "keyboard_name": "700E", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_all": { + "layout": + [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0}, {"label":"4,13", "x":14, "y":0}, {"label":"0,14", "x":15.5, "y":0}, {"label":"0,15", "x":16.5, "y":0}, {"label":"1,15", "x":17.5, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"1,14", "x":15.5, "y":1}, {"label":"2,14", "x":16.5, "y":1}, {"label":"2,15", "x":17.5, "y":1}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,12", "x":12.75, "y":2}, {"label":"2,13", "x":13.75, "y":2}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"3,14", "x":16.5, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,9", "x":11.25, "y":4, "w":1.25}, {"label":"4,11", "x":12.5, "y":4, "w":1.25}, {"label":"4,12", "x":13.75, "y":4, "w":1.25}, {"label":"3,15", "x":15.5, "y":4}, {"label":"4,14", "x":16.5, "y":4}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,10", "x":4, "y":4.25, "w":7}] + } + } +} diff --git a/keyboards/neson_design/700e/keymaps/default/keymap.c b/keyboards/neson_design/700e/keymaps/default/keymap.c new file mode 100644 index 0000000000..85d16165c4 --- /dev/null +++ b/keyboards/neson_design/700e/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/** + Copyright 2022 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_DEL,KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_BSLS, KC_ENT, + KC_LSFT, KC_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_all( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,KC_PSCR,_______,_______,_______, + RESET, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,KC_MUTE,KC_VOLU,KC_VOLD,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), +}; diff --git a/keyboards/neson_design/700e/keymaps/via/keymap.c b/keyboards/neson_design/700e/keymaps/via/keymap.c new file mode 100644 index 0000000000..575701ed2a --- /dev/null +++ b/keyboards/neson_design/700e/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/** + Copyright 2022 astro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_DEL,KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_BSLS, KC_ENT, + KC_LSFT, KC_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_all( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,KC_PSCR,_______,_______,_______, + RESET, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,KC_MUTE,KC_VOLU,KC_VOLD,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), + + [2] = LAYOUT_all( + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, + _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), +}; diff --git a/keyboards/neson_design/700e/keymaps/via/rules.mk b/keyboards/neson_design/700e/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/neson_design/700e/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/700e/readme.md b/keyboards/neson_design/700e/readme.md new file mode 100644 index 0000000000..902b0709ff --- /dev/null +++ b/keyboards/neson_design/700e/readme.md @@ -0,0 +1,21 @@ +# Neson Design (formerly iNETT Studio) 700E + +A 65% keyboard with function keys from the Neson Design's N series. + +* Keyboard Maintainer: [astro](https://github.com/yulei) +* Hardware Supported: 700E keyboard +* Hardware Availability: Limited gb + +Make example for this keyboard (after setting up your build environment): + + make neson_design/700e: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 `RESET` if it is available. \ No newline at end of file diff --git a/keyboards/neson_design/700e/rules.mk b/keyboards/neson_design/700e/rules.mk new file mode 100644 index 0000000000..aca054eabd --- /dev/null +++ b/keyboards/neson_design/700e/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +NO_USB_STARTUP_CHECK = yes + +QUANTUM_LIB_SRC += i2c_master.c drivers/led/issi/is31fl3731.c diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h index 2f564ab4c4..d8c3945f50 100644 --- a/keyboards/neson_design/n6/config.h +++ b/keyboards/neson_design/n6/config.h @@ -20,13 +20,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E65 //'Ne' -#define PRODUCT_ID 0x4E36 //'N6' -#define DEVICE_VER 0x0001 -#define MANUFACTURER Neson Design -#define PRODUCT N6 Keyboard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/neson_design/n6/info.json b/keyboards/neson_design/n6/info.json index ad52af3288..1fe847a3d7 100644 --- a/keyboards/neson_design/n6/info.json +++ b/keyboards/neson_design/n6/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "n6", + "keyboard_name": "N6", + "manufacturer": "Neson Design", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E65", + "pid": "0x4E36", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_65_ansi_blocker_splitbs": "LAYOUT_65_ansi_blocker_split_bs" }, diff --git a/keyboards/newgame40/config.h b/keyboards/newgame40/config.h index d2ec20a7cc..ed7df48f72 100644 --- a/keyboards/newgame40/config.h +++ b/keyboards/newgame40/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER GoTakigawa -#define PRODUCT NEWGAME40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/newgame40/info.json b/keyboards/newgame40/info.json index 9c06fafacf..55e5a5802a 100644 --- a/keyboards/newgame40/info.json +++ b/keyboards/newgame40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "NEWGAME40", + "manufacturer": "GoTakigawa", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x10": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}] diff --git a/keyboards/nibiria/stream15/config.h b/keyboards/nibiria/stream15/config.h index 824357b475..64866ef29d 100644 --- a/keyboards/nibiria/stream15/config.h +++ b/keyboards/nibiria/stream15/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E49 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nibiria -#define PRODUCT Stream15 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 5 diff --git a/keyboards/nibiria/stream15/info.json b/keyboards/nibiria/stream15/info.json index 8dbbc82a99..eb4d196ea7 100644 --- a/keyboards/nibiria/stream15/info.json +++ b/keyboards/nibiria/stream15/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Stream15", + "manufacturer": "Nibiria", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E49", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_3x5": { diff --git a/keyboards/nightingale_studios/hailey/config.h b/keyboards/nightingale_studios/hailey/config.h index f3331b3f1c..915a8b89d1 100644 --- a/keyboards/nightingale_studios/hailey/config.h +++ b/keyboards/nightingale_studios/hailey/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4879 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nightingale Studios -#define PRODUCT Hailey - /* key matrix size - encoder is not part of matrix but wired to 2 pins so bodge a fake row/col*/ #define MATRIX_ROWS 7 #define MATRIX_COLS 17 diff --git a/keyboards/nightingale_studios/hailey/info.json b/keyboards/nightingale_studios/hailey/info.json index 84cae1487e..ac199206b9 100644 --- a/keyboards/nightingale_studios/hailey/info.json +++ b/keyboards/nightingale_studios/hailey/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Hailey", + "manufacturer": "Nightingale Studios", "maintainer": "zvecr", + "usb": { + "vid": "0xFEED", + "pid": "0x4879", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,2", "x":1.25, "y":0}, {"label":"0,3", "x":2.25, "y":0}, {"label":"0,4", "x":3.25, "y":0}, {"label":"0,5", "x":4.25, "y":0}, {"label":"0,6", "x":5.5, "y":0}, {"label":"0,7", "x":6.5, "y":0}, {"label":"0,8", "x":7.5, "y":0}, {"label":"0,9", "x":8.5, "y":0}, {"label":"0,10", "x":9.75, "y":0}, {"label":"0,11", "x":10.75, "y":0}, {"label":"0,12", "x":11.75, "y":0}, {"label":"0,13", "x":12.75, "y":0}, {"label":"0,14", "x":14, "y":0}, {"label":"6,16", "x":15.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x":10, "y":1.25}, {"label":"1,11", "x":11, "y":1.25}, {"label":"1,12", "x":12, "y":1.25}, {"label":"1,13", "x":13, "y":1.25, "w":2}, {"label":"1,15", "x":15.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,10", "x":10.5, "y":2.25}, {"label":"2,11", "x":11.5, "y":2.25}, {"label":"2,12", "x":12.5, "y":2.25}, {"label":"2,13", "x":13.5, "y":2.25, "w":1.5}, {"label":"2,15", "x":15.25, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,10", "x":10.75, "y":3.25}, {"label":"3,11", "x":11.75, "y":3.25}, {"label":"3,12", "x":12.75, "y":3.25, "w":2.25}, {"label":"3,15", "x":15.25, "y":3.25}, {"label":"4,0", "x":0, "y":4.25, "w":2.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"4,7", "x":7.25, "y":4.25}, {"label":"4,8", "x":8.25, "y":4.25}, {"label":"4,9", "x":9.25, "y":4.25}, {"label":"4,10", "x":10.25, "y":4.25}, {"label":"4,11", "x":11.25, "y":4.25}, {"label":"4,12", "x":12.25, "y":4.25, "w":1.75}, {"label":"4,14", "x":14.25, "y":4.5}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,5", "x":3.75, "y":5.25, "w":6.25}, {"label":"5,9", "x":10, "y":5.25, "w":1.5}, {"label":"5,11", "x":11.5, "y":5.25, "w":1.5}, {"label":"5,12", "x":13.25, "y":5.5}, {"label":"5,14", "x":14.25, "y":5.5}, {"label":"5,15", "x":15.25, "y":5.5}] diff --git a/keyboards/nightly_boards/adellein/config.h b/keyboards/nightly_boards/adellein/config.h index cd24f1a1c8..6b975eee8a 100644 --- a/keyboards/nightly_boards/adellein/config.h +++ b/keyboards/nightly_boards/adellein/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD812 -#define PRODUCT_ID 0x0010 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Neil Brian Ramirez -#define PRODUCT Adellein - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/nightly_boards/adellein/info.json b/keyboards/nightly_boards/adellein/info.json index 394987dddb..08a0eeb040 100644 --- a/keyboards/nightly_boards/adellein/info.json +++ b/keyboards/nightly_boards/adellein/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Adellein", + "manufacturer": "Neil Brian Ramirez", "url": "", "maintainer": "Neil Brian Ramirez", + "usb": { + "vid": "0xD812", + "pid": "0x0010", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_40ergo_split_ent": { "layout": [ diff --git a/keyboards/nightly_boards/alter/rev1/config.h b/keyboards/nightly_boards/alter/rev1/config.h index f42c49eb5c..86af00ffd8 100644 --- a/keyboards/nightly_boards/alter/rev1/config.h +++ b/keyboards/nightly_boards/alter/rev1/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0717 -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Neil Brian Ramirez -#define PRODUCT Alter - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/nightly_boards/alter/rev1/info.json b/keyboards/nightly_boards/alter/rev1/info.json index 6083454b01..7cad90c889 100644 --- a/keyboards/nightly_boards/alter/rev1/info.json +++ b/keyboards/nightly_boards/alter/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Alter", + "manufacturer": "Neil Brian Ramirez", "url": "", "maintainer": "Neil Brian Ramirez", + "usb": { + "vid": "0x0717", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/nightly_boards/alter_lite/alter_lite.c b/keyboards/nightly_boards/alter_lite/alter_lite.c new file mode 100644 index 0000000000..90e2d8c5b3 --- /dev/null +++ b/keyboards/nightly_boards/alter_lite/alter_lite.c @@ -0,0 +1,16 @@ +/* Copyright 2020 DeskDaily + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "alter_lite.h" diff --git a/keyboards/nightly_boards/alter_lite/alter_lite.h b/keyboards/nightly_boards/alter_lite/alter_lite.h new file mode 100644 index 0000000000..a268512dae --- /dev/null +++ b/keyboards/nightly_boards/alter_lite/alter_lite.h @@ -0,0 +1,41 @@ + /* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K21, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K31, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \ + K41, K44, K45, K46, K48, K4B, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, KC_NO, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, KC_NO, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \ + { KC_NO, K31, KC_NO, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { KC_NO, K41, KC_NO, KC_NO, K44, K45, K46, KC_NO, K48, KC_NO, KC_NO, K4B, KC_NO, KC_NO, K4E, KC_NO }, \ +} diff --git a/keyboards/nightly_boards/alter_lite/config.h b/keyboards/nightly_boards/alter_lite/config.h new file mode 100644 index 0000000000..59b7abf11f --- /dev/null +++ b/keyboards/nightly_boards/alter_lite/config.h @@ -0,0 +1,55 @@ + /* +Copyright 2020 DeskDaily +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +#define LED_NUM_LOCK_PIN D6 +#define LED_CAPS_LOCK_PIN D7 +#define LED_SCROLL_LOCK_PIN D4 +#define LED_PIN_ON_STATE 0 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F0, F1, D3, D5, B5 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D2, E6, B6, C6, C7, F7, F6, F5, F4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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/nightly_boards/alter_lite/info.json b/keyboards/nightly_boards/alter_lite/info.json new file mode 100644 index 0000000000..2f4d6b8343 --- /dev/null +++ b/keyboards/nightly_boards/alter_lite/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "Alter Lite", + "manufacturer": "DeskDaily", + "url": "", + "maintainer": "DeskDaily", + "usb": { + "vid": "0xD812", + "pid": "0x0013", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0.5, "y":0.15}, + {"x":1.75, "y":0.25}, + {"x":2.75, "y":0.25}, + {"x":3.75, "y":0.25}, + {"x":4.75, "y":0.25}, + {"x":5.75, "y":0.25}, + {"x":6.75, "y":0.25}, + {"x":7.75, "y":0.25}, + {"x":11.25, "y":0.25}, + {"x":12.25, "y":0.25}, + {"x":13.25, "y":0.25}, + {"x":14.25, "y":0.25}, + {"x":15.25, "y":0.25}, + {"x":16.25, "y":0.25}, + {"x":17.25, "y":0.25}, + {"x":18.25, "y":0.25}, + {"x":0.25, "y":1.15}, + {"x":1.5, "y":1.25, "w":1.5}, + {"x":3, "y":1.25}, + {"x":4.25, "y":1.25}, + {"x":5.25, "y":1.25}, + {"x":6.25, "y":1.25}, + {"x":7.25, "y":1.25}, + {"x":10.75, "y":1.25}, + {"x":11.75, "y":1.25}, + {"x":12.75, "y":1.25}, + {"x":13.75, "y":1.25}, + {"x":15, "y":1.25}, + {"x":16, "y":1.25}, + {"x":17, "y":1.25}, + {"x":18, "y":1.25, "w":1.5}, + {"x":0, "y":2.15}, + {"x":1.25, "y":2.25, "w":1.75}, + {"x":3, "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":11, "y":2.25}, + {"x":12, "y":2.25}, + {"x":13, "y":2.25}, + {"x":14, "y":2.25}, + {"x":15.5, "y":2.25}, + {"x":16.5, "y":2.25}, + {"x":17.5, "y":2.25, "w":2.25}, + {"x":1, "y":3.25, "w":2.25}, + {"x":3.25, "y":3.25}, + {"x":5, "y":3.25}, + {"x":6, "y":3.25}, + {"x":7, "y":3.25}, + {"x":8, "y":3.25}, + {"x":10.5, "y":3.25}, + {"x":11.5, "y":3.25}, + {"x":12.5, "y":3.25}, + {"x":13.5, "y":3.25}, + {"x":15.25, "y":3.25}, + {"x":16.25, "y":3.25}, + {"x":17.25, "y":3.25, "w":1.75}, + {"x":19, "y":3.25}, + {"x":1, "y":4.25, "w":1.5}, + {"x":4.75, "y":4.25, "w":1.5}, + {"x":6.25, "y":4.25, "w":2}, + {"x":8.25, "y":4.25, "w":1.25}, + {"x":10.5, "y":4.25, "w":2.75}, + {"x":13.25, "y":4.25, "w":1.5}, + {"x":18.25, "y":4.25, "w":1.5}] + } + } +} diff --git a/keyboards/nightly_boards/alter_lite/keymaps/default/keymap.c b/keyboards/nightly_boards/alter_lite/keymaps/default/keymap.c new file mode 100644 index 0000000000..f13b4cdc80 --- /dev/null +++ b/keyboards/nightly_boards/alter_lite/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + MO(1), KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT( + RESET, _______, KC_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_BRIU, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______ , _______, _______, + KC_BRID, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, _______, + _______, KC_RGUI, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/nightly_boards/alter_lite/keymaps/via/keymap.c b/keyboards/nightly_boards/alter_lite/keymaps/via/keymap.c new file mode 100644 index 0000000000..2d33585cf0 --- /dev/null +++ b/keyboards/nightly_boards/alter_lite/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_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_LCTL, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + MO(1), KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT( + RESET, 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_BRIU, 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_BRID, 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_HOME, KC_END, KC_TRNS, KC_TRNS, + KC_TRNS, KC_RGUI, 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 + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/nightly_boards/alter_lite/keymaps/via/rules.mk b/keyboards/nightly_boards/alter_lite/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/nightly_boards/alter_lite/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/nightly_boards/alter_lite/readme.md b/keyboards/nightly_boards/alter_lite/readme.md new file mode 100644 index 0000000000..51ee69a620 --- /dev/null +++ b/keyboards/nightly_boards/alter_lite/readme.md @@ -0,0 +1,20 @@ +#DeskDaily Alter + +![Alter Lite](https://i.imgur.com/dYVwbD0.jpg) + +An Alice layout keyboard. This Lite version have no underglow + +* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily) +* Hardware Supported: atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make nightly_boards/alter_lite:default + +Flashing example for this keyboard: + + make nightly_boards/alter_lite:default:flash + +You can enter bootloader mode by pressing the physical reset button at the front of the pcb (near the right spacebar) or by holding the upper left key while plugging the usb cable. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/nightly_boards/alter_lite/rules.mk b/keyboards/nightly_boards/alter_lite/rules.mk new file mode 100644 index 0000000000..334299a9eb --- /dev/null +++ b/keyboards/nightly_boards/alter_lite/rules.mk @@ -0,0 +1,17 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow \ No newline at end of file diff --git a/keyboards/nightly_boards/conde60/conde60.c b/keyboards/nightly_boards/conde60/conde60.c new file mode 100644 index 0000000000..2f31ade1be --- /dev/null +++ b/keyboards/nightly_boards/conde60/conde60.c @@ -0,0 +1,17 @@ +/* Copyright 2022 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "conde60.h" diff --git a/keyboards/nightly_boards/conde60/conde60.h b/keyboards/nightly_boards/conde60/conde60.h new file mode 100644 index 0000000000..e660946a77 --- /dev/null +++ b/keyboards/nightly_boards/conde60/conde60.h @@ -0,0 +1,42 @@ +/* Copyright 2022 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K44, K46, K47, K49, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, K44, KC_NO, K46, K47, KC_NO, K49, KC_NO, K4B, K4C, K4D }, \ +} diff --git a/keyboards/nightly_boards/conde60/config.h b/keyboards/nightly_boards/conde60/config.h new file mode 100644 index 0000000000..c50c9e29c9 --- /dev/null +++ b/keyboards/nightly_boards/conde60/config.h @@ -0,0 +1,61 @@ +/* +Copyright 2022 DeskDaily + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B1, B2, F0, F1, F4 } +#define MATRIX_COL_PINS { B0, B3, B7, B6, C6, C7, F7, F6, F5, D4, D6, D7, B4, B5 } +#define UNUSED_PINS + +#define RGB_DI_PIN D5 +#ifdef RGB_DI_PIN +#define RGBLED_NUM 12 +#define RGBLIGHT_ANIMATIONS + +#endif + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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/nightly_boards/conde60/info.json b/keyboards/nightly_boards/conde60/info.json new file mode 100644 index 0000000000..97c10ca29c --- /dev/null +++ b/keyboards/nightly_boards/conde60/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "Conde60", + "manufacturer": "DeskDaily", + "url": "", + "maintainer": "DeskDaily", + "usb": { + "vid": "0xD812", + "pid": "0x0015", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "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.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":2.25}, + {"x":6.25, "y":4}, + {"x":7.25, "y":4}, + {"x":8.25, "y":4, "w":2.75}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/nightly_boards/conde60/keymaps/default/keymap.c b/keyboards/nightly_boards/conde60/keymaps/default/keymap.c new file mode 100644 index 0000000000..fd3e6882ab --- /dev/null +++ b/keyboards/nightly_boards/conde60/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#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_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, KC_ENT, + KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [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 + ), + + [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 + ), + + +}; \ No newline at end of file diff --git a/keyboards/nightly_boards/conde60/keymaps/via/keymap.c b/keyboards/nightly_boards/conde60/keymaps/via/keymap.c new file mode 100644 index 0000000000..fd3e6882ab --- /dev/null +++ b/keyboards/nightly_boards/conde60/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#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_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, KC_ENT, + KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [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 + ), + + [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 + ), + + +}; \ No newline at end of file diff --git a/keyboards/nightly_boards/conde60/keymaps/via/rules.mk b/keyboards/nightly_boards/conde60/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/nightly_boards/conde60/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/nightly_boards/conde60/readme.md b/keyboards/nightly_boards/conde60/readme.md new file mode 100644 index 0000000000..5a260efc0b --- /dev/null +++ b/keyboards/nightly_boards/conde60/readme.md @@ -0,0 +1,20 @@ +# DeskDaily Conde60 + +![Conde60](https://i.imgur.com/5L7Cw44.png) + +A single layout 60% pcb with a Tsangan bottom row and split spacabars + +* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily) +* Hardware Supported: Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make nightly_boards/conde60:default + +Flashing example for this keyboard: + + make nightly_boards/conde60:default:flash + +You can enter bootloader mode by pressing the physical reset button at the back of the pcb or by holding the escape key while plugging the usb cable. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/nightly_boards/conde60/rules.mk b/keyboards/nightly_boards/conde60/rules.mk new file mode 100644 index 0000000000..806f708f99 --- /dev/null +++ b/keyboards/nightly_boards/conde60/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +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 # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/nightly_boards/n2/config.h b/keyboards/nightly_boards/n2/config.h index e19b26e76b..ed9b8d8031 100644 --- a/keyboards/nightly_boards/n2/config.h +++ b/keyboards/nightly_boards/n2/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0717 -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Neil Brian Ramirez -#define PRODUCT [n]2 - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 2 diff --git a/keyboards/nightly_boards/n2/info.json b/keyboards/nightly_boards/n2/info.json index 5786436478..e5cd739223 100644 --- a/keyboards/nightly_boards/n2/info.json +++ b/keyboards/nightly_boards/n2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "[n]2", + "manufacturer": "Neil Brian Ramirez", "url": "", "maintainer": "Neil Brian Ramirez", + "usb": { + "vid": "0x0717", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":0, "y":1}] diff --git a/keyboards/nightly_boards/n40_o/config.h b/keyboards/nightly_boards/n40_o/config.h index a5257cc494..4e812463b2 100644 --- a/keyboards/nightly_boards/n40_o/config.h +++ b/keyboards/nightly_boards/n40_o/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD812 -#define PRODUCT_ID 0x0009 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Neil Brian Ramirez -#define PRODUCT [n]40-o - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/nightly_boards/n40_o/info.json b/keyboards/nightly_boards/n40_o/info.json index 6fb2a1dfa6..6f1748a7ab 100644 --- a/keyboards/nightly_boards/n40_o/info.json +++ b/keyboards/nightly_boards/n40_o/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "[n]40-o", + "manufacturer": "Neil Brian Ramirez", "url": "", "maintainer": "Neil Brian Ramirez", + "usb": { + "vid": "0xD812", + "pid": "0x0009", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x13_encoders": { "layout": [ diff --git a/keyboards/nightly_boards/n60_s/config.h b/keyboards/nightly_boards/n60_s/config.h index 2f50f49273..af26187605 100644 --- a/keyboards/nightly_boards/n60_s/config.h +++ b/keyboards/nightly_boards/n60_s/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD812 -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Neil Brian Ramirez -#define PRODUCT [n]60-S - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/nightly_boards/n60_s/info.json b/keyboards/nightly_boards/n60_s/info.json index 2551321544..473dd14122 100644 --- a/keyboards/nightly_boards/n60_s/info.json +++ b/keyboards/nightly_boards/n60_s/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "[n]60-s", + "keyboard_name": "[n]60-S", + "manufacturer": "Neil Brian Ramirez", "url": "", "maintainer": "Neil Brian Ramirez", + "usb": { + "vid": "0xD812", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ diff --git a/keyboards/nightly_boards/n87/config.h b/keyboards/nightly_boards/n87/config.h index 0bb8e62046..7281a3c330 100644 --- a/keyboards/nightly_boards/n87/config.h +++ b/keyboards/nightly_boards/n87/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0717 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Neil Brian Ramirez -#define PRODUCT [n]87 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/nightly_boards/n87/info.json b/keyboards/nightly_boards/n87/info.json index 7469ba8644..8eb020d29c 100644 --- a/keyboards/nightly_boards/n87/info.json +++ b/keyboards/nightly_boards/n87/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "[n]87", + "manufacturer": "Neil Brian Ramirez", "url": "", "maintainer": "Neil Brian Ramirez", + "usb": { + "vid": "0x0717", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi_split_bs_rshift": { "layout": [ diff --git a/keyboards/nightly_boards/n9/config.h b/keyboards/nightly_boards/n9/config.h index 153d02c245..b2b87fad44 100644 --- a/keyboards/nightly_boards/n9/config.h +++ b/keyboards/nightly_boards/n9/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD812 -#define PRODUCT_ID 0x0012 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Neil Brian Ramirez -#define PRODUCT [n]9 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 3 diff --git a/keyboards/nightly_boards/n9/info.json b/keyboards/nightly_boards/n9/info.json index 3cc73b4829..afaee7244c 100644 --- a/keyboards/nightly_boards/n9/info.json +++ b/keyboards/nightly_boards/n9/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "[n]9", + "manufacturer": "Neil Brian Ramirez", "url": "", "maintainer": "Neil Brian Ramirez", + "usb": { + "vid": "0xD812", + "pid": "0x0012", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nightly_boards/octopad/config.h b/keyboards/nightly_boards/octopad/config.h index ee417644d7..11c553a070 100644 --- a/keyboards/nightly_boards/octopad/config.h +++ b/keyboards/nightly_boards/octopad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD812 -#define PRODUCT_ID 0x0004 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Neil Brian Ramirez -#define PRODUCT Octopad - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 5 diff --git a/keyboards/nightly_boards/octopad/info.json b/keyboards/nightly_boards/octopad/info.json index 0bc2cea2e6..c4668da903 100644 --- a/keyboards/nightly_boards/octopad/info.json +++ b/keyboards/nightly_boards/octopad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Octopad", + "manufacturer": "Neil Brian Ramirez", "url": "", "maintainer": "Neil Brian Ramirez", + "usb": { + "vid": "0xD812", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nightly_boards/paraluman/config.h b/keyboards/nightly_boards/paraluman/config.h new file mode 100644 index 0000000000..20eacfde3e --- /dev/null +++ b/keyboards/nightly_boards/paraluman/config.h @@ -0,0 +1,53 @@ +/* +Copyright 2020 DeskDaily + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D0, F7, B1, B0, E6 } +#define MATRIX_COL_PINS { B2, F6, F5, F4, F1, F0, D4, D6, D7, B4, B5, B6, C6, C7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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/nightly_boards/paraluman/info.json b/keyboards/nightly_boards/paraluman/info.json new file mode 100644 index 0000000000..a71adb315f --- /dev/null +++ b/keyboards/nightly_boards/paraluman/info.json @@ -0,0 +1,154 @@ +{ + "keyboard_name": "Paraluman", + "manufacturer": "DeskDaily", + "url": "", + "maintainer": "DeskDaily", + "usb": { + "vid": "0xD812", + "pid": "0x0012", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_60_ansi_split_bs_rshift": { + "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.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift_tsangan": { + "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.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4}, + {"x":13.5, "y":4, "w":1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/nightly_boards/paraluman/keymaps/default/keymap.c b/keyboards/nightly_boards/paraluman/keymaps/default/keymap.c new file mode 100644 index 0000000000..673ebe86c9 --- /dev/null +++ b/keyboards/nightly_boards/paraluman/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [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_RSFT, KC_RSFT, + KC_LCTL, MO(1), KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + RESET, KC_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 + ) +}; diff --git a/keyboards/nightly_boards/paraluman/keymaps/tsangan/keymap.c b/keyboards/nightly_boards/paraluman/keymaps/tsangan/keymap.c new file mode 100644 index 0000000000..c9aa2daa77 --- /dev/null +++ b/keyboards/nightly_boards/paraluman/keymaps/tsangan/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_60_ansi_split_bs_rshift_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_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_LCTL, MO(1), KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift_tsangan( + RESET, KC_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 + ) +}; diff --git a/keyboards/nightly_boards/paraluman/keymaps/via/keymap.c b/keyboards/nightly_boards/paraluman/keymaps/via/keymap.c new file mode 100644 index 0000000000..deb5012033 --- /dev/null +++ b/keyboards/nightly_boards/paraluman/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [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_LCTL, MO(1), KC_LALT, KC_SPC, KC_LALT, KC_APP, KC_RGUI, KC_LCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + RESET, 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 + ), + [2] = LAYOUT_60_ansi_split_bs_rshift( + RESET, 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 + ), + [3] = LAYOUT_60_ansi_split_bs_rshift( + RESET, 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 + ) +}; diff --git a/keyboards/nightly_boards/paraluman/keymaps/via/rules.mk b/keyboards/nightly_boards/paraluman/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/nightly_boards/paraluman/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/nightly_boards/paraluman/paraluman.c b/keyboards/nightly_boards/paraluman/paraluman.c new file mode 100644 index 0000000000..00769d9380 --- /dev/null +++ b/keyboards/nightly_boards/paraluman/paraluman.c @@ -0,0 +1,17 @@ +/* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "paraluman.h" diff --git a/keyboards/nightly_boards/paraluman/paraluman.h b/keyboards/nightly_boards/paraluman/paraluman.h new file mode 100644 index 0000000000..2f6a40fb83 --- /dev/null +++ b/keyboards/nightly_boards/paraluman/paraluman.h @@ -0,0 +1,55 @@ +/* Copyright 2020 DeskDaily + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_60_ansi_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K42, K43, K47, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, KC_NO, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \ +} + +#define LAYOUT_60_ansi_split_bs_rshift_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K42, K43, K47, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, KC_NO, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D } \ +} diff --git a/keyboards/nightly_boards/paraluman/readme.md b/keyboards/nightly_boards/paraluman/readme.md new file mode 100644 index 0000000000..571c77b1cb --- /dev/null +++ b/keyboards/nightly_boards/paraluman/readme.md @@ -0,0 +1,20 @@ +# DeskDaily Paraluman + +![Paraluman](https://i.imgur.com/iBYnjLD.jpg) + +A 60% pcb for the Paraluman keyboard case + +* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily) +* Hardware Supported: Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make nightly_boards/paraluman:default + +Flashing example for this keyboard: + + make nightly_boards/paraluman:default:flash + +You can enter bootloader mode by pressing the physical reset button at the back of the pcb or by holding the escape key while plugging the usb cable. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/nightly_boards/paraluman/rules.mk b/keyboards/nightly_boards/paraluman/rules.mk new file mode 100644 index 0000000000..3e6c2b2ea3 --- /dev/null +++ b/keyboards/nightly_boards/paraluman/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +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 # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/nightly_boards/ph_arisu/config.h b/keyboards/nightly_boards/ph_arisu/config.h index 57df486e72..6cb0887cf8 100644 --- a/keyboards/nightly_boards/ph_arisu/config.h +++ b/keyboards/nightly_boards/ph_arisu/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6172 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PH -#define PRODUCT Arisu - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/nightly_boards/ph_arisu/info.json b/keyboards/nightly_boards/ph_arisu/info.json index fc2f8e9269..ba1e981144 100644 --- a/keyboards/nightly_boards/ph_arisu/info.json +++ b/keyboards/nightly_boards/ph_arisu/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "PH Arisu", + "keyboard_name": "Arisu", + "manufacturer": "PH", "url": "https://github.com/FateNozomi/arisu-pcb", "maintainer": "qmk", + "usb": { + "vid": "0x6172", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"1,0", "x":1, "y":0}, {"label":"0,1", "x":2, "y":0}, {"label":"1,1", "x":3, "y":0}, {"label":"0,2", "x":4, "y":0}, {"label":"1,2", "x":5, "y":0}, {"label":"0,3", "x":6, "y":0}, {"label":"1,3", "x":8.5, "y":0}, {"label":"0,4", "x":9.5, "y":0}, {"label":"1,4", "x":10.5, "y":0}, {"label":"0,5", "x":11.5, "y":0}, {"label":"1,5", "x":12.5, "y":0}, {"label":"0,6", "x":13.5, "y":0}, {"label":"1,6", "x":14.5, "y":0}, {"label":"0,7", "x":15.5, "y":0}, {"label":"2,7", "x":16.8, "y":0}, {"label":"2,0", "x":0, "y":1, "w":1.5}, {"label":"3,0", "x":1.5, "y":1}, {"label":"2,1", "x":2.5, "y":1}, {"label":"3,1", "x":3.5, "y":1}, {"label":"2,2", "x":4.5, "y":1}, {"label":"3,2", "x":5.5, "y":1}, {"label":"2,3", "x":8, "y":1}, {"label":"3,3", "x":9, "y":1}, {"label":"2,4", "x":10, "y":1}, {"label":"3,4", "x":11, "y":1}, {"label":"2,5", "x":12, "y":1}, {"label":"3,5", "x":13, "y":1}, {"label":"2,6", "x":14, "y":1}, {"label":"3,6", "x":15, "y":1, "w":1.5}, {"label":"4,7", "x":16.8, "y":1}, {"label":"4,0", "x":0, "y":2, "w":1.75}, {"label":"5,0", "x":1.75, "y":2}, {"label":"4,1", "x":2.75, "y":2}, {"label":"5,1", "x":3.75, "y":2}, {"label":"4,2", "x":4.75, "y":2}, {"label":"5,2", "x":5.75, "y":2}, {"label":"4,3", "x":8.25, "y":2}, {"label":"5,3", "x":9.25, "y":2}, {"label":"4,4", "x":10.25, "y":2}, {"label":"5,4", "x":11.25, "y":2}, {"label":"4,5", "x":12.25, "y":2}, {"label":"5,5", "x":13.25, "y":2}, {"label":"4,6", "x":14.25, "y":2, "w":2.25}, {"label":"6,7", "x":16.8, "y":2}, {"label":"6,0", "x":0, "y":3, "w":2.25}, {"label":"7,0", "x":2.25, "y":3}, {"label":"6,1", "x":3.25, "y":3}, {"label":"7,1", "x":4.25, "y":3}, {"label":"6,2", "x":5.25, "y":3}, {"label":"7,2", "x":6.25, "y":3}, {"label":"6,3", "x":8.75, "y":3}, {"label":"7,3", "x":9.75, "y":3}, {"label":"6,4", "x":10.75, "y":3}, {"label":"7,4", "x":11.75, "y":3}, {"label":"6,5", "x":12.75, "y":3}, {"label":"7,5", "x":13.75, "y":3, "w":1.75}, {"label":"7,6", "x":15.75, "y":3.25}, {"label":"8,0", "x":0, "y":4, "w":1.5}, {"label":"8,1", "x":2.75, "y":4, "w":1.5}, {"label":"8,2", "x":4.25, "y":4, "w":2}, {"label":"9,2", "x":6.25, "y":4, "w":1.25}, {"label":"9,3", "x":8.25, "y":4, "w":2.75}, {"label":"9,4", "x":11, "y":4, "w":1.5}, {"label":"8,6", "x":14.75, "y":4.25}, {"label":"9,6", "x":15.75, "y":4.25}, {"label":"8,7", "x":16.75, "y":4.25}] diff --git a/keyboards/nightmare/config.h b/keyboards/nightmare/config.h index ac4fe163e6..921d7f70de 100644 --- a/keyboards/nightmare/config.h +++ b/keyboards/nightmare/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x434B // "CK" -#define PRODUCT_ID 0x4E49 // "NI" -#define DEVICE_VER 0x0001 -#define MANUFACTURER cfbender -#define PRODUCT nightmare - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 14 diff --git a/keyboards/nightmare/info.json b/keyboards/nightmare/info.json index 8e79676cdb..858bb5d8ab 100644 --- a/keyboards/nightmare/info.json +++ b/keyboards/nightmare/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Nightmare", + "manufacturer": "cfbender", "url": "https://keyhive.xyz/shop/nightmare-pcb-and-case", "maintainer": "cfbender", + "usb": { + "vid": "0x434B", + "pid": "0x4E49", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/nimrod/config.h b/keyboards/nimrod/config.h index 4faa3f4e28..1c3385a215 100644 --- a/keyboards/nimrod/config.h +++ b/keyboards/nimrod/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6274 -#define PRODUCT_ID 0x720D -#define DEVICE_VER 0x0001 -#define MANUFACTURER breadtamer -#define PRODUCT nimrod - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/nimrod/info.json b/keyboards/nimrod/info.json index 340e65ff3c..df08391b66 100644 --- a/keyboards/nimrod/info.json +++ b/keyboards/nimrod/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Nimrod", + "manufacturer": "Breadtamer", "url": "http://www.keyboard-layout-editor.com/#/gists/5a6b4ee1ca9738c4ed90fe95ef35fdf6", "maintainer": "Breadtamer", + "usb": { + "vid": "0x6274", + "pid": "0x720D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x10": { "layout": [ diff --git a/keyboards/nix_studio/n60_a/config.h b/keyboards/nix_studio/n60_a/config.h index dea1c3587d..12d8d6b5ee 100644 --- a/keyboards/nix_studio/n60_a/config.h +++ b/keyboards/nix_studio/n60_a/config.h @@ -17,14 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6E78 -#define PRODUCT_ID 0x3630 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nix Studio -#define PRODUCT N60A - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/nix_studio/n60_a/info.json b/keyboards/nix_studio/n60_a/info.json index 5e26857ebe..8d83b42065 100644 --- a/keyboards/nix_studio/n60_a/info.json +++ b/keyboards/nix_studio/n60_a/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Nix_N60A", + "keyboard_name": "N60A", + "manufacturer": "Nix Studio", "url": "", "maintainer": "Nix Studio", + "usb": { + "vid": "0x6E78", + "pid": "0x3630", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nix_studio/oxalys80/config.h b/keyboards/nix_studio/oxalys80/config.h index acd39ad528..fa45d976fd 100644 --- a/keyboards/nix_studio/oxalys80/config.h +++ b/keyboards/nix_studio/oxalys80/config.h @@ -18,14 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6E78 -#define PRODUCT_ID 0x3830 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nix Studio -#define PRODUCT OXALYS80 - - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/nix_studio/oxalys80/info.json b/keyboards/nix_studio/oxalys80/info.json index d2fd765970..3b8fff7721 100644 --- a/keyboards/nix_studio/oxalys80/info.json +++ b/keyboards/nix_studio/oxalys80/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "oxalys80", + "keyboard_name": "OXALYS80", + "manufacturer": "Nix Studio", "url": "", "maintainer": "Nix Studio", + "usb": { + "vid": "0x6E78", + "pid": "0x3830", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/nopunin10did/jabberwocky/config.h b/keyboards/nopunin10did/jabberwocky/config.h index 84c3cec451..f90795bc51 100644 --- a/keyboards/nopunin10did/jabberwocky/config.h +++ b/keyboards/nopunin10did/jabberwocky/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E50 // "NP" -#define PRODUCT_ID 0x4A57 // "JW" -#define DEVICE_VER 0x0001 -#define PRODUCT Jabberwocky - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 10 diff --git a/keyboards/nopunin10did/jabberwocky/info.json b/keyboards/nopunin10did/jabberwocky/info.json index ad00dd4524..7744716a13 100644 --- a/keyboards/nopunin10did/jabberwocky/info.json +++ b/keyboards/nopunin10did/jabberwocky/info.json @@ -1,8 +1,13 @@ { "keyboard_name": "Jabberwocky", + "manufacturer": "NoPunIn10Did", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/railroad", "maintainer": "NoPunIn10Did", - "manufacturer": "NoPunIn10Did", + "usb": { + "vid": "0x4E50", + "pid": "0x4A57", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_rh_any": { "layout": [ diff --git a/keyboards/nopunin10did/kastenwagen1840/config.h b/keyboards/nopunin10did/kastenwagen1840/config.h index a9926aded4..7ec0a78ebf 100644 --- a/keyboards/nopunin10did/kastenwagen1840/config.h +++ b/keyboards/nopunin10did/kastenwagen1840/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E50 // "NP" -#define PRODUCT_ID 0x4B57 // "KW" -#define DEVICE_VER 0x0001 -#define MANUFACTURER NoPunIn10Did -#define PRODUCT Kastenwagen 1840 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 9 diff --git a/keyboards/nopunin10did/kastenwagen1840/info.json b/keyboards/nopunin10did/kastenwagen1840/info.json index fabfd31aea..1ca9e7a5a5 100644 --- a/keyboards/nopunin10did/kastenwagen1840/info.json +++ b/keyboards/nopunin10did/kastenwagen1840/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kastenwagen 1840", + "manufacturer": "NoPunIn10Did", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/kastenwagen1840", "maintainer": "NoPunIn10Did", + "usb": { + "vid": "0x4E50", + "pid": "0x4B57", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/nopunin10did/kastenwagen48/config.h b/keyboards/nopunin10did/kastenwagen48/config.h index f88a630cfd..aea908d24a 100644 --- a/keyboards/nopunin10did/kastenwagen48/config.h +++ b/keyboards/nopunin10did/kastenwagen48/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E50 // "NP" -#define PRODUCT_ID 0x4B30 // Hex for "K" and 48 -#define DEVICE_VER 0x0001 -#define MANUFACTURER NoPunIn10Did -#define PRODUCT Kastenwagen 48 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/nopunin10did/kastenwagen48/info.json b/keyboards/nopunin10did/kastenwagen48/info.json index 12d375863b..d2acb89eff 100644 --- a/keyboards/nopunin10did/kastenwagen48/info.json +++ b/keyboards/nopunin10did/kastenwagen48/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kastenwagen 48", + "manufacturer": "NoPunIn10Did", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/kastenwagen48", "maintainer": "NoPunIn10Did", + "usb": { + "vid": "0x4E50", + "pid": "0x4B30", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/nopunin10did/railroad/rev0/config.h b/keyboards/nopunin10did/railroad/rev0/config.h index 8c6b075bf9..19aa2ec8fb 100644 --- a/keyboards/nopunin10did/railroad/rev0/config.h +++ b/keyboards/nopunin10did/railroad/rev0/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E50 // "NP" -#define PRODUCT_ID 0x9111 -#define DEVICE_VER 0x0001 -#define MANUFACTURER NoPunIn10Did -#define PRODUCT The Railroad - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 11 diff --git a/keyboards/nopunin10did/railroad/rev0/info.json b/keyboards/nopunin10did/railroad/rev0/info.json index 3339b3f321..ef82004a79 100644 --- a/keyboards/nopunin10did/railroad/rev0/info.json +++ b/keyboards/nopunin10did/railroad/rev0/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "The Railroad", + "manufacturer": "NoPunIn10Did", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/railroad", "maintainer": "NoPunIn10Did", + "usb": { + "vid": "0x4E50", + "pid": "0x9111", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/novelkeys/nk1/config.h b/keyboards/novelkeys/nk1/config.h index 122df2e6da..1e86e1ec91 100644 --- a/keyboards/novelkeys/nk1/config.h +++ b/keyboards/novelkeys/nk1/config.h @@ -19,13 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4E4D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT NK1 - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 @@ -85,8 +78,18 @@ #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - #define RGBLIGHT_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 #endif /* There is only 1 Button so limiting VIA to 1 layer */ diff --git a/keyboards/novelkeys/nk1/info.json b/keyboards/novelkeys/nk1/info.json index 43b1719e94..79be14a48e 100755 --- a/keyboards/novelkeys/nk1/info.json +++ b/keyboards/novelkeys/nk1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "NK1", + "manufacturer": "Yiancar-Designs", "url": "www.yiancar-designs.com", "maintainer": "yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x4E4D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_1x1": { "layout": [{"x": 0, "y": 0}] diff --git a/keyboards/novelkeys/nk65/config.h b/keyboards/novelkeys/nk65/config.h index 3268e8ebf4..df64bbe83e 100755 --- a/keyboards/novelkeys/nk65/config.h +++ b/keyboards/novelkeys/nk65/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4E4B -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT NK65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/novelkeys/nk65/info.json b/keyboards/novelkeys/nk65/info.json index 3c2b438c2b..77adcdbc5d 100755 --- a/keyboards/novelkeys/nk65/info.json +++ b/keyboards/novelkeys/nk65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "NK65", + "manufacturer": "Yiancar-Designs", "url": "", "maintainer": "yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x4E4B", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Home", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Page Up", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Page Down", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"End", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] diff --git a/keyboards/novelkeys/nk87/config.h b/keyboards/novelkeys/nk87/config.h index 091d80efb8..e5b955c3f8 100755 --- a/keyboards/novelkeys/nk87/config.h +++ b/keyboards/novelkeys/nk87/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4E4C -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT NK87 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/novelkeys/nk87/info.json b/keyboards/novelkeys/nk87/info.json index 5603ffd52b..e871dfb3eb 100755 --- a/keyboards/novelkeys/nk87/info.json +++ b/keyboards/novelkeys/nk87/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "NK87", + "manufacturer": "Yiancar-Designs", "url": "www.yiancar-designs.com", "maintainer": "Yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x4E4C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.25, "y":0}, {"label":"0,2", "x":2.25, "y":0}, {"label":"0,3", "x":3.25, "y":0}, {"label":"0,4", "x":4.25, "y":0}, {"label":"0,5", "x":5.5, "y":0}, {"label":"0,6", "x":6.5, "y":0}, {"label":"0,7", "x":7.5, "y":0}, {"label":"0,8", "x":8.5, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,10", "x":10.75, "y":0}, {"label":"0,12", "x":11.75, "y":0}, {"label":"0,12", "x":12.75, "y":0}, {"label":"0,13", "x":14, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"0,15", "x":16.25, "y":0}, {"label":"0,16", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x":10, "y":1.25}, {"label":"1,11", "x":11, "y":1.25}, {"label":"1,12", "x":12, "y":1.25}, {"label":"1,13", "x":13, "y":1.25, "w":2}, {"label":"1,14", "x":15.25, "y":1.25}, {"label":"1,15", "x":16.25, "y":1.25}, {"label":"1,16", "x":17.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,10", "x":10.5, "y":2.25}, {"label":"2,11", "x":11.5, "y":2.25}, {"label":"2,12", "x":12.5, "y":2.25}, {"label":"3,12", "x":13.5, "y":2.25, "w":1.5}, {"label":"2,14", "x":15.25, "y":2.25}, {"label":"2,15", "x":16.25, "y":2.25}, {"label":"2,16", "x":17.25, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,10", "x":10.75, "y":3.25}, {"label":"3,11", "x":11.75, "y":3.25}, {"label":"3,13", "x":12.75, "y":3.25, "w":2.25}, {"label":"4,0", "x":0, "y":4.25, "w":2.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"4,7", "x":7.25, "y":4.25}, {"label":"4,8", "x":8.25, "y":4.25}, {"label":"4,9", "x":9.25, "y":4.25}, {"label":"4,10", "x":10.25, "y":4.25}, {"label":"4,11", "x":11.25, "y":4.25}, {"label":"4,12", "x":12.25, "y":4.25, "w":2.75}, {"label":"4,15", "x":16.25, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.5}, {"label":"5,1", "x":1.5, "y":5.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.5}, {"label":"5,6", "x":4, "y":5.25, "w":7}, {"label":"5,11", "x":11, "y":5.25, "w":1.5}, {"label":"5,12", "x":12.5, "y":5.25}, {"label":"5,13", "x":13.5, "y":5.25, "w":1.5}, {"label":"5,14", "x":15.25, "y":5.25}, {"label":"5,15", "x":16.25, "y":5.25}, {"label":"5,16", "x":17.25, "y":5.25}] diff --git a/keyboards/novelkeys/novelpad/config.h b/keyboards/novelkeys/novelpad/config.h index 2b96638966..2798738fd3 100755 --- a/keyboards/novelkeys/novelpad/config.h +++ b/keyboards/novelkeys/novelpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6070 -#define DEVICE_VER 0x0001 -#define MANUFACTURER NovelKeys.xyz -#define PRODUCT Novelpad - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/novelkeys/novelpad/info.json b/keyboards/novelkeys/novelpad/info.json index ed4a31236d..7e27f074b3 100644 --- a/keyboards/novelkeys/novelpad/info.json +++ b/keyboards/novelkeys/novelpad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "NovelPad", + "manufacturer": "NovelKeys.xyz", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6070", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x4": { "layout": [ diff --git a/keyboards/noxary/220/config.h b/keyboards/noxary/220/config.h index 05fe1be559..ebaf8c776e 100644 --- a/keyboards/noxary/220/config.h +++ b/keyboards/noxary/220/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 //"NX" -#define PRODUCT_ID 0x0899 //2201 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Noxary -#define PRODUCT 220 - - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/noxary/220/info.json b/keyboards/noxary/220/info.json index 6528c160c2..7eebbba900 100644 --- a/keyboards/noxary/220/info.json +++ b/keyboards/noxary/220/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Noxary 220", + "keyboard_name": "220", + "manufacturer": "Noxary", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E58", + "pid": "0x0899", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_6x4": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":0, "y":2.5}, {"x":1, "y":2.5}, {"x":2, "y":2.5}, {"x":3, "y":2.5}, {"x":0, "y":3.5}, {"x":1, "y":3.5}, {"x":2, "y":3.5}, {"x":3, "y":3.5}, {"x":0, "y":4.5}, {"x":1, "y":4.5}, {"x":2, "y":4.5}, {"x":3, "y":4.5}, {"x":0, "y":5.5}, {"x":1, "y":5.5}, {"x":2, "y":5.5}, {"x":3, "y":5.5}] diff --git a/keyboards/noxary/260/config.h b/keyboards/noxary/260/config.h index 29818862da..a4e1c63e9d 100644 --- a/keyboards/noxary/260/config.h +++ b/keyboards/noxary/260/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 //"NX" -#define PRODUCT_ID 0x0A29 //2601 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Noxary -#define PRODUCT 260 - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/noxary/260/info.json b/keyboards/noxary/260/info.json index c744bc3ec9..997d2f7cf2 100644 --- a/keyboards/noxary/260/info.json +++ b/keyboards/noxary/260/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Noxary 260", + "keyboard_name": "260", + "manufacturer": "Noxary", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E58", + "pid": "0x0A29", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":2, "w":1.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/noxary/268/config.h b/keyboards/noxary/268/config.h index bd72bdba74..6f52937cf7 100644 --- a/keyboards/noxary/268/config.h +++ b/keyboards/noxary/268/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 //"NX" -#define PRODUCT_ID 0x0A79 //2681 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Noxary -#define PRODUCT 268 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/noxary/268/info.json b/keyboards/noxary/268/info.json index 5e57545349..f32ea9887c 100644 --- a/keyboards/noxary/268/info.json +++ b/keyboards/noxary/268/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Noxary 268", + "keyboard_name": "268", + "manufacturer": "Noxary", "url": "https://www.instagram.com/noxaryco/", "maintainer": "QMK Community", + "usb": { + "vid": "0x4E58", + "pid": "0x0A79", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"- _", "x":11, "y":0}, {"label":"= +", "x":12, "y":0}, {"label":"Back Space", "x":13, "y":0}, {"label":"Back Space", "x":14, "y":0}, {"label":"` ~", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"[ {", "x":11.5, "y":1}, {"label":"] }", "x":12.5, "y":1}, {"label":"\\ |", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":"; :", "x":10.75, "y":2}, {"label":"' \"", "x":11.75, "y":2}, {"label":"# ~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Page Up", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"\\ |", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":", <", "x":9.25, "y":3}, {"label":". >", "x":10.25, "y":3}, {"label":"/ ?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3}, {"label":"Shift", "x":13.25, "y":3, "w":0.75}, {"label":"Up", "x":14, "y":3}, {"label":"Page Down", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"Left", "x":13, "y":4}, {"label":"Down", "x":14, "y":4}, {"label":"Right", "x":15, "y":4}] diff --git a/keyboards/noxary/268_2/config.h b/keyboards/noxary/268_2/config.h index b447a37f57..6e3e5be283 100644 --- a/keyboards/noxary/268_2/config.h +++ b/keyboards/noxary/268_2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 //"NX" -#define PRODUCT_ID 0x0A7A //2682 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Noxary -#define PRODUCT 268.2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/noxary/268_2/info.json b/keyboards/noxary/268_2/info.json index a84442dbc1..18a7dfe774 100644 --- a/keyboards/noxary/268_2/info.json +++ b/keyboards/noxary/268_2/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Noxary 268.2", + "keyboard_name": "268.2", + "manufacturer": "Noxary", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E58", + "pid": "0x0A7A", + "device_version": "0.0.2" + }, "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 eafbbd4092..b7164743b9 100644 --- a/keyboards/noxary/268_2_rgb/config.h +++ b/keyboards/noxary/268_2_rgb/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 //"NX" -#define PRODUCT_ID 0x0A7C //2684 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Noxary -#define PRODUCT 268.2_RGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/noxary/268_2_rgb/info.json b/keyboards/noxary/268_2_rgb/info.json index a73302528f..9cf57e646f 100644 --- a/keyboards/noxary/268_2_rgb/info.json +++ b/keyboards/noxary/268_2_rgb/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Noxary 268.2 RGB", + "keyboard_name": "268.2 RGB", + "manufacturer": "Noxary", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E58", + "pid": "0x0A7C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/noxary/280/config.h b/keyboards/noxary/280/config.h index 3147d12528..17d06155ce 100644 --- a/keyboards/noxary/280/config.h +++ b/keyboards/noxary/280/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 //"NX" -#define PRODUCT_ID 0x0AF1 //2801 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Noxary -#define PRODUCT 280 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/noxary/280/info.json b/keyboards/noxary/280/info.json index e1c87b6545..e3eeabc84f 100644 --- a/keyboards/noxary/280/info.json +++ b/keyboards/noxary/280/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Noxary 280", + "keyboard_name": "280", + "manufacturer": "Noxary", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E58", + "pid": "0x0AF1", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "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.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"x":13.75, "y":3.5, "w":1.25}, {"x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5, "w":1.25}, {"x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"x":10, "y":5.5, "w":1.25}, {"x":11.25, "y":5.5, "w":1.25}, {"x":12.5, "y":5.5, "w":1.25}, {"x":13.75, "y":5.5, "w":1.25}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}] diff --git a/keyboards/noxary/378/config.h b/keyboards/noxary/378/config.h index fa08601875..3b8af6d168 100644 --- a/keyboards/noxary/378/config.h +++ b/keyboards/noxary/378/config.h @@ -17,14 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 //"NX" -#define PRODUCT_ID 0x017A // 378 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Noxary -#define PRODUCT Noxary 378 - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 17 diff --git a/keyboards/noxary/378/info.json b/keyboards/noxary/378/info.json index ef165262a5..24ef51cbe8 100644 --- a/keyboards/noxary/378/info.json +++ b/keyboards/noxary/378/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Noxary 378", + "keyboard_name": "378", + "manufacturer": "Noxary", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x4E58", + "pid": "0x017A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/noxary/valhalla/config.h b/keyboards/noxary/valhalla/config.h index abce175dce..7620639ec4 100644 --- a/keyboards/noxary/valhalla/config.h +++ b/keyboards/noxary/valhalla/config.h @@ -17,14 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 //"NX" -#define PRODUCT_ID 0x5648 // "VH" for Valhalla -#define DEVICE_VER 0x0001 -#define MANUFACTURER Noxary -#define PRODUCT Valhalla - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/noxary/valhalla/info.json b/keyboards/noxary/valhalla/info.json index 01d31bce6b..d5934b2e70 100644 --- a/keyboards/noxary/valhalla/info.json +++ b/keyboards/noxary/valhalla/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Valhalla", + "manufacturer": "Noxary", "url": "", "maintainer": "Gondolindrim", + "usb": { + "vid": "0x4E58", + "pid": "0x5648", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/noxary/vulcan/config.h b/keyboards/noxary/vulcan/config.h index e478071110..84c4bec622 100644 --- a/keyboards/noxary/vulcan/config.h +++ b/keyboards/noxary/vulcan/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0011 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Noxary -#define PRODUCT Vulcan - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/noxary/vulcan/info.json b/keyboards/noxary/vulcan/info.json index f3b5761095..7956a21deb 100644 --- a/keyboards/noxary/vulcan/info.json +++ b/keyboards/noxary/vulcan/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "vulcan", + "keyboard_name": "Vulcan", + "manufacturer": "Noxary", "url": "https://noxary.co/products/vulcan-pro-base", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0011", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/noxary/x268/config.h b/keyboards/noxary/x268/config.h index 3c4965a6cc..bf88418deb 100644 --- a/keyboards/noxary/x268/config.h +++ b/keyboards/noxary/x268/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4E58 //"NX" -#define PRODUCT_ID 0x0A7B //2683 -#define DEVICE_VER 0x0078 //"x" -#define MANUFACTURER Noxary -#define PRODUCT x268 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/noxary/x268/info.json b/keyboards/noxary/x268/info.json index 04cd126de3..bbad48252a 100644 --- a/keyboards/noxary/x268/info.json +++ b/keyboards/noxary/x268/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Noxary x268", + "keyboard_name": "x268", + "manufacturer": "Noxary", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4E58", + "pid": "0x0A7B", + "device_version": "0.7.8" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/np12/config.h b/keyboards/np12/config.h index b330c29feb..c769feff96 100644 --- a/keyboards/np12/config.h +++ b/keyboards/np12/config.h @@ -18,15 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA4A4 -#define PRODUCT_ID 0x4401 -#define DEVICE_VER 0x0001 -#define MANUFACTURER nut1414 -#define PRODUCT np12 - - - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 5 diff --git a/keyboards/np12/info.json b/keyboards/np12/info.json index 06e544244b..8b8d89cc4a 100644 --- a/keyboards/np12/info.json +++ b/keyboards/np12/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "np12", + "manufacturer": "nut1414", "url": "https://github.com/nut1414/np12", "maintainer": "nut1414", + "usb": { + "vid": "0xA4A4", + "pid": "0x4401", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nullbitsco/nibble/config.h b/keyboards/nullbitsco/nibble/config.h index b88d4bc360..c4461c5b20 100644 --- a/keyboards/nullbitsco/nibble/config.h +++ b/keyboards/nullbitsco/nibble/config.h @@ -24,14 +24,6 @@ // Workaround for freezing after MacOS sleep #define NO_USB_STARTUP_CHECK -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6E61 -#define PRODUCT_ID 0x6060 - -#define DEVICE_VER 0x0001 -#define MANUFACTURER nullbits -#define PRODUCT NIBBLE - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/nullbitsco/nibble/info.json b/keyboards/nullbitsco/nibble/info.json index 7a4ddca6bd..33ae369936 100644 --- a/keyboards/nullbitsco/nibble/info.json +++ b/keyboards/nullbitsco/nibble/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "NIBBLE 65%", + "keyboard_name": "NIBBLE", + "manufacturer": "nullbits", "url": "https://nullbits.co/nibble/", + "usb": { + "vid": "0x6E61", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/nullbitsco/scramble/config.h b/keyboards/nullbitsco/scramble/config.h index 811f28e6be..4333d94d37 100644 --- a/keyboards/nullbitsco/scramble/config.h +++ b/keyboards/nullbitsco/scramble/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6E61 -#define PRODUCT_ID 0x6062 - -#define DEVICE_VER 0x0001 -#define MANUFACTURER nullbits -#define PRODUCT SCRAMBLE - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 3 diff --git a/keyboards/nullbitsco/scramble/info.json b/keyboards/nullbitsco/scramble/info.json index 967c9fda64..cc5fd28d76 100644 --- a/keyboards/nullbitsco/scramble/info.json +++ b/keyboards/nullbitsco/scramble/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "SCRAMBLE switch tester", + "keyboard_name": "SCRAMBLE", + "manufacturer": "nullbits", "url": "https://nullbits.co/scramble", "maintainer": "jaygreco", + "usb": { + "vid": "0x6E61", + "pid": "0x6062", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/nullbitsco/tidbit/config.h b/keyboards/nullbitsco/tidbit/config.h index 103dabdb96..5986308f7b 100644 --- a/keyboards/nullbitsco/tidbit/config.h +++ b/keyboards/nullbitsco/tidbit/config.h @@ -23,13 +23,6 @@ // Workaround for freezing after MacOS sleep #define USB_SUSPEND_WAKEUP_DELAY 200 -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6E61 -#define PRODUCT_ID 0x6064 -#define DEVICE_VER 0x0001 -#define MANUFACTURER nullbits -#define PRODUCT TIDBIT - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 6 diff --git a/keyboards/nullbitsco/tidbit/info.json b/keyboards/nullbitsco/tidbit/info.json index 5d260cc453..7b9c4eb8ae 100644 --- a/keyboards/nullbitsco/tidbit/info.json +++ b/keyboards/nullbitsco/tidbit/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "TIDBIT 19", + "keyboard_name": "TIDBIT", + "manufacturer": "nullbits", "url": "https://nullbits.co/tidbit/", + "usb": { + "vid": "0x6E61", + "pid": "0x6064", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/numatreus/config.h b/keyboards/numatreus/config.h index b2c147fcc1..9f2daa585f 100644 --- a/keyboards/numatreus/config.h +++ b/keyboards/numatreus/config.h @@ -16,14 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ - -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xE80A -#define DEVICE_VER 0x0001 -#define MANUFACTURER yohewi -#define PRODUCT NumAtreus - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/numatreus/info.json b/keyboards/numatreus/info.json index 3006b87e47..17975f6d0e 100644 --- a/keyboards/numatreus/info.json +++ b/keyboards/numatreus/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "numatreus", + "keyboard_name": "NumAtreus", + "manufacturer": "yohewi", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0xE80A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0.6}, {"x":1, "y":0.35}, {"x":2, "y":0}, {"x":3, "y":0.35}, {"x":4, "y":0.7}, {"x":8, "y":0.7}, {"x":9, "y":0.35}, {"x":10, "y":0}, {"x":11, "y":0.35}, {"x":12, "y":0.6}, {"x":0, "y":1.6}, {"x":1, "y":1.35}, {"x":2, "y":1}, {"x":3, "y":1.35}, {"x":4, "y":1.7}, {"x":8, "y":1.7}, {"x":9, "y":1.35}, {"x":10, "y":1}, {"x":11, "y":1.35}, {"x":12, "y":1.6}, {"x":0, "y":2.6}, {"x":1, "y":2.35}, {"x":2, "y":2}, {"x":3, "y":2.35}, {"x":4, "y":2.7}, {"x":8, "y":2.7}, {"x":9, "y":2.35}, {"x":10, "y":2}, {"x":11, "y":2.35}, {"x":12, "y":2.6}, {"x":0, "y":3.6}, {"x":1, "y":3.35}, {"x":2, "y":3}, {"x":3, "y":3.35}, {"x":4, "y":3.7}, {"x":5, "y":2.95, "h":1.5}, {"x":7, "y":2.95, "h":1.5}, {"x":8, "y":3.7}, {"x":9, "y":3.35}, {"x":10, "y":3}, {"x":11, "y":3.35}, {"x":12, "y":3.6}] diff --git a/keyboards/obosob/arch_36/config.h b/keyboards/obosob/arch_36/config.h index be4a0a9830..6ec4b2a26c 100644 --- a/keyboards/obosob/arch_36/config.h +++ b/keyboards/obosob/arch_36/config.h @@ -18,14 +18,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x9CE3 -#define DEVICE_VER 0x0001 -#define MANUFACTURER obosob -#define PRODUCT Arch-36 - /* key matrix size */ /* Rows are doubled up */ #define MATRIX_ROWS 8 diff --git a/keyboards/obosob/arch_36/info.json b/keyboards/obosob/arch_36/info.json index 344674a426..c5d9077237 100644 --- a/keyboards/obosob/arch_36/info.json +++ b/keyboards/obosob/arch_36/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Arch-36", + "manufacturer": "obosob", "url": "", "maintainer": "obosob", + "usb": { + "vid": "0xFEED", + "pid": "0x9CE3", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_3": { "layout": [ diff --git a/keyboards/obosob/steal_this_keyboard/config.h b/keyboards/obosob/steal_this_keyboard/config.h index ea637d0c2f..d5f21482aa 100644 --- a/keyboards/obosob/steal_this_keyboard/config.h +++ b/keyboards/obosob/steal_this_keyboard/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC2AB -#define PRODUCT_ID 0x50AD -#define DEVICE_VER 0x0001 -#define MANUFACTURER Obosob -#define PRODUCT Steal This Keyboard! - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 5 diff --git a/keyboards/obosob/steal_this_keyboard/info.json b/keyboards/obosob/steal_this_keyboard/info.json index 7a4eabdb55..a20119208d 100644 --- a/keyboards/obosob/steal_this_keyboard/info.json +++ b/keyboards/obosob/steal_this_keyboard/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "steal this keyboard", + "keyboard_name": "Steal This Keyboard!", + "manufacturer": "Obosob", "url": "https://github.com/obosob/steal_this_keyboard", "maintainer": "@obosob", + "usb": { + "vid": "0xC2AB", + "pid": "0x50AD", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_2": { "layout": [ diff --git a/keyboards/ocean/addon/config.h b/keyboards/ocean/addon/config.h index 1b221b65bd..9380a36eb6 100644 --- a/keyboards/ocean/addon/config.h +++ b/keyboards/ocean/addon/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x9624 -#define PRODUCT_ID 0x0012 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ocean -#define PRODUCT AddOn - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 7 diff --git a/keyboards/ocean/addon/info.json b/keyboards/ocean/addon/info.json index 75e1eb2c48..05d41ab59a 100644 --- a/keyboards/ocean/addon/info.json +++ b/keyboards/ocean/addon/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "AddOn", + "manufacturer": "Ocean", "url": "tokopedia.com/kbdksp", "maintainer": "Ocean", + "usb": { + "vid": "0x9624", + "pid": "0x0012", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ocean/gin_v2/config.h b/keyboards/ocean/gin_v2/config.h index 2f70ad3f5e..e1d7b9a74d 100644 --- a/keyboards/ocean/gin_v2/config.h +++ b/keyboards/ocean/gin_v2/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x9624 -#define PRODUCT_ID 0x0005 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ocean -#define PRODUCT Gin V2 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/ocean/gin_v2/info.json b/keyboards/ocean/gin_v2/info.json index cd9d809419..d7493b39c3 100644 --- a/keyboards/ocean/gin_v2/info.json +++ b/keyboards/ocean/gin_v2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Gin V2", + "manufacturer": "Ocean", "url": "", "maintainer": "Ocean", + "usb": { + "vid": "0x9624", + "pid": "0x0005", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ocean/slamz/config.h b/keyboards/ocean/slamz/config.h index 5f27a3a6d0..aff184b243 100644 --- a/keyboards/ocean/slamz/config.h +++ b/keyboards/ocean/slamz/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x9624 -#define PRODUCT_ID 0x0011 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ocean -#define PRODUCT Slamz - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/ocean/slamz/info.json b/keyboards/ocean/slamz/info.json index 4d5fe17dc3..6534007c3b 100644 --- a/keyboards/ocean/slamz/info.json +++ b/keyboards/ocean/slamz/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Slamz", + "manufacturer": "Ocean", "url": "", "maintainer": "Ocean", + "usb": { + "vid": "0x9624", + "pid": "0x0011", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] diff --git a/keyboards/ocean/stealth/config.h b/keyboards/ocean/stealth/config.h index ab1860332e..2661b00c55 100644 --- a/keyboards/ocean/stealth/config.h +++ b/keyboards/ocean/stealth/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x9624 -#define PRODUCT_ID 0x0010 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ocean -#define PRODUCT Stealth - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 3 diff --git a/keyboards/ocean/stealth/info.json b/keyboards/ocean/stealth/info.json index 3342319c8e..7b45dcd520 100644 --- a/keyboards/ocean/stealth/info.json +++ b/keyboards/ocean/stealth/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Stealth", + "manufacturer": "Ocean", "url": "", "maintainer": "Ocean", + "usb": { + "vid": "0x9624", + "pid": "0x0010", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0, "w":2.25}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}] diff --git a/keyboards/ocean/sus/config.h b/keyboards/ocean/sus/config.h index c3e2a3263a..4b2306d387 100644 --- a/keyboards/ocean/sus/config.h +++ b/keyboards/ocean/sus/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x9624 -#define PRODUCT_ID 0x0009 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ocean -#define PRODUCT Sus - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 3 diff --git a/keyboards/ocean/sus/info.json b/keyboards/ocean/sus/info.json index 3665038b6f..580379f25a 100644 --- a/keyboards/ocean/sus/info.json +++ b/keyboards/ocean/sus/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "SUS", + "keyboard_name": "Sus", + "manufacturer": "Ocean", "url": " ", "maintainer": "Ocean", + "usb": { + "vid": "0x9624", + "pid": "0x0009", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x3": { "layout": [ diff --git a/keyboards/ocean/wang_ergo/config.h b/keyboards/ocean/wang_ergo/config.h index 62c9d2fca2..a9a0d11791 100644 --- a/keyboards/ocean/wang_ergo/config.h +++ b/keyboards/ocean/wang_ergo/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x9624 -#define PRODUCT_ID 0x0008 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ocean -#define PRODUCT Wang Ergo - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/ocean/wang_ergo/info.json b/keyboards/ocean/wang_ergo/info.json index 5ade58c54c..04065cdb07 100644 --- a/keyboards/ocean/wang_ergo/info.json +++ b/keyboards/ocean/wang_ergo/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Wang Ergo", + "manufacturer": "Ocean", "url": "", "maintainer": "oceeean", + "usb": { + "vid": "0x9624", + "pid": "0x0008", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/ocean/wang_v2/config.h b/keyboards/ocean/wang_v2/config.h index f5f1e9231c..a2cd557720 100644 --- a/keyboards/ocean/wang_v2/config.h +++ b/keyboards/ocean/wang_v2/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x9624 -#define PRODUCT_ID 0x0004 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ocean -#define PRODUCT Wang V2 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/ocean/wang_v2/info.json b/keyboards/ocean/wang_v2/info.json index 310f448956..7a04f23e1b 100644 --- a/keyboards/ocean/wang_v2/info.json +++ b/keyboards/ocean/wang_v2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Wang V2", + "manufacturer": "Ocean", "url": "", "maintainer": "Ocean", + "usb": { + "vid": "0x9624", + "pid": "0x0004", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"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":0.75, "y":1, "w":1.25}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1, "w":1.75}, {"x":0.25, "y":2, "w":1.75}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2, "w":1.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":1.25}, {"x":5, "y":3, "w":2}, {"x":7, "y":3, "w":2}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}] diff --git a/keyboards/ocean/yuri/config.h b/keyboards/ocean/yuri/config.h index d8313fd71f..e04d70a50b 100644 --- a/keyboards/ocean/yuri/config.h +++ b/keyboards/ocean/yuri/config.h @@ -18,12 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x9624 -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Ocean -#define PRODUCT Yuri - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 14 diff --git a/keyboards/ocean/yuri/info.json b/keyboards/ocean/yuri/info.json index 68d9668579..458c11d091 100644 --- a/keyboards/ocean/yuri/info.json +++ b/keyboards/ocean/yuri/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Yuri", + "manufacturer": "Ocean", "url": "tokopedia.com/strat0s", "maintainer": "Ocean", + "usb": { + "vid": "0x9624", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, diff --git a/keyboards/oddball/config.h b/keyboards/oddball/config.h index cfb134c4e3..d56a1f8f26 100644 --- a/keyboards/oddball/config.h +++ b/keyboards/oddball/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCA49 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Alexander Tulloh -#define PRODUCT Oddball - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 6 diff --git a/keyboards/oddball/info.json b/keyboards/oddball/info.json index ab1eb1f2e7..84e512dbdc 100644 --- a/keyboards/oddball/info.json +++ b/keyboards/oddball/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Oddball", + "manufacturer": "Alexander Tulloh", "url": "https://atulloh.github.io/oddball", "maintainer": "Alexander Tulloh", + "usb": { + "vid": "0xFEED", + "pid": "0xCA49", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/oddforge/vea/config.h b/keyboards/oddforge/vea/config.h index 44f5264017..43a75a7f03 100644 --- a/keyboards/oddforge/vea/config.h +++ b/keyboards/oddforge/vea/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFFFE -#define PRODUCT_ID 0x4155 -#define DEVICE_VER 0x0100 -#define MANUFACTURER OddForge -#define PRODUCT VE.A - /* matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 15 diff --git a/keyboards/oddforge/vea/info.json b/keyboards/oddforge/vea/info.json index 471d04068d..e2ab0d97a3 100644 --- a/keyboards/oddforge/vea/info.json +++ b/keyboards/oddforge/vea/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "VE.A", + "manufacturer": "OddForge", "url": "https://drop.com/buy/ve-a", "maintainer": "MajorKoos", + "usb": { + "vid": "0xFFFE", + "pid": "0x4155", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [{"label":"5,0", "x":2.25, "y":0}, {"label":"5,1", "x":3.25, "y":0}, {"label":"5,2", "x":4.25, "y":0}, {"label":"5,3", "x":5.25, "y":0}, {"label":"5,4", "x":6.25, "y":0}, {"label":"5,5", "x":7.25, "y":0}, {"label":"5,6", "x":8.25, "y":0}, {"label":"5,8", "x":10.75, "y":0}, {"label":"5,9", "x":11.75, "y":0}, {"label":"5,10", "x":12.75, "y":0}, {"label":"5,11", "x":13.75, "y":0}, {"label":"5,12", "x":14.75, "y":0}, {"label":"5,13", "x":15.75, "y":0}, {"label":"6,11", "x":16.75, "y":0}, {"label":"7,11", "x":17.75, "y":0}, {"label":"6,13", "x":18.75, "y":0}, {"label":"6,1", "x":0, "y":1}, {"label":"7,1", "x":1, "y":1}, {"label":"4,0", "x":2.25, "y":1}, {"label":"4,1", "x":3.25, "y":1}, {"label":"4,2", "x":4.25, "y":1}, {"label":"4,3", "x":5.25, "y":1}, {"label":"4,4", "x":6.25, "y":1}, {"label":"4,5", "x":7.25, "y":1}, {"label":"4,6", "x":8.25, "y":1}, {"label":"4,8", "x":10.75, "y":1}, {"label":"4,9", "x":11.75, "y":1}, {"label":"4,10", "x":12.75, "y":1}, {"label":"4,11", "x":13.75, "y":1}, {"label":"4,12", "x":14.75, "y":1}, {"label":"4,13", "x":15.75, "y":1}, {"label":"4,14", "x":16.75, "y":1, "w":2}, {"label":"6,10", "x":18.75, "y":1}, {"label":"6,2", "x":0, "y":2}, {"label":"7,2", "x":1, "y":2}, {"label":"3,0", "x":2.25, "y":2, "w":1.5}, {"label":"3,1", "x":3.75, "y":2}, {"label":"3,2", "x":4.75, "y":2}, {"label":"3,3", "x":5.75, "y":2}, {"label":"3,4", "x":6.75, "y":2}, {"label":"3,5", "x":7.75, "y":2}, {"label":"1,8", "x":10.25, "y":2}, {"label":"1,9", "x":11.25, "y":2}, {"label":"1,10", "x":12.25, "y":2}, {"label":"1,11", "x":13.25, "y":2}, {"label":"1,12", "x":14.25, "y":2}, {"label":"1,13", "x":15.25, "y":2}, {"label":"1,14", "x":16.25, "y":2}, {"label":"2,14", "x":17.25, "y":2, "w":1.5}, {"label":"7,10", "x":18.75, "y":2}, {"label":"6,3", "x":0, "y":3}, {"label":"7,3", "x":1, "y":3}, {"label":"2,0", "x":2.25, "y":3, "w":1.75}, {"label":"2,1", "x":4, "y":3}, {"label":"2,2", "x":5, "y":3}, {"label":"2,3", "x":6, "y":3}, {"label":"2,4", "x":7, "y":3}, {"label":"2,5", "x":8, "y":3}, {"label":"2,8", "x":10.5, "y":3}, {"label":"2,9", "x":11.5, "y":3}, {"label":"2,10", "x":12.5, "y":3}, {"label":"2,11", "x":13.5, "y":3}, {"label":"2,12", "x":14.5, "y":3}, {"label":"2,13", "x":15.5, "y":3}, {"label":"3,13", "x":16.5, "y":3, "w":2.25}, {"label":"6,12", "x":18.75, "y":3}, {"label":"6,4", "x":0, "y":4}, {"label":"7,4", "x":1, "y":4}, {"label":"1,0", "x":2.25, "y":4, "w":2.25}, {"label":"1,1", "x":4.5, "y":4}, {"label":"1,2", "x":5.5, "y":4}, {"label":"1,3", "x":6.5, "y":4}, {"label":"1,4", "x":7.5, "y":4}, {"label":"1,5", "x":8.5, "y":4}, {"label":"3,8", "x":11, "y":4}, {"label":"3,9", "x":12, "y":4}, {"label":"3,10", "x":13, "y":4}, {"label":"3,11", "x":14, "y":4}, {"label":"3,12", "x":15, "y":4}, {"label":"3,14", "x":16, "y":4, "w":1.75}, {"label":"6,8", "x":17.75, "y":4}, {"label":"7,12", "x":18.75, "y":4}, {"label":"6,5", "x":0, "y":5}, {"label":"7,5", "x":1, "y":5}, {"label":"0,0", "x":2.25, "y":5, "w":1.25}, {"label":"0,1", "x":3.5, "y":5, "w":1.25}, {"label":"0,2", "x":4.75, "y":5, "w":1.25}, {"label":"7,7", "x":6, "y":5, "w":2}, {"label":"6,6", "x":8, "y":5}, {"label":"6,14", "x":10.5, "y":5, "w":2.75}, {"label":"0,10", "x":13.25, "y":5, "w":1.25}, {"label":"0,9", "x":14.5, "y":5}, {"label":"0,8", "x":15.5, "y":5, "w":1.25}, {"label":"7,8", "x":16.75, "y":5}, {"label":"6,9", "x":17.75, "y":5}, {"label":"7,9", "x":18.75, "y":5}] diff --git a/keyboards/odelia/config.h b/keyboards/odelia/config.h index 10803b81a1..c3351725a6 100644 --- a/keyboards/odelia/config.h +++ b/keyboards/odelia/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6BE3 -#define PRODUCT_ID 0xA129 -#define DEVICE_VER 0x0001 -#define MANUFACTURER InterpolKeeb -#define PRODUCT Odelia - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/odelia/info.json b/keyboards/odelia/info.json index b204795952..dacdc49760 100644 --- a/keyboards/odelia/info.json +++ b/keyboards/odelia/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "odelia", + "keyboard_name": "Odelia", + "manufacturer": "InterpolKeeb", "url": "", "maintainer": "kb-elmo", + "usb": { + "vid": "0x6BE3", + "pid": "0xA129", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/ogre/ergo_single/config.h b/keyboards/ogre/ergo_single/config.h index 5c0c09b3c7..788ace6f5c 100644 --- a/keyboards/ogre/ergo_single/config.h +++ b/keyboards/ogre/ergo_single/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ctrlshiftba -#define PRODUCT ergo_single - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/ogre/ergo_single/info.json b/keyboards/ogre/ergo_single/info.json index ca9223545d..fd446099f5 100644 --- a/keyboards/ogre/ergo_single/info.json +++ b/keyboards/ogre/ergo_single/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ogre Ergo Single", + "manufacturer": "ctrlshiftba", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ogre/ergo_split/config.h b/keyboards/ogre/ergo_split/config.h index 4bf45c05e7..43a9894f3d 100644 --- a/keyboards/ogre/ergo_split/config.h +++ b/keyboards/ogre/ergo_split/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ctrlshiftba -#define PRODUCT ergo_split - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 diff --git a/keyboards/ogre/ergo_split/info.json b/keyboards/ogre/ergo_split/info.json index eaf5c4e389..2e3e2f73a8 100644 --- a/keyboards/ogre/ergo_split/info.json +++ b/keyboards/ogre/ergo_split/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ogre Ergo Split", + "manufacturer": "ctrlshiftba", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ok60/config.h b/keyboards/ok60/config.h index faccfcc646..612fa7cecc 100644 --- a/keyboards/ok60/config.h +++ b/keyboards/ok60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B36 // K6 - ok60 -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER OK60 -#define PRODUCT OK60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/ok60/info.json b/keyboards/ok60/info.json index 8207604dda..19144808e2 100644 --- a/keyboards/ok60/info.json +++ b/keyboards/ok60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "OK60", + "manufacturer": "OK60", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4B36", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":2.75}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/omkbd/ergodash/mini/config.h b/keyboards/omkbd/ergodash/mini/config.h index b936e0f54e..67fe7e1603 100644 --- a/keyboards/omkbd/ergodash/mini/config.h +++ b/keyboards/omkbd/ergodash/mini/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Omkbd -#define PRODUCT ErgoDashmini - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/omkbd/ergodash/mini/info.json b/keyboards/omkbd/ergodash/mini/info.json index 1a0c1766f6..d8e9bc634f 100644 --- a/keyboards/omkbd/ergodash/mini/info.json +++ b/keyboards/omkbd/ergodash/mini/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "ErgoDash mini", + "keyboard_name": "ErgoDash Mini", + "manufacturer": "Omkbd", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [{"label":"L00", "x":0, "y":1.375}, {"label":"L01", "x":1, "y":1.375}, {"label":"L02", "x":2, "y":1.125}, {"label":"L03", "x":3, "y":1}, {"label":"L04", "x":4, "y":1.125}, {"label":"L05", "x":5, "y":1.25}, {"label":"L06", "x":6, "y":1.75}, {"label":"R00", "x":11, "y":1.75}, {"label":"R01", "x":12, "y":1.25}, {"label":"R02", "x":13, "y":1.125}, {"label":"R03", "x":14, "y":1}, {"label":"R04", "x":15, "y":1.125}, {"label":"R05", "x":16, "y":1.375}, {"label":"R06", "x":17, "y":1.375}, {"label":"L10", "x":0, "y":2.375}, {"label":"L11", "x":1, "y":2.375}, {"label":"L12", "x":2, "y":2.125}, {"label":"L13", "x":3, "y":2}, {"label":"L14", "x":4, "y":2.125}, {"label":"L15", "x":5, "y":2.25}, {"label":"L16", "x":6, "y":2.75}, {"label":"R10", "x":11, "y":2.75}, {"label":"R11", "x":12, "y":2.25}, {"label":"R12", "x":13, "y":2.125}, {"label":"R13", "x":14, "y":2}, {"label":"R14", "x":15, "y":2.125}, {"label":"R15", "x":16, "y":2.375}, {"label":"R16", "x":17, "y":2.375}, {"label":"L20", "x":0, "y":3.375}, {"label":"L21", "x":1, "y":3.375}, {"label":"L22", "x":2, "y":3.125}, {"label":"L23", "x":3, "y":3}, {"label":"L24", "x":4, "y":3.125}, {"label":"L25", "x":5, "y":3.25}, {"label":"L26", "x":6.5, "y":4.25}, {"label":"R20", "x":10.5, "y":4.25}, {"label":"R21", "x":12, "y":3.25}, {"label":"R22", "x":13, "y":3.125}, {"label":"R23", "x":14, "y":3}, {"label":"R24", "x":15, "y":3.125}, {"label":"R25", "x":16, "y":3.375}, {"label":"R26", "x":17, "y":3.375}, {"label":"L30", "x":0, "y":4.375}, {"label":"L31", "x":1, "y":4.375}, {"label":"L32", "x":2, "y":4.125}, {"label":"L33", "x":3, "y":4}, {"label":"L34", "x":5.5, "y":5.25}, {"label":"L35", "x":6.5, "y":5.25}, {"label":"L36", "x":7.5, "y":4.25, "h":2}, {"label":"R30", "x":9.5, "y":4.25, "h":2}, {"label":"R31", "x":10.5, "y":5.25}, {"label":"R32", "x":11.5, "y":5.25}, {"label":"R33", "x":14, "y":4}, {"label":"R34", "x":15, "y":4.125}, {"label":"R35", "x":16, "y":4.375}, {"label":"R36", "x":17, "y":4.375}] diff --git a/keyboards/omkbd/ergodash/rev1/config.h b/keyboards/omkbd/ergodash/rev1/config.h index 07282cdad2..56fe46f52a 100644 --- a/keyboards/omkbd/ergodash/rev1/config.h +++ b/keyboards/omkbd/ergodash/rev1/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Omkbd -#define PRODUCT ErgoDash - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/omkbd/ergodash/rev1/info.json b/keyboards/omkbd/ergodash/rev1/info.json index bb491b5f50..1d78f82bd7 100644 --- a/keyboards/omkbd/ergodash/rev1/info.json +++ b/keyboards/omkbd/ergodash/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ErgoDash rev1.2", + "manufacturer": "Omkbd", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT_4key": { "layout": [ diff --git a/keyboards/omkbd/runner3680/3x6/config.h b/keyboards/omkbd/runner3680/3x6/config.h index af8e6eb32b..33a4bcc8a2 100644 --- a/keyboards/omkbd/runner3680/3x6/config.h +++ b/keyboards/omkbd/runner3680/3x6/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 6 diff --git a/keyboards/omkbd/runner3680/3x6/info.json b/keyboards/omkbd/runner3680/3x6/info.json index c54fe46106..404fda2b92 100644 --- a/keyboards/omkbd/runner3680/3x6/info.json +++ b/keyboards/omkbd/runner3680/3x6/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 3x6", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/runner3680/3x7/config.h b/keyboards/omkbd/runner3680/3x7/config.h index 789dda45fd..44c54091e5 100644 --- a/keyboards/omkbd/runner3680/3x7/config.h +++ b/keyboards/omkbd/runner3680/3x7/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 6 diff --git a/keyboards/omkbd/runner3680/3x7/info.json b/keyboards/omkbd/runner3680/3x7/info.json index 1a5ac8221e..f19b5a2a1e 100644 --- a/keyboards/omkbd/runner3680/3x7/info.json +++ b/keyboards/omkbd/runner3680/3x7/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 3x7", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/runner3680/3x8/config.h b/keyboards/omkbd/runner3680/3x8/config.h index b1d1db1171..307916f645 100644 --- a/keyboards/omkbd/runner3680/3x8/config.h +++ b/keyboards/omkbd/runner3680/3x8/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 6 diff --git a/keyboards/omkbd/runner3680/3x8/info.json b/keyboards/omkbd/runner3680/3x8/info.json index d8e71f97e0..8e7ddf00ff 100644 --- a/keyboards/omkbd/runner3680/3x8/info.json +++ b/keyboards/omkbd/runner3680/3x8/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 3x8", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/runner3680/4x6/config.h b/keyboards/omkbd/runner3680/4x6/config.h index 12596acd9a..9b9d7a578a 100644 --- a/keyboards/omkbd/runner3680/4x6/config.h +++ b/keyboards/omkbd/runner3680/4x6/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/omkbd/runner3680/4x6/info.json b/keyboards/omkbd/runner3680/4x6/info.json index 41ea3e0061..de912073ee 100644 --- a/keyboards/omkbd/runner3680/4x6/info.json +++ b/keyboards/omkbd/runner3680/4x6/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 4x6", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/runner3680/4x7/config.h b/keyboards/omkbd/runner3680/4x7/config.h index bbfdd383c0..74541c0d3f 100644 --- a/keyboards/omkbd/runner3680/4x7/config.h +++ b/keyboards/omkbd/runner3680/4x7/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/omkbd/runner3680/4x7/info.json b/keyboards/omkbd/runner3680/4x7/info.json index 43876dd57e..2c587c38e6 100644 --- a/keyboards/omkbd/runner3680/4x7/info.json +++ b/keyboards/omkbd/runner3680/4x7/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 4x7", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/runner3680/4x8/config.h b/keyboards/omkbd/runner3680/4x8/config.h index 82e2dc7ee8..401ad2ddb6 100644 --- a/keyboards/omkbd/runner3680/4x8/config.h +++ b/keyboards/omkbd/runner3680/4x8/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/omkbd/runner3680/4x8/info.json b/keyboards/omkbd/runner3680/4x8/info.json index 4502a86404..e955ea4178 100644 --- a/keyboards/omkbd/runner3680/4x8/info.json +++ b/keyboards/omkbd/runner3680/4x8/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 4x8", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/runner3680/5x6/config.h b/keyboards/omkbd/runner3680/5x6/config.h index d2f288546d..7c127c22e0 100644 --- a/keyboards/omkbd/runner3680/5x6/config.h +++ b/keyboards/omkbd/runner3680/5x6/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/omkbd/runner3680/5x6/info.json b/keyboards/omkbd/runner3680/5x6/info.json index 02c65ec7cc..58c399e07b 100644 --- a/keyboards/omkbd/runner3680/5x6/info.json +++ b/keyboards/omkbd/runner3680/5x6/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 5x6", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/runner3680/5x6_5x8/config.h b/keyboards/omkbd/runner3680/5x6_5x8/config.h index 815da24950..6348f10eb1 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/config.h +++ b/keyboards/omkbd/runner3680/5x6_5x8/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x3680 -#define PRODUCT_ID 0x5658 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/omkbd/runner3680/5x6_5x8/info.json b/keyboards/omkbd/runner3680/5x6_5x8/info.json index e8fb4c0927..eebbfe11fb 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/info.json +++ b/keyboards/omkbd/runner3680/5x6_5x8/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 5x6+5x8", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0x3680", + "pid": "0x5658", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/runner3680/5x7/config.h b/keyboards/omkbd/runner3680/5x7/config.h index 6bcbeeda54..9a1a0a4110 100644 --- a/keyboards/omkbd/runner3680/5x7/config.h +++ b/keyboards/omkbd/runner3680/5x7/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/omkbd/runner3680/5x7/info.json b/keyboards/omkbd/runner3680/5x7/info.json index c60177d38c..d103c8949a 100644 --- a/keyboards/omkbd/runner3680/5x7/info.json +++ b/keyboards/omkbd/runner3680/5x7/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 5x7", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omkbd/runner3680/5x8/config.h b/keyboards/omkbd/runner3680/5x8/config.h index 29cfba78d1..c8a65dd171 100644 --- a/keyboards/omkbd/runner3680/5x8/config.h +++ b/keyboards/omkbd/runner3680/5x8/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0005 -#define MANUFACTURER Omkbd -#define PRODUCT runner3680 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/omkbd/runner3680/5x8/info.json b/keyboards/omkbd/runner3680/5x8/info.json index 70e3cc7833..4556ae7520 100644 --- a/keyboards/omkbd/runner3680/5x8/info.json +++ b/keyboards/omkbd/runner3680/5x8/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "runner3680 5x8", + "manufacturer": "Omkbd", "url": "", "maintainer": "omkbd", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.5" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/omnikeyish/config.h b/keyboards/omnikeyish/config.h index 008f6b753b..6d02623b21 100644 --- a/keyboards/omnikeyish/config.h +++ b/keyboards/omnikeyish/config.h @@ -4,13 +4,6 @@ #define KEYBOARD_PCB_REV 11 -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0666 -#define DEVICE_VER 0x1337 -#define MANUFACTURER Henrik O. Sørensen -#define PRODUCT Omnikey(-ish) Keyboard - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 23 diff --git a/keyboards/omnikeyish/info.json b/keyboards/omnikeyish/info.json index 62a342d13e..e56e9dfa1a 100644 --- a/keyboards/omnikeyish/info.json +++ b/keyboards/omnikeyish/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Omnikey-(ish)", + "manufacturer": "Henrik O. Sørensen", "url": "https://github.com/henrikosorensen/keyboard_pcbs/tree/master/omnikeyish_pcb", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0666", + "device_version": "13.3.7" + }, "layouts": { "LAYOUT_all": { "layout": [ {"label":"P11", "x":0, "y":0}, {"label":"P12", "x":1, "y":0}, {"label":"Esc", "x":2.6667, "y":0}, {"label":"F1", "x":4.6667, "y":0}, {"label":"F2", "x":5.6667, "y":0}, {"label":"F3", "x":6.6667, "y":0}, {"label":"F4", "x":7.6667, "y":0}, {"label":"F5", "x":9.1667, "y":0}, {"label":"F6", "x":10.1667, "y":0}, {"label":"F7", "x":11.1667, "y":0}, {"label":"F8", "x":12.1667, "y":0}, {"label":"F9", "x":13.6667, "y":0}, {"label":"F10", "x":14.6667, "y":0}, {"label":"F11", "x":15.6667, "y":0}, {"label":"F12", "x":16.6667, "y":0}, {"label":"PrtSc", "x":18.1667, "y":0}, {"label":"Scroll Lock", "x":19.1667, "y":0}, {"label":"Pause", "x":20.1667, "y":0}, {"x":21.6667, "y":0}, {"x":22.6667, "y":0}, {"x":23.6667, "y":0}, {"x":24.6667, "y":0}, diff --git a/keyboards/onekeyco/dango40/config.h b/keyboards/onekeyco/dango40/config.h index fceb8fb252..8ab7a5b183 100644 --- a/keyboards/onekeyco/dango40/config.h +++ b/keyboards/onekeyco/dango40/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE9B9 -#define DEVICE_VER 0x0001 -#define MANUFACTURER One Key Company -#define PRODUCT Dango40 /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/onekeyco/dango40/info.json b/keyboards/onekeyco/dango40/info.json index e26e92697b..4305346827 100644 --- a/keyboards/onekeyco/dango40/info.json +++ b/keyboards/onekeyco/dango40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Dango40", + "manufacturer": "One Key Company", "url": "https://github.com/swiftrax", "maintainer": "Swiftrax", + "usb": { + "vid": "0x04D8", + "pid": "0xE9B9", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/orange75/config.h b/keyboards/orange75/config.h index 2ebaeb3e73..4a867334f9 100644 --- a/keyboards/orange75/config.h +++ b/keyboards/orange75/config.h @@ -1,12 +1,5 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEEB -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Fox-Lab -#define PRODUCT Orange75 - /* key matrix size */ #define MATRIX_ROWS 15 #define MATRIX_COLS 6 diff --git a/keyboards/orange75/info.json b/keyboards/orange75/info.json index 3cfd040d0f..1fe4752635 100644 --- a/keyboards/orange75/info.json +++ b/keyboards/orange75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Orange75", + "manufacturer": "Fox-Lab", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEEB", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/org60/config.h b/keyboards/org60/config.h index 42dbb83169..6f151c2f1c 100644 --- a/keyboards/org60/config.h +++ b/keyboards/org60/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER 大橘子外设 (Large orange peripherals) -#define PRODUCT Org60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/org60/info.json b/keyboards/org60/info.json index 2327468632..a889730258 100644 --- a/keyboards/org60/info.json +++ b/keyboards/org60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Org60", + "manufacturer": "大橘子外设 (Large orange peripherals)", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"K00", "x":0, "y":0}, {"label":"K01", "x":1, "y":0}, {"label":"K02", "x":2, "y":0}, {"label":"K03", "x":3, "y":0}, {"label":"K04", "x":4, "y":0}, {"label":"K05", "x":5, "y":0}, {"label":"K06", "x":6, "y":0}, {"label":"K07", "x":7, "y":0}, {"label":"K08", "x":8, "y":0}, {"label":"K09", "x":9, "y":0}, {"label":"K0A", "x":10, "y":0}, {"label":"K0B", "x":11, "y":0}, {"label":"K0C", "x":12, "y":0}, {"label":"K0D", "x":13, "y":0}, {"label":"K49", "x":14, "y":0}, {"label":"K10", "x":0, "y":1, "w":1.5}, {"label":"K11", "x":1.5, "y":1}, {"label":"K12", "x":2.5, "y":1}, {"label":"K13", "x":3.5, "y":1}, {"label":"K14", "x":4.5, "y":1}, {"label":"K15", "x":5.5, "y":1}, {"label":"K16", "x":6.5, "y":1}, {"label":"K17", "x":7.5, "y":1}, {"label":"K18", "x":8.5, "y":1}, {"label":"K19", "x":9.5, "y":1}, {"label":"K1A", "x":10.5, "y":1}, {"label":"K1B", "x":11.5, "y":1}, {"label":"K1C", "x":12.5, "y":1}, {"label":"K1D", "x":13.5, "y":1, "w":1.5}, {"label":"K20", "x":0, "y":2, "w":1.75}, {"label":"K21", "x":1.75, "y":2}, {"label":"K22", "x":2.75, "y":2}, {"label":"K23", "x":3.75, "y":2}, {"label":"K24", "x":4.75, "y":2}, {"label":"K25", "x":5.75, "y":2}, {"label":"K26", "x":6.75, "y":2}, {"label":"K27", "x":7.75, "y":2}, {"label":"K28", "x":8.75, "y":2}, {"label":"K29", "x":9.75, "y":2}, {"label":"K2A", "x":10.75, "y":2}, {"label":"K2B", "x":11.75, "y":2}, {"label":"K2C", "x":12.75, "y":2}, {"label":"K2D", "x":13.75, "y":2, "w":1.25}, {"label":"K30", "x":0, "y":3}, {"label":"K31", "x":1, "y":3}, {"label":"K32", "x":2, "y":3}, {"label":"K33", "x":3, "y":3}, {"label":"K34", "x":4, "y":3}, {"label":"K35", "x":5, "y":3}, {"label":"K36", "x":6, "y":3}, {"label":"K37", "x":7, "y":3}, {"label":"K38", "x":8, "y":3}, {"label":"K39", "x":9, "y":3}, {"label":"K3A", "x":10, "y":3}, {"label":"K3B", "x":11, "y":3}, {"label":"K47", "x":12, "y":3}, {"label":"K3D", "x":13, "y":3}, {"label":"K3C", "x":14, "y":3}, {"label":"K40", "x":0, "y":4, "w":1.25}, {"label":"K41", "x":1.25, "y":4, "w":1.25}, {"label":"K42", "x":2.5, "y":4, "w":1.25}, {"label":"K45", "x":3.75, "y":4, "w":6.25}, {"label":"K4A", "x":10, "y":4}, {"label":"K4B", "x":11, "y":4}, {"label":"K48", "x":12, "y":4}, {"label":"K4C", "x":13, "y":4}, {"label":"K4D", "x":14, "y":4}] diff --git a/keyboards/ortho5by12/config.h b/keyboards/ortho5by12/config.h index 61719eb295..2254999b02 100644 --- a/keyboards/ortho5by12/config.h +++ b/keyboards/ortho5by12/config.h @@ -16,15 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -/* VID & PID from vusb project, see tmk_core/protocol/vusb/USB-IDs-for-free.txt"*/ -// These VID/PID is not verified. Use at your own risk. -#define VENDOR_ID 0x16C0 -#define PRODUCT_ID 0x27DB -#define DEVICE_VER 0x0002 -#define MANUFACTURER /u/squeezeonein -#define PRODUCT ortho5by12 - /* key matrix size, duplex 10x6 */ #define MATRIX_ROWS 10 #define MATRIX_COLS 6 diff --git a/keyboards/ortho5by12/info.json b/keyboards/ortho5by12/info.json index 56a4a09372..5bda0d68fb 100644 --- a/keyboards/ortho5by12/info.json +++ b/keyboards/ortho5by12/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ortho5by12", + "manufacturer": "/u/squeezeonein", "url": "https://github.com/itsnoteasy/misc/blob/master/ortho5by12.zip", "maintainer": "itsnoteasy", + "usb": { + "vid": "0x16C0", + "pid": "0x27DB", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_ortho_5x12_1x2uC": { "layout": [ diff --git a/keyboards/orthocode/config.h b/keyboards/orthocode/config.h index e548fe1d4e..9bab689618 100644 --- a/keyboards/orthocode/config.h +++ b/keyboards/orthocode/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x3415 // orthocodekb.com -#define PRODUCT_ID 0x0001 // orthocode -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jrodna -#define PRODUCT OrthoCode - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/orthocode/info.json b/keyboards/orthocode/info.json index c193ab44f9..92058b2654 100644 --- a/keyboards/orthocode/info.json +++ b/keyboards/orthocode/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "OrthoCode", + "manufacturer": "Jrodna", "url": "https://github.com/Jrodna/OrthoCode", "maintainer": "Jrodna", + "usb": { + "vid": "0x3415", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/orthodox/rev1/config.h b/keyboards/orthodox/rev1/config.h index db45e2d75d..1f536aa6f6 100644 --- a/keyboards/orthodox/rev1/config.h +++ b/keyboards/orthodox/rev1/config.h @@ -23,13 +23,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER deductivemonkee -#define PRODUCT Monkeebs Orthodox Rev.1 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 6 diff --git a/keyboards/orthodox/rev1/info.json b/keyboards/orthodox/rev1/info.json index 49ca9b31b8..d539fc8be2 100644 --- a/keyboards/orthodox/rev1/info.json +++ b/keyboards/orthodox/rev1/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Monkeebs Orthodox Rev.1", + "manufacturer": "deductivemonkee", "maintainer": "drashna", + "usb": { + "vid": "0xFEED", + "pid": "0x3060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/orthodox/rev3/config.h b/keyboards/orthodox/rev3/config.h index 678a3603f1..b69aa4b109 100644 --- a/keyboards/orthodox/rev3/config.h +++ b/keyboards/orthodox/rev3/config.h @@ -23,13 +23,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER deductivemonkee -#define PRODUCT Monkeebs Orthodox Rev.3 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 6 diff --git a/keyboards/orthodox/rev3/info.json b/keyboards/orthodox/rev3/info.json index 309769c626..6769fe7a30 100644 --- a/keyboards/orthodox/rev3/info.json +++ b/keyboards/orthodox/rev3/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Monkeebs Orthodox Rev.3", + "manufacturer": "deductivemonkee", "maintainer": "drashna", + "usb": { + "vid": "0xFEED", + "pid": "0x3060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/orthodox/rev3_teensy/config.h b/keyboards/orthodox/rev3_teensy/config.h index d21d50e579..5cd92b005c 100644 --- a/keyboards/orthodox/rev3_teensy/config.h +++ b/keyboards/orthodox/rev3_teensy/config.h @@ -23,13 +23,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER deductivemonkee -#define PRODUCT Monkeebs Orthodox Rev.3 (Teensy) - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 6 diff --git a/keyboards/orthodox/rev3_teensy/info.json b/keyboards/orthodox/rev3_teensy/info.json index a89c370396..91a73c5cb3 100644 --- a/keyboards/orthodox/rev3_teensy/info.json +++ b/keyboards/orthodox/rev3_teensy/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Monkeebs Orthodox Rev.3 (Teensy)", + "manufacturer": "deductivemonkee", "maintainer": "drashna", + "usb": { + "vid": "0xFEED", + "pid": "0x3060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/owlab/jelly_epoch/hotswap/config.h b/keyboards/owlab/jelly_epoch/hotswap/config.h index eb2998de7a..54aa5978e2 100644 --- a/keyboards/owlab/jelly_epoch/hotswap/config.h +++ b/keyboards/owlab/jelly_epoch/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter*/ -#define VENDOR_ID 0x4F53 //0x4F53 OS for owl studio -#define PRODUCT_ID 0x4A4C //0x4A4C JL for jelly, 0x4A53 JS for jelly solder -#define DEVICE_VER 0x0001 -#define MANUFACTURER OwLab -#define PRODUCT Jelly Epoch - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/owlab/jelly_epoch/hotswap/info.json b/keyboards/owlab/jelly_epoch/hotswap/info.json index 01af496bb2..c5ee4ff522 100644 --- a/keyboards/owlab/jelly_epoch/hotswap/info.json +++ b/keyboards/owlab/jelly_epoch/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "jelly epoch", + "keyboard_name": "Jelly Epoch Hotswap", + "manufacturer": "OwLab", "url": "https://www.popkeyboard.com/products/jrrgvdsyu47wer", "maintainer": "Owlab", + "usb": { + "vid": "0x4F53", + "pid": "0x4A4C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/owlab/jelly_epoch/soldered/config.h b/keyboards/owlab/jelly_epoch/soldered/config.h index cd27b71dd4..54aa5978e2 100644 --- a/keyboards/owlab/jelly_epoch/soldered/config.h +++ b/keyboards/owlab/jelly_epoch/soldered/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter*/ -#define VENDOR_ID 0x4F53 //0x4F53 OS for owl studio -#define PRODUCT_ID 0x4A53 //0x4A4C JL for jelly, 0x4A53 JS for jelly solder -#define DEVICE_VER 0x0001 -#define MANUFACTURER OwLab -#define PRODUCT Jelly Epoch - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 14 diff --git a/keyboards/owlab/jelly_epoch/soldered/info.json b/keyboards/owlab/jelly_epoch/soldered/info.json index 357634b481..59358ae99f 100644 --- a/keyboards/owlab/jelly_epoch/soldered/info.json +++ b/keyboards/owlab/jelly_epoch/soldered/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "jelly", + "keyboard_name": "Jelly Epoch Soldered", + "manufacturer": "OwLab", "url": "https://www.popkeyboard.com/products/jrrgvdsyu47wer", "maintainer": "Owlab", + "usb": { + "vid": "0x4F53", + "pid": "0x4A53", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/owlab/spring/config.h b/keyboards/owlab/spring/config.h index d4eef1e021..8b2f9b6340 100644 --- a/keyboards/owlab/spring/config.h +++ b/keyboards/owlab/spring/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4F53 //0x4F53 for OwLab -#define PRODUCT_ID 0x5350 //0x514B SP for Spring -#define DEVICE_VER 0x0001 -#define MANUFACTURER OwLab -#define PRODUCT Spring - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/owlab/spring/info.json b/keyboards/owlab/spring/info.json index bbeee6628b..2664c4ba3c 100644 --- a/keyboards/owlab/spring/info.json +++ b/keyboards/owlab/spring/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Spring", + "manufacturer": "OwLab", "url": "", "maintainer": "OwLab", + "usb": { + "vid": "0x4F53", + "pid": "0x5350", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_spring": { "layout": [ diff --git a/keyboards/owlab/suit80/ansi/config.h b/keyboards/owlab/suit80/ansi/config.h index 02c44da212..46cc4d82f7 100644 --- a/keyboards/owlab/suit80/ansi/config.h +++ b/keyboards/owlab/suit80/ansi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4F53 //0x4F53 OS for owl studio -#define PRODUCT_ID 0x5355 //0x5355 SU for SUIT -#define DEVICE_VER 0x0001 -#define MANUFACTURER OwLab -#define PRODUCT SUIT80 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/owlab/suit80/ansi/info.json b/keyboards/owlab/suit80/ansi/info.json index b5833c6a60..bdfaccacb8 100644 --- a/keyboards/owlab/suit80/ansi/info.json +++ b/keyboards/owlab/suit80/ansi/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "suit80", + "keyboard_name": "Suit80 ANSI", + "manufacturer": "OwLab", "url": "", "maintainer": "Owlab", + "usb": { + "vid": "0x4F53", + "pid": "0x5355", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/owlab/suit80/iso/config.h b/keyboards/owlab/suit80/iso/config.h index 22968bac15..9aa3f00fb7 100644 --- a/keyboards/owlab/suit80/iso/config.h +++ b/keyboards/owlab/suit80/iso/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4F53 // 0x4F53 OS for owl studio -#define PRODUCT_ID 0x5349 //0x5355 SI for SUIT ISO -#define DEVICE_VER 0x0001 -#define MANUFACTURER OwLab -#define PRODUCT SUIT80 ISO - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/owlab/suit80/iso/info.json b/keyboards/owlab/suit80/iso/info.json index 7c911fe361..0818212330 100644 --- a/keyboards/owlab/suit80/iso/info.json +++ b/keyboards/owlab/suit80/iso/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "suit80", + "keyboard_name": "Suit80 ISO", + "manufacturer": "OwLab", "url": "", "maintainer": "Owlab", + "usb": { + "vid": "0x4F53", + "pid": "0x5349", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index 42f97036b3..507b1f75e2 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4F53 -#define PRODUCT_ID 0x564F -#define DEVICE_VER 0x0001 -#define MANUFACTURER OwLab -#define PRODUCT Voice65 Hotswap - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/owlab/voice65/hotswap/info.json b/keyboards/owlab/voice65/hotswap/info.json index 0481d1acea..006d87749a 100644 --- a/keyboards/owlab/voice65/hotswap/info.json +++ b/keyboards/owlab/voice65/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "voice65 hotswap", + "keyboard_name": "Voice65 Hotswap", + "manufacturer": "OwLab", "url": "https://www.popkeyboard.com/products/67968vn00mzx", "maintainer": "kb-elmo", + "usb": { + "vid": "0x4F53", + "pid": "0x564F", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_65_ansi_blocker" }, diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index f0c68dc25b..74ab2db520 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4F53 -#define PRODUCT_ID 0x5657 -#define DEVICE_VER 0x0001 -#define MANUFACTURER OwLab -#define PRODUCT Voice65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/owlab/voice65/soldered/info.json b/keyboards/owlab/voice65/soldered/info.json index ce33ffc083..7412c89546 100644 --- a/keyboards/owlab/voice65/soldered/info.json +++ b/keyboards/owlab/voice65/soldered/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "voice65 soldered", + "keyboard_name": "Voice65 Soldered", + "manufacturer": "OwLab", "url": "https://www.popkeyboard.com/products/67968vn00mzx", "maintainer": "kb-elmo", + "usb": { + "vid": "0x4F53", + "pid": "0x5657", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/p3d/glitch/config.h b/keyboards/p3d/glitch/config.h index e7f78123d9..301597df08 100644 --- a/keyboards/p3d/glitch/config.h +++ b/keyboards/p3d/glitch/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x7033 -#define PRODUCT_ID 0x3568 -#define DEVICE_VER 0x0001 -#define MANUFACTURER P3D Store -#define PRODUCT Glitch - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/p3d/glitch/info.json b/keyboards/p3d/glitch/info.json index 6445e200f8..5015a2e28f 100644 --- a/keyboards/p3d/glitch/info.json +++ b/keyboards/p3d/glitch/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Glitch", + "manufacturer": "P3D Store", "url": "https://p3dstore.com/products/p3d-glitch-group-buy", "maintainer": "matthewdias", + "usb": { + "vid": "0x7033", + "pid": "0x3568", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{ diff --git a/keyboards/pabile/p18/config.h b/keyboards/pabile/p18/config.h index 77351ca556..73c17b676a 100644 --- a/keyboards/pabile/p18/config.h +++ b/keyboards/pabile/p18/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6666 -#define PRODUCT_ID 0x6668 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Pabile -#define PRODUCT P18 Macro Pad - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 5 diff --git a/keyboards/pabile/p18/info.json b/keyboards/pabile/p18/info.json index 57d734ab3d..d6338182c6 100644 --- a/keyboards/pabile/p18/info.json +++ b/keyboards/pabile/p18/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Pabile 18", + "keyboard_name": "P18 Macro Pad", + "manufacturer": "Pabile", "url": "https://pabileonline.blogspot.com/", "maintainer": "Pabile", + "usb": { + "vid": "0x6666", + "pid": "0x6668", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pabile/p40/config.h b/keyboards/pabile/p40/config.h index f05ef6eb26..7a15886a44 100644 --- a/keyboards/pabile/p40/config.h +++ b/keyboards/pabile/p40/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6666 -#define PRODUCT_ID 0x6666 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Pabile -#define PRODUCT P40 Keyboard - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/pabile/p40/info.json b/keyboards/pabile/p40/info.json index 8a6c1327eb..ee7534c071 100644 --- a/keyboards/pabile/p40/info.json +++ b/keyboards/pabile/p40/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Pabile 40", + "keyboard_name": "P40", + "manufacturer": "Pabile", "url": "https://pabileonline.blogspot.com/", "maintainer": "Pabile", + "usb": { + "vid": "0x6666", + "pid": "0x6666", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x10": { "layout": [ diff --git a/keyboards/pabile/p40_ortho/config.h b/keyboards/pabile/p40_ortho/config.h index 4fd8e7a533..176072f022 100644 --- a/keyboards/pabile/p40_ortho/config.h +++ b/keyboards/pabile/p40_ortho/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6666 -#define PRODUCT_ID 0x6669 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Pabile -#define PRODUCT P40 Ortho Keyboard - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/pabile/p40_ortho/info.json b/keyboards/pabile/p40_ortho/info.json index 38eb5bdb70..a630973622 100644 --- a/keyboards/pabile/p40_ortho/info.json +++ b/keyboards/pabile/p40_ortho/info.json @@ -1,5 +1,12 @@ { + "keyboard_name": "P40 Ortho", + "manufacturer": "Pabile", "maintainer": "qmk", + "usb": { + "vid": "0x6666", + "pid": "0x6669", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_4x10": { "layout": [ diff --git a/keyboards/pabile/p42/config.h b/keyboards/pabile/p42/config.h index 2f7c5ce30a..e66f14c854 100644 --- a/keyboards/pabile/p42/config.h +++ b/keyboards/pabile/p42/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6666 -#define PRODUCT_ID 0x6670 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Pabile -#define PRODUCT P42 Keyboard - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/pabile/p42/info.json b/keyboards/pabile/p42/info.json index 7cc34266d2..5c1c2c8589 100644 --- a/keyboards/pabile/p42/info.json +++ b/keyboards/pabile/p42/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "P42", + "manufacturer": "Pabile", "url": "https://pabileonline.blogspot.com/", "maintainer": "Pabile", + "usb": { + "vid": "0x6666", + "pid": "0x6670", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/palette1202/config.h b/keyboards/palette1202/config.h index e0be3bd6c7..c4d231d298 100644 --- a/keyboards/palette1202/config.h +++ b/keyboards/palette1202/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1202 -#define DEVICE_VER 0x0001 -#define MANUFACTURER niltea -#define PRODUCT Palette1202 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 5 diff --git a/keyboards/palette1202/info.json b/keyboards/palette1202/info.json index e58f2fbb77..318a4c565c 100644 --- a/keyboards/palette1202/info.json +++ b/keyboards/palette1202/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Palette1202", + "manufacturer": "niltea", "url": "https://github.com/niltea/Palette1202", "maintainer": "niltea", + "usb": { + "vid": "0xFEED", + "pid": "0x1202", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/panc40/config.h b/keyboards/panc40/config.h index e363b76dad..6472195394 100644 --- a/keyboards/panc40/config.h +++ b/keyboards/panc40/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Panc Interactive -#define PRODUCT Panc40 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/panc40/info.json b/keyboards/panc40/info.json index 834fef0a5d..57989732c4 100644 --- a/keyboards/panc40/info.json +++ b/keyboards/panc40/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Panc40", + "manufacturer": "Panc Interactive", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/panc60/config.h b/keyboards/panc60/config.h index 495f5a2d4d..ad48909009 100644 --- a/keyboards/panc60/config.h +++ b/keyboards/panc60/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x20A0 -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0200 -#define MANUFACTURER Panc Interactive -#define PRODUCT Panc60 - #define RGBLED_NUM 12 #define MATRIX_ROWS 5 diff --git a/keyboards/panc60/info.json b/keyboards/panc60/info.json index 1d949b3be6..f3a1be6454 100644 --- a/keyboards/panc60/info.json +++ b/keyboards/panc60/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "panc60", + "keyboard_name": "Panc60", + "manufacturer": "Panc Interactive", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x20A0", + "pid": "0x422D", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] diff --git a/keyboards/papercranekeyboards/gerald65/config.h b/keyboards/papercranekeyboards/gerald65/config.h index 9e795b1501..aedb9083bd 100644 --- a/keyboards/papercranekeyboards/gerald65/config.h +++ b/keyboards/papercranekeyboards/gerald65/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5012 // -#define PRODUCT_ID 0x1501 // '21 keyboard 1 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PaperCraneKeyboards -#define PRODUCT gerald65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/papercranekeyboards/gerald65/info.json b/keyboards/papercranekeyboards/gerald65/info.json index c9b08304b3..8de08c41bd 100644 --- a/keyboards/papercranekeyboards/gerald65/info.json +++ b/keyboards/papercranekeyboards/gerald65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "gerald65", + "manufacturer": "PaperCraneKeyboards", "url": "", "maintainer": "PaperCraneKeyboards", + "usb": { + "vid": "0x5012", + "pid": "0x1501", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/paprikman/albacore/config.h b/keyboards/paprikman/albacore/config.h index 37a211726e..862f82ea54 100644 --- a/keyboards/paprikman/albacore/config.h +++ b/keyboards/paprikman/albacore/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x736D -#define PRODUCT_ID 0x000A -#define DEVICE_VER 0x0001 -#define MANUFACTURER paprikman -#define PRODUCT Albacore - /* key matrix size */ #define MATRIX_ROWS 2 #define MATRIX_COLS 4 diff --git a/keyboards/paprikman/albacore/info.json b/keyboards/paprikman/albacore/info.json index 494f228a32..5761467ac6 100644 --- a/keyboards/paprikman/albacore/info.json +++ b/keyboards/paprikman/albacore/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Albacore", + "manufacturer": "paprikman", "url": "https://github.com/paprikman/qmk_firmware/tree/master/keyboards/paprikman/albacore", "maintainer": "paprikman", + "usb": { + "vid": "0x736D", + "pid": "0x000A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/parallel/parallel_65/hotswap/config.h b/keyboards/parallel/parallel_65/hotswap/config.h index ae730c3c9f..c953d92e64 100644 --- a/keyboards/parallel/parallel_65/hotswap/config.h +++ b/keyboards/parallel/parallel_65/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x504C -#define PRODUCT_ID 0x5069 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Parallel Limited -#define PRODUCT Parallel 65% Hotswap PCB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/parallel/parallel_65/hotswap/info.json b/keyboards/parallel/parallel_65/hotswap/info.json index 28b1dda23e..ff15ff15df 100644 --- a/keyboards/parallel/parallel_65/hotswap/info.json +++ b/keyboards/parallel/parallel_65/hotswap/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Parallel 65% Hotswap PCB", + "manufacturer": "Parallel Limited", "maintainer": "matthewdias", + "usb": { + "vid": "0x504C", + "pid": "0x5069", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/parallel/parallel_65/soldered/config.h b/keyboards/parallel/parallel_65/soldered/config.h index 2ff2492ad4..c953d92e64 100644 --- a/keyboards/parallel/parallel_65/soldered/config.h +++ b/keyboards/parallel/parallel_65/soldered/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x504C -#define PRODUCT_ID 0x5068 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Parallel Limited -#define PRODUCT Parallel 65% PCB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/parallel/parallel_65/soldered/info.json b/keyboards/parallel/parallel_65/soldered/info.json index 4b0ae27b00..182593f430 100644 --- a/keyboards/parallel/parallel_65/soldered/info.json +++ b/keyboards/parallel/parallel_65/soldered/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Parallel 65% PCB", + "manufacturer": "Parallel Limited", "maintainer": "matthewdias", + "usb": { + "vid": "0x504C", + "pid": "0x5068", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker_split_bs": { "layout": [ diff --git a/keyboards/pdxkbc/config.h b/keyboards/pdxkbc/config.h index ce6c79bc32..7215b481c9 100644 --- a/keyboards/pdxkbc/config.h +++ b/keyboards/pdxkbc/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5044 // PD -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Franklin Harding -#define PRODUCT pdxkbc - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 2 diff --git a/keyboards/pdxkbc/info.json b/keyboards/pdxkbc/info.json index 21631ccc2a..5b1e1e6684 100644 --- a/keyboards/pdxkbc/info.json +++ b/keyboards/pdxkbc/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "pdxkbc", + "manufacturer": "Franklin Harding", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5044", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"reddit", "x":0, "y":0}, {"label":"discord", "x":1, "y":0}, {"label":"badge", "x":0, "y":1}, {"label":"hack", "x":1, "y":1}, {"label":"volu", "x":0, "y":2}, {"label":"vold", "x":1, "y":2}] diff --git a/keyboards/pearl/config.h b/keyboards/pearl/config.h index 2e9a2faf1d..5b93f4d28c 100644 --- a/keyboards/pearl/config.h +++ b/keyboards/pearl/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0348 -#define DEVICE_VER 0x0200 -#define MANUFACTURER Pearl Boards -#define PRODUCT Pearl - #define LED_NUM_LOCK_PIN D0 #define LED_CAPS_LOCK_PIN D1 #define LED_SCROLL_LOCK_PIN D6 diff --git a/keyboards/pearl/info.json b/keyboards/pearl/info.json index 6b4cb0a5ac..e812245ef5 100644 --- a/keyboards/pearl/info.json +++ b/keyboards/pearl/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Pearl", + "manufacturer": "Pearl Boards", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0348", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"{", "x":11, "y":0}, {"label":"Backspace", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"A", "x":1.5, "y":1}, {"label":"S", "x":2.5, "y":1}, {"label":"D", "x":3.5, "y":1}, {"label":"F", "x":4.5, "y":1}, {"label":"G", "x":5.5, "y":1}, {"label":"H", "x":6.5, "y":1}, {"label":"J", "x":7.5, "y":1}, {"label":"K", "x":8.5, "y":1}, {"label":"L", "x":9.5, "y":1}, {"label":":", "x":10.5, "y":1}, {"label":"\\", "x":11.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"?", "x":10.75, "y":2}, {"label":"Shift", "x":11.75, "y":2, "w":1.25}, {"label":"Alt", "x":1.13, "y":3}, {"label":"Ctrl", "x":2.13, "y":3, "w":1.25}, {"label":"Win", "x":3.375, "y":3, "w":1.25}, {"label":"Shift", "x":4.625, "y":3, "w":2.25}, {"x":6.875, "y":3, "w":1.25}, {"x":8.125, "y":3, "w":1.5}, {"label":"Menu", "x":9.625, "y":3}, {"label":"Fn", "x":10.63, "y":3, "w":1.25}] diff --git a/keyboards/pearl/keymaps/cijanzen/keymap.c b/keyboards/pearl/keymaps/cijanzen/keymap.c index 5a3f1eb1cd..896e157fd6 100644 --- a/keyboards/pearl/keymaps/cijanzen/keymap.c +++ b/keyboards/pearl/keymaps/cijanzen/keymap.c @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /** * Status LED layer indicators courtesy of jetpacktuxedo's firmware */ -layer_state_t layer_state_set_kb(layer_state_t state) +uint32_t layer_state_set_kb(uint32_t state) { if (state & (1<<1)) { // if we are on layer 1 PORTD |= (1 << PD0); // light num lock led diff --git a/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c b/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c index 4fd35f63ce..759c6fdc7d 100644 --- a/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c +++ b/keyboards/pearl/keymaps/jetpacktuxedo/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -layer_state_t layer_state_set_kb(layer_state_t state) { +uint32_t layer_state_set_kb(uint32_t state) { // if we are on layer 1 if (state & (1<<1)){ // light num lock led diff --git a/keyboards/pearl/keymaps/phil/keymap.c b/keyboards/pearl/keymaps/phil/keymap.c index 492c4cb0c5..56326d423f 100755 --- a/keyboards/pearl/keymaps/phil/keymap.c +++ b/keyboards/pearl/keymaps/phil/keymap.c @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -layer_state_t layer_state_set_kb(layer_state_t state) { +uint32_t layer_state_set_kb(uint32_t state) { if (state & (1<. #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6963 -#define PRODUCT_ID 0x6964 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Koobaczech -#define PRODUCT Atlas - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/pearlboards/atlas/info.json b/keyboards/pearlboards/atlas/info.json index c3a924d0e4..2d5abf5b91 100644 --- a/keyboards/pearlboards/atlas/info.json +++ b/keyboards/pearlboards/atlas/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Atlas", - "maintainer": "Koobaczech", + "manufacturer": "Koobaczech", "url": "", + "maintainer": "Koobaczech", + "usb": { + "vid": "0x6963", + "pid": "0x6964", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/pearlboards/pandora/config.h b/keyboards/pearlboards/pandora/config.h index 5a9a997be5..46a887c6ab 100644 --- a/keyboards/pearlboards/pandora/config.h +++ b/keyboards/pearlboards/pandora/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6963 -#define PRODUCT_ID 0x6963 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Koobaczech -#define PRODUCT Pandora - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/pearlboards/pandora/info.json b/keyboards/pearlboards/pandora/info.json index 9e26364553..10c3bba7ed 100644 --- a/keyboards/pearlboards/pandora/info.json +++ b/keyboards/pearlboards/pandora/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pandora", + "manufacturer": "Koobaczech", "url": "", "maintainer": "Koobaczech", + "usb": { + "vid": "0x6963", + "pid": "0x6963", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0}, {"label":"0,14", "x":14, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,12", "x":12.75, "y":2}, {"label":"2,13", "x":13.75, "y":2, "w":1.25}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,10", "x":10, "y":4, "w":1.25}, {"label":"4,11", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":12.5, "y":4, "w":1.25}, {"label":"4,13", "x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/pearlboards/pearl/config.h b/keyboards/pearlboards/pearl/config.h index 002c2a5f5f..ff114094a1 100644 --- a/keyboards/pearlboards/pearl/config.h +++ b/keyboards/pearlboards/pearl/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6963 -#define PRODUCT_ID 0x6965 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Koobaczech -#define PRODUCT Pearl - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/pearlboards/pearl/info.json b/keyboards/pearlboards/pearl/info.json index 4a6619f394..a00c7b3cf9 100644 --- a/keyboards/pearlboards/pearl/info.json +++ b/keyboards/pearlboards/pearl/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pearl", - "maintainer": "Koobaczech", + "manufacturer": "Koobaczech", "url": "", + "maintainer": "Koobaczech", + "usb": { + "vid": "0x6963", + "pid": "0x6965", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/pearlboards/zeus/config.h b/keyboards/pearlboards/zeus/config.h index 7de94efcc2..19d14f701b 100644 --- a/keyboards/pearlboards/zeus/config.h +++ b/keyboards/pearlboards/zeus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6963 -#define PRODUCT_ID 0x6966 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Koobaczech -#define PRODUCT Zeus - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 diff --git a/keyboards/pearlboards/zeus/info.json b/keyboards/pearlboards/zeus/info.json index 1938a7ef6d..41a72b5fb6 100644 --- a/keyboards/pearlboards/zeus/info.json +++ b/keyboards/pearlboards/zeus/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Zeus", - "maintainer": "Koobaczech", + "manufacturer": "Koobaczech", "url": "", + "maintainer": "Koobaczech", + "usb": { + "vid": "0x6963", + "pid": "0x6966", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/pearlboards/zeuspad/config.h b/keyboards/pearlboards/zeuspad/config.h index 3c12bfae18..e4182d05ed 100644 --- a/keyboards/pearlboards/zeuspad/config.h +++ b/keyboards/pearlboards/zeuspad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6963 -#define PRODUCT_ID 0x6967 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Koobaczech -#define PRODUCT Zeuspad - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/pearlboards/zeuspad/info.json b/keyboards/pearlboards/zeuspad/info.json index 840d1a5b24..3ef471818a 100644 --- a/keyboards/pearlboards/zeuspad/info.json +++ b/keyboards/pearlboards/zeuspad/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Zeuspad", - "maintainer": "Koobaczech", + "manufacturer": "Koobaczech", "url": "", + "maintainer": "Koobaczech", + "usb": { + "vid": "0x6963", + "pid": "0x6967", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/peej/lumberjack/config.h b/keyboards/peej/lumberjack/config.h index ee993e9c99..3142738330 100644 --- a/keyboards/peej/lumberjack/config.h +++ b/keyboards/peej/lumberjack/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x706A -#define PRODUCT_ID 0x0002 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Peej -#define PRODUCT Lumberjack - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 10 diff --git a/keyboards/peej/lumberjack/info.json b/keyboards/peej/lumberjack/info.json index 8550b996b6..acc7e11fc3 100644 --- a/keyboards/peej/lumberjack/info.json +++ b/keyboards/peej/lumberjack/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Lumberjack", + "manufacturer": "Peej", "url": "https://github.com/peej/lumberjack-keyboard", "maintainer": "Peej", + "usb": { + "vid": "0x706A", + "pid": "0x0002", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x12": { "layout": [ diff --git a/keyboards/peej/rosaline/config.h b/keyboards/peej/rosaline/config.h index 603cad792f..9efd6c0ff7 100644 --- a/keyboards/peej/rosaline/config.h +++ b/keyboards/peej/rosaline/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x706A -#define PRODUCT_ID 0x0003 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Peej -#define PRODUCT Rosaline - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 8 diff --git a/keyboards/peej/rosaline/keymaps/via/keymap.c b/keyboards/peej/rosaline/keymaps/via/keymap.c deleted file mode 100644 index 1d6ac2ed82..0000000000 --- a/keyboards/peej/rosaline/keymaps/via/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2021 Paul James - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the 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_staggered_40( - KC_TAB, KC_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_GESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), -[1] = LAYOUT_staggered_40( - _______, KC_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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END -), -[2] = LAYOUT_staggered_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), -[3] = LAYOUT_staggered_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -), - -}; diff --git a/keyboards/peej/rosaline/info.json b/keyboards/peej/rosaline/ortho/info.json similarity index 53% rename from keyboards/peej/rosaline/info.json rename to keyboards/peej/rosaline/ortho/info.json index 8a6f71aae2..be47e6431d 100644 --- a/keyboards/peej/rosaline/info.json +++ b/keyboards/peej/rosaline/ortho/info.json @@ -1,63 +1,14 @@ { - "keyboard_name": "Rosaline", + "keyboard_name": "Rosaline Ortho", + "manufacturer": "Peej", "url": "https://github.com/peej/rosaline-keyboard", "maintainer": "Peej", + "usb": { + "vid": "0x706A", + "pid": "0x0003", + "device_version": "0.0.1" + }, "layouts": { - "LAYOUT_staggered_40": { - "layout": [ - { "x": 0, "y": 0, "w": 1.5 }, - { "x": 1, "y": 0 }, - { "x": 2, "y": 0 }, - { "x": 3, "y": 0 }, - { "x": 4, "y": 0 }, - { "x": 5, "y": 0 }, - { "x": 6, "y": 0 }, - { "x": 7, "y": 0 }, - { "x": 8, "y": 0 }, - { "x": 9, "y": 0 }, - { "x": 10, "y": 0 }, - { "x": 11, "y": 0 }, - { "x": 12, "y": 0 }, - { "x": 13, "y": 0, "w": 1.5 }, - { "x": 0, "y": 1, "w": 1.75 }, - { "x": 1, "y": 1 }, - { "x": 2, "y": 1 }, - { "x": 3, "y": 1 }, - { "x": 4, "y": 1 }, - { "x": 5, "y": 1 }, - { "x": 6, "y": 1 }, - { "x": 7, "y": 1 }, - { "x": 8, "y": 1 }, - { "x": 9, "y": 1 }, - { "x": 10, "y": 1 }, - { "x": 11, "y": 1 }, - { "x": 12, "y": 1, "w": 2.25 }, - { "x": 0, "y": 2, "w": 2.25 }, - { "x": 1, "y": 2 }, - { "x": 2, "y": 2 }, - { "x": 3, "y": 2 }, - { "x": 4, "y": 2 }, - { "x": 5, "y": 2 }, - { "x": 6, "y": 2 }, - { "x": 7, "y": 2 }, - { "x": 8, "y": 2 }, - { "x": 9, "y": 2 }, - { "x": 10, "y": 2 }, - { "x": 11, "y": 2, "w": 1.75 }, - { "x": 12, "y": 2 }, - { "x": 0, "y": 3, "w": 1.5 }, - { "x": 1, "y": 3, "w": 1.5 }, - { "x": 2, "y": 3, "w": 1.5 }, - { "x": 3, "y": 3, "w": 2.75 }, - { "x": 4, "y": 3 }, - { "x": 5, "y": 3, "w": 2.25 }, - { "x": 6, "y": 3 }, - { "x": 7, "y": 3 }, - { "x": 8, "y": 3 }, - { "x": 9, "y": 3 }, - { "x": 10, "y": 3 } - ] - }, "LAYOUT_ortho_4x15": { "layout": [ { "x": 0, "y": 0 }, diff --git a/keyboards/peej/rosaline/keymaps/ortho/keymap.c b/keyboards/peej/rosaline/ortho/keymaps/default/keymap.c similarity index 100% rename from keyboards/peej/rosaline/keymaps/ortho/keymap.c rename to keyboards/peej/rosaline/ortho/keymaps/default/keymap.c diff --git a/keyboards/peej/rosaline/keymaps/via-ortho/keymap.c b/keyboards/peej/rosaline/ortho/keymaps/via/keymap.c similarity index 100% rename from keyboards/peej/rosaline/keymaps/via-ortho/keymap.c rename to keyboards/peej/rosaline/ortho/keymaps/via/keymap.c diff --git a/keyboards/peej/rosaline/ortho/keymaps/via/rules.mk b/keyboards/peej/rosaline/ortho/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/peej/rosaline/ortho/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/peej/rosaline/ortho/ortho.h b/keyboards/peej/rosaline/ortho/ortho.h new file mode 100644 index 0000000000..b3287784c3 --- /dev/null +++ b/keyboards/peej/rosaline/ortho/ortho.h @@ -0,0 +1,57 @@ +/* Copyright 2021 Paul James + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "rosaline.h" + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │00 │40 │01 │41 │02 │42 │03 │43 │04 │44 │05 │45 │06 │46 │07 │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │10 │50 │11 │51 │12 │52 │13 │53 │14 │54 │15 │55 │16 │56 │17 │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │20 │60 │21 │61 │22 │62 │23 │63 │24 │64 │25 │65 │26 │66 │27 │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │30 │70 │31 │71 │32 │72 │33 │73 │34 │74 │35 │75 │36 │76 │37 │ + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + * ┌───────────────────────────┐ + * │73 │ 7u Space + * └───────────────────────────┘ + * ┌───────┐ ┌───────┐ + * 2u Left │32 │ │35 │ 2u Right + * └───────┘ └───────┘ + */ + +#define LAYOUT_ortho_4x15( \ + k00, k40, k01, k41, k02, k42, k03, k43, k04, k44, k05, k45, k06, k46, k07, \ + k10, k50, k11, k51, k12, k52, k13, k53, k14, k54, k15, k55, k16, k56, k17, \ + k20, k60, k21, k61, k22, k62, k23, k63, k24, k64, k25, k65, k26, k66, k27, \ + k30, k70, k31, k71, k32, k72, k33, k73, k34, k74, k35, k75, k36, k76, k37 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, k46, XXX }, \ + { k50, k51, k52, k53, k54, k55, k56, XXX }, \ + { k60, k61, k62, k63, k64, k65, k66, XXX }, \ + { k70, k71, k72, k73, k74, k75, k76, XXX } \ +} + +#define LED1 C5 +#define LED2 C4 diff --git a/keyboards/peej/rosaline/ortho/rules.mk b/keyboards/peej/rosaline/ortho/rules.mk new file mode 100644 index 0000000000..d1dde8af62 --- /dev/null +++ b/keyboards/peej/rosaline/ortho/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega328p + +# Bootloader selection +BOOTLOADER = usbasploader + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/peej/rosaline/readme.md b/keyboards/peej/rosaline/readme.md index 033faa34f2..2b176d30df 100644 --- a/keyboards/peej/rosaline/readme.md +++ b/keyboards/peej/rosaline/readme.md @@ -2,7 +2,7 @@ ## Through-hole 40% keyboard PCB for 60% cases -![juliet](https://github.com/peej/rosaline-keyboard/raw/master/images/pcb.jpg) +![Rosaline Staggered](https://raw.githubusercontent.com/peej/rosaline-keyboard/a40d60e95ee69630db0ea53d97c59b9e5db4851f/images/pcb-staggered-render.jpg) 40% staggered or 4x15 ortholinear PCB for 60% tray mount cases with only through hole components. @@ -11,8 +11,11 @@ Make example for this keyboard (after setting up your build environment): - make peej/rosaline:default + make peej/rosaline/staggered:default # for staggered PCBs + make peej/rosaline/ortho:default # for ortholinear PCBs ## Bootloader Use usbasploader in [hsgw's repository](https://github.com/hsgw/USBaspLoader/tree/plaid). + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/peej/rosaline/rosaline.h b/keyboards/peej/rosaline/rosaline.h index 1e41a2e95e..22125f3188 100644 --- a/keyboards/peej/rosaline/rosaline.h +++ b/keyboards/peej/rosaline/rosaline.h @@ -20,39 +20,11 @@ #define XXX KC_NO -#define LAYOUT_staggered_40( \ - k00, k01, k10, k20, k21, k30, k31, k40, k41, k50, k60, k61, k70, k71, \ - k02, k11, k12, k22, k23, k32, k33, k42, k51, k52, k62, k63, k72, \ - k03, k13, k14, k24, k34, k35, k43, k44, k53, k54, k64, k73, k74, \ - k04, k05, k15, k25, k45, k55, k56, k65, k66, k75, k76 \ -) \ -{ \ - { k00, k10, k20, k30, k40, k50, k60, k70 }, \ - { k01, k11, k21, k31, k41, k51, k61, k71 }, \ - { k02, k12, k22, k32, k42, k52, k62, k72 }, \ - { k03, k13, k23, k33, k43, k53, k63, k73 }, \ - { k04, k14, k24, k34, k44, k54, k64, k74 }, \ - { k05, k15, k25, k35, k45, k55, k65, k75 }, \ - { XXX, XXX, XXX, XXX, XXX, k56, k66, k76 }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ -} - -#define LAYOUT_ortho_4x15( \ - k00, k04, k10, k14, k20, k24, k30, k34, k40, k44, k50, k54, k60, k64, k70, \ - k01, k05, k11, k15, k21, k25, k31, k35, k41, k45, k51, k55, k61, k65, k71, \ - k02, k06, k12, k16, k22, k26, k32, k36, k42, k46, k52, k56, k62, k66, k72, \ - k03, k07, k13, k17, k23, k27, k33, k37, k43, k47, k53, k57, k63, k67, k73 \ -) \ -{ \ - { k00, k10, k20, k30, k40, k50, k60, k70 }, \ - { k01, k11, k21, k31, k41, k51, k61, k71 }, \ - { k02, k12, k22, k32, k42, k52, k62, k72 }, \ - { k03, k13, k23, k33, k43, k53, k63, k73 }, \ - { k04, k14, k24, k34, k44, k54, k64, XXX }, \ - { k05, k15, k25, k35, k45, k55, k65, XXX }, \ - { k06, k16, k26, k36, k46, k56, k66, XXX }, \ - { k07, k17, k27, k37, k47, k57, k67, XXX } \ -} +#if defined(KEYBOARD_peej_rosaline_staggered) + #include "staggered.h" +#elif defined(KEYBOARD_peej_rosaline_ortho) + #include "ortho.h" +#endif #define LED1 C5 #define LED2 C4 diff --git a/keyboards/peej/rosaline/rules.mk b/keyboards/peej/rosaline/rules.mk index d1dde8af62..928164362a 100644 --- a/keyboards/peej/rosaline/rules.mk +++ b/keyboards/peej/rosaline/rules.mk @@ -1,18 +1 @@ -# MCU name -MCU = atmega328p - -# Bootloader selection -BOOTLOADER = usbasploader - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output +DEFAULT_FOLDER = peej/rosaline/staggered diff --git a/keyboards/peej/rosaline/staggered/info.json b/keyboards/peej/rosaline/staggered/info.json new file mode 100644 index 0000000000..cd842ecaed --- /dev/null +++ b/keyboards/peej/rosaline/staggered/info.json @@ -0,0 +1,74 @@ +{ + "keyboard_name": "Rosaline Staggered", + "manufacturer": "Peej", + "url": "https://github.com/peej/rosaline-keyboard", + "maintainer": "Peej", + "usb": { + "vid": "0x706A", + "pid": "0x0003", + "device_version": "0.0.1" + }, + "layout_aliases": { + "LAYOUT_staggered_40": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0, "w":1.5}, + {"x":1.5, "y":0}, + {"x":2.5, "y":0}, + {"x":3.5, "y":0}, + {"x":4.5, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":10.5, "y":0}, + {"x":11.5, "y":0}, + {"x":12.5, "y":0}, + {"x":13.5, "y":0, "w":1.5}, + + {"x":0, "y":1, "w":1.75}, + {"x":1.75, "y":1}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":7.75, "y":1}, + {"x":8.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1, "w":2.25}, + + {"x":0, "y":2, "w":2.25}, + {"x":2.25, "y":2}, + {"x":3.25, "y":2}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2}, + {"x":11.25, "y":2}, + {"x":12.25, "y":2, "w":1.75}, + {"x":14, "y":2}, + + {"x":0, "y":3, "w":1.5}, + {"x":1.5, "y":3}, + {"x":2.5, "y":3, "w":1.5}, + {"x":4, "y":3, "w":2.75}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3, "w":2.25}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3} + ] + } + } +} diff --git a/keyboards/peej/rosaline/keymaps/default/keymap.c b/keyboards/peej/rosaline/staggered/keymaps/default/keymap.c similarity index 73% rename from keyboards/peej/rosaline/keymaps/default/keymap.c rename to keyboards/peej/rosaline/staggered/keymaps/default/keymap.c index fc659293f0..11f3831c44 100644 --- a/keyboards/peej/rosaline/keymaps/default/keymap.c +++ b/keyboards/peej/rosaline/staggered/keymaps/default/keymap.c @@ -36,11 +36,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Gui | Alt | Space | Space | Alt | Ctrl | Left | Down | Up | Rght | * `--------'------'--------'---------------------'------------'------'------'------'------'------'------' */ -[_QWERTY] = LAYOUT_staggered_40( - KC_TAB, KC_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_GESC, KC_A, KC_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, FN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +[_QWERTY] = LAYOUT_all( + KC_TAB, KC_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_GESC, KC_A, KC_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, FN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Function @@ -54,11 +54,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Ctrl | Gui | Alt | Space | Space | Alt | Ctrl | Left | Down | Up | Rght | * `--------'------'--------'---------------------'------------'------'------'------'------'------'------' */ -[_FUNCTION] = LAYOUT_staggered_40( - _______, KC_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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +[_FUNCTION] = LAYOUT_all( + _______, KC_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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ) }; diff --git a/keyboards/peej/rosaline/staggered/keymaps/via/keymap.c b/keyboards/peej/rosaline/staggered/keymaps/via/keymap.c new file mode 100644 index 0000000000..87c0717da6 --- /dev/null +++ b/keyboards/peej/rosaline/staggered/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2021 Paul James + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_TAB, KC_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_GESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), +[1] = LAYOUT_all( + _______, KC_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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), +[2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/peej/rosaline/staggered/keymaps/via/rules.mk b/keyboards/peej/rosaline/staggered/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/peej/rosaline/staggered/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/peej/rosaline/staggered/rules.mk b/keyboards/peej/rosaline/staggered/rules.mk new file mode 100644 index 0000000000..d1dde8af62 --- /dev/null +++ b/keyboards/peej/rosaline/staggered/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega328p + +# Bootloader selection +BOOTLOADER = usbasploader + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/peej/rosaline/staggered/staggered.h b/keyboards/peej/rosaline/staggered/staggered.h new file mode 100644 index 0000000000..cc2703c834 --- /dev/null +++ b/keyboards/peej/rosaline/staggered/staggered.h @@ -0,0 +1,57 @@ +/* Copyright 2021 Paul James + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "rosaline.h" + +/* + * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │00 │10 │01 │02 │12 │03 │13 │04 │14 │05 │06 │16 │07 │17 │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │11 │21 │22 │32 │23 │33 │24 │15 │25 │26 │36 │27 │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┬──────────┐ ┌──────┬───┬───┐ + * │30 │31 │41 │42 │43 │53 │34 │44 │35 │45 │46 │37 │47 │ │46 │37 │ 1u/2.75u RShift │46 │37 │47 │ 1.75u/1u/1u RShift + * ├─────┬──┴┬──┴──┬┴───┴───┴─┬─┴───┴──┬┴──┬┴──┬┴──┬┴──┬───┼───┤ └───┴──────────┘ └──────┴───┴───┘ + * │40 │50 │51 │52 │54 │55 │65 │56 │66 │57 │67 │ + * └─────┴───┴─────┴──────────┴────────┴───┴───┴───┴───┴───┴───┘ + * ┌───────────────────────────┬─────┬───┬─────┐ + * 7u Space │54 │56 │66 │57 │ Tsangan Right Mods + * └───────────────────────────┴─────┴───┴─────┘ + * ┌──────────┬───┬────────┬───┐ + * 2.75/1/2.25/1u │52 │54 │55 │65 │ + * └──────────┴───┴────────┴───┘ + */ + +#define LAYOUT_all( \ + k00, k10, k01, k02, k12, k03, k13, k04, k14, k05, k06, k16, k07, k17, \ + k20, k11, k21, k22, k32, k23, k33, k24, k15, k25, k26, k36, k27, \ + k30, k31, k41, k42, k43, k53, k34, k44, k35, k45, k46, k37, k47, \ + k40, k50, k51, k52, k54, k55, k65, k56, k66, k57, k67 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { XXX, XXX, XXX, XXX, XXX, k65, k66, k67 }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ +} + +#define LED1 C5 +#define LED2 C4 diff --git a/keyboards/peej/tripel/config.h b/keyboards/peej/tripel/config.h index 50b0cc8829..6f11bfb405 100644 --- a/keyboards/peej/tripel/config.h +++ b/keyboards/peej/tripel/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x706A -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Peej -#define PRODUCT Tripel - /* key matrix size */ #define MATRIX_ROWS 9 #define MATRIX_COLS 8 diff --git a/keyboards/peej/tripel/info.json b/keyboards/peej/tripel/info.json index 97d50880c4..01beef6aae 100644 --- a/keyboards/peej/tripel/info.json +++ b/keyboards/peej/tripel/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Tripel", + "manufacturer": "Peej", "url": "https://github.com/peej/tripel-keyboard", "maintainer": "Peej", + "usb": { + "vid": "0x706A", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_7u": { "layout": [ diff --git a/keyboards/pegasus/config.h b/keyboards/pegasus/config.h index 6f773da966..cf71fdab68 100644 --- a/keyboards/pegasus/config.h +++ b/keyboards/pegasus/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER melonbred -#define PRODUCT Pegasus - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/pegasus/info.json b/keyboards/pegasus/info.json index 238442b821..00faec71ec 100644 --- a/keyboards/pegasus/info.json +++ b/keyboards/pegasus/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "pegasus", + "keyboard_name": "Pegasus", + "manufacturer": "melonbred", "url": "", "maintainer": "melonbred", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/peranekofactory/tone/rev1/config.h b/keyboards/peranekofactory/tone/rev1/config.h index 38bfd6259c..fa69ad2a3f 100644 --- a/keyboards/peranekofactory/tone/rev1/config.h +++ b/keyboards/peranekofactory/tone/rev1/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PeranekoFactory -#define PRODUCT tone - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 8 diff --git a/keyboards/peranekofactory/tone/rev1/info.json b/keyboards/peranekofactory/tone/rev1/info.json index d877d5135e..29ee59e390 100644 --- a/keyboards/peranekofactory/tone/rev1/info.json +++ b/keyboards/peranekofactory/tone/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "tone", + "manufacturer": "PeranekoFactory", "url": "https://shop.yushakobo.jp/collections/keyboard-1/products/consign_tone-note", "maintainer": "PeranekoFactory", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}] diff --git a/keyboards/peranekofactory/tone/rev2/config.h b/keyboards/peranekofactory/tone/rev2/config.h index 38bfd6259c..fa69ad2a3f 100644 --- a/keyboards/peranekofactory/tone/rev2/config.h +++ b/keyboards/peranekofactory/tone/rev2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PeranekoFactory -#define PRODUCT tone - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 8 diff --git a/keyboards/peranekofactory/tone/rev2/info.json b/keyboards/peranekofactory/tone/rev2/info.json index d877d5135e..29ee59e390 100644 --- a/keyboards/peranekofactory/tone/rev2/info.json +++ b/keyboards/peranekofactory/tone/rev2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "tone", + "manufacturer": "PeranekoFactory", "url": "https://shop.yushakobo.jp/collections/keyboard-1/products/consign_tone-note", "maintainer": "PeranekoFactory", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}] diff --git a/keyboards/percent/booster/config.h b/keyboards/percent/booster/config.h index ecb1c9ec82..c70d73d313 100644 --- a/keyboards/percent/booster/config.h +++ b/keyboards/percent/booster/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5053 /* PS */ -#define PRODUCT_ID 0x4253 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Percent Studio -#define PRODUCT Booster - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/percent/booster/info.json b/keyboards/percent/booster/info.json index 2f5edb1d5f..5700e4ab7a 100644 --- a/keyboards/percent/booster/info.json +++ b/keyboards/percent/booster/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "booster", + "keyboard_name": "Booster", + "manufacturer": "Percent Studio", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5053", + "pid": "0x4253", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_numpad_5x4": { "layout": [ diff --git a/keyboards/percent/canoe/config.h b/keyboards/percent/canoe/config.h index 56793bab41..ebaaae28d9 100644 --- a/keyboards/percent/canoe/config.h +++ b/keyboards/percent/canoe/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x5053 /* PS */ -#define PRODUCT_ID 0x434E -#define DEVICE_VER 0x0200 -#define MANUFACTURER Percent Studios -#define PRODUCT CANOE - #define RGBLED_NUM 2 #define MATRIX_ROWS 5 diff --git a/keyboards/percent/canoe/info.json b/keyboards/percent/canoe/info.json index ca1bec5b89..b61cc7db5f 100644 --- a/keyboards/percent/canoe/info.json +++ b/keyboards/percent/canoe/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Canoe", - "maintainer": "qmk", + "keyboard_name": "CANOE", + "manufacturer": "Percent Studios", "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0x5053", + "pid": "0x434E", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_65_iso_blocker": { "layout": [{"label":"K0D", "x":0, "y":0}, {"label":"K0C", "x":1, "y":0}, {"label":"K0B", "x":2, "y":0}, {"label":"K0A", "x":3, "y":0}, {"label":"K09", "x":4, "y":0}, {"label":"K08", "x":5, "y":0}, {"label":"K07", "x":6, "y":0}, {"label":"K06", "x":7, "y":0}, {"label":"K05", "x":8, "y":0}, {"label":"K04", "x":9, "y":0}, {"label":"K03", "x":10, "y":0}, {"label":"K02", "x":11, "y":0}, {"label":"K01", "x":12, "y":0}, {"label":"K00", "x":13, "y":0, "w":2}, {"label":"K0E", "x":15, "y":0}, {"label":"K1D", "x":0, "y":1, "w":1.5}, {"label":"K1C", "x":1.5, "y":1}, {"label":"K1B", "x":2.5, "y":1}, {"label":"K1A", "x":3.5, "y":1}, {"label":"K19", "x":4.5, "y":1}, {"label":"K18", "x":5.5, "y":1}, {"label":"K17", "x":6.5, "y":1}, {"label":"K16", "x":7.5, "y":1}, {"label":"K15", "x":8.5, "y":1}, {"label":"K14", "x":9.5, "y":1}, {"label":"K13", "x":10.5, "y":1}, {"label":"K12", "x":11.5, "y":1}, {"label":"K11", "x":12.5, "y":1}, {"label":"K1E", "x":15, "y":1}, {"label":"K2D", "x":0, "y":2, "w":1.75}, {"label":"K2C", "x":1.75, "y":2}, {"label":"K2B", "x":2.75, "y":2}, {"label":"K2A", "x":3.75, "y":2}, {"label":"K29", "x":4.75, "y":2}, {"label":"K28", "x":5.75, "y":2}, {"label":"K27", "x":6.75, "y":2}, {"label":"K26", "x":7.75, "y":2}, {"label":"K25", "x":8.75, "y":2}, {"label":"K24", "x":9.75, "y":2}, {"label":"K23", "x":10.75, "y":2}, {"label":"K22", "x":11.75, "y":2}, {"label":"K10", "x":12.75, "y":2}, {"label":"K21", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"K2E", "x":15, "y":2}, {"label":"K3D", "x":0, "y":3, "w":1.25}, {"label":"K4A", "x":1.25, "y":3}, {"label":"K3C", "x":2.25, "y":3}, {"label":"K3B", "x":3.25, "y":3}, {"label":"K3A", "x":4.25, "y":3}, {"label":"K39", "x":5.25, "y":3}, {"label":"K38", "x":6.25, "y":3}, {"label":"K37", "x":7.25, "y":3}, {"label":"K36", "x":8.25, "y":3}, {"label":"K35", "x":9.25, "y":3}, {"label":"K34", "x":10.25, "y":3}, {"label":"K33", "x":11.25, "y":3}, {"label":"K32", "x":12.25, "y":3, "w":1.75}, {"label":"K30", "x":14, "y":3}, {"label":"K3E", "x":15, "y":3}, {"label":"K4D", "x":0, "y":4, "w":1.25}, {"label":"K4C", "x":1.25, "y":4, "w":1.25}, {"label":"K4B", "x":2.5, "y":4, "w":1.25}, {"label":"K48", "x":3.75, "y":4, "w":6.25}, {"label":"K44", "x":10, "y":4, "w":1.25}, {"label":"K43", "x":11.25, "y":4, "w":1.25}, {"label":"K42", "x":13, "y":4}, {"label":"K40", "x":14, "y":4}, {"label":"K4E", "x":15, "y":4}] diff --git a/keyboards/percent/canoe/keymaps/dhertz/keymap.c b/keyboards/percent/canoe/keymaps/dhertz/keymap.c index 7d855e8fa7..7e8170aefc 100644 --- a/keyboards/percent/canoe/keymaps/dhertz/keymap.c +++ b/keyboards/percent/canoe/keymaps/dhertz/keymap.c @@ -49,8 +49,8 @@ void keyboard_post_init_user(void) { rgblight_sethsv_teal(); } -layer_state_t layer_state_set_keymap(layer_state_t state) { - switch (get_highest_layer(state)) { +uint32_t layer_state_set_keymap(uint32_t state) { + switch (biton32(state)) { case 1: rgblight_sethsv_noeeprom_magenta(); break; diff --git a/keyboards/percent/canoe_gen2/config.h b/keyboards/percent/canoe_gen2/config.h index 2188d9b41c..d7df79cebe 100644 --- a/keyboards/percent/canoe_gen2/config.h +++ b/keyboards/percent/canoe_gen2/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x9C12 -#define PRODUCT_ID 0x89F0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Percent Studio -#define PRODUCT Canoe Gen2 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/percent/canoe_gen2/info.json b/keyboards/percent/canoe_gen2/info.json index b72b84beee..e24eab5be0 100644 --- a/keyboards/percent/canoe_gen2/info.json +++ b/keyboards/percent/canoe_gen2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Canoe Gen2", + "manufacturer": "Percent Studio", "url": "", "maintainer": "evyd13", + "usb": { + "vid": "0x9C12", + "pid": "0x89F0", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker_split_bs": { "layout": [ diff --git a/keyboards/percent/skog/config.h b/keyboards/percent/skog/config.h index 524fdc5ccf..65c9a65802 100644 --- a/keyboards/percent/skog/config.h +++ b/keyboards/percent/skog/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -#define VENDOR_ID 0x5053 /* PS */ -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0200 - -#define MANUFACTURER Percent Studios -#define PRODUCT Skog TKL - /* matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 14 diff --git a/keyboards/percent/skog/info.json b/keyboards/percent/skog/info.json index de5655118a..9f7c86cdd8 100644 --- a/keyboards/percent/skog/info.json +++ b/keyboards/percent/skog/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "skog", + "keyboard_name": "Skog TKL", + "manufacturer": "Percent Studios", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5053", + "pid": "0x422D", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT": { "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.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5, "w":1.25}, {"x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"x":10, "y":5.5, "w":1.25}, {"x":11.25, "y":5.5, "w":1.25}, {"x":12.5, "y":5.5, "w":1.25}, {"x":13.75, "y":5.5, "w":1.25}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}] diff --git a/keyboards/percent/skog_lite/config.h b/keyboards/percent/skog_lite/config.h index 15de9bbb89..2966a84aed 100644 --- a/keyboards/percent/skog_lite/config.h +++ b/keyboards/percent/skog_lite/config.h @@ -19,12 +19,6 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0x5053 /* PS */ -#define PRODUCT_ID 0x422D -#define DEVICE_VER 0x0200 -#define MANUFACTURER Percent Studios -#define PRODUCT Skog Lite - #define RGBLED_NUM 18 #define MATRIX_ROWS 7 diff --git a/keyboards/percent/skog_lite/info.json b/keyboards/percent/skog_lite/info.json index 09bcdc4381..fb3a71f01d 100644 --- a/keyboards/percent/skog_lite/info.json +++ b/keyboards/percent/skog_lite/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Skog Lite", + "manufacturer": "Percent Studios", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5053", + "pid": "0x422D", + "device_version": "2.0.0" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/phantom/config.h b/keyboards/phantom/config.h index b30adef9dd..35f2131fc5 100644 --- a/keyboards/phantom/config.h +++ b/keyboards/phantom/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x5B50 -#define DEVICE_VER 0x0003 -#define MANUFACTURER bpiphany -#define PRODUCT PHANTOM - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/phantom/info.json b/keyboards/phantom/info.json index 419ce4f491..1fbbdb73a4 100644 --- a/keyboards/phantom/info.json +++ b/keyboards/phantom/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Phantom", + "manufacturer": "bpiphany", "url": "https://deskthority.net/wiki/Phantom", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x5B50", + "device_version": "0.0.3" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/phase_studio/titan65/hotswap/config.h b/keyboards/phase_studio/titan65/hotswap/config.h index 2b8320814e..9b942b20d3 100644 --- a/keyboards/phase_studio/titan65/hotswap/config.h +++ b/keyboards/phase_studio/titan65/hotswap/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5054 -#define PRODUCT_ID 0xBB91 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Phase Studio -#define PRODUCT Titan 65 (hotswap) - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/phase_studio/titan65/hotswap/info.json b/keyboards/phase_studio/titan65/hotswap/info.json index 30fee696ce..6b9a2b80ac 100644 --- a/keyboards/phase_studio/titan65/hotswap/info.json +++ b/keyboards/phase_studio/titan65/hotswap/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Titan 65 (hotswap)", + "manufacturer": "Phase Studio", "url": "", "maintainer": "drashna", + "usb": { + "vid": "0x5054", + "pid": "0xBB91", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/phase_studio/titan65/soldered/config.h b/keyboards/phase_studio/titan65/soldered/config.h index 6ecde7d1f3..f94a86676c 100644 --- a/keyboards/phase_studio/titan65/soldered/config.h +++ b/keyboards/phase_studio/titan65/soldered/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5054 -#define PRODUCT_ID 0xBB92 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Phase Studio -#define PRODUCT Titan 65 (soldered) - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/phase_studio/titan65/soldered/info.json b/keyboards/phase_studio/titan65/soldered/info.json index 96bf7c05e9..6abbf8d0aa 100644 --- a/keyboards/phase_studio/titan65/soldered/info.json +++ b/keyboards/phase_studio/titan65/soldered/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Titan 65 (soldered)", + "manufacturer": "Phase Studio", "url": "", "maintainer": "drashna", + "usb": { + "vid": "0x5054", + "pid": "0xBB92", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/phoenix/config.h b/keyboards/phoenix/config.h index 81fc3677ff..9fb090dec0 100644 --- a/keyboards/phoenix/config.h +++ b/keyboards/phoenix/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x456B -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ErgoKB -#define PRODUCT Phoenix - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 7 diff --git a/keyboards/phoenix/info.json b/keyboards/phoenix/info.json index 65cdaaa338..85cffa1c31 100644 --- a/keyboards/phoenix/info.json +++ b/keyboards/phoenix/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Phoenix", + "manufacturer": "ErgoKB", "url": "ergokb.tw", "maintainer": "ErgoKB via lschyi", + "usb": { + "vid": "0x456B", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ergodox": { "layout": [ diff --git a/keyboards/phoenix/phoenix.c b/keyboards/phoenix/phoenix.c index 706a65b4de..a8e9a42a04 100644 --- a/keyboards/phoenix/phoenix.c +++ b/keyboards/phoenix/phoenix.c @@ -74,7 +74,7 @@ void manipulate_led(uint32_t led, bool on) { } -layer_state_t layer_state_set_kb(layer_state_t state) { +layer_state_t layer_state_set_kb(uint32_t state) { state = layer_state_set_user(state); uint8_t layer = get_highest_layer(state); diff --git a/keyboards/phrygian/ph100/config.h b/keyboards/phrygian/ph100/config.h index 68bd430736..1edf420b90 100644 --- a/keyboards/phrygian/ph100/config.h +++ b/keyboards/phrygian/ph100/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0C61 -#define DEVICE_VER 0x0100 -#define MANUFACTURER PhrygianDesign -#define PRODUCT ph100 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/phrygian/ph100/info.json b/keyboards/phrygian/ph100/info.json index 054e3955e0..85bac6c4ca 100644 --- a/keyboards/phrygian/ph100/info.json +++ b/keyboards/phrygian/ph100/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "ph100", + "manufacturer": "PhrygianDesign", "url": "https://phrygiandesign.com/products/ph100-mechanical-keyboard", "maintainer": "phrygiandesign", + "usb": { + "vid": "0xFEED", + "pid": "0x0C61", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pico/65keys/config.h b/keyboards/pico/65keys/config.h index e0cc6ea566..a97d03596c 100644 --- a/keyboards/pico/65keys/config.h +++ b/keyboards/pico/65keys/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x9692 -#define DEVICE_VER 0x0100 -#define MANUFACTURER Kumao Kobo -#define PRODUCT Pico Keyboard - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/pico/65keys/info.json b/keyboards/pico/65keys/info.json index c5c9c8a85f..f87dd24c22 100644 --- a/keyboards/pico/65keys/info.json +++ b/keyboards/pico/65keys/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pico Keyboard", + "manufacturer": "Kumao Kobo", "url": "https://github.com/kumaokobo/pico-keyboard/", "maintainer": "Kumao Kobo", + "usb": { + "vid": "0xFEED", + "pid": "0x9692", + "device_version": "1.0.0" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pico/70keys/config.h b/keyboards/pico/70keys/config.h index b2d07c9691..a97d03596c 100644 --- a/keyboards/pico/70keys/config.h +++ b/keyboards/pico/70keys/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x9692 -#define DEVICE_VER 0x0101 -#define MANUFACTURER Kumao Kobo -#define PRODUCT Pico Keyboard - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/pico/70keys/info.json b/keyboards/pico/70keys/info.json index 4c87ab3691..e70e1a3abf 100644 --- a/keyboards/pico/70keys/info.json +++ b/keyboards/pico/70keys/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pico Keyboard", + "manufacturer": "Kumao Kobo", "url": "https://github.com/kumaokobo/pico-keyboard/", "maintainer": "Kumao Kobo", + "usb": { + "vid": "0xFEED", + "pid": "0x9692", + "device_version": "1.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/picolab/frusta_fundamental/config.h b/keyboards/picolab/frusta_fundamental/config.h index 33389e3e82..8ebfa35d09 100644 --- a/keyboards/picolab/frusta_fundamental/config.h +++ b/keyboards/picolab/frusta_fundamental/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x614D -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PicoLab -#define PRODUCT Frusta Fundamental - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/picolab/frusta_fundamental/info.json b/keyboards/picolab/frusta_fundamental/info.json index bc6fb17e21..e64e1425f6 100644 --- a/keyboards/picolab/frusta_fundamental/info.json +++ b/keyboards/picolab/frusta_fundamental/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "frusta_fundamental", + "keyboard_name": "Frusta Fundamental", + "manufacturer": "PicoLab", "url": "https://picolab.hk", "maintainer": "PicoLab", + "usb": { + "vid": "0x614D", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pierce/config.h b/keyboards/pierce/config.h index 242b2ebf92..0855427bcd 100644 --- a/keyboards/pierce/config.h +++ b/keyboards/pierce/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER durken -#define PRODUCT pierce - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 diff --git a/keyboards/pierce/info.json b/keyboards/pierce/info.json index 7179076794..850741cd9d 100644 --- a/keyboards/pierce/info.json +++ b/keyboards/pierce/info.json @@ -1,50 +1,57 @@ { - "keyboard_name": "pierce", - "url": "https://github.com/durken1/pierce", - "maintainer": "durken1", + "keyboard_name": "pierce", + "manufacturer": "durken", + "url": "https://github.com/durken1/pierce", + "maintainer": "durken1", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_3": { "layout": [ - {"x":0, "y":1}, - {"x":1, "y":0.63}, - {"x":2, "y":0.5}, - {"x":3, "y":0.63}, - {"x":4, "y":0.75}, - {"x":7, "y":0.75}, - {"x":8, "y":0.63}, - {"x":9, "y":0.5}, - {"x":10, "y":0.63}, - {"x":11, "y":1}, + {"x":0, "y":0.5}, + {"x":1, "y":0.13}, + {"x":2, "y":0.0}, + {"x":3, "y":0.13}, + {"x":4, "y":0.25}, + {"x":7, "y":0.25}, + {"x":8, "y":0.13}, + {"x":9, "y":0.0}, + {"x":10, "y":0.13}, + {"x":11, "y":0.5}, - {"x":0, "y":2}, - {"x":1, "y":1.63}, - {"x":2, "y":1.5}, - {"x":3, "y":1.63}, - {"x":4, "y":1.75}, - {"x":7, "y":1.75}, - {"x":8, "y":1.63}, - {"x":9, "y":1.5}, - {"x":10, "y":1.63}, - {"x":11, "y":2}, + {"x":0, "y":1.5}, + {"x":1, "y":1.13}, + {"x":2, "y":1.0}, + {"x":3, "y":1.13}, + {"x":4, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.13}, + {"x":9, "y":1.0}, + {"x":10, "y":1.13}, + {"x":11, "y":1.5}, - {"x":0, "y":3}, - {"x":1, "y":2.63}, - {"x":2, "y":2.5}, - {"x":3, "y":2.63}, - {"x":4, "y":2.75}, - {"x":7, "y":2.75}, - {"x":8, "y":2.63}, - {"x":9, "y":2.5}, - {"x":10, "y":2.63}, - {"x":11, "y":3}, + {"x":0, "y":2.5}, + {"x":1, "y":2.13}, + {"x":2, "y":2.0}, + {"x":3, "y":2.13}, + {"x":4, "y":2.25}, + {"x":7, "y":2.25}, + {"x":8, "y":2.13}, + {"x":9, "y":2.0}, + {"x":10, "y":2.13}, + {"x":11, "y":2.5}, - {"x":2.5, "y":3.66}, - {"x":3.5, "y":4.0}, - {"x":4.5, "y":4.25}, + {"x":2.5, "y":3.16}, + {"x":3.5, "y":3.5}, + {"x":4.5, "y":3.75}, - {"x":7.5, "y":4.0}, - {"x":6.5, "y":4.25}, - {"x":8.5, "y":3.66}] + {"x":6.5, "y":3.75}, + {"x":7.5, "y":3.5}, + {"x":8.5, "y":3.16} + ] } } } diff --git a/keyboards/pimentoso/paddino02/rev1/config.h b/keyboards/pimentoso/paddino02/rev1/config.h index 87259cd2eb..3060794b42 100755 --- a/keyboards/pimentoso/paddino02/rev1/config.h +++ b/keyboards/pimentoso/paddino02/rev1/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD00D -#define PRODUCT_ID 0x0020 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Pimentoso -#define PRODUCT Paddino02 rev1 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/pimentoso/paddino02/rev1/info.json b/keyboards/pimentoso/paddino02/rev1/info.json index 8da1c8642f..bf9147e5f3 100644 --- a/keyboards/pimentoso/paddino02/rev1/info.json +++ b/keyboards/pimentoso/paddino02/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Paddino02 rev1", + "manufacturer": "Pimentoso", "url": "", "maintainer": "Pimentoso", + "usb": { + "vid": "0xD00D", + "pid": "0x0020", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pimentoso/paddino02/rev2/left/config.h b/keyboards/pimentoso/paddino02/rev2/left/config.h index d780f82c36..4bf4b1dcaf 100755 --- a/keyboards/pimentoso/paddino02/rev2/left/config.h +++ b/keyboards/pimentoso/paddino02/rev2/left/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD00D -#define PRODUCT_ID 0x0021 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Pimentoso -#define PRODUCT Paddino02 rev2 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/pimentoso/paddino02/rev2/left/info.json b/keyboards/pimentoso/paddino02/rev2/left/info.json index 2468b11a70..40a3bb14a0 100644 --- a/keyboards/pimentoso/paddino02/rev2/left/info.json +++ b/keyboards/pimentoso/paddino02/rev2/left/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Paddino02 rev2 (left)", + "manufacturer": "Pimentoso", "url": "", "maintainer": "Pimentoso", + "usb": { + "vid": "0xD00D", + "pid": "0x0021", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pimentoso/paddino02/rev2/right/config.h b/keyboards/pimentoso/paddino02/rev2/right/config.h index f080a9e918..3393107a06 100755 --- a/keyboards/pimentoso/paddino02/rev2/right/config.h +++ b/keyboards/pimentoso/paddino02/rev2/right/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD00D -#define PRODUCT_ID 0x0022 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Pimentoso -#define PRODUCT Paddino02 rev2 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/pimentoso/paddino02/rev2/right/info.json b/keyboards/pimentoso/paddino02/rev2/right/info.json index fde06194d9..9a341b606b 100644 --- a/keyboards/pimentoso/paddino02/rev2/right/info.json +++ b/keyboards/pimentoso/paddino02/rev2/right/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Paddino02 rev2 (right)", + "manufacturer": "Pimentoso", "url": "", "maintainer": "Pimentoso", + "usb": { + "vid": "0xD00D", + "pid": "0x0022", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pimentoso/touhoupad/config.h b/keyboards/pimentoso/touhoupad/config.h index 8fd4e78116..50ef700e06 100644 --- a/keyboards/pimentoso/touhoupad/config.h +++ b/keyboards/pimentoso/touhoupad/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD00D -#define PRODUCT_ID 0x0031 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Pimentoso -#define PRODUCT TouhouPad rev2 - #define MATRIX_ROWS 1 #define MATRIX_COLS 10 diff --git a/keyboards/pimentoso/touhoupad/info.json b/keyboards/pimentoso/touhoupad/info.json index 59fded1959..86cb56a1d5 100644 --- a/keyboards/pimentoso/touhoupad/info.json +++ b/keyboards/pimentoso/touhoupad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "TouhouPad", + "keyboard_name": "TouhouPad rev2", + "manufacturer": "Pimentoso", "url": "https://github.com/Pimentoso/TouhouPad_v2", "maintainer": "Pimentoso", + "usb": { + "vid": "0xD00D", + "pid": "0x0031", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pinky/3/config.h b/keyboards/pinky/3/config.h index 78192bc19e..ebb69a0119 100644 --- a/keyboards/pinky/3/config.h +++ b/keyboards/pinky/3/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x544E // "TN" -#define PRODUCT_ID 0x7033 // "P3" -#define DEVICE_VER 0x0001 -#define MANUFACTURER tamanishi -#define PRODUCT Pinky3 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/pinky/3/info.json b/keyboards/pinky/3/info.json index 15c6742f49..0fb7e5a6f6 100644 --- a/keyboards/pinky/3/info.json +++ b/keyboards/pinky/3/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pinky3", + "manufacturer": "tamanishi", "url": "", "maintainer": "tamanishi", + "usb": { + "vid": "0x544E", + "pid": "0x7033", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x7_4": { "layout": [ diff --git a/keyboards/pinky/4/config.h b/keyboards/pinky/4/config.h index f5a9024045..c7f2ab8ef6 100644 --- a/keyboards/pinky/4/config.h +++ b/keyboards/pinky/4/config.h @@ -16,13 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x544E // "TN" -#define PRODUCT_ID 0x7034 // "P4" -#define DEVICE_VER 0x0001 -#define MANUFACTURER tamanishi -#define PRODUCT Pinky4 - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/pinky/4/info.json b/keyboards/pinky/4/info.json index a0781224c3..373861b138 100644 --- a/keyboards/pinky/4/info.json +++ b/keyboards/pinky/4/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pinky4", + "manufacturer": "tamanishi", "url": "", "maintainer": "tamanishi", + "usb": { + "vid": "0x544E", + "pid": "0x7034", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_4x7_4": { "layout": [ diff --git a/keyboards/pisces/config.h b/keyboards/pisces/config.h index 163edb8727..ce65056d1a 100644 --- a/keyboards/pisces/config.h +++ b/keyboards/pisces/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6B6E -#define PRODUCT_ID 0x0000 -#define DEVICE_VER 0x0001 -#define MANUFACTURER knaruo -#define PRODUCT pisces - #define USE_SERIAL /* serial.c configuration for split keyboard */ diff --git a/keyboards/pisces/info.json b/keyboards/pisces/info.json index 749a1152d6..f70712c9f6 100644 --- a/keyboards/pisces/info.json +++ b/keyboards/pisces/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "pisces", + "manufacturer": "knaruo", "url": "https://github.com/knaruo/pisces", "maintainer": "knaruo", + "usb": { + "vid": "0x6B6E", + "pid": "0x0000", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x6_1": { "layout": [ diff --git a/keyboards/pixelspace/capsule65i/capsule65i.c b/keyboards/pixelspace/capsule65i/capsule65i.c new file mode 100644 index 0000000000..30c1fed88e --- /dev/null +++ b/keyboards/pixelspace/capsule65i/capsule65i.c @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "capsule65i.h" diff --git a/keyboards/pixelspace/capsule65i/capsule65i.h b/keyboards/pixelspace/capsule65i/capsule65i.h new file mode 100644 index 0000000000..0e0d125cfa --- /dev/null +++ b/keyboards/pixelspace/capsule65i/capsule65i.h @@ -0,0 +1,221 @@ +/* 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 + +#include "quantum.h" + +#define XXX KC_NO + +/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1F │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐1D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2F │ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴┬──┴────┬───┼───┤ └───┴────┘ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B│3C │3D │3F │ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┼───┬───┼───┼───┤ + * │40 │41 │42 │45 │49 │4A │4B │4C │4D │4F │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + * ┌────┬────┬────┬────────────────────────┬────┬────┐ + * │40 │41 │42 │45 │49 │4A │ Blocker + * └────┴────┴────┴────────────────────────┴────┴────┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┐ + * │40 │41 │42 │45 │4A │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_ansi_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K49, K4A, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_ansi_blocker_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K49, K4A, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_ansi_blocker_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K4A, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_ansi_blocker_tsangan_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K4A, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_iso_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_iso_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K49, K4A, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_iso_blocker_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K49, K4A, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_iso_blocker_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K4A, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D, XXX, K4F }, \ +} + +#define LAYOUT_65_iso_blocker_tsangan_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K41, K42, K45, K4A, K4C, K4D, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D, XXX, K4F }, \ +} diff --git a/keyboards/pixelspace/capsule65i/config.h b/keyboards/pixelspace/capsule65i/config.h new file mode 100644 index 0000000000..ac5e003bc8 --- /dev/null +++ b/keyboards/pixelspace/capsule65i/config.h @@ -0,0 +1,56 @@ +/* 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 + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F4, D1, B7, D0, F5 } +#define MATRIX_COL_PINS { D5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7, E2, B3, B1, B0, B2 } + +#define DIODE_DIRECTION COL2ROW + +#define LED_CAPS_LOCK_PIN F6 + +#define RGB_DI_PIN F7 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define 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 new file mode 100644 index 0000000000..b9af2398ef --- /dev/null +++ b/keyboards/pixelspace/capsule65i/info.json @@ -0,0 +1,1002 @@ +{ + "keyboard_name": "Capsule65i", + "manufacturer": "PixelSpace", + "url": "", + "maintainer": "PixelSpace", + "usb": { + "vid": "0xE061", + "pid": "0xE66E", + "device_version": "0.0.1" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "K00 (F4,D5)", "x": 0, "y": 0 }, + { "label": "K01 (F4,D2)", "x": 1, "y": 0 }, + { "label": "K02 (F4,D3)", "x": 2, "y": 0 }, + { "label": "K03 (F4,D4)", "x": 3, "y": 0 }, + { "label": "K04 (F4,D6)", "x": 4, "y": 0 }, + { "label": "K05 (F4,D7)", "x": 5, "y": 0 }, + { "label": "K06 (F4,B4)", "x": 6, "y": 0 }, + { "label": "K07 (F4,B5)", "x": 7, "y": 0 }, + { "label": "K08 (F4,B6)", "x": 8, "y": 0 }, + { "label": "K09 (F4,C6)", "x": 9, "y": 0 }, + { "label": "K0A (F4,C7)", "x": 10, "y": 0 }, + { "label": "K0B (F4,E2)", "x": 11, "y": 0 }, + { "label": "K0C (F4,B3)", "x": 12, "y": 0 }, + { "label": "K0D (F4,B1)", "x": 13, "y": 0 }, + { "label": "K0E (F4,B0)", "x": 14, "y": 0 }, + { "label": "K0F (F4,B2)", "x": 15, "y": 0 }, + { "label": "K10 (D1,D5)", "x": 0, "y": 1 ,"w":1.5}, + { "label": "K11 (D1,D2)", "x": 1.5, "y": 1}, + { "label": "K12 (D1,D3)", "x": 2.5, "y": 1 }, + { "label": "K13 (D1,D4)", "x": 3.5, "y": 1 }, + { "label": "K14 (D1,D6)", "x": 4.5, "y": 1 }, + { "label": "K15 (D1,D7)", "x": 5.5, "y": 1 }, + { "label": "K16 (D1,B4)", "x": 6.5, "y": 1 }, + { "label": "K17 (D1,B5)", "x": 7.5, "y": 1 }, + { "label": "K18 (D1,B6)", "x": 8.5, "y": 1 }, + { "label": "K19 (D1,C6)", "x": 9.5, "y": 1 }, + { "label": "K1A (D1,C7)", "x": 10.5, "y": 1 }, + { "label": "K1B (D1,E2)", "x": 11.5, "y": 1 }, + { "label": "K1C (D1,B3)", "x": 12.5, "y": 1 }, + { "label": "K1D (D1,B1)", "x": 13.5, "y": 1 ,"w":1.5}, + { "label": "K1F (D1,B2)", "x": 15, "y": 1 }, + { "label": "K20 (B7,D5)", "x": 0, "y": 2,"w":1.75 }, + { "label": "K21 (B7,D2)", "x": 1.75, "y": 2 }, + { "label": "K22 (B7,D3)", "x": 2.75, "y": 2 }, + { "label": "K23 (B7,D4)", "x": 3.75, "y": 2 }, + { "label": "K24 (B7,D6)", "x": 4.75, "y": 2 }, + { "label": "K25 (B7,D7)", "x": 5.75, "y": 2 }, + { "label": "K26 (B7,B4)", "x": 6.75, "y": 2 }, + { "label": "K27 (B7,B5)", "x": 7.75, "y": 2 }, + { "label": "K28 (B7,B6)", "x": 8.75, "y": 2 }, + { "label": "K29 (B7,C6)", "x": 9.75, "y": 2 }, + { "label": "K2A (B7,C7)", "x": 10.75, "y": 2 }, + { "label": "K2B (B7,E2)", "x": 11.75, "y": 2 }, + { "label": "K2C (B7,B3)", "x": 12.75, "y": 2 ,"w":2.25}, + { "label": "K2F (B7,B2)", "x": 15, "y": 2 }, + { "label": "K30 (D0,D5)", "x": 0, "y": 3 ,"w":1.25}, + { "label": "K31 (D0,D2)", "x": 1.25, "y": 3 }, + { "label": "K32 (D0,D3)", "x": 2.25, "y": 3 }, + { "label": "K33 (D0,D4)", "x": 3.25, "y": 3 }, + { "label": "K34 (D0,D6)", "x": 4.25, "y": 3 }, + { "label": "K35 (D0,D7)", "x": 5.25, "y": 3 }, + { "label": "K36 (D0,B4)", "x": 6.25, "y": 3 }, + { "label": "K37 (D0,B5)", "x": 7.25, "y": 3 }, + { "label": "K38 (D0,B6)", "x": 8.25, "y": 3 }, + { "label": "K39 (D0,C6)", "x": 9.25, "y": 3 }, + { "label": "K3A (D0,C7)", "x": 10.25, "y": 3 }, + { "label": "K3B (D0,E2)", "x": 11.25, "y": 3 }, + { "label": "K3C (D0,B3)", "x": 12.25, "y": 3 ,"w":1.75 }, + { "label": "K3D (D0,B1)", "x": 14, "y": 3 }, + { "label": "K3F (D0,B2)", "x": 15, "y": 3 }, + { "label": "K40 (F5,D5)", "x": 0, "y": 4 ,"w":1.25}, + { "label": "K41 (F5,D2)", "x": 1.25, "y": 4 ,"w":1.25}, + { "label": "K42 (F5,D3)", "x": 2.5, "y": 4 ,"w":1.25}, + { "label": "K45 (F5,D7)", "x": 3.75, "y": 4,"w":6.25 }, + { "label": "K49 (F5,C6)", "x": 10, "y": 4 }, + { "label": "K4A (F5,C7)", "x": 11, "y": 4 }, + { "label": "K4B (F5,E2)", "x": 12, "y": 4 }, + { "label": "K4C (F5,B3)", "x": 13, "y": 4 }, + { "label": "K4D (F5,B1)", "x": 14, "y": 4 }, + { "label": "K4F (F5,B2)", "x": 15, "y": 4 } + ] + }, + "LAYOUT_65_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Fn", "x":10, "y":4}, + {"label":"Ctrl", "x":11, "y":4}, + {"label":"RGB Toggle", "x":12, "y":4}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Backspace", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Fn", "x":10, "y":4}, + {"label":"Ctrl", "x":11, "y":4}, + {"label":"RGB Toggle", "x":12, "y":4}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Fn", "x":10, "y":4, "w":1.25}, + {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Backspace", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Fn", "x":10, "y":4, "w":1.25}, + {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"GUI", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Ctrl", "x":11, "y":4, "w":1.5}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Backspace", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"GUI", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Ctrl", "x":11, "y":4, "w":1.5}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Fn", "x":10, "y":4}, + {"label":"Ctrl", "x":11, "y":4}, + {"label":"RGB Toggle", "x":12, "y":4}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Backspace", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Fn", "x":10, "y":4}, + {"label":"Ctrl", "x":11, "y":4}, + {"label":"RGB Toggle", "x":12, "y":4}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Fn", "x":10, "y":4, "w":1.25}, + {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Backspace", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Fn", "x":10, "y":4, "w":1.25}, + {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"GUI", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Ctrl", "x":11, "y":4, "w":1.5}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Backspace", "x":14, "y":0}, + {"label":"Delete", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"End", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"GUI", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Ctrl", "x":11, "y":4, "w":1.5}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/pixelspace/capsule65i/keymaps/default/keymap.c b/keyboards/pixelspace/capsule65i/keymaps/default/keymap.c new file mode 100644 index 0000000000..255f03999e --- /dev/null +++ b/keyboards/pixelspace/capsule65i/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* 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 . + */ + +#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_HOME, 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_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_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, RGB_TOG, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_VAD, RGB_HUD + ), + +}; diff --git a/keyboards/pixelspace/capsule65i/keymaps/via/keymap.c b/keyboards/pixelspace/capsule65i/keymaps/via/keymap.c new file mode 100644 index 0000000000..ca2fe2b58b --- /dev/null +++ b/keyboards/pixelspace/capsule65i/keymaps/via/keymap.c @@ -0,0 +1,57 @@ +/* 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 . + */ + +#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_HOME, 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_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_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, RGB_TOG, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_VAD, RGB_HUD + ), + + [2] = LAYOUT_all( + + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( + + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/pixelspace/capsule65i/keymaps/via/rules.mk b/keyboards/pixelspace/capsule65i/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/pixelspace/capsule65i/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/pixelspace/capsule65i/readme.md b/keyboards/pixelspace/capsule65i/readme.md new file mode 100644 index 0000000000..57587ae749 --- /dev/null +++ b/keyboards/pixelspace/capsule65i/readme.md @@ -0,0 +1,17 @@ +# capsule65i +A customizable soldering 65% keyboard. +Support left shift, backspace split +* Keyboard Maintainer: [PixelSpace](https://github.com/PixelSpaceStudio) +* Hardware Supported: capsule65i +* Hardware Availability: [PixelSpace](https://github.com/PixelSpaceStudio) + +Make example for this keyboard (after setting up your build environment): + + make pixelspace/capsule65i: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 esc in the keyboard then replug +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` diff --git a/keyboards/pixelspace/capsule65i/rules.mk b/keyboards/pixelspace/capsule65i/rules.mk new file mode 100644 index 0000000000..36ea16195b --- /dev/null +++ b/keyboards/pixelspace/capsule65i/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +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 + +LAYOUTS = 65_ansi 65_ansi_blocker 65_ansi_blocker_split_bs 65_ansi_blocker_tsangan 65_ansi_split_bs 65_iso 65_iso_blocker 65_iso_blocker_split_bs 65_iso_split_bs diff --git a/keyboards/pizzakeyboards/pizza65/config.h b/keyboards/pizzakeyboards/pizza65/config.h index 505a573630..b0a6a3df2b 100644 --- a/keyboards/pizzakeyboards/pizza65/config.h +++ b/keyboards/pizzakeyboards/pizza65/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x504B // PK -#define PRODUCT_ID 0x707A // PZ -#define DEVICE_VER 0x0001 -#define MANUFACTURER pizzakeyboards -#define PRODUCT pizza65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/pizzakeyboards/pizza65/info.json b/keyboards/pizzakeyboards/pizza65/info.json index 0cd80f3f97..9a0fdb3370 100644 --- a/keyboards/pizzakeyboards/pizza65/info.json +++ b/keyboards/pizzakeyboards/pizza65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "pizza65", + "manufacturer": "pizzakeyboards", "url": "www.keyboards.pizza", "maintainer": "mm0nte", + "usb": { + "vid": "0x504B", + "pid": "0x707A", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/pjb/eros/config.h b/keyboards/pjb/eros/config.h index 038e13c9ad..d6b690d0dd 100644 --- a/keyboards/pjb/eros/config.h +++ b/keyboards/pjb/eros/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define VENDOR_ID 0x5042 // TG -#define PRODUCT_ID 0x4552 // JC -#define DEVICE_VER 0x0200 -#define MANUFACTURER PJB -#define PRODUCT Eros - #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/pjb/eros/info.json b/keyboards/pjb/eros/info.json index f639cfed1e..bda8ab15fb 100644 --- a/keyboards/pjb/eros/info.json +++ b/keyboards/pjb/eros/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "PJB eros", + "keyboard_name": "Eros", + "manufacturer": "PJB", "url": "https://github.com/602studios", "maintainer": "602studios", + "usb": { + "vid": "0x5042", + "pid": "0x4552", + "device_version": "2.0.0" + }, "layout_aliases": { "LAYOUT_all_f13": "LAYOUT_tkl_f13_ansi_split_bs_rshift", "LAYOUT_tkl_ansi_f13": "LAYOUT_tkl_f13_ansi", diff --git a/keyboards/pkb65/config.h b/keyboards/pkb65/config.h index 7c6af9f84a..c4c707d3e8 100644 --- a/keyboards/pkb65/config.h +++ b/keyboards/pkb65/config.h @@ -23,13 +23,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4D43 // MCKeebs -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MCKeebs -#define PRODUCT PKB65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/pkb65/info.json b/keyboards/pkb65/info.json index b09e8d8300..b9272dae2c 100644 --- a/keyboards/pkb65/info.json +++ b/keyboards/pkb65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "PKB65", + "manufacturer": "MCKeebs", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x4D43", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c index 98ec13085f..2dcf2f63b3 100644 --- a/keyboards/planck/ez/ez.c +++ b/keyboards/planck/ez/ez.c @@ -330,3 +330,22 @@ bool music_mask_kb(uint16_t keycode) { } } #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 diff --git a/keyboards/planck/keymaps/ariccb/config.h b/keyboards/planck/keymaps/ariccb/config.h index 464a8cd5db..322aa9277f 100644 --- a/keyboards/planck/keymaps/ariccb/config.h +++ b/keyboards/planck/keymaps/ariccb/config.h @@ -40,7 +40,6 @@ //#define MIDI_ADVANCED #define TAPPING_TERM 150 -#define TAPPING_TERM_PER_KEY #define IGNORE_MOD_TAP_INTERRUPT // #define IGNORE_MOD_TAP_INTERRUPT // #define HOLD_ON_OTHER_KEY_PRESS diff --git a/keyboards/planck/keymaps/ariccb/keymap.c b/keyboards/planck/keymaps/ariccb/keymap.c index 33d0a26273..c0b4e490fa 100644 --- a/keyboards/planck/keymaps/ariccb/keymap.c +++ b/keyboards/planck/keymaps/ariccb/keymap.c @@ -379,18 +379,9 @@ void usl_reset(qk_tap_dance_state_t *state, void *user_data) { // Associate our tap dance key with its functionality qk_tap_dance_action_t tap_dance_actions[] = { - [UNDS_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, usl_finished, usl_reset) + [UNDS_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, usl_finished, usl_reset, 175) }; -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(UNDS_LOWER): - return 175; - default: - return TAPPING_TERM; - } -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!process_select_word(keycode, record, SELWORD)) { return false; } if (!process_caps_word(keycode, record)) { return false; } @@ -670,4 +661,4 @@ void process_combo_event(uint16_t combo_index, bool pressed) { } break; } -} +} \ No newline at end of file diff --git a/keyboards/planck/keymaps/aviator/keymap.c b/keyboards/planck/keymaps/aviator/keymap.c index 7ff410c767..8fe66b3781 100644 --- a/keyboards/planck/keymaps/aviator/keymap.c +++ b/keyboards/planck/keymaps/aviator/keymap.c @@ -142,7 +142,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case LOWER: if (record->event.pressed) { layer_on(_LOWER); - uint8_t default_layer = get_highest_layer(default_layer_state); + uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { #ifdef BACKLIGHT_BREATHING breathing_enable(); @@ -151,7 +151,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); - uint8_t default_layer = get_highest_layer(default_layer_state); + uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { #ifdef BACKLIGHT_BREATHING breathing_self_disable(); @@ -164,7 +164,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case RAISE: if (record->event.pressed) { layer_on(_RAISE); - uint8_t default_layer = get_highest_layer(default_layer_state); + uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { #ifdef BACKLIGHT_BREATHING breathing_enable(); @@ -173,7 +173,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); - uint8_t default_layer = get_highest_layer(default_layer_state); + uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { #ifdef BACKLIGHT_BREATHING breathing_self_disable(); diff --git a/keyboards/planck/keymaps/bbaserdem/README.md b/keyboards/planck/keymaps/bbaserdem/README.md deleted file mode 100644 index c8e8c3963c..0000000000 --- a/keyboards/planck/keymaps/bbaserdem/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Planck Layout - -Current keymap is for rev4. -Audio is disabled in favor of RGB. -Check out [user readme](../../../../users/bbaserdem/README.md) for more info. - -# Build - -Get keyboard into reset mode, and then; - -``` -make planck/rev4:bbaserdem:dfu -``` - -Either use sudo or set up udev rules. diff --git a/keyboards/planck/keymaps/bbaserdem/config.h b/keyboards/planck/keymaps/bbaserdem/config.h deleted file mode 100755 index ac5460bda6..0000000000 --- a/keyboards/planck/keymaps/bbaserdem/config.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef CONFIG_KEYMAP_H -#define CONFIG_KEYMAP_H - -#include "config_common.h" - -// LED strip stuff -#ifdef RGBLIGHT_ENABLE -#define RGB_DI_PIN B2 -#define RGBLED_NUM 12 -#define RGBLIGHT_HUE_STEP 6 -#define RGBLIGHT_SAT_STEP 12 -#define RGBLIGHT_VAL_STEP 20 -#define RGBLIGHT_ANIMATIONS -#define RGBLIGHT_EFFECT_SNAKE_LENGTH 6 -#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 -#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 6 -#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 6 -#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 2000 -#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 -#endif - -#define ENCODER_RESOLUTION 4 - -#endif diff --git a/keyboards/planck/keymaps/bbaserdem/keymap.c b/keyboards/planck/keymaps/bbaserdem/keymap.c deleted file mode 100755 index 1fa8132ddb..0000000000 --- a/keyboards/planck/keymaps/bbaserdem/keymap.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * PLANCK - Dvorak turkish - * Keymap by @bbaserdem - * Dvorak layout with multiple features - * Most of the code is in the "user" directory. - * Check qmk_firmware/users/bbaserdem for the main part of the code - */ - -#include "planck.h" -#include "bbaserdem.h" - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // Main Dvorak layer - [_DV] = LAYOUT_planck_wrapper(DVORAK), - // Turkish and special character overlay - [_AL] = LAYOUT_planck_wrapper(ALTCHAR), - // Gaming layer - [_GA] = LAYOUT_planck_wrapper(GAME), - // Numbers layer - [_NU] = LAYOUT_planck_wrapper(NUMBERS), - // Settings layer - [_SE] = LAYOUT_planck_wrapper(SETTINGS), - // Mouse emulation layer - [_MO] = LAYOUT_planck_wrapper(MOUSE), - // Music mode - [_MU] = LAYOUT_planck_wrapper(MUSIC), -}; diff --git a/keyboards/planck/keymaps/bbaserdem/rules.mk b/keyboards/planck/keymaps/bbaserdem/rules.mk deleted file mode 100755 index b9b589e8d2..0000000000 --- a/keyboards/planck/keymaps/bbaserdem/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -# Build options - -BACKLIGHT_ENABLE = yes # Switch LEDs -MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses -RGBLIGHT_ENABLE = yes # LED strips -TAP_DANCE_ENABLE = no # Use multi-tap features -AUDIO_ENABLE = yes # Audio stuff diff --git a/keyboards/planck/keymaps/charlesrocket/keymap.c b/keyboards/planck/keymaps/charlesrocket/keymap.c index bfe61294af..cec3f0186a 100644 --- a/keyboards/planck/keymaps/charlesrocket/keymap.c +++ b/keyboards/planck/keymaps/charlesrocket/keymap.c @@ -101,7 +101,7 @@ void set_layer_color(int layer) { void rgb_matrix_indicators_user(void) { if (g_suspend_state || keyboard_config.disable_layer_led) { return; } - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case 0: set_layer_color(0); break; diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 8041e0bada..3453d41746 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -165,7 +165,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_planck_grid( _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/planck/keymaps/grahampheath/keymap.c b/keyboards/planck/keymaps/grahampheath/keymap.c index eb5401eabd..babe67c442 100644 --- a/keyboards/planck/keymaps/grahampheath/keymap.c +++ b/keyboards/planck/keymaps/grahampheath/keymap.c @@ -231,7 +231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool has_layer_changed = true; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); static uint8_t old_layer = 0; if (old_layer != layer) { diff --git a/keyboards/planck/keymaps/muppetjones/.clang-format b/keyboards/planck/keymaps/muppetjones/.clang-format new file mode 100644 index 0000000000..df3dbd17b4 --- /dev/null +++ b/keyboards/planck/keymaps/muppetjones/.clang-format @@ -0,0 +1,26 @@ +--- +BasedOnStyle: Google +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: 'true' +AlignConsecutiveDeclarations: 'true' +AlignOperands: 'true' +AllowAllParametersOfDeclarationOnNextLine: 'false' +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: 'false' +BinPackArguments: 'true' +BinPackParameters: 'true' +ColumnLimit: '160' +IndentCaseLabels: 'true' +IndentPPDirectives: AfterHash +IndentWidth: '4' +MaxEmptyLinesToKeep: '1' +PointerAlignment: Right +SortIncludes: 'false' +SpaceBeforeAssignmentOperators: 'true' +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: 'false' +TabWidth: '4' +UseTab: Never + +... diff --git a/keyboards/planck/keymaps/muppetjones/config.h b/keyboards/planck/keymaps/muppetjones/config.h new file mode 100644 index 0000000000..1046d21499 --- /dev/null +++ b/keyboards/planck/keymaps/muppetjones/config.h @@ -0,0 +1,56 @@ + /* Copyright 2020 Stephen Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#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 + +/* + * Other options + */ + +// Enable lighting layers +#define RGBLIGHT_LAYERS +#define RGBLIGHT_SLEEP + +// Change "hold" time (default is 200 ms) +#define TAPPING_TERM 200 + +// Prevent normal rollover on alphas from accidentally triggering mods. +#define IGNORE_MOD_TAP_INTERRUPT + +// Enable rapid switch from tap to hold, disables double tap hold auto-repeat. +#define TAPPING_FORCE_HOLD diff --git a/keyboards/planck/keymaps/muppetjones/keymap.c b/keyboards/planck/keymaps/muppetjones/keymap.c new file mode 100644 index 0000000000..518ab43233 --- /dev/null +++ b/keyboards/planck/keymaps/muppetjones/keymap.c @@ -0,0 +1,403 @@ +/* Copyright 2020 Stephen Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * qmk compile -kb planck/rev6 -km muppetjones + */ + +#include QMK_KEYBOARD_H +#include "muse.h" +#include "muppetjones.h" + +#define LAYOUT_planck_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__) + +/* Extend layers from muppetjones.h + _CLMK_DH = 0, + _QWERTY + _MOUSE, + _LOWER, + _RAISE, + _NAV, + _ADJUST, + */ +enum planck_layers { + _PLOVER = _ADJUST + 1, +}; + +enum planck_keycodes { + PLOVER = SAFE_RANGE, + BACKLIT, + EXT_PLV, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + +/* Colemak DH II + * ,-----------------------------------------------------------------------------------. + * | Q | W | F | P | B | Del | Bksp | J | L | U | Y | ; | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | A | R | S | T | G | | " | M | N | E | I | O | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Z | X | C | D | V SFT| Enter| Tab | K | H | , | . | / | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt |HY_ESC|Lower | Space |Raise |HY_ESC| Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CLMK_DH] = LAYOUT_planck_wrapper( + __COLEMAK_MOD_DH_L1________________________, KC_DEL, KC_BSPC, __COLEMAK_MOD_DH_R1_W_QUOT_________________, + __COLEMAK_MOD_DH_L2_W_GACS_________________, CAPSWRD, KC_QUOT, __COLEMAK_MOD_DH_R2_W_SCAG_________________, + __COLEMAK_MOD_DH_L3_W_SFTV_________________, KC_ENT, KC_TAB, __COLEMAK_MOD_DH_R3________________________, + TD_LAYR, XXXXXXX, XXXXXXX, HY_ESC, LOW_ENT, KC_BSPC, KC_BSPC, RAI_SPC, HY_ESC, KC_BSPC, XXXXXXX, XXXXXXX +), + +/* 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_wrapper( + __QWERTY_L1________________________________, _______, _______, __QWERTY_R1________________________________, + __QWERTY_L2________________________________, _______, _______, __QWERTY_R2________________________________, + __QWERTY_L3________________________________, _______, _______, __QWERTY_R3________________________________, + __BLANK____________________________________, _______, _______, __BLANK____________________________________ +), + +/* MOUSE + * No encoders. Just an empty layer. + */ +[_MOUSE] = LAYOUT_planck_wrapper( + __BLANK____________________________________, _______, _______, __BLANK____________________________________, + __BLANK____________________________________, _______, _______, __BLANK____________________________________, + __BLANK____________________________________, _______, _______, __BLANK____________________________________, + __BLANK____________________________________, _______, _______, __BLANK____________________________________ +), + +// /* Colemak DH +// * ,-----------------------------------------------------------------------------------. +// * | Tab | Q | W | F | P | B | J | L | U | Y | ; | Bksp | +// * |------+------+------+------+------+------+------+------+------+------+------+------| +// * | Esc | A | R | S | T | G | M | N | E | I | O | " | +// * |------+------+------+------+------+------+------+------+------+------+------+------| +// * | Shift| Z | X | C | D | V | K | H | , | . | / |Enter | +// * |------+------+------+------+------+------+------+------+------+------+------+------| +// * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +// * `-----------------------------------------------------------------------------------' +// */ +// [_CLMK_DH] = 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, +// HY_ESC, HOME_A, HOME_R, HOME_S, HOME_T, KC_G, KC_M, HOME_N, HOME_E, HOME_I, HOME_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_SFTENT, +// KC_LCTL, NUMPD, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX +// ), +/* Lower (numpad, symbols) + * ,-----------------------------------------------------------------------------------. + * | | | ( | ) | ~ | | | | 7 & | 8 * | 9 ( | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | { | } | ` | | | - _ | 4 $ | 5 % | 6 ^ | * | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | [ | ] | | | | = + | 1 ! | 2 @ | 3 # | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | Space | | 0 | . | | | + * `-----------------------------------------------------------------------------------' + * 21.02.22: Removed F keys. + * 21.03.28: Completely revamped to contain 10-key numpad and symbols. + */ +[_LOWER] = LAYOUT_planck_wrapper( + __SYMBOLS_L1_______________________________, _______, _______, __NUMPAD_R1________________________________, + __SYMBOLS_L2_______________________________, _______, _______, __NUMPAD_R2________________________________, + __SYMBOLS_L3_______________________________, _______, _______, __NUMPAD_R3________________________________, + _______, _______, _______, _______, _______, _______, _______, __NUMPAD_R4________________________________ +), + +/* Raise +* ,-----------------------------------------------------------------------------------. +* | ` | | | | | | | Pg Up| HOME | | END | | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | GUI | ALT | CTL | SFT | | | | Pg Dn| LEFT | DOWN | UP |RIGHT | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | | | | | | | | | | | | | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | | | | | | | | Next | Vol- | Vol+ | Play | +* `-----------------------------------------------------------------------------------' +* 21.02.22: Removed F keys and replaced with useful programming keys. +*/ +[_RAISE] = LAYOUT_planck_wrapper( + XXXXXXX, XXXXXXX, KC_LPRN, KC_RPRN, XXXXXXX, _______, _______, __NAV_R1___________________________________, + KC_LGUI, KC_LALT, HR_LBRC, HR_RBRC, KC_MINS, _______, _______, __NAV_R2___________________________________, + XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_EQL, _______, _______, __NAV_R3___________________________________, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Nav + * Available in raise. + */ +[_NAV] = LAYOUT_planck_wrapper( + __BLANK____________________________________, _______, _______, __BLANK____________________________________, + __BLANK____________________________________, _______, _______, __BLANK____________________________________, + __BLANK____________________________________, _______, _______, __BLANK____________________________________, + __BLANK____________________________________, _______, _______, __BLANK____________________________________ +), + +/* 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-| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Brite |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|CLMKII|Plover| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|ClmkDH| | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_wrapper( + __ADJUST_L1________________________________, MUV_IN, PLOVER, __MEDIA_R1_________________________________, + __ADJUST_L2________________________________, MUV_DE, CLMK_DH, __MEDIA_R2_________________________________, + __ADJUST_L3________________________________, MU_MOD, QWERTY, __MEDIA_R3_________________________________, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +) + +/* + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' +[_ADJUST] = LAYOUT_planck_grid( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + */ + // clang-format on +}; + +#ifdef AUDIO_ENABLE +float plover_song[][2] = SONG(PLOVER_SOUND); +float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +#define LIGHT_GOLDEN 30, 255, 100 +#define LIGHT_MAGENTA 213, 255, 100 +#define LIGHT_AZURE 148, 255, 100 + +// Define light layers +// -- e.g., light up LEDS 3-6 with RED when the numpd layer is active +const rgblight_segment_t PROGMEM rgb_clmk_dh[] = RGBLIGHT_LAYER_SEGMENTS({0, 9, HSV_RED}); +const rgblight_segment_t PROGMEM rgb_lower[] = RGBLIGHT_LAYER_SEGMENTS({0, 9, LIGHT_GOLDEN}); +const rgblight_segment_t PROGMEM rgb_raise[] = RGBLIGHT_LAYER_SEGMENTS({0, 9, LIGHT_MAGENTA}); +const rgblight_segment_t PROGMEM rgb_numpd[] = RGBLIGHT_LAYER_SEGMENTS({0, 9, LIGHT_AZURE}); + +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(rgb_clmk_dh, rgb_lower, rgb_raise, rgb_numpd); + +void keyboard_post_init_user(void) { + rgblight_layers = rgb_layers; // Enable the LED layers +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER)); + rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE)); + return state; +} + +bool process_record_keymap(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif +#ifdef KEYBOARD_planck_rev5 + writePinLow(E6); +#endif + } else { + unregister_code(KC_RSFT); +#ifdef KEYBOARD_planck_rev5 + writePinHigh(E6); +#endif + } + 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; +} + +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(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; +} + +void 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: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + } + } +} + +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 +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/planck/keymaps/muppetjones/readme.md b/keyboards/planck/keymaps/muppetjones/readme.md new file mode 100644 index 0000000000..de9680b498 --- /dev/null +++ b/keyboards/planck/keymaps/muppetjones/readme.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboards/planck/keymaps/muppetjones/rules.mk b/keyboards/planck/keymaps/muppetjones/rules.mk new file mode 100644 index 0000000000..1db412715d --- /dev/null +++ b/keyboards/planck/keymaps/muppetjones/rules.mk @@ -0,0 +1,5 @@ +SRC += muse.c + +MOUSEKEY_ENABLE = yes +TAP_DANCE_ENABLE = yes +COMBO_ENABLE = yes diff --git a/keyboards/planck/keymaps/oryx/keymap.c b/keyboards/planck/keymaps/oryx/keymap.c index fae5a94713..0368c98420 100644 --- a/keyboards/planck/keymaps/oryx/keymap.c +++ b/keyboards/planck/keymaps/oryx/keymap.c @@ -94,7 +94,7 @@ void rgb_matrix_indicators_user(void) { if (keyboard_config.disable_layer_led) { return; } - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case 1: set_layer_color(0); break; diff --git a/keyboards/planck/keymaps/prog_qgmlwb/.gitignore b/keyboards/planck/keymaps/prog_qgmlwb/.gitignore new file mode 100644 index 0000000000..a39c642249 --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/.gitignore @@ -0,0 +1,3 @@ +build +printout +scripts diff --git a/keyboards/planck/keymaps/prog_qgmlwb/config.h b/keyboards/planck/keymaps/prog_qgmlwb/config.h new file mode 100644 index 0000000000..b52b41746a --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/config.h @@ -0,0 +1,12 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#define ENABLE_COMPILE_KEYCODE + +// Userspace defines +// #define SPLIT_SPACE +// #define NO_SPECIAL_SHIFT +#define LAYER_EN QGMLWB_EN +#define LAYER_NO QGMLWB_NO diff --git a/keyboards/planck/keymaps/prog_qgmlwb/keymap.c b/keyboards/planck/keymaps/prog_qgmlwb/keymap.c new file mode 100644 index 0000000000..72e67ac3e7 --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "src/layouts.h" diff --git a/keyboards/planck/keymaps/prog_qgmlwb/readme.md b/keyboards/planck/keymaps/prog_qgmlwb/readme.md new file mode 100644 index 0000000000..e9117507cd --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/readme.md @@ -0,0 +1,82 @@ +# PROG-QGMLWB + +The prog-qgmlwb layout is a QMK firmware layout for the Planck keyboard. + +For letter placement, the layout uses the optimized QGMLWB layout from the [Carpalx project](http://mkweb.bcgsc.ca/carpalx). + +> The carpalx project introduces a quantitative model for typing effort and applies it to (a) evaluate QWERTY and popular alternatives, such as Dvorak and Colemak and (b) find the keyboard layouts that minimize typing effort for a given set of input documents. + +Carpalx named "QGMLWB" as the fully optimized layout according to the English alphabet, with an effort reduction of approximately 44.4%. + +The programming part of the name is inspired by the modified version of Dvorak, [Programmer Dvorak](http://programmer-dvorak.appspot.com), where the symbols have been adjusted logically for developers. + +The final layout swaps some Dvorak symbols and combines them with the QGMLWB letters, giving it the name **prog-qgmlwb**. + +The layout includes an English and Norwegian layer, whereas the Norwegian one only adds the three letters; æ, ø, and å. + +## Typing layers + +![Typing layers](https://i.imgur.com/QaHnqW8.png) + +## Adjust layer + +![Adjust layer](https://i.imgur.com/63I69P0.png) + +## Usage + +### Clone the QMK Firmware repo + +```bash +git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git +``` + +### Move into this keymap + +```bash +cd /keyboards/planck/keymaps/prog_qgmlwb +``` + +### Initialize QMK the first time + +Set default keyboard: + +```bash +qmk config user.keyboard=planck/ +``` + +Set default keymap: + +```bash +qmk config user.keymap=prog_qgmlwb +``` + +Initialize libraries: + +```bash +qmk setup +``` + +### Compile and flash the keyboard + +```bash +qmk compile +qmk flash +``` + +## QMK documentation + +Found in the QMK docs: + +## Printing layout + +This keymap uses macros such that [qmk configurator](https://config.qmk.fm) cannot match its behavior. The images was designed using [Figma](https://figma.com). + +## Future additions + +Features disabled due to the lack of storage space in the Planck PCB version 5: + +- Audio +- Plover mode +- Use alt codes to fix missing characters in the english layout +- Improve documentation of code and readme files +- Reimplement right version of modifier keys through raise+space diff --git a/keyboards/planck/keymaps/prog_qgmlwb/rules.mk b/keyboards/planck/keymaps/prog_qgmlwb/rules.mk new file mode 100644 index 0000000000..7431d9e0b7 --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/rules.mk @@ -0,0 +1,6 @@ +# Compiler source files +SRC += src/layouts.c + +USER_NAME := davidkristoffersen + +SIZE_OPTIMIZE = yes diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/enums.h b/keyboards/planck/keymaps/prog_qgmlwb/src/enums.h new file mode 100644 index 0000000000..0c03b5dd04 --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/src/enums.h @@ -0,0 +1,23 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +// Layouts enum +enum keyboard_layouts { + QGMLWB_NO, + QGMLWB_EN, + + QWERTY, + COLEMAK, + DVORAK, + + NORMAL_LOWER, + NORMAL_RAISE, + + QGMLWB_LOWER, + QGMLWB_RAISE, + + ADJUST, + NUMPAD, +}; diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.c b/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.c new file mode 100644 index 0000000000..54ff411d86 --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.c @@ -0,0 +1,25 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "layouts.h" +#ifdef LAYER_NO +# include "sendstring_norwegian.h" +#endif + +KEYMAP keymaps [][MATRIX_ROWS][MATRIX_COLS] = { + [QGMLWB_NO] = qgmlwb_no_map, + [QGMLWB_EN] = qgmlwb_en_map, + + [QWERTY] = qwerty_map, + [COLEMAK] = colemak_map, + [DVORAK] = dvorak_map, + + [NORMAL_LOWER] = normal_lower_map, + [NORMAL_RAISE] = normal_raise_map, + + [QGMLWB_LOWER] = qgmlwb_lower_map, + [QGMLWB_RAISE] = qgmlwb_raise_map, + + [ADJUST] = adjust_map, + [NUMPAD] = numpad_map, +}; diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.h b/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.h new file mode 100644 index 0000000000..19cbefb9ab --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.h @@ -0,0 +1,27 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include QMK_KEYBOARD_H + +#include "davidkristoffersen.h" +#include "enums.h" + +#include "normal.h" +#include "qgmlwb.h" +#include "special.h" + +#define KEYMAP const uint16_t PROGMEM + +// Layouts keycodes +#define lower MO(NORMAL_LOWER) +#define raise MO(NORMAL_RAISE) + +#define QLower MO(QGMLWB_LOWER) +#define QRaise MO(QGMLWB_RAISE) + +#define adjust MO(ADJUST) +#define numpad MO(NUMPAD) + +extern KEYMAP keymaps [][MATRIX_ROWS][MATRIX_COLS]; diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/normal.h b/keyboards/planck/keymaps/prog_qgmlwb/src/normal.h new file mode 100644 index 0000000000..fa5c84d217 --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/src/normal.h @@ -0,0 +1,96 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include "layouts.h" + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ;: |Return| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | ,< | .> | /? | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt |NumPad| GUI | Lower| Space| Space| Raise| Left | Down | Up | Right| + * `-----------------------------------------------------------------------------------' +*/ +#define qwerty_map LAYOUT_ortho_4x12(\ + 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_ENT,\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT,\ + KC_LCTL, KC_LALT, numpad, KC_LGUI, lower, KC_SPC, KC_SPC, raise, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT\ +) + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O |Return| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt |NumPad| GUI | Lower| Space| Space| Raise| Left | Down | Up | Right| + * `-----------------------------------------------------------------------------------' +*/ +#define colemak_map LAYOUT_ortho_4x12(\ + 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_ENT,\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT,\ + KC_LCTL, KC_LALT, numpad, KC_LGUI, lower, KC_SPC, KC_SPC, raise, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT\ +) + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S |Return| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt |NumPad| GUI | Lower| Space| Space| Raise| Left | Down | Up | Right| + * `-----------------------------------------------------------------------------------' +*/ +#define dvorak_map LAYOUT_ortho_4x12(\ + 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_ENT,\ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SLSH,\ + KC_LCTL, KC_LALT, numpad, KC_LGUI, lower, KC_SPC, KC_SPC, raise, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT\ +) + +/* Lower - Normal + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | End | Home | XXXX | XXXX | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' +*/ +#define normal_lower_map LAYOUT_ortho_4x12(\ + 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, KC_END, KC_HOME, XXXXXXX, XXXXXXX, _______,\ + _______, _______, _______, _______, _______, _______, _______, adjust, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY\ +) + +/* Raise - Normal + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | # | \ | PgDn | PgUp | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' +*/ +#define normal_raise_map LAYOUT_ortho_4x12(\ + 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_HASH, KC_BSLS, KC_PGDN, KC_PGUP, _______,\ + _______, _______, _______, _______, adjust, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY\ +) diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/qgmlwb.h b/keyboards/planck/keymaps/prog_qgmlwb/src/qgmlwb.h new file mode 100644 index 0000000000..bad7a11615 --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/src/qgmlwb.h @@ -0,0 +1,63 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include "layouts.h" + +/* QGMLWB + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | G | M | L | W | B | Y | U | V | '" | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | D | S | T | N | R | I | A | E | O | H |Return| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | F | J | K | P | ,; | .: | -_ | \| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt |NumPad| GUI | Lower|LSpace|RSpace| Raise| Left | Down | Up | Right| + * `-----------------------------------------------------------------------------------' +*/ +// English Layout +#define qgmlwb_en_map LAYOUT_ortho_4x12(\ + KC_TAB, KC_Q, KC_G, KC_M, KC_L, KC_W, KC_B, KC_Y, KC_U, KC_V, KC_QUOT, KC_BSPC,\ + KC_ESC, KC_D, KC_S, KC_T, KC_N, KC_R, KC_I, KC_A, KC_E, KC_O, KC_H, KC_ENT,\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_F, KC_J, KC_K, KC_P, KC_COMM, KC_DOT, KC_MINS, KC_BSLS,\ + KC_LCTL, KC_LALT, numpad, KC_LGUI, QLower, KC_LSPC, KC_RSPC, QRaise, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT\ +) +// Norwegian Layout +#define qgmlwb_no_map qgmlwb_en_map + +/* Lower - QGMLWB + * ,-----------------------------------------------------------------------------------. + * | ! | % | [ | { | ( | < | > | ) | } | ] | & | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | Mute | XXXX | Refr | XXXX | XXXX | XXXX | = | + | * | / | ~ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Sleep|ScrLck| Caps |NumLck|PrtScr| Ins | End | Home | Æ | Ø | Å | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | |Adjust| Bri- | Vol- | Vol+ | Bri+ | + * `-----------------------------------------------------------------------------------' +*/ +#define qgmlwb_lower_map LAYOUT_ortho_4x12(\ + KC_EXLM, KC_PERC, KC_LBRC, KC_LCBR, KC_LPRN, KC_LT, KC_GT, KC_RPRN, KC_RCBR, KC_RBRC, KC_AMPR, _______,\ + KC_DEL, KC_MUTE, XXXXXXX, KC_WREF, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_PLUS, KC_ASTR, KC_SLSH, KC_TILD,\ + _______, KC_SLEP, KC_SLCK, KC_CAPS, KC_NLCK, KC_PSCR, KC_INS, KC_END, KC_HOME, KC_AE, KC_OE, KC_AA,\ + _______, _______, _______, _______, _______, _______, _______, adjust, KC_BRID, KC_VOLD, KC_VOLU, KC_BRIU\ +) + +/* Raise - QGMLWB + * ,-----------------------------------------------------------------------------------. + * | ? | 9 | 7 | 5 | 3 | 1 | 0 | 2 | 4 | 6 | 8 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del+ | F1 | F2 | F3 | F4 | F5 | F6 | # | @ | ^ | $ | ` | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |RShift| F7 | F8 | F9 | F10 | F11 | F12 | PgDn | PgUp | XXXX | XXXX | XXXX | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | RCtrl| RAlt | | |Adjust| | | | Prev | Stop | Play | Next | + * `-----------------------------------------------------------------------------------' +*/ +#define qgmlwb_raise_map LAYOUT_ortho_4x12(\ + KC_QUES, KC_9, KC_7, KC_5, KC_3, KC_1, KC_0, KC_2, KC_4, KC_6, KC_8, _______,\ + S(KC_DEL), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_HASH, KC_AT, KC_CIRC, KC_DLR, KC_GRV,\ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX,\ + _______, _______, _______, _______, adjust, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT\ +) diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/special.h b/keyboards/planck/keymaps/prog_qgmlwb/src/special.h new file mode 100644 index 0000000000..de05db2070 --- /dev/null +++ b/keyboards/planck/keymaps/prog_qgmlwb/src/special.h @@ -0,0 +1,43 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include "layouts.h" + +/* Adjust + * v------------------------RGB CONTROL--------------------v + * ,-----------------------------------------------------------------------------------. + * | | Reset| Debug| RGB |RGBMod| Hue- | Hue+ | Sat- | Sat+ | Bri- | Bri+ | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | XXXX |MusMod|AudOff| AudOn|AgNorm|AgSwap|Dvorak|Colmak|Qwerty|QgmlEN|QgmlNO| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Voice-|Voice+|MusOff| MusOn|MIDIOf|MIDIOn|TermOf|TermOn| T0 | T1 | T2 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | XXXX | XXXX | XXXX | XXXX | + * `-----------------------------------------------------------------------------------' +*/ +#define adjust_map LAYOUT_ortho_4x12(\ + QK_RBT, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_DEL,\ + QK_MAKE, XXXXXXX, MU_MOD, AU_OFF, AU_ON, AG_NORM, AG_SWAP, DF(DVORAK), DF(COLEMAK), DF(QWERTY), DF(QGMLWB_EN), DF(QGMLWB_NO),\ + _______, MUV_IN, MUV_DE, MU_OFF, MU_ON, MI_OFF, MI_ON, TERM_OFF, TERM_ON, KC_T0, KC_T1, KC_T2,\ + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX\ +) + +/* Numpad + * ,-----------------------------------------------------------------------------------. + * | | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | 7 | 8 | 9 | / | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | 4 | 5 | 6 | * | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | 1 | 2 | 3 | - | XXXX | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | XXXX | | | 0 | , | . | + | XXXX | + * `-----------------------------------------------------------------------------------' +*/ +#define numpad_map LAYOUT_ortho_4x12(\ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_KP_SLASH, _______,\ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_KP_ASTERISK, _______,\ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_KP_MINUS, XXXXXXX,\ + _______, _______, _______, _______, XXXXXXX, _______, _______, KC_0, KC_COMM, KC_DOT, KC_KP_PLUS, XXXXXXX\ +) diff --git a/keyboards/planck/keymaps/roguepullrequest/rules.mk b/keyboards/planck/keymaps/roguepullrequest/rules.mk index 5eb053e886..9394c96e5b 100644 --- a/keyboards/planck/keymaps/roguepullrequest/rules.mk +++ b/keyboards/planck/keymaps/roguepullrequest/rules.mk @@ -1,3 +1,4 @@ AUDIO_ENABLE = yes COMMAND_ENABLE = no +TERMINAL_ENABLE = no TAP_DANCE_ENABLE = yes diff --git a/keyboards/planck/keymaps/rootiest/config.h b/keyboards/planck/keymaps/rootiest/config.h index 5bb5a73a29..fc1fc81761 100644 --- a/keyboards/planck/keymaps/rootiest/config.h +++ b/keyboards/planck/keymaps/rootiest/config.h @@ -87,7 +87,6 @@ /* * TAP-DANCE options */ -#define TAPPING_TERM_PER_KEY // Control Tap-Dance time individually by key #define TAPPING_TERM 250 // Default time allowed before resetting a Tap-Dance combo #define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped once again. */ #define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */ diff --git a/keyboards/planck/keymaps/rootiest/keymap.c b/keyboards/planck/keymaps/rootiest/keymap.c index c289c50e5b..634bf2829e 100644 --- a/keyboards/planck/keymaps/rootiest/keymap.c +++ b/keyboards/planck/keymaps/rootiest/keymap.c @@ -502,7 +502,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else { if (index == 0) { /* First encoder */ uint16_t held_keycode_timer = timer_read(); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case 0: // Base Layer if ((get_mods() & MOD_MASK_GUI)) { // GUI-ed if (clockwise) { @@ -1656,26 +1656,13 @@ void sml_reset(qk_tap_dance_state_t* state, void* user_data) { sml_state.state = // Tap Dance definitions qk_tap_dance_action_t tap_dance_actions[] = { // Tap once for °, twice for ℉, thrice for ℃ - [TD_DEG_DEGF] = ACTION_TAP_DANCE_FN(send_degree_symbol), // - [TD_LSHFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, scap_finished, scap_reset), // - [TD_LCTL_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, slctl_finished, slctl_reset), // - [TD_LALT_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, slalt_finished, slalt_reset), // - [TD_SMILEY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, sml_finished, sml_reset), + [TD_DEG_DEGF] = ACTION_TAP_DANCE_FN(send_degree_symbol), // + [TD_LSHFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, scap_finished, scap_reset, 200), // + [TD_LCTL_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, slctl_finished, slctl_reset, 200), // + [TD_LALT_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, slalt_finished, slalt_reset, 200), // + [TD_SMILEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, sml_finished, sml_reset, 500), }; -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_LSHFT_CAPS): - case TD(TD_LCTL_STICKY): - case TD(TD_LALT_STICKY): - return 200; - case TD(TD_SMILEY): - return 500; - default: - return TAPPING_TERM; - } -} - // Dip-Switch controls void dip_switch_update_user(uint8_t index, bool active) { switch (index) { diff --git a/keyboards/planck/keymaps/rootiest/rules.mk b/keyboards/planck/keymaps/rootiest/rules.mk index ca0f90b6e9..b669d8bb7d 100644 --- a/keyboards/planck/keymaps/rootiest/rules.mk +++ b/keyboards/planck/keymaps/rootiest/rules.mk @@ -20,5 +20,8 @@ KEY_LOCK_ENABLE = yes # Enables using lock key to maintain holds # SWAP_HANDS_ENABLE = yes # Enables the swap hands function # DEBOUNCE_TYPE = sym_eager_pk # Change debounce algorithm +# NOTE: The following requires a lot of memory to include +TERMINAL_ENABLE = yes # Enables a command-line-like interface designed to communicate through a text editor with keystrokes + # NOTE: The following is not yet available in main qmk branch KEY_OVERRIDE_ENABLE = yes # Allows overiding modifier combos (change Shift+1 without affecting 1 or Shift's normal operation) diff --git a/keyboards/planck/keymaps/synth_sample/keymap.c b/keyboards/planck/keymaps/synth_sample/keymap.c index 124c01cb05..0a57b7ce9a 100644 --- a/keyboards/planck/keymaps/synth_sample/keymap.c +++ b/keyboards/planck/keymaps/synth_sample/keymap.c @@ -160,10 +160,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/synth_wavetable/keymap.c b/keyboards/planck/keymaps/synth_wavetable/keymap.c index a5c5491ebd..d413d63896 100644 --- a/keyboards/planck/keymaps/synth_wavetable/keymap.c +++ b/keyboards/planck/keymaps/synth_wavetable/keymap.c @@ -160,10 +160,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/tom/keymap.c b/keyboards/planck/keymaps/tom/keymap.c index d888fb7b05..66beaf33b7 100644 --- a/keyboards/planck/keymaps/tom/keymap.c +++ b/keyboards/planck/keymaps/tom/keymap.c @@ -228,7 +228,7 @@ bool music_mask_user(uint16_t keycode) { void rgb_matrix_indicators_user(void) { #ifdef RGB_MATRIX_ENABLE - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _RAISE: for (int i = 0; i < DRIVER_LED_TOTAL; i++) { if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { diff --git a/keyboards/planck/keymaps/tylerwince/keymap.c b/keyboards/planck/keymaps/tylerwince/keymap.c index b4c0f9af52..5cbc47b2fb 100644 --- a/keyboards/planck/keymaps/tylerwince/keymap.c +++ b/keyboards/planck/keymaps/tylerwince/keymap.c @@ -168,7 +168,7 @@ void set_layer_color(int layer) { void rgb_matrix_indicators_user(void) { if (g_suspend_state || disable_layer_color) { return; } - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case 0: set_layer_color(0); break; @@ -276,7 +276,7 @@ bool music_mask_user(uint16_t keycode) { layer_state_t layer_state_set_user(layer_state_t state) { palClearPad(GPIOB, 8); palClearPad(GPIOB, 9); - uint8_t layer = get_highest_layer(state); + uint8_t layer = biton32(state); switch (layer) { case _LOWER: palSetPad(GPIOB, 9); diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c index 1967d318d4..5a7c656f1a 100644 --- a/keyboards/planck/light/light.c +++ b/keyboards/planck/light/light.c @@ -127,3 +127,16 @@ void suspend_wakeup_init_kb(void) suspend_wakeup_init_user(); } +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c index 6202da5250..20db22055c 100644 --- a/keyboards/planck/planck.c +++ b/keyboards/planck/planck.c @@ -1,18 +1,5 @@ #include "planck.h" -#ifdef SWAP_HANDS_ENABLE -__attribute__ ((weak)) -const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { - {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, - {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, - {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, - {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, -}; -# ifdef ENCODER_MAP_ENABLE -const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; -# endif -#endif - __attribute__ ((weak)) void matrix_init_kb(void) { // Turn status LED on, with the exception of THK diff --git a/keyboards/planck/rev1/rev1.c b/keyboards/planck/rev1/rev1.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev1/rev1.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev2/rev2.c b/keyboards/planck/rev2/rev2.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev2/rev2.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev3/rev3.c b/keyboards/planck/rev3/rev3.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev3/rev3.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev4/rev4.c b/keyboards/planck/rev4/rev4.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev4/rev4.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev5/rev5.c b/keyboards/planck/rev5/rev5.c new file mode 100644 index 0000000000..e37e11cf98 --- /dev/null +++ b/keyboards/planck/rev5/rev5.c @@ -0,0 +1,15 @@ +#include "planck.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/planck/rev6/rev6.c b/keyboards/planck/rev6/rev6.c index da6da11004..59a6b7e279 100644 --- a/keyboards/planck/rev6/rev6.c +++ b/keyboards/planck/rev6/rev6.c @@ -41,3 +41,22 @@ led_config_t g_led_config = { { // 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 diff --git a/keyboards/planck/rev6_drop/rev6_drop.c b/keyboards/planck/rev6_drop/rev6_drop.c index 4c41af3806..e5d8ad9901 100644 --- a/keyboards/planck/rev6_drop/rev6_drop.c +++ b/keyboards/planck/rev6_drop/rev6_drop.c @@ -42,3 +42,22 @@ led_config_t g_led_config = { { // 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 diff --git a/keyboards/planck/thk/thk.c b/keyboards/planck/thk/thk.c index e9912fcbb3..bd5e1a0342 100644 --- a/keyboards/planck/thk/thk.c +++ b/keyboards/planck/thk/thk.c @@ -16,3 +16,17 @@ */ #include "thk.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +# ifdef ENCODER_MAP_ENABLE +const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0}; +# endif +#endif diff --git a/keyboards/playkbtw/ca66/config.h b/keyboards/playkbtw/ca66/config.h index c65554a819..80dc8f1249 100644 --- a/keyboards/playkbtw/ca66/config.h +++ b/keyboards/playkbtw/ca66/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5457 // "TW" -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Barry -#define PRODUCT CA66 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/playkbtw/ca66/info.json b/keyboards/playkbtw/ca66/info.json index 1e14147de1..547f60de41 100644 --- a/keyboards/playkbtw/ca66/info.json +++ b/keyboards/playkbtw/ca66/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "CA66", + "manufacturer": "Barry", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5457", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15.5, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":15.5, "y":3}, {"x":14.25, "y":3.25}, {"x":0, "y":4, "w":1.25}, {"x":2.25, "y":4}, {"x":3.25, "y":4, "w":1.25}, {"x":4.5, "y":4, "w":2.25}, {"x":6.75, "y":4, "w":2.75}, {"x":9.5, "y":4, "w":1.25}, {"x":10.75, "y":4}, {"x":11.75, "y":4, "w":1.25}, {"x":13.25, "y":4.25}, {"x":14.25, "y":4.25}, {"x":15.25, "y":4.25}] diff --git a/keyboards/playkbtw/helen80/config.h b/keyboards/playkbtw/helen80/config.h index 4e28b321d1..830b659c17 100644 --- a/keyboards/playkbtw/helen80/config.h +++ b/keyboards/playkbtw/helen80/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x706B -#define PRODUCT_ID 0x4845 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Play Keyboard -#define PRODUCT Helen 80 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/playkbtw/helen80/info.json b/keyboards/playkbtw/helen80/info.json index 1112fafd21..0c65363a13 100644 --- a/keyboards/playkbtw/helen80/info.json +++ b/keyboards/playkbtw/helen80/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "helen80", + "keyboard_name": "Helen 80", + "manufacturer": "Play Keyboard", "url": "", "maintainer": "yj7272098", + "usb": { + "vid": "0x706B", + "pid": "0x4845", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/playkbtw/pk60/config.h b/keyboards/playkbtw/pk60/config.h index 0a6ee47d44..ae5735508a 100644 --- a/keyboards/playkbtw/pk60/config.h +++ b/keyboards/playkbtw/pk60/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Play Keyboard -#define PRODUCT pk60 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/playkbtw/pk60/info.json b/keyboards/playkbtw/pk60/info.json index 96f0c1f1c4..b314708fdf 100644 --- a/keyboards/playkbtw/pk60/info.json +++ b/keyboards/playkbtw/pk60/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "pk60", + "manufacturer": "Play Keyboard", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_60_ansi_split_bs_rshift": { "layout": [{"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"label": "Del", "x": 13, "y": 0}, {"label": "Bs", "x": 14, "y": 0}, {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5}, {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "\"", "x": 11.75, "y": 2}, {"label": "Enter", "x": 12.75, "y": 2, "w": 2.25}, {"label": "Shift", "x": 0, "y": 3, "w": 2.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 1.75}, {"x": 14, "y": 3}, {"label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, {"label": "Win", "x": 1.25, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, {"x": 3.75, "y": 4, "w": 6.25}, {"label": "Alt", "x": 10, "y": 4, "w": 1.25}, {"label": "Win", "x": 11.25, "y": 4, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25}] diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h index 0e63f9204d..2ec5f15a39 100644 --- a/keyboards/playkbtw/pk64rgb/config.h +++ b/keyboards/playkbtw/pk64rgb/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x706B // Play Keyboard -#define PRODUCT_ID 0x3634 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Play Keyboard -#define PRODUCT Play Keyboard 64 RGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/playkbtw/pk64rgb/info.json b/keyboards/playkbtw/pk64rgb/info.json index bc973f1b4c..063b58419a 100644 --- a/keyboards/playkbtw/pk64rgb/info.json +++ b/keyboards/playkbtw/pk64rgb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "PK64RGB", + "manufacturer": "Play Keyboard", "url": "", "maintainer": "yj7272098", + "usb": { + "vid": "0x706B", + "pid": "0x3634", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_64_ansi": { "layout": [ diff --git a/keyboards/ploopyco/mouse/config.h b/keyboards/ploopyco/mouse/config.h index 98fc81bb05..1614f09f84 100644 --- a/keyboards/ploopyco/mouse/config.h +++ b/keyboards/ploopyco/mouse/config.h @@ -20,13 +20,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5043 -#define PRODUCT_ID 0x4D6F -#define DEVICE_VER 0x0001 -#define MANUFACTURER PloopyCo -#define PRODUCT Mouse - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 8 diff --git a/keyboards/ploopyco/mouse/info.json b/keyboards/ploopyco/mouse/info.json index 593583176d..f672336c25 100644 --- a/keyboards/ploopyco/mouse/info.json +++ b/keyboards/ploopyco/mouse/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "PloopyCo Mouse", + "keyboard_name": "Mouse", + "manufacturer": "PloopyCo", "url": "www.ploopy.co", "maintainer": "drashna", + "usb": { + "vid": "0x5043", + "pid": "0x4D6F", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ploopyco/mouse/keymaps/drashna/config.h b/keyboards/ploopyco/mouse/keymaps/drashna/config.h index 1dc1b7695f..9aa9a40769 100644 --- a/keyboards/ploopyco/mouse/keymaps/drashna/config.h +++ b/keyboards/ploopyco/mouse/keymaps/drashna/config.h @@ -28,4 +28,4 @@ #define RGBLIGHT_EFFECT_TWINKLE #define RGBLIGHT_SLEEP -#define MOUSE_EXTENDED_REPORT +#define MOUSE_EXT_REPORT diff --git a/keyboards/ploopyco/trackball/config.h b/keyboards/ploopyco/trackball/config.h index dd068e4838..0b2e96155f 100644 --- a/keyboards/ploopyco/trackball/config.h +++ b/keyboards/ploopyco/trackball/config.h @@ -20,12 +20,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5043 -#define PRODUCT_ID 0x5442 -#define DEVICE_VER 0x0001 -#define PRODUCT Trackball - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 5 diff --git a/keyboards/ploopyco/trackball/info.json b/keyboards/ploopyco/trackball/info.json index d144261c96..feb458e1c5 100644 --- a/keyboards/ploopyco/trackball/info.json +++ b/keyboards/ploopyco/trackball/info.json @@ -1,8 +1,13 @@ { - "keyboard_name": "PloopyCo Trackball", + "keyboard_name": "Trackball", + "manufacturer": "PloopyCo", "url": "www.ploopy.co", "maintainer": "drashna", - "manufacturer": "Ploopy Corporation", + "usb": { + "vid": "0x5043", + "pid": "0x5442", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ploopyco/trackball/trackball.c b/keyboards/ploopyco/trackball/trackball.c index f819958734..bda21b5c88 100644 --- a/keyboards/ploopyco/trackball/trackball.c +++ b/keyboards/ploopyco/trackball/trackball.c @@ -119,7 +119,12 @@ report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { process_wheel(); if (is_drag_scroll) { +#ifdef PLOOPY_DRAGSCROLL_H_INVERT + // Invert horizontal scroll direction + mouse_report.h = -mouse_report.x; +#else mouse_report.h = mouse_report.x; +#endif #ifdef PLOOPY_DRAGSCROLL_INVERT // Invert vertical scroll direction mouse_report.v = -mouse_report.y; diff --git a/keyboards/ploopyco/trackball_mini/config.h b/keyboards/ploopyco/trackball_mini/config.h index 9c53f1f501..bf7570f364 100644 --- a/keyboards/ploopyco/trackball_mini/config.h +++ b/keyboards/ploopyco/trackball_mini/config.h @@ -21,12 +21,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5043 -#define PRODUCT_ID 0x1EAB -#define DEVICE_VER 0x0001 -#define PRODUCT Trackball Mini - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 5 diff --git a/keyboards/ploopyco/trackball_mini/info.json b/keyboards/ploopyco/trackball_mini/info.json index 67d62cc2b9..f465a7a21e 100644 --- a/keyboards/ploopyco/trackball_mini/info.json +++ b/keyboards/ploopyco/trackball_mini/info.json @@ -1,8 +1,13 @@ { - "keyboard_name": "Ploopy Trackball Mini", + "keyboard_name": "Trackball Mini", + "manufacturer": "PloopyCo", "url": "www.ploopy.co", "maintainer": "ploopyco", - "manufacturer": "Ploopy Corporation", + "usb": { + "vid": "0x5043", + "pid": "0x1EAB", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ploopyco/trackball_nano/config.h b/keyboards/ploopyco/trackball_nano/config.h index 985ddc09ba..fb340a4ec3 100644 --- a/keyboards/ploopyco/trackball_nano/config.h +++ b/keyboards/ploopyco/trackball_nano/config.h @@ -21,12 +21,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5043 -#define PRODUCT_ID 0x54A3 -#define DEVICE_VER 0x0001 -#define PRODUCT Trackball Nano - /* key matrix size */ #define MATRIX_ROWS 1 #define MATRIX_COLS 1 diff --git a/keyboards/ploopyco/trackball_nano/info.json b/keyboards/ploopyco/trackball_nano/info.json index a788ce9eb1..cf9b78a4f3 100644 --- a/keyboards/ploopyco/trackball_nano/info.json +++ b/keyboards/ploopyco/trackball_nano/info.json @@ -1,8 +1,13 @@ { - "keyboard_name": "Ploopy Trackball Nano", + "keyboard_name": "Trackball Nano", + "manufacturer": "PloopyCo", "url": "www.ploopy.co", "maintainer": "ploopyco", - "manufacturer": "Ploopy Corporation", + "usb": { + "vid": "0x5043", + "pid": "0x54A3", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/ploopyco/trackball_nano/keymaps/lkbm/keymap.c b/keyboards/ploopyco/trackball_nano/keymaps/lkbm/keymap.c new file mode 100644 index 0000000000..533597b478 --- /dev/null +++ b/keyboards/ploopyco/trackball_nano/keymaps/lkbm/keymap.c @@ -0,0 +1,167 @@ +/* Copyright 2022 Aidan Gauland + * Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * Copyright 2019 Hiroyuki Okada + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "print.h" + +#define NUM_LOCK_BITMASK 0b01 +#define CAPS_LOCK_BITMASK 0b10 + +// World record for fastest index finger tapping is 1092 taps per minute, which +// is 55ms for a single tap. +// https://recordsetter.com/world-record/index-finger-taps-minute/46066 +#define LED_CMD_TIMEOUT 25 +#define DELTA_X_THRESHOLD 60 +#define DELTA_Y_THRESHOLD 15 + +typedef enum { + // You could theoretically define 0b00 and send it by having a macro send + // the second tap after LED_CMD_TIMEOUT has elapsed. + // CMD_EXTRA = 0b00, + TG_SCROLL = 0b01, + CYC_DPI = 0b10, + CMD_RESET = 0b11 // CMD_ prefix to avoid clash with QMK macro +} led_cmd_t; + +// State +static bool scroll_enabled = false; +static bool num_lock_state = false; +static bool caps_lock_state = false; +static bool in_cmd_window = false; +static int8_t delta_x = 0; +static int8_t delta_y = 0; + +typedef struct { + led_cmd_t led_cmd; + uint8_t num_lock_count; + uint8_t caps_lock_count; +} cmd_window_state_t; + +// Dummy +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {{{KC_NO}}}; + +report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + if (scroll_enabled) { + delta_x += mouse_report.x; + delta_y += mouse_report.y; + + if (delta_x > DELTA_X_THRESHOLD) { + mouse_report.h = 1; + delta_x = 0; + } else if (delta_x < -DELTA_X_THRESHOLD) { + mouse_report.h = -1; + delta_x = 0; + } + + if (delta_y > DELTA_Y_THRESHOLD) { + mouse_report.v = -1; + delta_y = 0; + } else if (delta_y < -DELTA_Y_THRESHOLD) { + mouse_report.v = 1; + delta_y = 0; + } + mouse_report.x = 0; + mouse_report.y = 0; + } + return mouse_report; +} + +void keyboard_post_init_user(void) { + num_lock_state = host_keyboard_led_state().num_lock; + caps_lock_state = host_keyboard_led_state().caps_lock; +} + +uint32_t command_timeout(uint32_t trigger_time, void *cb_arg) { + cmd_window_state_t *cmd_window_state = (cmd_window_state_t *)cb_arg; +# ifdef CONSOLE_ENABLE + uprintf("Received command 0b%02b (", cmd_window_state->led_cmd); +# endif + switch (cmd_window_state->led_cmd) { + case TG_SCROLL: +# ifdef CONSOLE_ENABLE + uprint("TG_SCROLL)\n"); +# endif + scroll_enabled = !scroll_enabled; + break; + case CYC_DPI: +# ifdef CONSOLE_ENABLE + uprint("CYC_DPI)\n"); +# endif + cycle_dpi(); + break; + case CMD_RESET: +# ifdef CONSOLE_ENABLE + uprint("RESET)\n"); +# endif + reset_keyboard(); + break; + default: +# ifdef CONSOLE_ENABLE + uprint("unknown)\n"); +# endif + // Ignore unrecognised commands. + break; + } + cmd_window_state->led_cmd = 0; + cmd_window_state->num_lock_count = 0; + cmd_window_state->caps_lock_count = 0; + in_cmd_window = false; + + return 0; // Don't repeat +} + +bool led_update_user(led_t led_state) { + static cmd_window_state_t cmd_window_state = { + .led_cmd = 0b00, + .num_lock_count = 0, + .caps_lock_count = 0 + }; + + // Start timer to end command window if we are not already in the middle of + // one. + if (!in_cmd_window) { + in_cmd_window = true; + defer_exec(LED_CMD_TIMEOUT, command_timeout, &cmd_window_state); + } + + // Set num lock and caps lock bits when each is toggled on and off within + // the window. + if (led_state.num_lock != num_lock_state) { + cmd_window_state.num_lock_count++; + + if (cmd_window_state.num_lock_count == 2) { + cmd_window_state.led_cmd |= NUM_LOCK_BITMASK; + cmd_window_state.num_lock_count = 0; + } + } + + if (led_state.caps_lock != caps_lock_state) { + cmd_window_state.caps_lock_count++; + + if (cmd_window_state.caps_lock_count == 2) { + cmd_window_state.led_cmd |= CAPS_LOCK_BITMASK; + cmd_window_state.caps_lock_count = 0; + } + } + + // Keep our copy of the LED states in sync with the host. + num_lock_state = led_state.num_lock; + caps_lock_state = led_state.caps_lock; + return true; +} diff --git a/keyboards/ploopyco/trackball_nano/keymaps/lkbm/readme.md b/keyboards/ploopyco/trackball_nano/keymaps/lkbm/readme.md new file mode 100644 index 0000000000..3b2f698e52 --- /dev/null +++ b/keyboards/ploopyco/trackball_nano/keymaps/lkbm/readme.md @@ -0,0 +1,2 @@ +# The keymap that takes commands as LED-Key BitMasks (lkbm) +Based on [maddie](../maddie), this keymap lets you send a 2-bit command by having a macro on your keyboard tap `KC_NUM_LOCK` and `KC_CAPS_LOCK` on and off within a very short window (25ms by default) to represent bits 1 and 2 respectively. The keymap uses this to allow toggling between sending mouse-movement events and scrolling events; cycling DPI presets, and resetting to the bootloader, so you can reflash without having to unscrew your Ploopy Nano. diff --git a/keyboards/ploopyco/trackball_nano/keymaps/lkbm/rules.mk b/keyboards/ploopyco/trackball_nano/keymaps/lkbm/rules.mk new file mode 100644 index 0000000000..199bad85f3 --- /dev/null +++ b/keyboards/ploopyco/trackball_nano/keymaps/lkbm/rules.mk @@ -0,0 +1 @@ +DEFERRED_EXEC_ENABLE = yes diff --git a/keyboards/ploopyco/trackball_nano/keymaps/maddie/keymap.c b/keyboards/ploopyco/trackball_nano/keymaps/maddie/keymap.c index 14a7804cc2..5e9b3e8e19 100644 --- a/keyboards/ploopyco/trackball_nano/keymaps/maddie/keymap.c +++ b/keyboards/ploopyco/trackball_nano/keymaps/maddie/keymap.c @@ -27,6 +27,10 @@ bool scroll_enabled = false; bool lock_state = false; +// State +static int8_t delta_x = 0; +static int8_t delta_y = 0; + // Dummy const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {{{ KC_NO }}}; diff --git a/keyboards/ploopyco/trackball_nano/trackball_nano.c b/keyboards/ploopyco/trackball_nano/trackball_nano.c index e208a728cb..0f2fbe2f72 100644 --- a/keyboards/ploopyco/trackball_nano/trackball_nano.c +++ b/keyboards/ploopyco/trackball_nano/trackball_nano.c @@ -52,6 +52,14 @@ keyboard_config_t keyboard_config; uint16_t dpi_array[] = PLOOPY_DPI_OPTIONS; #define DPI_OPTION_SIZE (sizeof(dpi_array) / sizeof(uint16_t)) +void cycle_dpi(void) { + keyboard_config.dpi_config = (keyboard_config.dpi_config + 1) % DPI_OPTION_SIZE; + pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]); +#ifdef CONSOLE_ENABLE + uprintf("DPI is now %d\n", dpi_array[keyboard_config.dpi_config]); +#endif +} + // TODO: Implement libinput profiles // https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html // Compile time accel selection diff --git a/keyboards/ploopyco/trackball_nano/trackball_nano.h b/keyboards/ploopyco/trackball_nano/trackball_nano.h index 5f16e96c41..d971627fc6 100644 --- a/keyboards/ploopyco/trackball_nano/trackball_nano.h +++ b/keyboards/ploopyco/trackball_nano/trackball_nano.h @@ -36,3 +36,5 @@ enum ploopy_keycodes { DPI_CONFIG = SAFE_RANGE, PLOOPY_SAFE_RANGE, }; + +void cycle_dpi(void); diff --git a/keyboards/pluckey/config.h b/keyboards/pluckey/config.h index f98318437b..56663e1d3e 100644 --- a/keyboards/pluckey/config.h +++ b/keyboards/pluckey/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF100 -#define PRODUCT_ID 0x91CE -#define DEVICE_VER 0x0001 -#define MANUFACTURER floookay -#define PRODUCT pluckey - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 10 diff --git a/keyboards/pluckey/info.json b/keyboards/pluckey/info.json index de58bee802..594cc6a7d3 100644 --- a/keyboards/pluckey/info.json +++ b/keyboards/pluckey/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "pluckey", + "manufacturer": "floookay", "url": "https://github.com/floookay/pluckey", "maintainer": "floookay", + "usb": { + "vid": "0xF100", + "pid": "0x91CE", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/pluckey/keymaps/manna-harbour_miryoku/config.h b/keyboards/pluckey/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..19976c2c2d --- /dev/null +++ b/keyboards/pluckey/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,22 @@ +// Copyright 2021 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ +XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ + XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ +) diff --git a/keyboards/pluckey/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/pluckey/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..3da5ed16ae --- /dev/null +++ b/keyboards/pluckey/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2021 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/plume/plume65/config.h b/keyboards/plume/plume65/config.h index b7d91e1023..31b6d64a23 100644 --- a/keyboards/plume/plume65/config.h +++ b/keyboards/plume/plume65/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5D66 -#define PRODUCT_ID 0x22CF -#define DEVICE_VER 0x0001 -#define MANUFACTURER Plume Keyboards LLC -#define PRODUCT Plume65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/plume/plume65/info.json b/keyboards/plume/plume65/info.json index f41e8eba55..eb9bc6fcd9 100644 --- a/keyboards/plume/plume65/info.json +++ b/keyboards/plume/plume65/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Plume65", + "manufacturer": "Plume Keyboards LLC", "url": "", "maintainer": "evyd13", + "usb": { + "vid": "0x5D66", + "pid": "0x22CF", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_iso": { "layout": [ diff --git a/keyboards/plut0nium/0x3e/config.h b/keyboards/plut0nium/0x3e/config.h index 055fe63ce7..6e72462c45 100644 --- a/keyboards/plut0nium/0x3e/config.h +++ b/keyboards/plut0nium/0x3e/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3E01 -#define DEVICE_VER 0x0001 -#define MANUFACTURER plut0nium -#define PRODUCT 0x3E - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 13 diff --git a/keyboards/plut0nium/0x3e/info.json b/keyboards/plut0nium/0x3e/info.json index 552dc478c2..8f00fa9a3c 100644 --- a/keyboards/plut0nium/0x3e/info.json +++ b/keyboards/plut0nium/0x3e/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "0x3E", + "manufacturer": "plut0nium", "url": "", "maintainer": "plut0nium", + "usb": { + "vid": "0xFEED", + "pid": "0x3E01", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/plx/config.h b/keyboards/plx/config.h index 68708beccf..74cf3dee8f 100644 --- a/keyboards/plx/config.h +++ b/keyboards/plx/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xE972 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Peac Design -#define PRODUCT PLX - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/plx/info.json b/keyboards/plx/info.json index 47f73ada61..be37e4efe0 100644 --- a/keyboards/plx/info.json +++ b/keyboards/plx/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "PLX", + "manufacturer": "Peac Design", "url": "https://peac.design/", "maintainer": "2Moons-JP", + "usb": { + "vid": "0x04D8", + "pid": "0xE972", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_60_ansi_tsangan" }, diff --git a/keyboards/plywrks/ahgase/config.h b/keyboards/plywrks/ahgase/config.h index a7b16ab108..f38aeba740 100644 --- a/keyboards/plywrks/ahgase/config.h +++ b/keyboards/plywrks/ahgase/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x706C // P L -#define PRODUCT_ID 0x7902 // Y 2 -#define DEVICE_VER 0x0001 -#define MANUFACTURER plywrks -#define PRODUCT Ahgase - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 17 diff --git a/keyboards/plywrks/ahgase/info.json b/keyboards/plywrks/ahgase/info.json index 1e554e9c6e..297d0b9834 100644 --- a/keyboards/plywrks/ahgase/info.json +++ b/keyboards/plywrks/ahgase/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Ahgase", + "manufacturer": "plywrks", "url": "", "maintainer": "Ramon Imbao (ramonimbao)", + "usb": { + "vid": "0x706C", + "pid": "0x7902", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ansi": { "layout": [ diff --git a/keyboards/pohjolaworks/louhi/config.h b/keyboards/pohjolaworks/louhi/config.h index b9cbde16d3..c0f52dd312 100644 --- a/keyboards/pohjolaworks/louhi/config.h +++ b/keyboards/pohjolaworks/louhi/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5057 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Pohjola Works -#define PRODUCT Louhi - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 7 diff --git a/keyboards/pohjolaworks/louhi/info.json b/keyboards/pohjolaworks/louhi/info.json index ce9ef6b85e..e305708d7d 100644 --- a/keyboards/pohjolaworks/louhi/info.json +++ b/keyboards/pohjolaworks/louhi/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Louhi", + "manufacturer": "Pohjola Works", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/pohjolaworks/louhi", "maintainer": "ErkHal", + "usb": { + "vid": "0x5057", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_7u_space": { "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k10", "x":1, "y":0}, {"label":"k01", "x":2, "y":0}, {"label":"k11", "x":3, "y":0}, {"label":"k02", "x":4, "y":0}, {"label":"k12", "x":5, "y":0}, {"label":"k03", "x":6, "y":0}, {"label":"k13", "x":7, "y":0}, {"label":"k04", "x":8, "y":0}, {"label":"k14", "x":9, "y":0}, {"label":"k05", "x":10, "y":0}, {"label":"k15", "x":11, "y":0}, {"label":"k06", "x":12, "y":0}, {"label":"k20", "x":0, "y":1}, {"label":"k30", "x":1, "y":1}, {"label":"k21", "x":2, "y":1}, {"label":"k31", "x":3, "y":1}, {"label":"k22", "x":4, "y":1}, {"label":"k32", "x":5, "y":1}, {"label":"k23", "x":6, "y":1}, {"label":"k33", "x":7, "y":1}, {"label":"k24", "x":8, "y":1}, {"label":"k34", "x":9, "y":1}, {"label":"k25", "x":10, "y":1}, {"label":"k35", "x":11, "y":1}, {"label":"k26", "x":12, "y":1}, {"label":"k40", "x":0, "y":2}, {"label":"k50", "x":1, "y":2}, {"label":"k41", "x":2, "y":2}, {"label":"k51", "x":3, "y":2}, {"label":"k42", "x":4, "y":2}, {"label":"k52", "x":5, "y":2}, {"label":"k43", "x":6, "y":2}, {"label":"k53", "x":7, "y":2}, {"label":"k44", "x":8, "y":2}, {"label":"k54", "x":9, "y":2}, {"label":"k45", "x":10, "y":2}, {"label":"k55", "x":11, "y":2}, {"label":"k46", "x":12, "y":2}, {"label":"k60", "x":0, "y":3}, {"label":"k70", "x":1, "y":3}, {"label":"k61", "x":2, "y":3}, {"label":"k63", "x":3, "y":3, "w":7}, {"label":"k65", "x":10, "y":3}, {"label":"k75", "x":11, "y":3}, {"label":"k66", "x":12, "y":3}] diff --git a/keyboards/poker87c/config.h b/keyboards/poker87c/config.h index e01df80ec7..93352a2e95 100644 --- a/keyboards/poker87c/config.h +++ b/keyboards/poker87c/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D66 // "mf" - mfkiiyd -#define PRODUCT_ID 0x087C // "87C" -#define DEVICE_VER 0x0001 -#define MANUFACTURER mfkiiyd -#define PRODUCT POKER-87C Hotswap - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/poker87c/info.json b/keyboards/poker87c/info.json index bf7b42e470..1bf7cc4979 100644 --- a/keyboards/poker87c/info.json +++ b/keyboards/poker87c/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "POKER-87C", + "keyboard_name": "POKER-87C Hotswap", + "manufacturer": "mfkiiyd", "url": "", "maintainer": "mfkiiyd", + "usb": { + "vid": "0x6D66", + "pid": "0x087C", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/poker87d/config.h b/keyboards/poker87d/config.h index 7cf87340e4..ab28e84a06 100644 --- a/keyboards/poker87d/config.h +++ b/keyboards/poker87d/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6D66 // "mf" - mfkiiyd -#define PRODUCT_ID 0x087D // "87D" -#define DEVICE_VER 0x0001 -#define MANUFACTURER mfkiiyd -#define PRODUCT POKER-87D Hotswap - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/poker87d/info.json b/keyboards/poker87d/info.json index a0b78e5c8a..e36cdb09f4 100644 --- a/keyboards/poker87d/info.json +++ b/keyboards/poker87d/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "POKER-87D", + "keyboard_name": "POKER-87D Hotswap", + "manufacturer": "mfkiiyd", "url": "", "maintainer": "mfkiiyd", + "usb": { + "vid": "0x6D66", + "pid": "0x087D", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/polycarbdiet/s20/config.h b/keyboards/polycarbdiet/s20/config.h index 58f998e767..60016869f5 100644 --- a/keyboards/polycarbdiet/s20/config.h +++ b/keyboards/polycarbdiet/s20/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5040 // PD = polycarbdiet -#define PRODUCT_ID 0x7320 // S20 -#define DEVICE_VER 0x0001 -#define MANUFACTURER polycarbdiet -#define PRODUCT S20 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 diff --git a/keyboards/polycarbdiet/s20/info.json b/keyboards/polycarbdiet/s20/info.json index ff06e2a257..d4cf5827b6 100644 --- a/keyboards/polycarbdiet/s20/info.json +++ b/keyboards/polycarbdiet/s20/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "S20 revA", + "manufacturer": "polycarbdiet", "url": "", "maintainer": "polycarbdiet", + "usb": { + "vid": "0x5040", + "pid": "0x7320", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x4": { "layout": [ diff --git a/keyboards/pom_keyboards/tnln95/config.h b/keyboards/pom_keyboards/tnln95/config.h index 78d2d805e1..503ec1a900 100644 --- a/keyboards/pom_keyboards/tnln95/config.h +++ b/keyboards/pom_keyboards/tnln95/config.h @@ -18,13 +18,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x544E -#define PRODUCT_ID 0x3931 -#define DEVICE_VER 0x0001 -#define MANUFACTURER POM_keyboard -#define PRODUCT tnln95 - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 10 diff --git a/keyboards/pom_keyboards/tnln95/info.json b/keyboards/pom_keyboards/tnln95/info.json index 68d1359209..470da65459 100644 --- a/keyboards/pom_keyboards/tnln95/info.json +++ b/keyboards/pom_keyboards/tnln95/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "tnln95", + "manufacturer": "POM_keyboard", "url": "http://www.keyboard-layout-editor.com/#/gists/45aee74c726e32a063130a715fc494d3", "maintainer": "HoangNM", + "usb": { + "vid": "0x544E", + "pid": "0x3931", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/portal_66/hotswap/config.h b/keyboards/portal_66/hotswap/config.h index 96ea091a20..c953d92e64 100644 --- a/keyboards/portal_66/hotswap/config.h +++ b/keyboards/portal_66/hotswap/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x504C -#define PRODUCT_ID 0x5067 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Parallel Limited -#define PRODUCT Portal 66 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/portal_66/hotswap/info.json b/keyboards/portal_66/hotswap/info.json index 984134a4e7..b98e9cc714 100644 --- a/keyboards/portal_66/hotswap/info.json +++ b/keyboards/portal_66/hotswap/info.json @@ -1,6 +1,12 @@ { "keyboard_name": "Portal 66 Hotswap", + "manufacturer": "Parallel Limited", "maintainer": "matthewdias", + "usb": { + "vid": "0x504C", + "pid": "0x5067", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_65_ansi_blocker" }, diff --git a/keyboards/portal_66/soldered/config.h b/keyboards/portal_66/soldered/config.h index f5e0d734c4..c953d92e64 100644 --- a/keyboards/portal_66/soldered/config.h +++ b/keyboards/portal_66/soldered/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x504C -#define PRODUCT_ID 0x5066 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Parallel Limited -#define PRODUCT Portal 66 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/portal_66/soldered/info.json b/keyboards/portal_66/soldered/info.json index de621a2f70..f24fc4b870 100644 --- a/keyboards/portal_66/soldered/info.json +++ b/keyboards/portal_66/soldered/info.json @@ -1,6 +1,12 @@ { - "keyboard_name": "Portal 66", + "keyboard_name": "Portal 66 Soldered", + "manufacturer": "Parallel Limited", "maintainer": "matthewdias", + "usb": { + "vid": "0x504C", + "pid": "0x5066", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_65_ansi_split_bs": "LAYOUT_65_ansi_blocker_split_bs", "LAYOUT_65_ansi": "LAYOUT_65_ansi_blocker", diff --git a/keyboards/pos78/config.h b/keyboards/pos78/config.h index 81449c844f..afe6aa7dd1 100644 --- a/keyboards/pos78/config.h +++ b/keyboards/pos78/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x7878 -#define DEVICE_VER 0x0001 -#define MANUFACTURER smssmssms -#define PRODUCT POS78 - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 13 diff --git a/keyboards/pos78/info.json b/keyboards/pos78/info.json index 76c1430559..d6bd269fc5 100644 --- a/keyboards/pos78/info.json +++ b/keyboards/pos78/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "pos78", + "keyboard_name": "POS78", + "manufacturer": "smssmssms", "url": "https://github.com/smssmssms/pos78.git", "maintainer": "smssmssms", + "usb": { + "vid": "0xFEED", + "pid": "0x7878", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_6x13": { "layout": [ diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index c1faf464d6..ef7614393d 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/preonic/keymaps/dudeofawesome/keymap.c b/keyboards/preonic/keymaps/dudeofawesome/keymap.c index 812bf35a20..2d2a252b23 100644 --- a/keyboards/preonic/keymaps/dudeofawesome/keymap.c +++ b/keyboards/preonic/keymaps/dudeofawesome/keymap.c @@ -275,7 +275,7 @@ bool numpadActive = false; float tone_numpad_on[][2] = SONG(NUMPAD_ON_SOUND); void matrix_scan_user (void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _NUMPAD: diff --git a/keyboards/preonic/keymaps/jpe230/config.h b/keyboards/preonic/keymaps/jpe230/config.h new file mode 100644 index 0000000000..70cb9d826b --- /dev/null +++ b/keyboards/preonic/keymaps/jpe230/config.h @@ -0,0 +1,28 @@ +/* +Copyright 2022 Jose Pablo Ramirez + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#ifdef AUDIO_ENABLE +#define STARTUP_SONG SONG(ODE_TO_JOY) +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +#define ENABLE_COMPILE_KEYCODE +#define AUDIO_ENABLE_TONE_MULTIPLEXING +#define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10 \ No newline at end of file diff --git a/keyboards/preonic/keymaps/jpe230/jpe230.h b/keyboards/preonic/keymaps/jpe230/jpe230.h new file mode 100644 index 0000000000..e6b4ed1401 --- /dev/null +++ b/keyboards/preonic/keymaps/jpe230/jpe230.h @@ -0,0 +1,35 @@ +/* +Copyright 2022 Jose Pablo 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 . +*/ + +#ifdef VIA_ENABLE + #define USER_START USER00 +#else + #define USER_START SAFE_RANGE +#endif + +enum jpe230_keycodes { + KC_LSRS = USER_START, + KC_LERS, + KC_LSRE +}; + +#define LEFT_BAR 0, 9, 5 +#define RIGHT_BAR 0, 9, 1 + +float song_lsrs[][2] = SONG(QWERTY_SOUND); +float song_lers[][2] = SONG(COLEMAK_SOUND); +float song_lsre[][2] = SONG(DVORAK_SOUND); \ No newline at end of file diff --git a/keyboards/preonic/keymaps/jpe230/keymap.c b/keyboards/preonic/keymaps/jpe230/keymap.c new file mode 100644 index 0000000000..43aa42aaf1 --- /dev/null +++ b/keyboards/preonic/keymaps/jpe230/keymap.c @@ -0,0 +1,116 @@ +/* +Copyright 2022 Jose Pablo 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 +#include "jpe230.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_preonic_grid( + //,-----------------------------------------------------------------------------------------------------------. + 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_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_LBRC, KC_RBRC, KC_LGUI, MO(1), _______, KC_SPC, _______, KC_ENT, MO(2), KC_RALT, KC_MINS, KC_EQL + //`-----------------------------------------------------------------------------------------------------------' + ), + + [1] = LAYOUT_preonic_grid( + //,-----------------------------------------------------------------------------------------------------------. + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_UP, AU_TOG, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + KC_CAPS, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, CK_DOWN, _______, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + KC_LSFT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT, _______, CK_RST, _______, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, MO(3), _______, _______, _______ + //`-----------------------------------------------------------------------------------------------------------' + ), + + [2] = LAYOUT_preonic_grid( + //,-----------------------------------------------------------------------------------------------------------. + KC_GRV, KC_F11, KC_F12, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + KC_CAPS, _______, KC_MS_U, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + _______, _______, _______, MO(3), _______, KC_BTN1, _______, _______, _______, _______, _______, _______ + //`-----------------------------------------------------------------------------------------------------------' + ), + + [3] = LAYOUT_preonic_grid( + //,-----------------------------------------------------------------------------------------------------------. + 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_MUTE, KC_WBAK, KC_WFWD, KC_F7, KC_F8, KC_F9, _______, KC_7, KC_8, KC_9, _______, QK_BOOT, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + KC_VOLU, _______, KC_MNXT, KC_F6, KC_F5, KC_F6, _______, KC_6, KC_5, KC_4, _______, QK_MAKE, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + KC_VOLD, KC_MPRV, KC_MNXT, KC_F1, KC_F2, KC_F3, KC_LSRS, KC_1, KC_2, KC_3, _______, DB_TOGG, + //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| + MU_TOG, MU_MOD, _______, _______, _______, KC_LSRE, _______, KC_LERS, _______, _______, _______, EE_CLR + //`-----------------------------------------------------------------------------------------------------------' + ) +}; + +/* +Logic to shift between the bars: + KC_LSRE => Left Bar - Space... Right Bar - Enter + KC_LERS => Left Bar - Enter... Right Bar - Space + KC_LSRS => Left Bar - Space... Right Bar - Space + + Hack into dynamic_keymap_set_keycode and change the value of the keymap. + (Just like VIA does, but instead it is done inside the keyboard so no need + to open the app) + + Possible alternatives: + - Create 3 layers but only change the KC_ENTER and KC_SPACE position between them + - Create a custom keycode and use process_record_user to alter the behaviour +*/ +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case KC_LSRS: + dynamic_keymap_set_keycode(LEFT_BAR, KC_SPC); + dynamic_keymap_set_keycode(RIGHT_BAR, KC_SPC); + PLAY_SONG(song_lsrs); + return false; + case KC_LERS: + dynamic_keymap_set_keycode(LEFT_BAR, KC_ENT); + dynamic_keymap_set_keycode(RIGHT_BAR, KC_SPC); + PLAY_SONG(song_lers); + return false; + case KC_LSRE: + dynamic_keymap_set_keycode(LEFT_BAR, KC_SPC); + dynamic_keymap_set_keycode(RIGHT_BAR, KC_ENT); + PLAY_SONG(song_lsre); + return false; + default: + return true; // Process all other keycodes normally + } + } + return true; +} diff --git a/keyboards/preonic/keymaps/jpe230/rules.mk b/keyboards/preonic/keymaps/jpe230/rules.mk new file mode 100644 index 0000000000..d57d1e33f2 --- /dev/null +++ b/keyboards/preonic/keymaps/jpe230/rules.mk @@ -0,0 +1,9 @@ +# Disable unused features inherited from the kb rules.mk +RGBLIGHT_ENABLE = no +ENCODER_ENABLE = no +DIP_SWITCH_ENABLE = no +CONSOLE_ENABLE = no +COMMAND_ENABLE = no + +# Enable VIA +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/preonic/keymaps/senseored/keymap.c b/keyboards/preonic/keymaps/senseored/keymap.c index 0f896700e6..e152507835 100644 --- a/keyboards/preonic/keymaps/senseored/keymap.c +++ b/keyboards/preonic/keymaps/senseored/keymap.c @@ -367,7 +367,7 @@ bool dip_switch_update_user(uint8_t index, bool active) { layer_state_t layer_state_set_user(layer_state_t state) { // if(rgblight_get_mode() == 1) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _QWERTY: if(bnumlock) { tap_code(KC_NLCK); diff --git a/keyboards/primekb/meridian/config.h b/keyboards/primekb/meridian/config.h index 082392c6bd..916847cf07 100644 --- a/keyboards/primekb/meridian/config.h +++ b/keyboards/primekb/meridian/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5052 -#define PRODUCT_ID 0x004D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Prime Keyboards -#define PRODUCT Meridian - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/primekb/meridian/info.json b/keyboards/primekb/meridian/info.json index 4c46e325c5..c12b1b7587 100644 --- a/keyboards/primekb/meridian/info.json +++ b/keyboards/primekb/meridian/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Meridian", + "manufacturer": "Prime Keyboards", "url": "https://www.primekb.com", "maintainer": "holtenc", + "usb": { + "vid": "0x5052", + "pid": "0x004D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_unified_bs_rshift": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":8.5, "y":0}, {"label":"*", "x":9.5, "y":0}, {"label":"(", "x":10.5, "y":0}, {"label":")", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"Backspace", "x":14.5, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":8, "y":1}, {"label":"U", "x":9, "y":1}, {"label":"I", "x":10, "y":1}, {"label":"O", "x":11, "y":1}, {"label":"P", "x":12, "y":1}, {"label":"{", "x":13, "y":1}, {"label":"}", "x":14, "y":1}, {"label":"|", "x":15, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":8.25, "y":2}, {"label":"J", "x":9.25, "y":2}, {"label":"K", "x":10.25, "y":2}, {"label":"L", "x":11.25, "y":2}, {"label":":", "x":12.25, "y":2}, {"label":"\"", "x":13.25, "y":2}, {"label":"Enter", "x":14.25, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"N", "x":8.75, "y":3}, {"label":"M", "x":9.75, "y":3}, {"label":"<", "x":10.75, "y":3}, {"label":">", "x":11.75, "y":3}, {"label":"?", "x":12.75, "y":3}, {"label":"Shift", "x":13.75, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":2.25}, {"x":7.75, "y":4, "w":2.75}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":12.75, "y":4, "w":1.25}, {"label":"Menu", "x":14, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.25, "y":4, "w":1.25}] diff --git a/keyboards/primekb/meridian/ktr1010/config.h b/keyboards/primekb/meridian/ktr1010/config.h index bf91dc9715..faba78554f 100644 --- a/keyboards/primekb/meridian/ktr1010/config.h +++ b/keyboards/primekb/meridian/ktr1010/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5052 -#define PRODUCT_ID 0x004D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Prime Keyboards -#define PRODUCT Meridian - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/primekb/meridian/ws2812/config.h b/keyboards/primekb/meridian/ws2812/config.h index 082392c6bd..916847cf07 100644 --- a/keyboards/primekb/meridian/ws2812/config.h +++ b/keyboards/primekb/meridian/ws2812/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5052 -#define PRODUCT_ID 0x004D -#define DEVICE_VER 0x0001 -#define MANUFACTURER Prime Keyboards -#define PRODUCT Meridian - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/primekb/meridian_rgb/config.h b/keyboards/primekb/meridian_rgb/config.h index 4dc63d91ce..542cda7ca6 100644 --- a/keyboards/primekb/meridian_rgb/config.h +++ b/keyboards/primekb/meridian_rgb/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5052 -#define PRODUCT_ID 0x0042 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Prime Keyboards -#define PRODUCT Meridian RGB - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/primekb/meridian_rgb/info.json b/keyboards/primekb/meridian_rgb/info.json index 606fab0692..eebf1ea394 100644 --- a/keyboards/primekb/meridian_rgb/info.json +++ b/keyboards/primekb/meridian_rgb/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Meridian RGB", + "manufacturer": "Prime Keyboards", "url": "https://www.primekb.com", "maintainer": "holtenc", + "usb": { + "vid": "0x5052", + "pid": "0x0042", + "device_version": "0.0.2" + }, "layouts": { "LAYOUT": { "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":8.5, "y":0}, {"label":"*", "x":9.5, "y":0}, {"label":"(", "x":10.5, "y":0}, {"label":")", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"Backspace", "x":14.5, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":8, "y":1}, {"label":"U", "x":9, "y":1}, {"label":"I", "x":10, "y":1}, {"label":"O", "x":11, "y":1}, {"label":"P", "x":12, "y":1}, {"label":"{", "x":13, "y":1}, {"label":"}", "x":14, "y":1}, {"label":"|", "x":15, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":8.25, "y":2}, {"label":"J", "x":9.25, "y":2}, {"label":"K", "x":10.25, "y":2}, {"label":"L", "x":11.25, "y":2}, {"label":":", "x":12.25, "y":2}, {"label":"\"", "x":13.25, "y":2}, {"label":"Enter", "x":14.25, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"N", "x":8.75, "y":3}, {"label":"M", "x":9.75, "y":3}, {"label":"<", "x":10.75, "y":3}, {"label":">", "x":11.75, "y":3}, {"label":"?", "x":12.75, "y":3}, {"label":"Shift", "x":13.75, "y":3, "w":1.75}, {"label":"Fn", "x":15.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":2.25}, {"x":7.75, "y":4, "w":2.75}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":12.75, "y":4, "w":1.25}, {"label":"Menu", "x":14, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.25, "y":4, "w":1.25}] diff --git a/keyboards/primekb/prime_e/keymaps/via/keymap.c b/keyboards/primekb/prime_e/keymaps/via/keymap.c index 2d1d003d51..195f845cc2 100644 --- a/keyboards/primekb/prime_e/keymaps/via/keymap.c +++ b/keyboards/primekb/prime_e/keymaps/via/keymap.c @@ -108,7 +108,7 @@ void led_set_user(uint8_t usb_led) { //function for layer indicator LED layer_state_t layer_state_set_user(layer_state_t state) { - if (get_highest_layer(state) == 1) { + if (biton32(state) == 1) { writePinHigh(B3); } else { writePinLow(B3); diff --git a/keyboards/primekb/prime_m/config.h b/keyboards/primekb/prime_m/config.h index 3b01b5380e..c9a415feb8 100644 --- a/keyboards/primekb/prime_m/config.h +++ b/keyboards/primekb/prime_m/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5052 // "PR" -#define PRODUCT_ID 0x504D // "PM" -#define DEVICE_VER 0x0001 -#define MANUFACTURER PrimeKB -#define PRODUCT Prime_M - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 6 diff --git a/keyboards/primekb/prime_m/info.json b/keyboards/primekb/prime_m/info.json index c692690ba0..06a7d46447 100644 --- a/keyboards/primekb/prime_m/info.json +++ b/keyboards/primekb/prime_m/info.json @@ -1,8 +1,13 @@ - { "keyboard_name": "Prime_M", + "manufacturer": "PrimeKB", "url": "https://www.primekb.com", "maintainer": "MxBlu", + "usb": { + "vid": "0x5052", + "pid": "0x504D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x6": { "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}] diff --git a/keyboards/primekb/prime_o/config.h b/keyboards/primekb/prime_o/config.h index 9639f9b8f5..ba3976cc0e 100644 --- a/keyboards/primekb/prime_o/config.h +++ b/keyboards/primekb/prime_o/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4024 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PrimeKB -#define PRODUCT Prime_O - /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 8 diff --git a/keyboards/primekb/prime_o/info.json b/keyboards/primekb/prime_o/info.json index eb54834020..164c431a67 100644 --- a/keyboards/primekb/prime_o/info.json +++ b/keyboards/primekb/prime_o/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Prime_O", + "manufacturer": "PrimeKB", "url": "https://www.primekb.com", "maintainer": "MxBlu", + "usb": { + "vid": "0xFEED", + "pid": "0x4024", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] diff --git a/keyboards/primekb/prime_r/config.h b/keyboards/primekb/prime_r/config.h index b73eb346a7..d6d35e4ae3 100644 --- a/keyboards/primekb/prime_r/config.h +++ b/keyboards/primekb/prime_r/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER PrimeKB -#define PRODUCT Prime_R - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/primekb/prime_r/info.json b/keyboards/primekb/prime_r/info.json index a9e77a5ef9..c29b0419f8 100644 --- a/keyboards/primekb/prime_r/info.json +++ b/keyboards/primekb/prime_r/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Prime_R", + "manufacturer": "PrimeKB", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K015", "x":15, "y":0}, {"label":"K100", "x":0, "y":1}, {"label":"K101", "x":1, "y":1}, {"label":"K102", "x":2, "y":1}, {"label":"K103", "x":3, "y":1}, {"label":"K104", "x":4, "y":1}, {"label":"K105", "x":5, "y":1}, {"label":"K106", "x":6, "y":1}, {"label":"K107", "x":7, "y":1}, {"label":"K108", "x":8, "y":1}, {"label":"K109", "x":9, "y":1}, {"label":"K110", "x":10, "y":1}, {"label":"K111", "x":11, "y":1}, {"label":"K112", "x":12, "y":1}, {"label":"K113", "x":13, "y":1}, {"label":"K114", "x":14, "y":1}, {"label":"K115", "x":15, "y":1}, {"label":"K200", "x":0, "y":2, "w":1.25}, {"label":"K201", "x":1.25, "y":2}, {"label":"K202", "x":2.25, "y":2}, {"label":"K203", "x":3.25, "y":2}, {"label":"K204", "x":4.25, "y":2}, {"label":"K205", "x":5.25, "y":2}, {"label":"K206", "x":6.25, "y":2}, {"label":"K207", "x":7.25, "y":2}, {"label":"K208", "x":8.25, "y":2}, {"label":"K209", "x":9.25, "y":2}, {"label":"K210", "x":10.25, "y":2}, {"label":"K212", "x":11.25, "y":2, "w":1.75}, {"label":"K213", "x":13, "y":2}, {"label":"K214", "x":14, "y":2}, {"label":"K215", "x":15, "y":2}, {"label":"K300", "x":0, "y":3, "w":1.75}, {"label":"K302", "x":1.75, "y":3}, {"label":"K303", "x":2.75, "y":3}, {"label":"K304", "x":3.75, "y":3}, {"label":"K305", "x":4.75, "y":3}, {"label":"K306", "x":5.75, "y":3}, {"label":"K307", "x":6.75, "y":3}, {"label":"K308", "x":7.75, "y":3}, {"label":"K309", "x":8.75, "y":3}, {"label":"K310", "x":9.75, "y":3}, {"label":"K311", "x":10.75, "y":3}, {"label":"K312", "x":11.75, "y":3, "w":1.25}, {"label":"K313", "x":13, "y":3}, {"label":"K314", "x":14, "y":3}, {"label":"K315", "x":15, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K402", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4}, {"label":"K404", "x":3.5, "y":4}, {"label":"K405", "x":4.5, "y":4, "w":2}, {"label":"K407", "x":6.5, "y":4, "w":2.25}, {"label":"K409", "x":8.75, "y":4}, {"label":"K410", "x":9.75, "y":4}, {"label":"K411", "x":10.75, "y":4}, {"label":"K412", "x":11.75, "y":4, "w":1.25}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}, {"label":"K415", "x":15, "y":4}] diff --git a/keyboards/projectcain/relic/config.h b/keyboards/projectcain/relic/config.h new file mode 100644 index 0000000000..75bcd815d3 --- /dev/null +++ b/keyboards/projectcain/relic/config.h @@ -0,0 +1,128 @@ +/* +Copyright 2021 projectcain + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once +#define ENCODERS_PAD_A { D4 } +#define ENCODERS_PAD_B { D6 } + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D7, B2, B6, B5 } +#define MATRIX_COL_PINS { D3, D5, B0, F0, F1, F4, F5, F6, C7, C6, B4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== 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 +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/projectcain/relic/info.json b/keyboards/projectcain/relic/info.json new file mode 100644 index 0000000000..2b4041a261 --- /dev/null +++ b/keyboards/projectcain/relic/info.json @@ -0,0 +1,25 @@ +{ + "keyboard_name": "Relic", + "manufacturer": "projectcain", + "url": "", + "maintainer": "projectcain", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"BACK
SPACE", "x":11, "y":0}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":";", "x":10.25, "y":1, "w":1.75}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"/", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0.25, "y":3, "w":1.25}, {"label":"Alt", "x":1.5, "y":3, "w":1.25}, {"label":"MO(1)", "x":9.25, "y":3, "w":1.25}, {"label":"MO(2)", "x":10.5, "y":3, "w":1.25}, {"label":"LGUI", "x":3, "y":3.25}, {"label":"BACK
SPACE", "x":4, "y":3.25, "w":1.5}, {"label":"Space", "x":5.5, "y":3.25}, {"label":"Space", "x":6.5, "y":3.25, "w":1.5}, {"label":"RGUI", "x":8, "y":3.25}] + }, + "LAYOUT_full_space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"BACK
SPACE", "x":11, "y":0}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":";", "x":10.25, "y":1, "w":1.75}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"/", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0.25, "y":3, "w":1.25}, {"label":"Alt", "x":1.5, "y":3, "w":1.25}, {"label":"MO(1)", "x":9.25, "y":3, "w":1.25}, {"label":"MO(2)", "x":10.5, "y":3, "w":1.25}, {"label":"Space", "x":3, "y":3.25, "w":6}] + }, + "LAYOUT_split_2space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"BACK
SPACE", "x":11, "y":0}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":";", "x":10.25, "y":1, "w":1.75}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"/", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0.25, "y":3, "w":1.25}, {"label":"Alt", "x":1.5, "y":3, "w":1.25}, {"label":"MO(1)", "x":9.25, "y":3, "w":1.25}, {"label":"MO(2)", "x":10.5, "y":3, "w":1.25}, {"label":"BACK
SPACE", "x":3, "y":3.25, "w":3}, {"label":"Space", "x":6, "y":3.25, "w":3}] + }, + "LAYOUT_split_4space": { + "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"BACK
SPACE", "x":11, "y":0}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":";", "x":10.25, "y":1, "w":1.75}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"/", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0.25, "y":3, "w":1.25}, {"label":"Alt", "x":1.5, "y":3, "w":1.25}, {"label":"MO(1)", "x":9.25, "y":3, "w":1.25}, {"label":"MO(2)", "x":10.5, "y":3, "w":1.25}, {"label":"Lgui", "x":3, "y":3.25}, {"label":"BACK
SPACE", "x":4, "y":3.25, "w":2}, {"label":"Space", "x":6, "y":3.25, "w":2}, {"label":"Rgui", "x":8, "y":3.25}] + } + } +} diff --git a/keyboards/projectcain/relic/keymaps/default/config.h b/keyboards/projectcain/relic/keymaps/default/config.h new file mode 100644 index 0000000000..7756a8db2f --- /dev/null +++ b/keyboards/projectcain/relic/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define ENCODER_RESOLUTION 2 +#define COMBO_COUNT 6 +#define COMBO_TERM 50 +#define TAPPING_FORCE_HOLD +#define DISABLE_LEADER diff --git a/keyboards/projectcain/relic/keymaps/default/keymap.c b/keyboards/projectcain/relic/keymaps/default/keymap.c new file mode 100644 index 0000000000..92a6be3301 --- /dev/null +++ b/keyboards/projectcain/relic/keymaps/default/keymap.c @@ -0,0 +1,74 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +enum layers{ + BASE, + NUM, + SYM, + META +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_all( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + MO(1), KC_LCTRL, MO(1), SFT_T(KC_BSPC), KC_SPACE, KC_SPACE, MO(2), KC_LALT, MO(2) + ), + + [NUM] = LAYOUT_all( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_MINUS, KC_BSPC, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_PLUS, + KC_LCPO, KC_X, KC_C, KC_V, KC_B, KC_0, KC_1, KC_2, KC_3, KC_RCPC, + MO(1), KC_LCTRL, KC_TRNS, SFT_T(KC_BSPC), KC_TRNS, KC_SPACE, KC_TRNS, KC_LALT, MO(2) + ), + + [SYM] = LAYOUT_all( + S(KC_GRV), KC_GRV, KC_TRNS, S(KC_BSLS), KC_BSLS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), RESET, + S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN), + S(KC_LBRC), KC_LBRC, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_RBRC, S(KC_RBRC), + MO(1), KC_LCTRL, KC_TRNS, SFT_T(KC_BSPC), KC_TRNS, KC_SPACE, KC_TRNS, KC_LALT, MO(2) + ), + +}; + + + +enum combos { + KL_SLSH, + JK_MINUS, + LQUOTE_ENTER, + QW_ESC, + AS_TAB, + FJ_LGUI +}; + +const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END}; +const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; +const uint16_t PROGMEM lquote_combo[] = {KC_L, KC_QUOTE, COMBO_END}; +const uint16_t PROGMEM qw_combo[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM as_combo[] = {KC_A, KC_S, COMBO_END}; +const uint16_t PROGMEM fj_combo[] = {KC_F, KC_J, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)), + [JK_MINUS] = COMBO(jk_combo, KC_MINUS), + [LQUOTE_ENTER] = COMBO(lquote_combo, KC_ENTER), + [QW_ESC] = COMBO(qw_combo, KC_ESC), + [AS_TAB] = COMBO(as_combo, KC_TAB), + [FJ_LGUI] = COMBO(fj_combo, KC_LGUI) +}; diff --git a/keyboards/projectcain/relic/keymaps/default/readme.md b/keyboards/projectcain/relic/keymaps/default/readme.md new file mode 100644 index 0000000000..0c00cd74af --- /dev/null +++ b/keyboards/projectcain/relic/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for relic diff --git a/keyboards/projectcain/relic/keymaps/default/rules.mk b/keyboards/projectcain/relic/keymaps/default/rules.mk new file mode 100644 index 0000000000..dca6713d4f --- /dev/null +++ b/keyboards/projectcain/relic/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +ENCODER_ENABLE = yes +COMBO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/projectcain/relic/readme.md b/keyboards/projectcain/relic/readme.md new file mode 100644 index 0000000000..5f2606c543 --- /dev/null +++ b/keyboards/projectcain/relic/readme.md @@ -0,0 +1,17 @@ +# relic + +![relic](https://i.imgur.com/oqveJc2h.jpg) + +This is an 11-unit unibody split keyboard with an exploded spacebar cluster on bottom + +* Keyboard Maintainer: [projectcain](https://github.com/yourusername) +* Hardware Supported: Relic PCB +* Hardware Availability: mechvault.net + +To reset the keyboard into bootloader mode, short the two pads labeled "Reset" on the left side of the pcb + +Make example for this keyboard (after setting up your build environment): + + make projectcain/relic:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/projectcain/relic/relic.c b/keyboards/projectcain/relic/relic.c new file mode 100644 index 0000000000..f72250847d --- /dev/null +++ b/keyboards/projectcain/relic/relic.c @@ -0,0 +1,37 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "relic.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + return true; +} +#endif diff --git a/keyboards/projectcain/relic/relic.h b/keyboards/projectcain/relic/relic.h new file mode 100644 index 0000000000..45ae28a97f --- /dev/null +++ b/keyboards/projectcain/relic/relic.h @@ -0,0 +1,80 @@ +/* Copyright 2021 projectcain + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K300, K301, K303, K304, K305, K306, K307, K308, K309 \ +) \ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { K300, K301, KC_NO, K303, K304, K305, K306, K307, K308, K309, KC_NO } \ +} + +#define LAYOUT_full_space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K300, K301, K305, K308, K309 \ +) \ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { K300, K301, KC_NO, KC_NO, KC_NO, K305, KC_NO, KC_NO, K308, K309, KC_NO } \ +} + +#define LAYOUT_split_2space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K300, K301, K304, K306, K308, K309 \ +) \ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { K300, K301, KC_NO, KC_NO, K304, KC_NO, K306, KC_NO, K308, K309, KC_NO } \ +} + +#define LAYOUT_split_4space( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, \ + K300, K301, K303, K304, K306, K307, K308, K309 \ +) \ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO }, \ + { K300, K301, KC_NO, K303, K304, KC_NO, K306, K307, K308, K309, KC_NO } \ +} diff --git a/keyboards/projectcain/relic/rules.mk b/keyboards/projectcain/relic/rules.mk new file mode 100644 index 0000000000..717cc07b4b --- /dev/null +++ b/keyboards/projectcain/relic/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # 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 diff --git a/keyboards/projectcain/vault35/config.h b/keyboards/projectcain/vault35/config.h index 1490b0ba4e..a7edf78c23 100644 --- a/keyboards/projectcain/vault35/config.h +++ b/keyboards/projectcain/vault35/config.h @@ -16,13 +16,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER projectcain -#define PRODUCT vault35 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/projectcain/vault35/info.json b/keyboards/projectcain/vault35/info.json index e842e35e41..4b81c2ef76 100644 --- a/keyboards/projectcain/vault35/info.json +++ b/keyboards/projectcain/vault35/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Vault 35", + "keyboard_name": "Vault35", + "manufacturer": "projectcain", "url": "", "maintainer": "projectcain", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_4space": { "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"BACK
SPACE", "x":10, "y":0}, {"label":"TAB", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":5.25, "y":1}, {"label":"J", "x":6.25, "y":1}, {"label":"K", "x":7.25, "y":1}, {"label":"L", "x":8.25, "y":1}, {"label":"ENTER", "x":9.25, "y":1, "w":1.75}, {"label":"SHIFT", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":5.75, "y":2}, {"label":"M", "x":6.75, "y":2}, {"label":"<", "x":7.75, "y":2}, {"label":">", "x":8.75, "y":2}, {"label":"SHIFT", "x":9.75, "y":2, "w":1.25}, {"label":"CTRL", "x":1.5, "y":3}, {"label":"LOWER", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":1.75}, {"x":5.5, "y":3, "w":1.75}, {"label":"RAISE", "x":7.25, "y":3, "w":1.25}, {"label":"ALT", "x":8.5, "y":3}] diff --git a/keyboards/projectcain/vault45/config.h b/keyboards/projectcain/vault45/config.h index e531c7f530..a6d9edcb3c 100644 --- a/keyboards/projectcain/vault45/config.h +++ b/keyboards/projectcain/vault45/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER projectcain -#define PRODUCT vault45 - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/projectcain/vault45/info.json b/keyboards/projectcain/vault45/info.json index 6f272e3bba..9e3ebcb02e 100644 --- a/keyboards/projectcain/vault45/info.json +++ b/keyboards/projectcain/vault45/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Vault 45", + "keyboard_name": "Vault45", + "manufacturer": "projectcain", "url": "", "maintainer": "projectcain", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT": "LAYOUT_all" }, diff --git a/keyboards/projectkb/alice/info.json b/keyboards/projectkb/alice/info.json index b4ae3103c2..f85ce98b15 100644 --- a/keyboards/projectkb/alice/info.json +++ b/keyboards/projectkb/alice/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Alice", + "manufacturer": "ProjectKB", "url": "https://store.projectkeyboard.com/", "maintainer": "qmk", + "usb": { + "vid": "0x0159", + "pid": "0xA71C", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_alice_split_bs": { "layout": [ diff --git a/keyboards/projectkb/alice/rev1/config.h b/keyboards/projectkb/alice/rev1/config.h index 498c1f9370..c06f73a35b 100644 --- a/keyboards/projectkb/alice/rev1/config.h +++ b/keyboards/projectkb/alice/rev1/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0159 -#define PRODUCT_ID 0xA71C -#define DEVICE_VER 0x0001 -#define MANUFACTURER ProjectKB -#define PRODUCT Alice - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/projectkb/alice/rev2/config.h b/keyboards/projectkb/alice/rev2/config.h index 21742ac7b8..9e66d6a628 100644 --- a/keyboards/projectkb/alice/rev2/config.h +++ b/keyboards/projectkb/alice/rev2/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0159 -#define PRODUCT_ID 0xA71C -#define DEVICE_VER 0x0001 -#define MANUFACTURER ProjectKB -#define PRODUCT Alice - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/projectkb/signature65/config.h b/keyboards/projectkb/signature65/config.h index f37085c190..cadc03dcf7 100644 --- a/keyboards/projectkb/signature65/config.h +++ b/keyboards/projectkb/signature65/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0159 -#define PRODUCT_ID 0x0165 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Project Keyboard -#define PRODUCT Signature65 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 diff --git a/keyboards/projectkb/signature65/info.json b/keyboards/projectkb/signature65/info.json index 15e08907b0..1344dedac4 100644 --- a/keyboards/projectkb/signature65/info.json +++ b/keyboards/projectkb/signature65/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Kepler FC65", + "keyboard_name": "Signature65", + "manufacturer": "Project Keyboard", "url": "https://store.projectkeyboard.com", "maintainer": "projectkeyboard", + "usb": { + "vid": "0x0159", + "pid": "0x0165", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/projectkb/signature87/config.h b/keyboards/projectkb/signature87/config.h index 5e6a9214af..188419e89d 100644 --- a/keyboards/projectkb/signature87/config.h +++ b/keyboards/projectkb/signature87/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0159 -#define PRODUCT_ID 0x0187 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Project Keyboard -#define PRODUCT Signature87 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 9 diff --git a/keyboards/projectkb/signature87/info.json b/keyboards/projectkb/signature87/info.json index 2be7e402e6..bafbbd4cb9 100644 --- a/keyboards/projectkb/signature87/info.json +++ b/keyboards/projectkb/signature87/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "Signature 87", + "keyboard_name": "Signature87", + "manufacturer": "Project Keyboard", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x0159", + "pid": "0x0187", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "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.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}] diff --git a/keyboards/prototypist/allison/config.h b/keyboards/prototypist/allison/config.h index 89a24768de..ef3fffb3a3 100644 --- a/keyboards/prototypist/allison/config.h +++ b/keyboards/prototypist/allison/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x414D -#define DEVICE_VER 0x0001 -#define MANUFACTURER protoTypist -#define PRODUCT Allison - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 15 diff --git a/keyboards/prototypist/allison/info.json b/keyboards/prototypist/allison/info.json index cd6b51f96e..f4108081cc 100644 --- a/keyboards/prototypist/allison/info.json +++ b/keyboards/prototypist/allison/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "allison", + "keyboard_name": "Allison", + "manufacturer": "protoTypist", "url": "www.yiancar-designs.com", "maintainer": "Yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x414D", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"label":"0,0", "x":1.25, "y":0}, {"label":"0,1", "x":2.5, "y":0}, {"label":"0,2", "x":3.5, "y":0}, {"label":"0,3", "x":4.5, "y":0}, {"label":"0,4", "x":5.5, "y":0}, {"label":"0,5", "x":6.75, "y":0}, {"label":"0,6", "x":7.75, "y":0}, {"label":"0,7", "x":8.75, "y":0}, {"label":"0,8", "x":9.75, "y":0}, {"label":"0,9", "x":11, "y":0}, {"label":"0,10", "x":12, "y":0}, {"label":"0,11", "x":13, "y":0}, {"label":"0,12", "x":14, "y":0}, {"label":"0,13", "x":15.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1.25, "y":1.25}, {"label":"1,2", "x":2.25, "y":1.25}, {"label":"1,3", "x":3.25, "y":1.25}, {"label":"1,4", "x":4.25, "y":1.25}, {"label":"1,5", "x":5.25, "y":1.25}, {"label":"1,6", "x":6.25, "y":1.25}, {"label":"1,7", "x":7.25, "y":1.25}, {"label":"1,8", "x":8.25, "y":1.25}, {"label":"1,9", "x":9.25, "y":1.25}, {"label":"1,10", "x":10.25, "y":1.25}, {"label":"1,11", "x":11.25, "y":1.25}, {"label":"1,12", "x":12.25, "y":1.25}, {"label":"1,13", "x":13.25, "y":1.25}, {"label":"1,14", "x":14.25, "y":1.25}, {"label":"0,14", "x":15.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25}, {"label":"2,1", "x":1.25, "y":2.25, "w":1.5}, {"label":"2,2", "x":2.75, "y":2.25}, {"label":"2,3", "x":3.75, "y":2.25}, {"label":"2,4", "x":4.75, "y":2.25}, {"label":"2,5", "x":5.75, "y":2.25}, {"label":"2,6", "x":6.75, "y":2.25}, {"label":"2,7", "x":7.75, "y":2.25}, {"label":"2,8", "x":8.75, "y":2.25}, {"label":"2,9", "x":9.75, "y":2.25}, {"label":"2,10", "x":10.75, "y":2.25}, {"label":"2,11", "x":11.75, "y":2.25}, {"label":"2,12", "x":12.75, "y":2.25}, {"label":"2,13", "x":13.75, "y":2.25}, {"label":"2,14", "x":14.75, "y":2.25, "w":1.5}, {"label":"3,0", "x":0, "y":3.25}, {"label":"3,1", "x":1.25, "y":3.25, "w":1.75}, {"label":"3,2", "x":3, "y":3.25}, {"label":"3,3", "x":4, "y":3.25}, {"label":"3,4", "x":5, "y":3.25}, {"label":"3,5", "x":6, "y":3.25}, {"label":"3,6", "x":7, "y":3.25}, {"label":"3,7", "x":8, "y":3.25}, {"label":"3,8", "x":9, "y":3.25}, {"label":"3,9", "x":10, "y":3.25}, {"label":"3,10", "x":11, "y":3.25}, {"label":"3,11", "x":12, "y":3.25}, {"label":"3,12", "x":13, "y":3.25}, {"label":"3,13", "x":14, "y":3.25}, {"label":"3,14", "x":15, "y":3.25, "w":1.25}, {"label":"4,0", "x":0, "y":4.25}, {"label":"4,1", "x":1.25, "y":4.25, "w":1.25}, {"label":"4,2", "x":2.5, "y":4.25}, {"label":"4,3", "x":3.5, "y":4.25}, {"label":"4,4", "x":4.5, "y":4.25}, {"label":"4,5", "x":5.5, "y":4.25}, {"label":"4,6", "x":6.5, "y":4.25}, {"label":"4,7", "x":7.5, "y":4.25}, {"label":"4,8", "x":8.5, "y":4.25}, {"label":"4,9", "x":9.5, "y":4.25}, {"label":"4,10", "x":10.5, "y":4.25}, {"label":"4,11", "x":11.5, "y":4.25}, {"label":"4,12", "x":12.5, "y":4.25}, {"label":"4,13", "x":13.5, "y":4.25, "w":1.75}, {"label":"4,14", "x":15.25, "y":4.25}, {"label":"5,0", "x":0, "y":5.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.5}, {"label":"5,2", "x":2.75, "y":5.25}, {"label":"5,3", "x":3.75, "y":5.25, "w":1.5}, {"label":"5,8", "x":5.25, "y":5.25, "w":7}, {"label":"5,12", "x":12.25, "y":5.25, "w":1.5}, {"label":"5,13", "x":13.75, "y":5.25}, {"label":"5,14", "x":14.75, "y":5.25, "w":1.5}] diff --git a/keyboards/prototypist/allison_numpad/config.h b/keyboards/prototypist/allison_numpad/config.h index 59fb02d9a5..312049ff01 100644 --- a/keyboards/prototypist/allison_numpad/config.h +++ b/keyboards/prototypist/allison_numpad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x414E -#define DEVICE_VER 0x0001 -#define MANUFACTURER protoTypist -#define PRODUCT Allison Numpad - /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 4 diff --git a/keyboards/prototypist/allison_numpad/info.json b/keyboards/prototypist/allison_numpad/info.json index e644d8ec3b..bf0de7a653 100644 --- a/keyboards/prototypist/allison_numpad/info.json +++ b/keyboards/prototypist/allison_numpad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "allison_numpad", + "keyboard_name": "Allison Numpad", + "manufacturer": "protoTypist", "url": "www.yiancar-designs.com", "maintainer": "Yiancar", + "usb": { + "vid": "0x8968", + "pid": "0x414E", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_6x4": { "layout": [ diff --git a/keyboards/prototypist/j01/config.h b/keyboards/prototypist/j01/config.h index 4d15e1349b..d1e861aaad 100644 --- a/keyboards/prototypist/j01/config.h +++ b/keyboards/prototypist/j01/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5450 -#define PRODUCT_ID 0x6A31 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Prototypist -#define PRODUCT J-01 Rev1 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 18 diff --git a/keyboards/prototypist/j01/info.json b/keyboards/prototypist/j01/info.json index c93f4a9f4d..6ff8ce09c5 100644 --- a/keyboards/prototypist/j01/info.json +++ b/keyboards/prototypist/j01/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "J-01", + "keyboard_name": "J-01 Rev1", + "manufacturer": "Prototypist", "url": "https://prototypist.net/", "maintainer": "Flexerm", + "usb": { + "vid": "0x5450", + "pid": "0x6A31", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/protozoa/cassini/config.h b/keyboards/protozoa/cassini/config.h index cdcef1e0ac..991a33db40 100644 --- a/keyboards/protozoa/cassini/config.h +++ b/keyboards/protozoa/cassini/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x8968 -#define PRODUCT_ID 0x4341 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Yiancar-Designs -#define PRODUCT Cassini - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 diff --git a/keyboards/protozoa/cassini/info.json b/keyboards/protozoa/cassini/info.json index be662952e2..456e00707b 100644 --- a/keyboards/protozoa/cassini/info.json +++ b/keyboards/protozoa/cassini/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Cassini", + "manufacturer": "Yiancar-Designs", "url": "https://yiancar-designs.com", "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x4341", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_all": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] diff --git a/keyboards/psuieee/pluto12/config.h b/keyboards/psuieee/pluto12/config.h index 49466f7b4a..baab1e89e8 100644 --- a/keyboards/psuieee/pluto12/config.h +++ b/keyboards/psuieee/pluto12/config.h @@ -5,13 +5,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4747 -#define PRODUCT_ID 0x7012 -#define DEVICE_VER 0x0001 -#define MANUFACTURER psuieee -#define PRODUCT pluto12 - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/psuieee/pluto12/info.json b/keyboards/psuieee/pluto12/info.json index a48b687fb1..3858497cd2 100644 --- a/keyboards/psuieee/pluto12/info.json +++ b/keyboards/psuieee/pluto12/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "pluto12", + "manufacturer": "psuieee", "url": "https://github.com/psuieee/pluto12", "maintainer": "wymcg", + "usb": { + "vid": "0x4747", + "pid": "0x7012", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/pteron36/config.h b/keyboards/pteron36/config.h index 793dc8e5ed..976bc11f6f 100644 --- a/keyboards/pteron36/config.h +++ b/keyboards/pteron36/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4847 //HG -#define PRODUCT_ID 0x5054 //PT -#define DEVICE_VER 0x0001 -#define MANUFACTURER Harshit Goel -#define PRODUCT Pteron36 - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 5 diff --git a/keyboards/pteron36/info.json b/keyboards/pteron36/info.json index e191dc616f..e5323631ee 100644 --- a/keyboards/pteron36/info.json +++ b/keyboards/pteron36/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Pteron36", + "manufacturer": "Harshit Goel", "url": "", "maintainer": "harshitgoel96", + "usb": { + "vid": "0x4847", + "pid": "0x5054", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_split_3x5_3": { "layout": [ diff --git a/keyboards/puck/config.h b/keyboards/puck/config.h index c4eeb207f9..a3d875b65a 100644 --- a/keyboards/puck/config.h +++ b/keyboards/puck/config.h @@ -2,13 +2,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER OkKeebs LLC -#define PRODUCT Puck - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 3 diff --git a/keyboards/puck/info.json b/keyboards/puck/info.json index 095f572163..0d9c5ffa04 100644 --- a/keyboards/puck/info.json +++ b/keyboards/puck/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Puck", + "manufacturer": "OkKeebs LLC", "url": "", "maintainer": "john-pettigrew", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/punk75/config.h b/keyboards/punk75/config.h index 61950da946..de13a09e6d 100644 --- a/keyboards/punk75/config.h +++ b/keyboards/punk75/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xDEED -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER dsanchezseco -#define PRODUCT punk75 - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/punk75/info.json b/keyboards/punk75/info.json index 8a774b94ea..1bfae0305c 100644 --- a/keyboards/punk75/info.json +++ b/keyboards/punk75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "punk75", + "manufacturer": "dsanchezseco", "url": "", "maintainer": "dsanchezseco", + "usb": { + "vid": "0xDEED", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_ortho_5x15": { "layout": [ diff --git a/keyboards/q4z/config.h b/keyboards/q4z/config.h index 8a591a9a89..19d618a025 100644 --- a/keyboards/q4z/config.h +++ b/keyboards/q4z/config.h @@ -17,13 +17,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x0001 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER drmmr -#define PRODUCT q4z keyboard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 10 diff --git a/keyboards/q4z/info.json b/keyboards/q4z/info.json index 47fe4dd0ed..6b1503f551 100644 --- a/keyboards/q4z/info.json +++ b/keyboards/q4z/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "q4z", + "manufacturer": "drmmr", "url": "", "maintainer": "rjboone", + "usb": { + "vid": "0x0001", + "pid": "0x0001", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/qpockets/eggman/config.h b/keyboards/qpockets/eggman/config.h index e1515e6c3d..50f05a0147 100644 --- a/keyboards/qpockets/eggman/config.h +++ b/keyboards/qpockets/eggman/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7170 -#define PRODUCT_ID 0x656D -#define DEVICE_VER 0x1000 -#define MANUFACTURER qpockets -#define PRODUCT eggman - /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 7 diff --git a/keyboards/qpockets/eggman/info.json b/keyboards/qpockets/eggman/info.json index 17e1cb2166..f9cc6c77b9 100644 --- a/keyboards/qpockets/eggman/info.json +++ b/keyboards/qpockets/eggman/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "eggman", + "manufacturer": "qpockets", "url": "", "maintainer": "qpockets", + "usb": { + "vid": "0x7170", + "pid": "0x656D", + "device_version": "10.0.0" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/qpockets/space_space/rev1/config.h b/keyboards/qpockets/space_space/rev1/config.h index d52aad4c2b..50ef5b3a20 100644 --- a/keyboards/qpockets/space_space/rev1/config.h +++ b/keyboards/qpockets/space_space/rev1/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7170 -#define PRODUCT_ID 0x7373 -#define DEVICE_VER 0x3000 -#define MANUFACTURER qpockets -#define PRODUCT space_space - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/qpockets/space_space/rev1/info.json b/keyboards/qpockets/space_space/rev1/info.json index 5bac73c642..f882474efe 100644 --- a/keyboards/qpockets/space_space/rev1/info.json +++ b/keyboards/qpockets/space_space/rev1/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "space_space", + "manufacturer": "qpockets", "url": "", "maintainer": "qpockets", + "usb": { + "vid": "0x7170", + "pid": "0x7373", + "device_version": "30.0.0" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/qpockets/space_space/rev2/config.h b/keyboards/qpockets/space_space/rev2/config.h index bb8f04da2b..5be679fa50 100644 --- a/keyboards/qpockets/space_space/rev2/config.h +++ b/keyboards/qpockets/space_space/rev2/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7170 -#define PRODUCT_ID 0x7373 -#define DEVICE_VER 0x3002 -#define MANUFACTURER qpockets -#define PRODUCT space_space - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 11 diff --git a/keyboards/qpockets/space_space/rev2/info.json b/keyboards/qpockets/space_space/rev2/info.json index 5bac73c642..a6cad3665e 100644 --- a/keyboards/qpockets/space_space/rev2/info.json +++ b/keyboards/qpockets/space_space/rev2/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "space_space", + "manufacturer": "qpockets", "url": "", "maintainer": "qpockets", + "usb": { + "vid": "0x7170", + "pid": "0x7373", + "device_version": "30.0.2" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/qpockets/wanten/config.h b/keyboards/qpockets/wanten/config.h index 18a91c1dfd..f2723ef51c 100644 --- a/keyboards/qpockets/wanten/config.h +++ b/keyboards/qpockets/wanten/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x7170 //qp -#define PRODUCT_ID 0x7774 //wt -#define DEVICE_VER 0x0001 -#define MANUFACTURER qpockets -#define PRODUCT wanten - /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 diff --git a/keyboards/qpockets/wanten/info.json b/keyboards/qpockets/wanten/info.json index e683761582..d78efd2758 100644 --- a/keyboards/qpockets/wanten/info.json +++ b/keyboards/qpockets/wanten/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "wanten", + "manufacturer": "qpockets", "url": "", "maintainer": "qpockets", + "usb": { + "vid": "0x7170", + "pid": "0x7774", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/quad_h/lb75/config.h b/keyboards/quad_h/lb75/config.h index 36cb275a97..e5e9af0d7a 100644 --- a/keyboards/quad_h/lb75/config.h +++ b/keyboards/quad_h/lb75/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA103 -#define PRODUCT_ID 0x0007 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QUADH -#define PRODUCT LB75 - /* key matrix size */ #define MATRIX_ROWS 12 #define MATRIX_COLS 8 diff --git a/keyboards/quad_h/lb75/info.json b/keyboards/quad_h/lb75/info.json index 84916f1b9b..10e63cb2d0 100644 --- a/keyboards/quad_h/lb75/info.json +++ b/keyboards/quad_h/lb75/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "LB75", + "manufacturer": "QUADH", "url": "", "maintainer": "ai03", + "usb": { + "vid": "0xA103", + "pid": "0x0007", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT_continuous_fnrow": { "layout": [ diff --git a/keyboards/quantrik/kyuu/config.h b/keyboards/quantrik/kyuu/config.h index 772e404ad0..e0e30baa63 100644 --- a/keyboards/quantrik/kyuu/config.h +++ b/keyboards/quantrik/kyuu/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5154 // "QT" -#define PRODUCT_ID 0x0009 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Quantrik -#define PRODUCT Kyuu - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/quantrik/kyuu/info.json b/keyboards/quantrik/kyuu/info.json index c245b8baee..f30b74c1a7 100644 --- a/keyboards/quantrik/kyuu/info.json +++ b/keyboards/quantrik/kyuu/info.json @@ -1,7 +1,13 @@ { "keyboard_name": "Kyuu", + "manufacturer": "Quantrik", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0x5154", + "pid": "0x0009", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/qvex/lynepad/config.h b/keyboards/qvex/lynepad/config.h index d1a5c2eb0b..e3c38406db 100644 --- a/keyboards/qvex/lynepad/config.h +++ b/keyboards/qvex/lynepad/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x5156 -#define PRODUCT_ID 0x4C50 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QVEX -#define PRODUCT Lynepad - /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 4 diff --git a/keyboards/qvex/lynepad/info.json b/keyboards/qvex/lynepad/info.json index 46612141c1..3a21a1f9b5 100644 --- a/keyboards/qvex/lynepad/info.json +++ b/keyboards/qvex/lynepad/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "QVEX Lynepad", + "keyboard_name": "Lynepad", + "manufacturer": "QVEX", "url": "https://www.tindie.com/products/qvex_tech/qvex-lynepad-macro-keypad/", "maintainer": "KemoNine", + "usb": { + "vid": "0x5156", + "pid": "0x4C50", + "device_version": "0.0.1" + }, "layouts": { "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}] diff --git a/keyboards/qwertykeys/qk65/hotswap/config.h b/keyboards/qwertykeys/qk65/hotswap/config.h index 8dfaf1648d..51b4780c22 100644 --- a/keyboards/qwertykeys/qk65/hotswap/config.h +++ b/keyboards/qwertykeys/qk65/hotswap/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4F53 //0x4F53 for qwertykeys -#define PRODUCT_ID 0x514B //0x514B QK for QK65 -#define DEVICE_VER 0x0001 -#define MANUFACTURER qwertykeys -#define PRODUCT QK65 - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/qwertykeys/qk65/hotswap/info.json b/keyboards/qwertykeys/qk65/hotswap/info.json index 21d30bd491..a4684a27db 100644 --- a/keyboards/qwertykeys/qk65/hotswap/info.json +++ b/keyboards/qwertykeys/qk65/hotswap/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "qk65", + "keyboard_name": "QK65 Hotswap", + "manufacturer": "qwertykeys", "url": "", "maintainer": "qwertykeys", + "usb": { + "vid": "0x4F53", + "pid": "0x514B", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_hotswap": "LAYOUT_65_ansi_blocker" }, diff --git a/keyboards/qwertykeys/qk65/solder/config.h b/keyboards/qwertykeys/qk65/solder/config.h index be8c11bbda..b12d6d4121 100644 --- a/keyboards/qwertykeys/qk65/solder/config.h +++ b/keyboards/qwertykeys/qk65/solder/config.h @@ -19,14 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter s*/ -#define VENDOR_ID 0x4F53 // 0x4F53 for qwertykeys -#define PRODUCT_ID 0x5153 //0x5153 QS for QK65 Solder -#define DEVICE_VER 0x0001 -#define MANUFACTURER qwertykeys -#define PRODUCT QK65 - - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 diff --git a/keyboards/qwertykeys/qk65/solder/info.json b/keyboards/qwertykeys/qk65/solder/info.json index 53c5179f42..332f881cb3 100644 --- a/keyboards/qwertykeys/qk65/solder/info.json +++ b/keyboards/qwertykeys/qk65/solder/info.json @@ -1,7 +1,13 @@ { - "keyboard_name": "qk65", + "keyboard_name": "QK65 Solder", + "manufacturer": "qwertykeys", "url": "", "maintainer": "qwertykeys", + "usb": { + "vid": "0x4F53", + "pid": "0x5153", + "device_version": "0.0.1" + }, "layout_aliases": { "LAYOUT_solder": "LAYOUT_all", "LAYOUT_iso": "LAYOUT_65_iso_blocker" diff --git a/keyboards/qwertyydox/config.h b/keyboards/qwertyydox/config.h index 4ca8fed192..748999ac64 100644 --- a/keyboards/qwertyydox/config.h +++ b/keyboards/qwertyydox/config.h @@ -19,13 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xCEEB -#define PRODUCT_ID 0x1256 -#define DEVICE_VER 0x0100 -#define MANUFACTURER AYDENandDAD Youtube -#define PRODUCT QWERTYYdox - /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 diff --git a/keyboards/qwertyydox/info.json b/keyboards/qwertyydox/info.json index 53de10d3f6..ee19ee58c0 100644 --- a/keyboards/qwertyydox/info.json +++ b/keyboards/qwertyydox/info.json @@ -1,8 +1,14 @@ { "keyboard_name": "QWERTYYdox", + "manufacturer": "AYDENandDAD Youtube", "identifier": "0x1256", "url": "", "maintainer": "qmk", + "usb": { + "vid": "0xCEEB", + "pid": "0x1256", + "device_version": "1.0.0" + }, "bootloader": "caterina", "processor": "atmega32u4", "layouts": { diff --git a/keyboards/redox_w/keymaps/italian/keymap.c b/keyboards/redox_w/keymaps/italian/keymap.c index b4c815e4f5..e67742c6a1 100644 --- a/keyboards/redox_w/keymaps/italian/keymap.c +++ b/keyboards/redox_w/keymaps/italian/keymap.c @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_ADPU ,KC_PGDN , KC_HOME ,KC_ADEN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,IT_UGRV ,IT_SHSL , //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ - GUI_LESS,KC_PPLS ,KC_PMNS ,KC_ALAS , KC_CTPL , KC_BSPC ,KC_DEL , KC_ENT ,KC_SPC , ALT_IACC, KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT + GUI_LESS,KC_PPLS ,KC_PMNS ,KC_ALAS , KC_CTPL , KC_BSPC ,KC_DEL , KC_ENT ,KC_SPC , ALT_IACC, KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ ), @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ _______ ,IT_PERC ,IT_CIRC ,IT_LPRN ,IT_RPRN ,IT_TILD ,_______ ,_______ , _______ ,_______ ,XXXXXXX ,KC_KP_1 ,KC_KP_2 ,KC_KP_3 ,XXXXXXX ,XXXXXXX , //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ - _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , KC_KP_0 , KC_KP_0 ,KC_PDOT ,XXXXXXX ,XXXXXXX + _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , KC_KP_0 , KC_KP_0 ,KC_PDOT ,XXXXXXX ,XXXXXXX //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ ), @@ -81,7 +81,7 @@ 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 , KC_BTN1 , KC_BTN2 ,_______ , _______ ,_______ , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX + XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_BTN1 , KC_BTN2 ,_______ , _______ ,_______ , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ ), @@ -95,14 +95,14 @@ 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 ,XXXXXXX ,XXXXXXX ,XXXXXXX //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ ) }; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case _QWERTY: @@ -121,3 +121,5 @@ void matrix_scan_user(void) { break; } }; + + diff --git a/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h b/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h index ffc0d98798..d2d64b8894 100644 --- a/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/redscarf_i/redscarf_i.c b/keyboards/redscarf_i/redscarf_i.c index 039e20664d..a8a685b13b 100644 --- a/keyboards/redscarf_i/redscarf_i.c +++ b/keyboards/redscarf_i/redscarf_i.c @@ -36,7 +36,7 @@ bool led_update_kb(led_t led_state) { } layer_state_t layer_state_set_kb(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case 1: writePinHigh(F6); writePinLow(F5); diff --git a/keyboards/reviung/reviung41/info.json b/keyboards/reviung/reviung41/info.json index ff9e11b939..d640c86611 100644 --- a/keyboards/reviung/reviung41/info.json +++ b/keyboards/reviung/reviung41/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "reviung39", + "keyboard_name": "reviung41", "url": "", "maintainer": "gtips", "layouts": { diff --git a/keyboards/rgbkb/pan/keymaps/default/keymap.c b/keyboards/rgbkb/pan/keymaps/default/keymap.c index dcafeec765..dbc127616a 100644 --- a/keyboards/rgbkb/pan/keymaps/default/keymap.c +++ b/keyboards/rgbkb/pan/keymaps/default/keymap.c @@ -75,7 +75,7 @@ bool oled_task_user(void) { // Host Keyboard Layer Status oled_write_P(PSTR("RGBKB Pan\n"), false); oled_write_P(PSTR("Layer: "), false); - uint8_t layer = get_highest_layer(layer_state|default_layer_state); + uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state); switch (layer) { case _QWERTY: oled_write_P(PSTR("Default\n"), false); diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c index 1ce18bc1ab..c82259f5ee 100644 --- a/keyboards/rgbkb/sol/keymaps/default/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c @@ -233,7 +233,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else #endif { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); uint16_t keycode = pgm_read_word(&encoders[layer][index][clockwise]); while (keycode == KC_TRANSPARENT && layer > 0) { @@ -325,7 +325,7 @@ static void render_status(void) { // Define layers here oled_write_P(PSTR("Layer"), false); - uint8_t layer = get_highest_layer(layer_state|default_layer_state); + uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state); switch (layer) { case _QWERTY: oled_write_P(PSTR("BASE "), false); diff --git a/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c b/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c index bc0884c8e4..bdcfbb1b93 100644 --- a/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/xyverz/keymap.c @@ -263,7 +263,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else #endif { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); uint16_t keycode = encoders[layer][index][clockwise]; while (keycode == KC_TRANSPARENT && layer > 0) { @@ -306,7 +306,7 @@ static void render_status(void) { // Define layers here oled_write_P(PSTR(" Layer-----"), false); - uint8_t layer = layer_state ? get_highest_layer(layer_state) : get_highest_layer(default_layer_state); + uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state); switch (layer) { case _DVORAK: oled_write_P(PSTR("DVRAK"), false); diff --git a/keyboards/rgbkb/zen/rev2/rev2.c b/keyboards/rgbkb/zen/rev2/rev2.c index 70e5531673..5461890272 100644 --- a/keyboards/rgbkb/zen/rev2/rev2.c +++ b/keyboards/rgbkb/zen/rev2/rev2.c @@ -37,7 +37,7 @@ void render_status(void) { // 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 oled_set_cursor(0, 3); // Line 3 oled_write_P(PSTR("Layer"), false); // Line 4 - oled_write_P(layer_name_user(get_highest_layer(layer_state)), false); + oled_write_P(layer_name_user(biton32(layer_state)), false); // Host Keyboard LED Status uint8_t led_usb_state = host_keyboard_leds(); diff --git a/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c b/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c index f4d5c82a71..48bd1a33f7 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c +++ b/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c @@ -198,7 +198,7 @@ static void render_status(void) { // 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 oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _QWERTY: oled_write_ln_P(PSTR("QWERTY"), false); break; diff --git a/keyboards/runes/skjoldr/config.h b/keyboards/runes/skjoldr/config.h new file mode 100644 index 0000000000..5e605792c7 --- /dev/null +++ b/keyboards/runes/skjoldr/config.h @@ -0,0 +1,101 @@ +/* +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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x726E +#define PRODUCT_ID 0x736B +#define DEVICE_VER 0x0001 +#define MANUFACTURER Runes +#define PRODUCT Skjöldr + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D6, D7, B4, B5, B0 } +#define MATRIX_COL_PINS { B7, D0, D1, D2, D3, B3, E6, D5, F7, F6, F5, F4, F1, F0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/runes/skjoldr/info.json b/keyboards/runes/skjoldr/info.json new file mode 100644 index 0000000000..337f14c755 --- /dev/null +++ b/keyboards/runes/skjoldr/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "Runes Skjöldr", + "url": "https://www.runes.id", + "maintainer": "vicktorhu", + "layout_aliases": { + "LAYOUT": "LAYOUT_60_ansi_arrow" + }, + "layouts": { + "LAYOUT_60_ansi_arrow": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":13, "y":3}, + {"label":"Delete", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Fn2", "x":10, "y":4}, + {"label":"Fn1", "x":11, "y":4}, + {"label":"\u2190", "x":12, "y":4}, + {"label":"\u2193", "x":13, "y":4}, + {"label":"\u2192", "x":14, "y":4} + ] + } + } +} diff --git a/keyboards/runes/skjoldr/keymaps/default/keymap.c b/keyboards/runes/skjoldr/keymaps/default/keymap.c new file mode 100644 index 0000000000..9f40341e44 --- /dev/null +++ b/keyboards/runes/skjoldr/keymaps/default/keymap.c @@ -0,0 +1,59 @@ +/* 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _DOUBLE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_ansi_arrow( + KC_ESC, KC_1, KC_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_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LOWER] = LAYOUT_60_ansi_arrow( + 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, + KC_TRNS, KC_PGUP, KC_HOME, KC_INS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_END, KC_PAUS, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PSCR, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MSTP, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_RAISE] = LAYOUT_60_ansi_arrow( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + + [_DOUBLE] = LAYOUT_60_ansi_arrow( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/runes/skjoldr/keymaps/default/readme.md b/keyboards/runes/skjoldr/keymaps/default/readme.md new file mode 100644 index 0000000000..24f28db1e9 --- /dev/null +++ b/keyboards/runes/skjoldr/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Skjoldr \ No newline at end of file diff --git a/keyboards/runes/skjoldr/keymaps/via/keymap.c b/keyboards/runes/skjoldr/keymaps/via/keymap.c new file mode 100644 index 0000000000..9f40341e44 --- /dev/null +++ b/keyboards/runes/skjoldr/keymaps/via/keymap.c @@ -0,0 +1,59 @@ +/* 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _DOUBLE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_ansi_arrow( + KC_ESC, KC_1, KC_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_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LOWER] = LAYOUT_60_ansi_arrow( + 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, + KC_TRNS, KC_PGUP, KC_HOME, KC_INS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGDN, KC_END, KC_PAUS, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PSCR, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MSTP, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_RAISE] = LAYOUT_60_ansi_arrow( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + + [_DOUBLE] = LAYOUT_60_ansi_arrow( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/runes/skjoldr/keymaps/via/rules.mk b/keyboards/runes/skjoldr/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/runes/skjoldr/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/runes/skjoldr/readme.md b/keyboards/runes/skjoldr/readme.md new file mode 100644 index 0000000000..96adf5f4ab --- /dev/null +++ b/keyboards/runes/skjoldr/readme.md @@ -0,0 +1,23 @@ +# Skjöldr + +![Skjöldr](https://i.imgur.com/HtRqhxDh.jpg) + +Skjöldr [/ˈskjɒldr̩/] (Old Norse: Shield) + +60% keyboard with arrow keys based on atmega32u4 mcu. + +* Keyboard Maintainer: [Vicktor](https://github.com/vicktorhu) +* Hardware Supported: atmega32u4 +* Hardware Availability: [Website](https://www.runes.id) -- Currently Indonesia only + +Reset the keyboard with **FN** + **Backspace** or by pressing the reset button on the PCB. + +Make example for this keyboard (after setting up your build environment): + + make runes/skjoldr:default + +Flashing example for this keyboard: + + make runes/skjoldr: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/runes/skjoldr/rules.mk b/keyboards/runes/skjoldr/rules.mk new file mode 100644 index 0000000000..d6dbd4a04d --- /dev/null +++ b/keyboards/runes/skjoldr/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_ansi_arrow diff --git a/keyboards/runes/skjoldr/skjoldr.c b/keyboards/runes/skjoldr/skjoldr.c new file mode 100644 index 0000000000..2a8f003fc4 --- /dev/null +++ b/keyboards/runes/skjoldr/skjoldr.c @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "skjoldr.h" diff --git a/keyboards/runes/skjoldr/skjoldr.h b/keyboards/runes/skjoldr/skjoldr.h new file mode 100644 index 0000000000..cdd0592a0f --- /dev/null +++ b/keyboards/runes/skjoldr/skjoldr.h @@ -0,0 +1,49 @@ +/* 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 + +#include "quantum.h" + +#define ___ KC_NO + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3C │3D │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ + * │40 │41 │42 │45 │49 │4A │4B │4C │4D │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + +#define LAYOUT_60_ansi_arrow( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, ___, K3C, K3D }, \ + { K40, K41, K42, ___, ___, K45, ___, ___, ___, K49, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/ryanbaekr/rb18/info.json b/keyboards/ryanbaekr/rb18/info.json index 2ad1b56b6a..5537f63a92 100644 --- a/keyboards/ryanbaekr/rb18/info.json +++ b/keyboards/ryanbaekr/rb18/info.json @@ -1,10 +1,32 @@ { - "keyboard_name": "rb18", - "url": "", - "maintainer": "qmk", + "keyboard_name": "rb18", + "url": "", + "maintainer": "ryanbaekr", "layouts": { "LAYOUT_numpad_5x4": { - "layout": [{"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":0, "y":2.25}, {"x":1, "y":2.25}, {"x":2, "y":2.25}, {"x":3, "y":2.25, "h":2}, {"x":0, "y":3.25}, {"x":1, "y":3.25}, {"x":2, "y":3.25}, {"x":0, "y":4.25}, {"x":1, "y":4.25}, {"x":2, "y":4.25}, {"x":3, "y":4.25, "h":2}, {"x":0, "y":5.25, "w":2}, {"x":2, "y":5.25}] + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":1, "h":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + + {"x":0, "y":4, "w":2}, + {"x":2, "y":4}, + {"x":3, "y":3, "h":2} + ] } } } diff --git a/keyboards/salicylic_acid3/7skb/keymaps/salicylic/keymap.c b/keyboards/salicylic_acid3/7skb/keymaps/salicylic/keymap.c index 7221f8c612..4e1f2acd05 100644 --- a/keyboards/salicylic_acid3/7skb/keymaps/salicylic/keymap.c +++ b/keyboards/salicylic_acid3/7skb/keymaps/salicylic/keymap.c @@ -32,8 +32,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESFL] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _FLOCK), - [TD_ESQW] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK), + [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/salicylic_acid3/7splus/keymaps/salicylic/keymap.c b/keyboards/salicylic_acid3/7splus/keymaps/salicylic/keymap.c index bea5978c50..06d7972a2e 100644 --- a/keyboards/salicylic_acid3/7splus/keymaps/salicylic/keymap.c +++ b/keyboards/salicylic_acid3/7splus/keymaps/salicylic/keymap.c @@ -39,8 +39,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESMS] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _MOUSE), - [TD_ESAR] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESMS] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _MOUSE), + [TD_ESAR] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/salicylic_acid3/jisplit89/keymaps/salicylic/keymap.c b/keyboards/salicylic_acid3/jisplit89/keymaps/salicylic/keymap.c index eba01d4d65..4e8addf6b7 100644 --- a/keyboards/salicylic_acid3/jisplit89/keymaps/salicylic/keymap.c +++ b/keyboards/salicylic_acid3/jisplit89/keymaps/salicylic/keymap.c @@ -39,8 +39,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESMS] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _MOUSE), - [TD_ESAR] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESMS] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _MOUSE), + [TD_ESAR] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/salicylic_acid3/naked60/keymaps/salicylic/keymap.c b/keyboards/salicylic_acid3/naked60/keymaps/salicylic/keymap.c index b70e68da54..8a2dbf051f 100644 --- a/keyboards/salicylic_acid3/naked60/keymaps/salicylic/keymap.c +++ b/keyboards/salicylic_acid3/naked60/keymaps/salicylic/keymap.c @@ -23,8 +23,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESFL] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _FLOCK), - [TD_ESQW] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK), + [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_nafuda/keymap.c b/keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_nafuda/keymap.c index c43803be35..4201d79a2e 100644 --- a/keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_nafuda/keymap.c +++ b/keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_nafuda/keymap.c @@ -34,8 +34,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESFL] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _FLOCK), - [TD_ESQW] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK), + [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_setta21/keymap.c b/keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_setta21/keymap.c index 6dd2ef8863..23786da915 100644 --- a/keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_setta21/keymap.c +++ b/keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_setta21/keymap.c @@ -32,8 +32,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESFL] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _FLOCK), - [TD_ESQW] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK), + [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/salicylic_acid3/naked64/keymaps/salicylic/keymap.c b/keyboards/salicylic_acid3/naked64/keymaps/salicylic/keymap.c index ae7843341a..db46075c8f 100644 --- a/keyboards/salicylic_acid3/naked64/keymaps/salicylic/keymap.c +++ b/keyboards/salicylic_acid3/naked64/keymaps/salicylic/keymap.c @@ -33,8 +33,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESFL] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _FLOCK), - [TD_ESQW] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK), + [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/salicylic_acid3/naked64/keymaps/salicylic_with_setta21/keymap.c b/keyboards/salicylic_acid3/naked64/keymaps/salicylic_with_setta21/keymap.c index 6e2dd0886f..c91716cdd4 100644 --- a/keyboards/salicylic_acid3/naked64/keymaps/salicylic_with_setta21/keymap.c +++ b/keyboards/salicylic_acid3/naked64/keymaps/salicylic_with_setta21/keymap.c @@ -38,8 +38,8 @@ enum tapdances{ }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_ESFL] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _FLOCK), - [TD_ESQW] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _QWERTY), + [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK), + [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY), }; #define LOWER MO(_LOWER) diff --git a/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c b/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c index 1e96bd7fbc..6c88b70bfe 100644 --- a/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c +++ b/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c @@ -173,7 +173,7 @@ void matrix_init_user(void) { } void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); uint8_t default_layer = biton32(eeconfig_read_default_layer()); switch (layer) { case _LOWER: diff --git a/keyboards/satt/comet46/keymaps/default/keymap.c b/keyboards/satt/comet46/keymaps/default/keymap.c index bccca0a091..cf2c911d4c 100644 --- a/keyboards/satt/comet46/keymaps/default/keymap.c +++ b/keyboards/satt/comet46/keymaps/default/keymap.c @@ -176,8 +176,8 @@ void render_status(struct CharacterMatrix *matrix) { // Layer state char layer_str[22]; matrix_write(matrix, "Layer: "); - uint8_t layer = get_highest_layer(layer_state); - uint8_t default_layer = get_highest_layer(eeconfig_read_default_layer()); + uint8_t layer = biton32(layer_state); + uint8_t default_layer = biton32(eeconfig_read_default_layer()); switch (layer) { case _QWERTY: switch (default_layer) { diff --git a/keyboards/satt/comet46/keymaps/satt/keymap.c b/keyboards/satt/comet46/keymaps/satt/keymap.c index 54d1d791d7..cdd094f747 100644 --- a/keyboards/satt/comet46/keymaps/satt/keymap.c +++ b/keyboards/satt/comet46/keymaps/satt/keymap.c @@ -165,7 +165,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _PSEUDO_US_LOWER: case _PSEUDO_US_RAISE: return update_tri_layer_state(state, _PSEUDO_US_RAISE, _PSEUDO_US_LOWER, _ADJUST); @@ -204,7 +204,7 @@ void render_status(struct CharacterMatrix *matrix) { // Layer state char layer_str[22]; matrix_write(matrix, "Layer: "); - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); uint8_t default_layer = biton32(eeconfig_read_default_layer()); switch (layer) { case _QWERTY: diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/config.h b/keyboards/sawnsprojects/krush/krush65/hotswap/config.h new file mode 100644 index 0000000000..ebf8cbf740 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/config.h @@ -0,0 +1,72 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5350 +#define PRODUCT_ID 0x5B31 +#define DEVICE_VER 0x0001 +#define MANUFACTURER SawnsProjects +#define PRODUCT Krush65 - Hotswap + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B1, B2, D4, F1, F0 } +#define MATRIX_COL_PINS { B7, B3, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D0, D5, D6, D3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW +/* Caps Lock */ +#define LED_CAPS_LOCK_PIN B0 +#define LED_PIN_ON_STATE 0 + +/* Encoders */ + +#define ENCODERS 1 + +#define ENCODERS_PAD_A { D1 } +#define ENCODERS_PAD_B { D2 } + +#define ENCODERS_CW_KEY { { 12, 3 } } +#define ENCODERS_CCW_KEY { { 12, 4 } } + +/* RGB */ +#define RGB_DI_PIN E6 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 20 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_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 \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c new file mode 100644 index 0000000000..039f8739b4 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c @@ -0,0 +1,58 @@ +/* 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 + +# ifdef ENCODERS +static uint8_t encoder_state[ENCODERS] = {0}; +static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; +static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; +# endif + +void encoder_action_unregister(void) { +# ifdef ENCODERS + for (int index = 0; index < ENCODERS; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t) { + .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], + .pressed = false, + .time = (timer_read() | 1) + }; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } +# endif +} + +void encoder_action_register(uint8_t index, bool clockwise) { +# ifdef ENCODERS + keyevent_t encoder_event = (keyevent_t) { + .key = clockwise ? encoder_cw[index] : encoder_ccw[index], + .pressed = true, + .time = (timer_read() | 1) + }; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); +# endif +} + +#endif \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h new file mode 100644 index 0000000000..098210d40c --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.h @@ -0,0 +1,21 @@ +/* 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); \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.c b/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.c new file mode 100644 index 0000000000..8fd9a2fa14 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.c @@ -0,0 +1,31 @@ +/* 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 . + */ + +#include "hotswap.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_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } + return true; +} +#endif \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h b/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h new file mode 100644 index 0000000000..cc0d0dc7e9 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h @@ -0,0 +1,53 @@ +/* Copyright 2021 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" +#include "encoder_actions.h" + + + +#define XXX KC_NO + + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K42, K43, K45, K46, K47, K48, K4B, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ + { K40, XXX, K42, K43, XXX, K45, K46, K47, K48, XXX, XXX, K4B, XXX, K4D, K4E, K4F }, \ +} + +#define LAYOUT_via_rotary( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, EC1A, EC2A,\ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K42, K43, K45, K46, K47, K48, K4B, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, XXX, K2F }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, EC1A, K3D, K3E, K3F }, \ + { K40, XXX, K42, K43, XXX, K45, K46, K47, K48, XXX, XXX, K4B, EC2A, K4D, K4E, K4F }, \ +} diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/info.json b/keyboards/sawnsprojects/krush/krush65/hotswap/info.json new file mode 100644 index 0000000000..2e54420137 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/info.json @@ -0,0 +1,157 @@ +{ + "keyboard_name": "Krush65 Hotswap", + "url": "", + "maintainer": "MaiTheSan", + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "", "x": 0, "y": 0 }, + { "label": "", "x": 1, "y": 0 }, + { "label": "", "x": 2, "y": 0 }, + { "label": "", "x": 3, "y": 0 }, + { "label": "", "x": 4, "y": 0 }, + { "label": "", "x": 5, "y": 0 }, + { "label": "", "x": 6, "y": 0 }, + { "label": "", "x": 7, "y": 0 }, + { "label": "", "x": 8, "y": 0 }, + { "label": "", "x": 9, "y": 0 }, + { "label": "", "x": 10, "y": 0 }, + { "label": "", "x": 11, "y": 0 }, + { "label": "", "x": 12, "y": 0 }, + { "label": "", "x": 13, "y": 0 }, + { "label": "", "x": 14, "y": 0 }, + { "label": "", "x": 15, "y": 0 }, + { "label": "", "x": 0, "y": 1, "w": 1.5 }, + { "label": "", "x": 1.5, "y": 1 }, + { "label": "", "x": 2.5, "y": 1 }, + { "label": "", "x": 3.5, "y": 1 }, + { "label": "", "x": 4.5, "y": 1 }, + { "label": "", "x": 5.5, "y": 1 }, + { "label": "", "x": 6.5, "y": 1 }, + { "label": "", "x": 7.5, "y": 1 }, + { "label": "", "x": 8.5, "y": 1 }, + { "label": "", "x": 9.5, "y": 1 }, + { "label": "", "x": 10.5, "y": 1 }, + { "label": "", "x": 11.5, "y": 1 }, + { "label": "", "x": 12.5, "y": 1 }, + { "label": "", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "", "x": 15, "y": 1 }, + { "label": "", "x": 0, "y": 2, "w": 1.75 }, + { "label": "", "x": 1.75, "y": 2 }, + { "label": "", "x": 2.75, "y": 2 }, + { "label": "", "x": 3.75, "y": 2 }, + { "label": "", "x": 4.75, "y": 2 }, + { "label": "", "x": 5.75, "y": 2 }, + { "label": "", "x": 6.75, "y": 2 }, + { "label": "", "x": 7.75, "y": 2 }, + { "label": "", "x": 8.75, "y": 2 }, + { "label": "", "x": 9.75, "y": 2 }, + { "label": "", "x": 10.75, "y": 2 }, + { "label": "", "x": 11.75, "y": 2 }, + { "label": "", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "", "x": 15, "y": 2 }, + { "label": "", "x": 0, "y": 3, "w": 2.25 }, + { "label": "", "x": 2.25, "y": 3 }, + { "label": "", "x": 3.25, "y": 3 }, + { "label": "", "x": 4.25, "y": 3 }, + { "label": "", "x": 5.25, "y": 3 }, + { "label": "", "x": 6.25, "y": 3 }, + { "label": "", "x": 7.25, "y": 3 }, + { "label": "", "x": 8.25, "y": 3 }, + { "label": "", "x": 9.25, "y": 3 }, + { "label": "", "x": 10.25, "y": 3 }, + { "label": "", "x": 11.25, "y": 3 }, + { "label": "", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "", "x": 14, "y": 3 }, + { "label": "", "x": 15, "y": 3 }, + { "label": "", "x": 0, "y": 4, "w": 1.25 }, + { "label": "", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "", "x": 3.75, "y": 4, "w": 2.25 }, + { "label": "", "x": 6, "y": 4, "w": 1.25 }, + { "label": "", "x": 7.25, "y": 4, "w": 2.75 }, + { "label": "", "x": 10, "y": 4, "w": 1.25 }, + { "label": "", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "", "x": 13, "y": 4 }, + { "label": "", "x": 14, "y": 4 }, + { "label": "", "x": 15, "y": 4 } + ] + }, + "LAYOUT_via_rotary": { + "layout": [ + { "label": "", "x": 0, "y": 0.75 }, + { "label": "", "x": 1, "y": 0.75 }, + { "label": "", "x": 2, "y": 0.75 }, + { "label": "", "x": 3, "y": 0.75 }, + { "label": "", "x": 4, "y": 0.75 }, + { "label": "", "x": 5, "y": 0.75 }, + { "label": "", "x": 6, "y": 0.75 }, + { "label": "", "x": 7, "y": 0.75 }, + { "label": "", "x": 8, "y": 0.75 }, + { "label": "", "x": 9, "y": 0.75 }, + { "label": "", "x": 10, "y": 0.75 }, + { "label": "", "x": 11, "y": 0.75 }, + { "label": "", "x": 12, "y": 0.75 }, + { "label": "", "x": 13, "y": 0.75 }, + { "label": "", "x": 14, "y": 0.75 }, + { "label": "", "x": 15, "y": 0.75 }, + { "label": "", "x": 14.75, "y": 0, "w": 0.75, "h": 0.75 }, + { "label": "", "x": 15.5, "y": 0, "w": 0.75, "h": 0.75 }, + { "label": "", "x": 0, "y": 1.75, "w": 1.5 }, + { "label": "", "x": 1.5, "y": 1.75 }, + { "label": "", "x": 2.5, "y": 1.75 }, + { "label": "", "x": 3.5, "y": 1.75 }, + { "label": "", "x": 4.5, "y": 1.75 }, + { "label": "", "x": 5.5, "y": 1.75 }, + { "label": "", "x": 6.5, "y": 1.75 }, + { "label": "", "x": 7.5, "y": 1.75 }, + { "label": "", "x": 8.5, "y": 1.75 }, + { "label": "", "x": 9.5, "y": 1.75 }, + { "label": "", "x": 10.5, "y": 1.75 }, + { "label": "", "x": 11.5, "y": 1.75 }, + { "label": "", "x": 12.5, "y": 1.75 }, + { "label": "", "x": 13.5, "y": 1.75, "w": 1.5 }, + { "label": "", "x": 15, "y": 1.75 }, + { "label": "", "x": 0, "y": 2.75, "w": 1.75 }, + { "label": "", "x": 1.75, "y": 2.75 }, + { "label": "", "x": 2.75, "y": 2.75 }, + { "label": "", "x": 3.75, "y": 2.75 }, + { "label": "", "x": 4.75, "y": 2.75 }, + { "label": "", "x": 5.75, "y": 2.75 }, + { "label": "", "x": 6.75, "y": 2.75 }, + { "label": "", "x": 7.75, "y": 2.75 }, + { "label": "", "x": 8.75, "y": 2.75 }, + { "label": "", "x": 9.75, "y": 2.75 }, + { "label": "", "x": 10.75, "y": 2.75 }, + { "label": "", "x": 11.75, "y": 2.75 }, + { "label": "", "x": 12.75, "y": 2.75, "w": 2.25 }, + { "label": "", "x": 15, "y": 2.75 }, + { "label": "", "x": 0, "y": 3.75, "w": 2.25 }, + { "label": "", "x": 2.25, "y": 3.75 }, + { "label": "", "x": 3.25, "y": 3.75 }, + { "label": "", "x": 4.25, "y": 3.75 }, + { "label": "", "x": 5.25, "y": 3.75 }, + { "label": "", "x": 6.25, "y": 3.75 }, + { "label": "", "x": 7.25, "y": 3.75 }, + { "label": "", "x": 8.25, "y": 3.75 }, + { "label": "", "x": 9.25, "y": 3.75 }, + { "label": "", "x": 10.25, "y": 3.75 }, + { "label": "", "x": 11.25, "y": 3.75 }, + { "label": "", "x": 12.25, "y": 3.75, "w": 1.75 }, + { "label": "", "x": 14, "y": 3.75 }, + { "label": "", "x": 15, "y": 3.75 }, + { "label": "", "x": 0, "y": 4.75, "w": 1.25 }, + { "label": "", "x": 1.25, "y": 4.75, "w": 1.25 }, + { "label": "", "x": 2.5, "y": 4.75, "w": 1.25 }, + { "label": "", "x": 3.75, "y": 4.75, "w": 2.25 }, + { "label": "", "x": 6, "y": 4.75, "w": 1.25 }, + { "label": "", "x": 7.25, "y": 4.75, "w": 2.75 }, + { "label": "", "x": 10, "y": 4.75, "w": 1.25 }, + { "label": "", "x": 11.25, "y": 4.75, "w": 1.25 }, + { "label": "", "x": 13, "y": 4.75 }, + { "label": "", "x": 14, "y": 4.75 }, + { "label": "", "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 new file mode 100644 index 0000000000..13883d07e4 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* 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 . + */ + +#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_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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/default/readme.md b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/readme.md new file mode 100644 index 0000000000..33e79b607e --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for krush65 Hotswap diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c new file mode 100644 index 0000000000..d55eb74fb0 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/keymap.c @@ -0,0 +1,60 @@ + /* 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 . + */ + +#include QMK_KEYBOARD_H + +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 + ), + + [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 + ), + [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 + ), + [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 + ), +}; + + +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 diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/readme.md b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/readme.md new file mode 100644 index 0000000000..a03a6d13a9 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for krush65 Hotswap diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk new file mode 100644 index 0000000000..a9739430b9 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keymaps/via/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes + +# Added encoder Action +SRC += encoder_actions.c \ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/readme.md b/keyboards/sawnsprojects/krush/krush65/hotswap/readme.md new file mode 100644 index 0000000000..4a256a2ca5 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/readme.md @@ -0,0 +1,23 @@ +# Krush65 Hotswap + +![Krush65](https://imgur.com/56ZvWUmh.jpg) + +A 65% keyboard PCB made and sold by SawnsProjects with Nuxros in [mechkey.store](https://mechkey.store/blogs/store-updates/introducing-krush-65). + +* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) +* Hardware Supported: Krush65 +* Hardware Availability: [mechkey.store](https://mechkey.store/products/krush-65-hotswap-pcb) + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + +Make example for this keyboard (after setting up your build environment): + + make sawnsprojects/krush/krush65/hotswap:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/rules.mk b/keyboards/sawnsprojects/krush/krush65/hotswap/rules.mk new file mode 100644 index 0000000000..c754f3f5d0 --- /dev/null +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/skergo/info.json b/keyboards/skergo/info.json index 06bcd31f70..83e277a91d 100644 --- a/keyboards/skergo/info.json +++ b/keyboards/skergo/info.json @@ -1,84 +1,161 @@ { "keyboard_name": "SKErgo", "url": "https://keyz.io", - "maintainer": "Keyz.io", + "maintainer": "kevinzhao-tech", + "layout_aliases": { + "LAYOUT_all": "LAYOUT_split_bs" + }, "layouts": { - "LAYOUT": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"1", "x":1, "y":0}, - {"label":"2", "x":2, "y":0}, - {"label":"3", "x":3.75, "y":0}, - {"label":"4", "x":4.75, "y":0}, - {"label":"5", "x":5.75, "y":0}, - {"label":"6", "x":6.75, "y":0}, - {"label":"7", "x":9.25, "y":0}, - {"label":"8", "x":10.25, "y":0}, - {"label":"9", "x":11.25, "y":0}, - {"label":"0", "x":12.25, "y":0}, - {"label":"-", "x":13.5, "y":0}, - {"label":"=", "x":14.5, "y":0}, - {"label":"~", "x":15.5, "y":0}, - {"label":"Backspace", "x":16.5, "y":0}, + "LAYOUT_2u_bs": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0.25}, + {"label":"1!", "x":1.5, "y":0.25}, + {"label":"2@", "x":2.5, "y":0.25}, + {"label":"3#", "x":3.5, "y":0.25}, + {"label":"4$", "x":4.5, "y":0.25}, + {"label":"5%", "x":5.5, "y":0.25}, + {"label":"6^", "x":6.5, "y":0.25}, + {"label":"7&", "x":8.75, "y":0.25}, + {"label":"8*", "x":9.75, "y":0.25}, + {"label":"9(", "x":10.75, "y":0.25}, + {"label":"0)", "x":11.75, "y":0.25}, + {"label":"-_", "x":12.75, "y":0.25}, + {"label":"=+", "x":13.75, "y":0.25}, + {"label":"Backspace", "x":14.75, "y":0.25, "w":2}, + {"label":"Page Up", "x":17, "y":0}, - {"label":"Tab", "x":0, "y":1, "w":1.5}, - {"label":"Q", "x":1.5, "y":1}, - {"label":"W", "x":3.25, "y":1}, - {"label":"E", "x":4.25, "y":1}, - {"label":"R", "x":5.25, "y":1}, - {"label":"T", "x":6.25, "y":1}, - {"label":"Y", "x":8.75, "y":1}, - {"label":"U", "x":9.75, "y":1}, - {"label":"I", "x":10.75, "y":1}, - {"label":"O", "x":11.75, "y":1}, - {"label":"P", "x":12.75, "y":1}, - {"label":"{", "x":14.25, "y":1}, - {"label":"}", "x":15.25, "y":1}, - {"label":"|", "x":16.25, "y":1, "w":1.5}, - {"label":"Pg Up", "x":18, "y":0}, + {"label":"Tab", "w":1.5, "x":0.25, "y":1.25}, + {"label":"Q", "x":1.75, "y":1.25}, + {"label":"W", "x":2.75, "y":1.25}, + {"label":"E", "x":3.75, "y":1.25}, + {"label":"R", "x":4.75, "y":1.25}, + {"label":"T", "x":5.75, "y":1.25}, + {"label":"Y", "x":8.4, "y":1.25}, + {"label":"U", "x":9.4, "y":1.25}, + {"label":"I", "x":10.4, "y":1.25}, + {"label":"O", "x":11.4, "y":1.25}, + {"label":"P", "x":12.4, "y":1.25}, + {"label":"[{", "x":13.4, "y":1.25}, + {"label":"]}", "x":14.4, "y":1.25}, + {"label":"\\|", "w":1.5, "x":15.4, "y":1.25}, + {"label":"Page Down", "x":17.15, "y":1}, - {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, - {"label":"A", "x":1.75, "y":2}, - {"label":"S", "x":3.5, "y":2}, - {"label":"D", "x":4.5, "y":2}, - {"label":"F", "x":5.5, "y":2}, - {"label":"G", "x":6.5, "y":2}, - {"label":"H", "x":9, "y":2}, - {"label":"J", "x":10, "y":2}, - {"label":"K", "x":11, "y":2}, - {"label":"L", "x":12, "y":2}, - {"label":":", "x":13.5, "y":2}, - {"label":"\"", "x":14.5, "y":2}, - {"label":"Enter", "x":15.5, "y":2, "w":2.25}, - {"label":"Pg Dn", "x":18.25, "y":1}, + {"label":"Caps Lock", "w":1.75, "x":0.15, "y":2.25}, + {"label":"A", "x":1.9, "y":2.25}, + {"label":"S", "x":2.9, "y":2.25}, + {"label":"D", "x":3.9, "y":2.25}, + {"label":"F", "x":4.9, "y":2.25}, + {"label":"G", "x":5.9, "y":2.25}, + {"label":"H", "x":8.75, "y":2.25}, + {"label":"J", "x":9.75, "y":2.25}, + {"label":"K", "x":10.75, "y":2.25}, + {"label":"L", "x":11.75, "y":2.25}, + {"label":";:", "x":12.75, "y":2.25}, + {"label":"'\"", "x":13.75, "y":2.25}, + {"label":"Enter", "w":2.25, "x":14.75, "y":2.25}, + {"label":"End", "x":17.25, "y":2}, - {"label":"Shift", "x":0, "y":3, "w":2.25}, - {"label":"Z", "x":2.25, "y":3}, - {"label":"X", "x":3.75, "y":3}, - {"label":"C", "x":4.75, "y":3}, - {"label":"V", "x":5.75, "y":3}, - {"label":"B", "x":6.75, "y":3}, - {"label":"B", "x":8.25, "y":3}, - {"label":"N", "x":9.25, "y":3}, - {"label":"M", "x":10.25, "y":3}, - {"label":"<", "x":11.25, "y":3}, - {"label":">", "x":12.25, "y":3}, - {"label":"?", "x":14.25, "y":3}, - {"label":"Shift", "x":15.25, "y":3, "w":1.75}, - {"label":"Up", "x":17.25, "y":3}, - {"label":"End", "x":18.5, "y":2}, + {"label":"Shift", "w":2.25, "x":0, "y":3.25}, + {"label":"Z", "x":2.25, "y":3.25}, + {"label":"X", "x":3.25, "y":3.25}, + {"label":"C", "x":4.25, "y":3.25}, + {"label":"V", "x":5.25, "y":3.25}, + {"label":"B", "x":6.25, "y":3.25}, + {"label":"B", "x":8.25, "y":3.25}, + {"label":"N", "x":9.25, "y":3.25}, + {"label":"M", "x":10.25, "y":3.25}, + {"label":",<", "x":11.25, "y":3.25}, + {"label":".>", "x":12.25, "y":3.25}, + {"label":"/?", "x":13.25, "y":3.25}, + {"label":"Shift", "w":1.75, "x":14.25, "y":3.25}, + {"label":"\u2191", "x":16.25, "y":3.5}, - {"label":"L_Ctrl", "x":0, "y":4, "w":1.25}, - {"label":"L_Alt", "x":3.75, "y":4, "w":1.5}, - {"label":"L_Space", "x":5.25, "y":4, "w":2}, - {"label":"Fn", "x":7.25, "y":4}, - {"label":"R_Space", "x":9, "y":4, "w":2.75}, + {"label":"Ctrl", "w":1.5, "x":0, "y":4.25}, + {"label":"Alt", "w":1.5, "x":3.25, "y":4.25}, + {"label":"Space", "w":2, "x":4.75, "y":4.25}, + {"label":"GUI", "x":6.75, "y":4.25}, + {"label":"Space", "w":2.75, "x":8.75, "y":4.25}, + {"label":"Fn", "w":1.5, "x":11.5, "y":4.25}, + {"label":"\u2190", "x":15.25, "y":4.5}, + {"label":"\u2193", "x":16.25, "y":4.5}, + {"label":"\u2192", "x":17.25, "y":4.5} + ] + }, + "LAYOUT_split_bs": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0.25}, + {"label":"1!", "x":1.5, "y":0.25}, + {"label":"2@", "x":2.5, "y":0.25}, + {"label":"3#", "x":3.5, "y":0.25}, + {"label":"4$", "x":4.5, "y":0.25}, + {"label":"5%", "x":5.5, "y":0.25}, + {"label":"6^", "x":6.5, "y":0.25}, + {"label":"7&", "x":8.75, "y":0.25}, + {"label":"8*", "x":9.75, "y":0.25}, + {"label":"9(", "x":10.75, "y":0.25}, + {"label":"0)", "x":11.75, "y":0.25}, + {"label":"-_", "x":12.75, "y":0.25}, + {"label":"=+", "x":13.75, "y":0.25}, + {"label":"Backspace", "x":14.75, "y":0.25}, + {"label":"Backspace", "x":15.75, "y":0.25}, + {"label":"Page Up", "x":17, "y":0}, - {"label":"R_Alt", "x":11.75, "y":4, "w":1.5}, - {"label":"Left","x":16.25, "y":4}, - {"label":"Down","x":17.25, "y":4}, - {"label":"Right","x":18.25, "y":4} - ] + {"label":"Tab", "w":1.5, "x":0.25, "y":1.25}, + {"label":"Q", "x":1.75, "y":1.25}, + {"label":"W", "x":2.75, "y":1.25}, + {"label":"E", "x":3.75, "y":1.25}, + {"label":"R", "x":4.75, "y":1.25}, + {"label":"T", "x":5.75, "y":1.25}, + {"label":"Y", "x":8.4, "y":1.25}, + {"label":"U", "x":9.4, "y":1.25}, + {"label":"I", "x":10.4, "y":1.25}, + {"label":"O", "x":11.4, "y":1.25}, + {"label":"P", "x":12.4, "y":1.25}, + {"label":"[{", "x":13.4, "y":1.25}, + {"label":"]}", "x":14.4, "y":1.25}, + {"label":"\\|", "w":1.5, "x":15.4, "y":1.25}, + {"label":"Page Down", "x":17.15, "y":1}, + + {"label":"Caps Lock", "w":1.75, "x":0.15, "y":2.25}, + {"label":"A", "x":1.9, "y":2.25}, + {"label":"S", "x":2.9, "y":2.25}, + {"label":"D", "x":3.9, "y":2.25}, + {"label":"F", "x":4.9, "y":2.25}, + {"label":"G", "x":5.9, "y":2.25}, + {"label":"H", "x":8.75, "y":2.25}, + {"label":"J", "x":9.75, "y":2.25}, + {"label":"K", "x":10.75, "y":2.25}, + {"label":"L", "x":11.75, "y":2.25}, + {"label":";:", "x":12.75, "y":2.25}, + {"label":"'\"", "x":13.75, "y":2.25}, + {"label":"Enter", "w":2.25, "x":14.75, "y":2.25}, + {"label":"End", "x":17.25, "y":2}, + + {"label":"Shift", "w":2.25, "x":0, "y":3.25}, + {"label":"Z", "x":2.25, "y":3.25}, + {"label":"X", "x":3.25, "y":3.25}, + {"label":"C", "x":4.25, "y":3.25}, + {"label":"V", "x":5.25, "y":3.25}, + {"label":"B", "x":6.25, "y":3.25}, + {"label":"B", "x":8.25, "y":3.25}, + {"label":"N", "x":9.25, "y":3.25}, + {"label":"M", "x":10.25, "y":3.25}, + {"label":",<", "x":11.25, "y":3.25}, + {"label":".>", "x":12.25, "y":3.25}, + {"label":"/?", "x":13.25, "y":3.25}, + {"label":"Shift", "w":1.75, "x":14.25, "y":3.25}, + {"label":"\u2191", "x":16.25, "y":3.5}, + + {"label":"Ctrl", "w":1.5, "x":0, "y":4.25}, + {"label":"Alt", "w":1.5, "x":3.25, "y":4.25}, + {"label":"Space", "w":2, "x":4.75, "y":4.25}, + {"label":"GUI", "x":6.75, "y":4.25}, + {"label":"Space", "w":2.75, "x":8.75, "y":4.25}, + {"label":"Fn", "w":1.5, "x":11.5, "y":4.25}, + {"label":"\u2190", "x":15.25, "y":4.5}, + {"label":"\u2193", "x":16.25, "y":4.5}, + {"label":"\u2192", "x":17.25, "y":4.5} + ] } } } diff --git a/keyboards/skergo/keymaps/default/keymap.c b/keyboards/skergo/keymaps/default/keymap.c index 321d6efc4c..f0fb28b36f 100644 --- a/keyboards/skergo/keymaps/default/keymap.c +++ b/keyboards/skergo/keymaps/default/keymap.c @@ -17,18 +17,21 @@ #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_GRV, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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_LALT, KC_SPC, MO(1), KC_SPC, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS - ), - [1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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_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_END, + 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_LALT, KC_SPC, KC_LGUI, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/skergo/keymaps/via/keymap.c b/keyboards/skergo/keymaps/via/keymap.c index 8d8859fa95..ddea8d2c70 100644 --- a/keyboards/skergo/keymaps/via/keymap.c +++ b/keyboards/skergo/keymaps/via/keymap.c @@ -17,32 +17,37 @@ #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_GRV, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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_LALT, KC_SPC, MO(1), KC_SPC, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS - ), - [1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 - ), - [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 - ) + + [0] = 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_GRV, 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_END, + 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_LALT, KC_SPC, KC_LGUI, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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 + ), + + [3] = 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 + ), + }; diff --git a/keyboards/skergo/keymaps/via/rules.mk b/keyboards/skergo/keymaps/via/rules.mk index 36b7ba9cbc..1e5b99807c 100644 --- a/keyboards/skergo/keymaps/via/rules.mk +++ b/keyboards/skergo/keymaps/via/rules.mk @@ -1,2 +1 @@ VIA_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/skergo/readme.md b/keyboards/skergo/readme.md index ee10a5b7c0..d6ffa4babb 100644 --- a/keyboards/skergo/readme.md +++ b/keyboards/skergo/readme.md @@ -12,4 +12,8 @@ Make example for this keyboard (after setting up your build environment): make skergo:default +Flashing example for this keyboard: + + make skergo: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/skergo/skergo.h b/keyboards/skergo/skergo.h index fceeaf0ddb..cee1c4c656 100644 --- a/keyboards/skergo/skergo.h +++ b/keyboards/skergo/skergo.h @@ -18,16 +18,48 @@ #include "quantum.h" -#define LAYOUT( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ - K400, K402, K404, K405, K406, K407, K409, K412, K413, K414 \ +#define ___ KC_NO + +/* ┌───┐ + * ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐│1E │ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │ │07 │08 │09 │0A │0B │0C │0D │0E │├───┤ │0E │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤│2E │ └───────┘ + * │10 │11 │12 │13 │14 │15 │ │16 │17 │18 │19 │1A │1B │1C │1D │├───┤ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤│3E │ + * │20 │21 │22 │23 │24 │25 │ │26 │27 │28 │29 │2A │2B │2C │└───┘ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ + * │30 │31 │32 │33 │34 │35 │ │46 │36 │37 │38 │39 │3A │3B │┌───┐ + * ├────┬───┴───┼───┴─┬─┴───┴─┬─┴─┐ └─┬─┴───┴───┴┬──┴──┬┴───┴──────┘│3D │ + * │40 │ │42 │44 │45 │ │47 │49 │ ┌───┼───┼───┐ + * └────┘ └─────┴───────┴───┘ └──────────┴─────┘ │4C │4D │4E │ + * └───┴───┴───┘ + * - Position K46 (secondary B key) is optional + */ + +#define LAYOUT_2u_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K1E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3E, \ + K30, K31, K32, K33, K34, K35, K46, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K42, K44, K45, K47, K49, K4C, K4D, K4E \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ - { K400, KC_NO, K402, KC_NO, K404, K405, K406, K407, KC_NO, K409, KC_NO, KC_NO, K412, K413, K414 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, ___, K42, ___, K44, K45, K46, K47, ___, K49, ___, ___, K4C, K4D, K4E } \ +} + +#define LAYOUT_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K1E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3E, \ + K30, K31, K32, K33, K34, K35, K46, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K42, K44, K45, K47, K49, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, ___, K42, ___, K44, K45, K46, K47, ___, K49, ___, ___, K4C, K4D, K4E } \ } diff --git a/keyboards/smithrune/iron165r2/f411/config.h b/keyboards/smithrune/iron165r2/f411/config.h index 5b2e04b93c..af8b46531c 100644 --- a/keyboards/smithrune/iron165r2/f411/config.h +++ b/keyboards/smithrune/iron165r2/f411/config.h @@ -16,6 +16,7 @@ along with this program. If not, see . */ #pragma once + #define BACKLIGHT_PIN A6 #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 @@ -25,8 +26,6 @@ along with this program. If not, see . #define BREATHING_PERIOD 5 #define BACKLIGHT_ON_STATE 1 -#define STM32_HSECLK 8000000 - #define RGB_DI_PIN B15 #define RGBLED_NUM 22 #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/smithrune/iron165r2/f411/mcuconf.h b/keyboards/smithrune/iron165r2/f411/mcuconf.h index 0ea015be4f..63f1e30e64 100644 --- a/keyboards/smithrune/iron165r2/f411/mcuconf.h +++ b/keyboards/smithrune/iron165r2/f411/mcuconf.h @@ -17,19 +17,6 @@ #pragma once #include_next -#undef STM32_PLLM_VALUE -#undef STM32_PLLN_VALUE -#undef STM32_PLLP_VALUE -#undef STM32_PLLQ_VALUE -#undef STM32_PPRE1 -#undef STM32_PPRE2 - -#define STM32_PLLM_VALUE 4 -#define STM32_PLLN_VALUE 72 -#define STM32_PLLP_VALUE 2 -#define STM32_PLLQ_VALUE 3 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV1 #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/smithrune/iron165r2/f411/rules.mk b/keyboards/smithrune/iron165r2/f411/rules.mk index 598edffe64..6305fc5a14 100644 --- a/keyboards/smithrune/iron165r2/f411/rules.mk +++ b/keyboards/smithrune/iron165r2/f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = GENERIC_STM32_F411XE # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/sofle/keymaps/default/keymap.c b/keyboards/sofle/keymaps/default/keymap.c index 94e7d8b3a6..5729d80271 100644 --- a/keyboards/sofle/keymaps/default/keymap.c +++ b/keyboards/sofle/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| * `-----------------------------------------/ / \ \-----------------------------------------' * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | diff --git a/keyboards/sofle/keymaps/foureight84/config.h b/keyboards/sofle/keymaps/foureight84/config.h new file mode 100644 index 0000000000..2104124f3a --- /dev/null +++ b/keyboards/sofle/keymaps/foureight84/config.h @@ -0,0 +1,33 @@ +/* Copyright 2022 Khoa Truong + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define EE_HANDS + +/* clear default encoder def */ +#undef TAP_CODE_DELAY + +/* encoder support */ +#define TAP_CODE_DELAY 100 + +#define SPLIT_WPM_ENABLE +#define SPLIT_OLED_ENABLE + +#define POINTING_DEVICE_ROTATION_90 +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_RIGHT +#define POINTING_DEVICE_TASK_THROTTLE_MS 8 \ No newline at end of file diff --git a/keyboards/sofle/keymaps/foureight84/keymap.c b/keyboards/sofle/keymaps/foureight84/keymap.c new file mode 100644 index 0000000000..cec805593d --- /dev/null +++ b/keyboards/sofle/keymaps/foureight84/keymap.c @@ -0,0 +1,616 @@ +/* Copyright 2022 Khoa Truong + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "lib/lib8tion/lib8tion.h" + + +enum sofle_layers { + /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, + _MOUSE, +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_COLEMAK, + KC_LOWER, + KC_RAISE, + KC_ADJUST, + KC_PRVWD, + KC_NXTWD, + KC_LSTRT, + KC_LEND, + KC_DLINE, + KC_MOUSE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * |LCtrl | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | [ | LGUI | LAlt |LOWER | /Space / \Enter \ |RAISE | RCTR | RAlt | ] | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + +[_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_BSLS, \ + KC_LCTRL, 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_LBRC ,KC_LGUI, KC_LALT, KC_LOWER, KC_SPC, KC_ENT, KC_RAISE, KC_RCTRL, KC_RALT, KC_RBRC \ +), +/* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + +[_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_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LGUI,KC_LALT,KC_LCTRL,KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI \ +), +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | MOUSE| ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_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, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + KC_MOUSE, 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 + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc | + * |------+------+------+------+------+------| MPLY | | |------+------+------+------+------+------| + * |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_RAISE] = LAYOUT( \ + _______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______, \ + _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, KC_PRVWD, KC_UP, KC_NXTWD,KC_DLINE, 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, KC_MPLY, _______, XXXXXXX, KC_LSTRT, XXXXXXX, KC_LEND, XXXXXXX, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), +/* ADJUST + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | RESET| |QWERTY|COLEMAK| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |MACWIN| | | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | PREV | PLAY | NEXT | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_ADJUST] = LAYOUT( \ + XXXXXXX , XXXXXXX, XXXXXXX , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + RESET , XXXXXXX,KC_QWERTY,KC_COLEMAK,CG_TOGG,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX , XXXXXXX,CG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, \ + XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + /* MOUSE + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------|MS_BT1|MS_BT2| | | | | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | | | |-------| |-------| | | | | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + [_MOUSE] = 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, KC_MS_BTN1, KC_MS_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; + +#ifdef OLED_ENABLE + +static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n\n"), false); + oled_write_ln_P(PSTR("MODE"), false); + oled_write_ln_P(PSTR(""), false); + if (keymap_config.swap_lctl_lgui) { + oled_write_ln_P(PSTR("MAC"), false); + } else { + oled_write_ln_P(PSTR("WIN"), false); + } + + switch (get_highest_layer(default_layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + case _COLEMAK: + oled_write_ln_P(PSTR("Clmk"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case _COLEMAK: + case _QWERTY: + oled_write_P(PSTR("Base\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adj\n"), false); + break; + case _MOUSE: + oled_write_P(PSTR("Mouse\n"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } + + if (!is_keyboard_master()) { + return OLED_ROTATION_270; + } + return rotation; +} + + +/* Animation bit by j-inc https://github.com/qmk/qmk_firmware/tree/master/keyboards/kyria/keymaps/j-inc */ +// WPM-responsive animation stuff here +#define IDLE_FRAMES 5 +#define IDLE_SPEED 40 // below this wpm value your animation will idle + +// #define PREP_FRAMES 1 // uncomment if >1 + +#define TAP_FRAMES 2 +#define TAP_SPEED 60 // above this wpm value typing animation to triggere + +#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms +// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing +#define ANIM_SIZE 320 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 +uint8_t current_tap_frame = 0; + +// Implementation credit j-inc(/James Incandenza), pixelbenny, and obosob. +// Bongo cat images changed and adapted for sofle keyboard oled size. +// Original gif can be found here: https://www.pixilart.com/art/bongo-cat-bd2a8e9323aa705 +static void render_anim(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { + { + 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0x03, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, + 0xe1, 0x1e, 0x00, 0xc0, 0xbc, 0x83, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x03, 0x00, 0x00, 0x00, 0x80, 0x78, 0x87, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xe0, 0x1f, + 0x01, 0xc0, 0x3c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x31, 0x05, 0x41, 0x12, 0x04, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x87, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0xc0, 0x3f, 0x03, 0x80, + 0x78, 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x05, + 0x00, 0x00, 0xf0, 0xcf, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0x80, 0x79, 0x07, 0x80, 0x78, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x1e, 0x01, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xf9, 0x07, 0x80, 0x78, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x32, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xf0, 0x0f, 0x80, 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x60, 0x80, 0x00, 0x00, 0xe1, 0x1e, 0x01, 0xf0, 0x8f, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x09, 0x0e, 0x0e, 0x01, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, + 0x19, 0x41, 0x0a, 0x22, 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x70, 0x80, + 0x00, 0x00, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x01, + } + }; + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + { + 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0xff, 0xff, 0xff, 0x7c, 0x70, 0x40, 0x40, + 0x61, 0x5e, 0x80, 0xc0, 0xbc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x03, 0x00, 0x00, 0x00, 0x80, 0x78, 0x87, 0x00, 0x03, 0x0f, 0x3f, 0xf8, 0xf0, 0xf0, 0x20, + 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x87, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0xc0, 0x3f, 0x03, 0x80, + 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x00, 0x00, 0xf0, 0xcf, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0x80, 0x79, 0x07, 0x80, 0x78, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x1e, 0x01, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xf9, 0x07, 0x80, 0x78, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x32, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xf0, 0x0f, 0x80, 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x60, 0x80, 0x00, 0x00, 0xe1, 0x1e, 0x01, 0xf0, 0x8f, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x09, 0x0e, 0x0e, 0x01, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, + 0x19, 0x41, 0x0a, 0x22, 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x70, 0x80, + 0x00, 0x00, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x01, + }, + { + 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0x03, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, + 0xe1, 0x1e, 0x00, 0xc0, 0xbc, 0x83, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x03, 0x00, 0x00, 0x00, 0x80, 0x78, 0x87, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xe0, 0x1f, + 0x01, 0xc0, 0x3c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x31, 0x05, 0x41, 0x12, 0x04, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x87, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0xc0, 0x3f, 0x03, 0x80, + 0x78, 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x05, + 0x00, 0x00, 0xf0, 0xcf, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0x80, 0x79, 0x07, 0x80, 0x78, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xfe, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xc0, 0x00, 0xf9, 0x07, 0x80, 0x78, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x32, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x03, 0x0f, 0x3f, 0xff, 0x03, 0x01, 0x03, 0x07, 0x18, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x60, 0x80, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x09, 0x0e, 0x0e, 0x01, 0xf3, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x70, 0x80, + 0x00, 0x00, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x01 + }, + }; + + //assumes 1 frame prep stage + void animation_phase(void) { + if(get_current_wpm() <=IDLE_SPEED){ + oled_write_raw_P(idle[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(); // not essential but turns on animation OLED with 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(); + } + } + } +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_anim(); + oled_set_cursor(1,12); + oled_write_P(PSTR("WPM"), false); + oled_set_cursor(1,13); + oled_write(get_u8_str(get_current_wpm(), '0'), false); + } + return false; +} +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_LEFT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + } + break; + case KC_NXTWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_RIGHT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + } + break; + case KC_LSTRT: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + register_code(KC_HOME); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } else { + unregister_code(KC_HOME); + } + } + break; + case KC_LEND: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + register_code(KC_END); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } else { + unregister_code(KC_END); + } + } + break; + case KC_DLINE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_BSPC); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_BSPC); + } + break; + case KC_COPY: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_C); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_C); + } + return false; + case KC_PASTE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_V); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_V); + } + return false; + case KC_CUT: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_X); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_X); + } + return false; + break; + case KC_UNDO: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_Z); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_Z); + } + return false; + case KC_MOUSE: + if (record->event.pressed) { + layer_on(_MOUSE); + } else { + layer_off(_MOUSE); + } + return false; + } + return true; +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + switch (get_highest_layer(layer_state)) { + case _COLEMAK: + case _QWERTY: + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + break; + + case _RAISE: + if (index == 0) { + if (clockwise) { + tap_code(KC_MPRV); + } else { + tap_code(KC_MNXT); + } + } + break; + } + return true; +} + +#endif + +static uint32_t last_mouse_activity = 0; +static report_mouse_t last_mouse_report = {0}; +static bool is_scrolling = false; + +report_mouse_t smooth_mouse_movement(report_mouse_t mouse_report) { + // Linear interpolation and ease-in-out + static fract8 fract = 0.5; + int8_t x = 0; + int8_t y = 0; + int8_t h = 0; + int8_t v = 0; + + if (!is_scrolling) { + x = ease8InOutApprox(lerp8by8(last_mouse_report.x, mouse_report.x, fract)); + y = ease8InOutApprox(lerp8by8(last_mouse_report.y, mouse_report.y, fract)); + } else { + h = ease8InOutApprox(lerp8by8(last_mouse_report.x, mouse_report.x, fract)); + v = ease8InOutApprox(lerp8by8(last_mouse_report.y, mouse_report.y, fract)); + } + + // update the new smoothed report + mouse_report.x = x; + mouse_report.y = y; + mouse_report.h = h; + mouse_report.v = v; + + return mouse_report; +} + +report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + + if (has_mouse_report_changed(&last_mouse_report, &mouse_report)) { + last_mouse_activity = timer_read32(); + memcpy(&last_mouse_report, &mouse_report, sizeof(mouse_report)); + } + + return smooth_mouse_movement(mouse_report); +} \ No newline at end of file diff --git a/keyboards/sofle/keymaps/foureight84/readme.md b/keyboards/sofle/keymaps/foureight84/readme.md new file mode 100644 index 0000000000..e88b0e04f6 --- /dev/null +++ b/keyboards/sofle/keymaps/foureight84/readme.md @@ -0,0 +1 @@ +For more information on integrating the Pimoroni Trackball, please see: https://github.com/foureight84/sofle-keyboard-pimoroni diff --git a/keyboards/sofle/keymaps/foureight84/rules.mk b/keyboards/sofle/keymaps/foureight84/rules.mk new file mode 100644 index 0000000000..102742ab1c --- /dev/null +++ b/keyboards/sofle/keymaps/foureight84/rules.mk @@ -0,0 +1,24 @@ +OLED_ENABLE = yes +ENCODER_ENABLE = yes +EXTRAKEY_ENABLE = yes +MOUSEKEY_ENABLE = yes +WPM_ENABLE = yes + +#Debug options +VERBOSE = no +CONSOLE_ENABLE = no +COMMAND_ENABLE = no + +LTO_ENABLE = yes + +SPLIT_KEYBOARD = yes + +VIA_ENABLE = no + +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = pimoroni_trackball + +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +MUSIC_ENABLE = no \ No newline at end of file diff --git a/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h b/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h index 8372e10168..e335d5d8b8 100644 --- a/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/sofle/keymaps/michal/config.h b/keyboards/sofle/keymaps/michal/config.h new file mode 100644 index 0000000000..6ab3602dfd --- /dev/null +++ b/keyboards/sofle/keymaps/michal/config.h @@ -0,0 +1,23 @@ +// Copyright 2022 Michal S. (@ihatethefrench) +// SPDX-License-Identifier: GPL-2.0-only + +#pragma once + +// Enables features such as octave changer, suspend, etc. +#define MIDI_ADVANCED + +// This autoshift delay feels most natural for me I think +#define AUTO_SHIFT_TIMEOUT 165 + +// I don't use too many layers, so this is more than enough +#define LAYER_STATE_8BIT + +// Saving space +#define NO_ACTION_ONESHOT +#define NO_ACTION_TAPPING +#define NO_MUSIC_MODE + +// If I recall correctly, these aren't necessary for the sofle +// so i disable them to save more space. +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE \ No newline at end of file diff --git a/keyboards/sofle/keymaps/michal/keymap.c b/keyboards/sofle/keymaps/michal/keymap.c new file mode 100644 index 0000000000..1e0d16eab9 --- /dev/null +++ b/keyboards/sofle/keymaps/michal/keymap.c @@ -0,0 +1,230 @@ +// Copyright 2022 Michal S. (@ihatethefrench) +// SPDX-License-Identifier: GPL-2.0-only + +#include QMK_KEYBOARD_H + +// This specifies the layers that will be used +enum sofle_layers { + _WORKMAN, + _QWERTY, + _MIDI, + _LOWER, + _RAISE, + _ADJUST +}; + +// This specifies any custom keycodes I might have set +enum custom_keycodes { + KC_WORKMAN = SAFE_RANGE, + KC_QWERTY, + KC_MIDI, + KC_LOWER, + KC_RAISE, + KC_ADJUST +}; + +// Here the keymaps are defined in matrix form using KC_XYZ form keycodes +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * WORKMAN + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Prnt | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | Q | D | R | W | B | | J | F | U | P | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | H | T | G |-------. ,-------| Y | N | E | O | I | ' | + * |------+------+------+------+------+------| | | MUTE |------+------+------+------+------+------| + * |LShift| Z | X | M | C | V |-------| |-------| K | L | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_WORKMAN] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PSCR, + KC_ESC, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, XXXXXXX, KC_MUTE, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_LALT, KC_LCTRL, KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI +), + +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Prnt | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| | | MUTE |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Space / \Enter \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_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_PSCR, + 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, XXXXXXX, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_LALT, KC_LCTRL, KC_LOWER, KC_SPC, KC_ENT, KC_RAISE, KC_RCTRL, KC_RALT, KC_RGUI +), + +/* MIDI + * ,-----------------------------------------. ,-----------------------------------------. + * | Pnic | OCT0 | OCT1 | OCT2 | OCT3 | OCT4 | | OCT5 | OCT6 | OCT7 | | | MTOG | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | |G#/Ab |Bb/A# | |C#/Db |D#/Eb | | |F#/Gb |G#/Ab |Bb/A# | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | A | B | C | D | E |-------. ,-------| F | G | A | B | C | Wkmn | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | | TNSD | TNSU |-------| |-------| BNDD | BNDU | | | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | | | | Susd | /OCTDN / \OCTUP \ | | | | | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_MIDI] = LAYOUT( + MI_ALLOFF, MI_OCT_0, MI_OCT_1, MI_OCT_2, MI_OCT_3, MI_OCT_4, MI_OCT_5, MI_OCT_6, MI_OCT_7, _______, _______, MI_TOG, + _______, MI_Gs, MI_As, _______, MI_Cs_1, MI_Ds_1, _______, MI_Fs_1, MI_Gs_1, MI_As_1, _______, _______, + _______, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, MI_G_1, MI_A_1, MI_B_1, MI_C_2, KC_WORKMAN, + _______, _______, _______, _______, MI_TRNSD, MI_TRNSU, _______, _______, MI_BENDD, MI_BENDU, _______, _______, _______, _______, + _______, _______, _______, MI_SUS, MI_OCTD, MI_OCTU, _______, _______, _______, _______ +), + +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------| | | | | | | | + * |------+------+------+------+------+------| | | Run |------+------+------+------+------+------| + * | | = | - | + | { | } |-------| |-------| [ | ] | | | \ | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | | | |LOWER | / / \ \ | | | | | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE, + _______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, LALT(KC_F2), KC_LBRC, KC_RBRC, _______, _______, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* RAISE + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | ASTG | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | Up | | | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | |-------. ,-------| | Left | Down | Rght | | Wkmn | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * | | | | Midi | | |-------| |-------| | | Home | End | | Qwrt | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | | | | | / / \ \ |RAISE | | | | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ASTG, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_WORKMAN, + _______, _______, _______, KC_MIDI, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, KC_QWERTY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +)}; + +// This section only compiles if OLED_ENABLE is set to `yes` in rules.mk +#ifdef OLED_ENABLE + +// Defining my custom text to draw to the screen :) +static void oled_screen(void) { + oled_write_ln_P(PSTR(""), false); + oled_write_ln_P(PSTR(">nix "), false); + oled_write_ln_P(PSTR(">rust"), false); + oled_write_ln_P(PSTR(">hs &"), false); + oled_write_ln_P(PSTR(">rum"), false); + oled_write_ln_P(PSTR(""), false); + oled_write_ln_P(PSTR(" . ."), false); + oled_write_ln_P(PSTR(" u "), false); + oled_write_ln_P(PSTR(" d"), false); + oled_write_ln_P(PSTR(""), false); + oled_write_ln_P(PSTR("mchal"), false); +} + +// Set correct rotation so the text doesn't end up sideways +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_270; + } + return rotation; +} + +// I only draw to the right screen because I accidentally +// burned the left one with a soldering iron. Oops. +bool oled_task_user(void) { + if (!is_keyboard_master()) { + oled_screen(); + } + return false; +} + +#endif + +// This section defines custom keycodes, which I use to manage layers +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + case KC_MIDI: + if (record->event.pressed) { + set_single_persistent_default_layer(_MIDI); + } + return false; + case KC_LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + } + return true; +} + +// This section only compiles if ENCODER_ENABLE is set to `yes` in rules.mk +#ifdef ENCODER_ENABLE + +// This section is like the keymap matrix, but for rotary encoders +// My left encoder is currently not working, so I'm using Layers to cope :') +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_WORKMAN] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(KC_VOLD, KC_VOLU )}, + [_QWERTY] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(KC_VOLD, KC_VOLU )}, + [_LOWER] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)}, + [_RAISE] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______ )}, + [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______ )}, +}; + +#endif diff --git a/keyboards/sofle/keymaps/michal/rules.mk b/keyboards/sofle/keymaps/michal/rules.mk new file mode 100644 index 0000000000..63f587fd30 --- /dev/null +++ b/keyboards/sofle/keymaps/michal/rules.mk @@ -0,0 +1,22 @@ +BOOTLOADER = atmel-dfu + +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 + +# These are turned off to save space +COMMAND_ENABLE = no +CONSOLE_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no + +# I actually use these features +AUTO_SHIFT_ENABLE = yes +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes +EXTRAKEY_ENABLE = yes +MIDI_ENABLE = yes +MOUSEKEY_ENABLE = yes + +# More space-saving +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sofle/keymaps/noqmk/keymap.c b/keyboards/sofle/keymaps/noqmk/keymap.c new file mode 100644 index 0000000000..ae92a7ec7f --- /dev/null +++ b/keyboards/sofle/keymaps/noqmk/keymap.c @@ -0,0 +1,686 @@ +// Copyright 2022 axtlos (@axtloss) +// SPDX-License-Identifier: GPL-2.0-only +#include QMK_KEYBOARD_H + + +enum sofle_layers { + /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ + _QWERTY, + _COLEMAK, + _GAME, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum custom_keycodes { + KC_COLEMAK = SAFE_RANGE, + KC_QWERTY, + KC_LOWER, + KC_RAISE, + KC_ADJUST, + KC_GAME, + KC_PRVWD, + KC_NXTWD, + KC_LSTRT, + KC_LEND, + KC_DLINE, + KC_UNLOCK, +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * COLEMAK + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | + * |------+------+------+------+------+------| MUTE | |ADJUST |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Space / \Enter \ |RAISE | RCTR | RAlt | MOUSE | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + +[_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_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_CAPS ,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI,KC_LALT,KC_LCTRL,KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_PSCR +), +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | Print| + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + +[_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_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_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI,KC_LALT,KC_LCTRL, KC_LOWER, KC_ENT, KC_SPC, KC_RAISE, KC_RCTRL, KC_RALT, KC_PSCR +), +/* LOWER + * ,-----------------------------------------. ,-----------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +/* RAISE + * ,----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | ae | ue | oe | ss | euro |-------. ,-------| | Left | Down | Rigth| Del | Bspc | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |Shift | Undo | Cut | Copy | Paste| caps |-------| |-------| | LStr | | LEnd | | Shift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +[_RAISE] = LAYOUT( + _______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______, + _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), KC_UP, LGUI(KC_9),LGUI(KC_0), KC_BSPC, + _______, RALT(KC_Q), RALT(KC_Y), RALT(KC_P), RALT(KC_S) , RALT(KC_5), KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC, + _______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_CAPS, _______, _______, XXXXXXX, KC_LSTRT, XXXXXXX, KC_LEND, XXXXXXX, _______, + _______, _______, _______, _______, KC_ENT, _______, _______, _______, _______, _______ +), +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| | | |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Space / \Enter \ |RAISE | RCTR | RAlt | Print| + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ + +[_GAME] = 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_BSPC, + KC_LCTRL, 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_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI,KC_LALT,KC_SPC, KC_LOWER, KC_SPC, KC_ENT, KC_RAISE, KC_RCTRL, KC_RALT, KC_PSCR +), +/* ADJUST + * ,-----------------------------------------. ,-----------------------------------------. + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | QK_BOOT| |QWERTY|COLEMAK| | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | |MACWIN|GAMING| | |-------. ,-------| | VOLDO| MUTE | VOLUP| | | + * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| + * |UNLOCK| | | | | |-------| |-------| | PREV | PLAY | NEXT | | | + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `---------------------------''------' '------''---------------------------' + */ +[_ADJUST] = LAYOUT( + XXXXXXX , XXXXXXX, XXXXXXX , XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT , XXXXXXX,KC_QWERTY,KC_COLEMAK,CG_TOGG,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX , XXXXXXX,CG_TOGG, KC_GAME, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, + KC_UNLOCK , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +}; + +#ifdef OLED_ENABLE + +bool show_lock = true; // this is used to display the lock icon and disable keypresses when the keyboard is locked +bool animate = true; // this variable is used to fix the flickering bug + +static void render_logo(void) { + static const char PROGMEM no_qmk[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x80, 0x80, 0x80, + 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0xe0, 0xf0, + 0xf8, 0xf8, 0xe0, 0x00, 0x00, 0x0e, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 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, 0xf0, + 0x08, 0x88, 0x88, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x88, 0x88, 0x88, 0x48, 0x48, 0x48, 0x28, 0x28, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xfc, 0xf8, 0x03, 0xf3, 0xe7, 0xdf, 0x9f, 0x3f, 0xfe, 0xfe, 0xfc, 0xf9, + 0xfb, 0xf3, 0xf7, 0xf7, 0xe7, 0xef, 0xcf, 0x90, 0xa1, 0x81, 0x81, 0x81, 0xa0, 0xbd, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x3f, 0x9c, 0xdc, 0xf8, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x60, 0x00, 0x00, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x4c, 0x4f, + 0x47, 0x43, 0x43, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xc2, 0xc2, 0x41, 0x00, 0x00, 0x00, 0x00, + 0xe3, 0x13, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0xe2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x79, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x79, 0x03, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x03, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x44, 0x4a, 0x4a, 0x51, 0x51, 0x60, 0x60, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 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, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x0f, 0x1f, + 0x3f, 0x3f, 0x7f, 0x7c, 0x78, 0x78, 0x78, 0x78, 0x7c, 0x7e, 0x7f, 0x7f, 0x4f, 0x43, 0x40, 0x60, + 0x60, 0x78, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 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, 0x21, 0x21, + 0x11, 0x11, 0x09, 0x09, 0x05, 0x05, 0x03, 0x03, 0x05, 0x09, 0x11, 0x21, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + oled_write_raw_P(no_qmk, sizeof(no_qmk)); +} + +static const char PROGMEM locked_logo[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0xce, 0xc6, + 0xc6, 0xce, 0xfc, 0xf0, 0xc0, 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, 0x1f, + 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +/* 32 * 14 os logos */ +static const char PROGMEM linux_logo[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x27, 0x27, 0x8f, 0x9f, 0x03, + 0x73, 0xff, 0x03, 0xf2, 0xfe, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x19, 0x19, 0x1b, 0x1b, 0x1b, + 0x1a, 0x18, 0x18, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; +static const char PROGMEM mac_logo[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xf8, 0xf0, 0xf6, 0xfb, 0xfb, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x0f, 0x1f, 0x1f, 0x0f, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + +/* KEYBOARD PET START */ + +/* settings */ +# define MIN_WALK_SPEED 10 +# define MIN_RUN_SPEED 40 + +/* advanced settings */ +# define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms +# define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 + +/* timers */ +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; + +/* current frame */ +uint8_t current_frame = 0; + +/* status variables */ +int current_wpm = 0; +led_t led_usb_state; + +bool isSneaking = false; +bool isJumping = false; +bool showedJump = true; + +/* logic */ +static void render_luna(int LUNA_X, int LUNA_Y) { + /* Sit */ + static const char PROGMEM sit[2][ANIM_SIZE] = {/* 'sit1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'sit2', 32x22px */ + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + + /* Walk */ + static const char PROGMEM walk[2][ANIM_SIZE] = {/* 'walk1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'walk2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }}; + + /* Run */ + static const char PROGMEM run[2][ANIM_SIZE] = {/* 'run1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'run2', 32x22px */ + { + 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }}; + + /* Bark */ + static const char PROGMEM bark[2][ANIM_SIZE] = {/* 'bark1', 32x22px */ + { + 0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'bark2', 32x22px */ + { + 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }}; + + /* Sneak */ + static const char PROGMEM sneak[2][ANIM_SIZE] = {/* 'sneak1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'sneak2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + }}; + + /* animation */ + void animate_luna(void) { + /* jump */ + if (isJumping || !showedJump) { + /* clear */ + oled_set_cursor(LUNA_X, LUNA_Y + 2); + oled_write(" ", false); + + oled_set_cursor(LUNA_X, LUNA_Y - 1); + + showedJump = true; + } else { + /* clear */ + oled_set_cursor(LUNA_X, LUNA_Y - 1); + oled_write(" ", false); + + oled_set_cursor(LUNA_X, LUNA_Y); + } + + /* switch frame */ + current_frame = (current_frame + 1) % 2; + + /* current status */ + if (led_usb_state.caps_lock) { + oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + + } else if (isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + + } else if (current_wpm <= MIN_WALK_SPEED) { + oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + + } else if (current_wpm <= MIN_RUN_SPEED) { + oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + + } else { + oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + } + } + + /* animation timer, stops the animation logic when the oled is turned off */ + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION && animate == true) { + anim_timer = timer_read32(); + animate_luna(); + } + + /* this fixes the screen on and off bug by disabling the animation logic when the oled is off */ + if (current_wpm > 0) { + oled_on(); + anim_sleep = timer_read32(); + animate = true; + } else if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + animate = false; + } +} + +/* KEYBOARD PET END */ +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } + return rotation; +} + +static void print_logo_narrow(void) { + render_logo(); +} + +static void print_status_narrow(void) { + /* Print current mode */ + oled_set_cursor(0, 0); + if (show_lock == true) { + oled_write_raw_P(locked_logo, sizeof(locked_logo)); + } else if (keymap_config.swap_lctl_lgui) { + oled_write_raw_P(mac_logo, sizeof(mac_logo)); + } else { + oled_write_raw_P(linux_logo, sizeof(linux_logo)); + } + + oled_set_cursor(0, 3); + + switch (get_highest_layer(default_layer_state)) { + case _COLEMAK: + oled_write_P(PSTR(" CLMK "), false); + break; + case _GAME: + oled_write_P(PSTR(" GAME "), false); + break; + case _QWERTY: + oled_write_P(PSTR("QWERT"), false); + break; + default: + oled_write_P(PSTR("UNDEF"), false); + } + + oled_set_cursor(0, 5); + + /* Print current layer */ + oled_write_P(PSTR("LAYER"), false); + + oled_set_cursor(0, 6); + + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Base "), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower"), false); + break; + case _ADJUST: + oled_write_P(PSTR(" Adj "), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + + /* caps lock */ + oled_set_cursor(0, 8); + oled_write_P(PSTR("CPSLK"), led_usb_state.caps_lock); + + /* KEYBOARD PET RENDER START */ + + render_luna(0, 13); + + /* KEYBOARD PET RENDER END */ +} + +bool oled_task_user(void) { + /* KEYBOARD PET VARIABLES START */ + + current_wpm = get_current_wpm(); + led_usb_state = host_keyboard_led_state(); + + /* KEYBOARD PET VARIABLES END */ + + if (is_keyboard_master()) { + print_status_narrow(); + } else { + print_logo_narrow(); + } + return false; +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_GAME: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + set_single_persistent_default_layer(_GAME); + } + return false; + case KC_LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + case KC_PRVWD: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_LEFT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + } + break; + case KC_NXTWD: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_RIGHT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + } + break; + case KC_LSTRT: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + register_code(KC_HOME); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } else { + unregister_code(KC_HOME); + } + } + break; + case KC_LEND: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + register_code(KC_END); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } else { + unregister_code(KC_END); + } + } + break; + case KC_DLINE: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + register_mods(mod_config(MOD_RCTL)); + register_code(KC_BSPC); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_BSPC); + } + break; + case KC_COPY: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_C); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_C); + } + return false; + case KC_PASTE: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_V); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_V); + } + return false; + case KC_CUT: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_X); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_X); + } + return false; + break; + case KC_UNDO: + if (show_lock == true) { + return false; + } + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_Z); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_Z); + } + return false; + case KC_UNLOCK: + if (record->event.pressed) { + if (show_lock == true) { + show_lock = false; + print_status_narrow(); + } else { + show_lock = true; + print_status_narrow(); + } + } + } + /* This stops any keypress to be sent to the computer when the keyboard is locked */ + if (show_lock == false) { + return true; + } else { + return false; + } +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + } + return true; +} + +#endif diff --git a/keyboards/sofle/keymaps/noqmk/readme.md b/keyboards/sofle/keymaps/noqmk/readme.md new file mode 100644 index 0000000000..8fce20ad0c --- /dev/null +++ b/keyboards/sofle/keymaps/noqmk/readme.md @@ -0,0 +1,28 @@ +![no qmk?](https://user-images.githubusercontent.com/60044824/181124856-0ebe0cc9-4b91-4fa2-89df-4e0841a61b9d.png) + + +# Custom keymap for Sofle Keyboard, based on [Helltm](https://github.com/qmk/qmk_firmware/tree/master/keyboards/sofle/keymaps/helltm) + +Features: + +- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift) +- Various modes, can be switched (using Adjust layer and the selected one is stored in EEPROM). +- Modes for Qwerty and Colemak support +- Modes for Mac vs Linux/Win support -> different order of modifiers and different action shortcuts on the "UPPER" layer. Designed to simplify transtions when switching between operating systems often. +- The OLED on master half shows selected mode and caps lock state and is rotated. +- Left encoder controls volume up/down/mute. Right encoder PREV/NEXT media controls. +- Keyboard lock, change to the adjust layer (up and down pressed at the same time) and press the left shift to lock/unlock, current lock state is displayed on oled +- Apple logo for Mac mode, Fedora Silverblue logo for Linux/Win mode, Lock icon for locked +- Fixed flickering on main OLED +- Gaming layout, switches space to the left half of the keyboard and raises the most left column up by one key + +#Luna, the keyboard pet + +Features: +- Luna reacts to your wpm counter + - under 10 wpm she sits + - between 10 and 40 wpm she walks + - over 40 wpm she runs +- She will move sneakily if you hold down Ctrl +- Will bark at people on the internet if you activate Caps Lock! +- Luna jumps every time you hit Space diff --git a/keyboards/sofle/keymaps/noqmk/rules.mk b/keyboards/sofle/keymaps/noqmk/rules.mk new file mode 100644 index 0000000000..6685b8492c --- /dev/null +++ b/keyboards/sofle/keymaps/noqmk/rules.mk @@ -0,0 +1,6 @@ +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 +ENCODER_ENABLE = yes +CONSOLE_ENABLE = no +EXTRAKEY_ENABLE = yes +WPM_ENABLE = yes diff --git a/keyboards/spaceholdings/nebula12b/config.h b/keyboards/spaceholdings/nebula12b/config.h new file mode 100755 index 0000000000..60ea9eb3ca --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/config.h @@ -0,0 +1,132 @@ +/* +Copyright 2022 Yiancar + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x8968 +#define PRODUCT_ID 0x5332 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Yiancar-Designs +#define PRODUCT NEBULA12B + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 3 + +#define MATRIX_ROW_PINS { B7, B4, F7, F6 } +#define MATRIX_COL_PINS { F4, F5, D7 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +// #define MATRIX_HAS_GHOST + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +// #define FORCE_NKRO + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* RGB options */ + +#define RGB_DI_PIN D5 +#define DRIVER_LED_TOTAL 16 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 +#define RGB_DISABLE_WHEN_USB_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 + diff --git a/keyboards/spaceholdings/nebula12b/info.json b/keyboards/spaceholdings/nebula12b/info.json new file mode 100755 index 0000000000..4580cca278 --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "NEBULA12B", + "url": "", + "maintainer": "yiancar", + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3} + ] + } + } +} diff --git a/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c b/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c new file mode 100755 index 0000000000..8006e4123f --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2022 Yiancar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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( /* Base */ + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, + MO(1), KC_P0, KC_PDOT), + +[1] = LAYOUT_all( /* FN */ + RGB_TOG, RGB_MOD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_PENT) +}; diff --git a/keyboards/spaceholdings/nebula12b/keymaps/default/readme.md b/keyboards/spaceholdings/nebula12b/keymaps/default/readme.md new file mode 100755 index 0000000000..c69432df24 --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/keymaps/default/readme.md @@ -0,0 +1,7 @@ +# The default keymap for Nebula12B. VIA support disabled. + +![Layer 0](https://i.imgur.com/CoMteJW.png) + +![Layer 1](https://i.imgur.com/LbIPiJj.png) + +The full RGB control does not fit due to the small number of keys. Using VIA might be a good idea! diff --git a/keyboards/spaceholdings/nebula12b/keymaps/via/keymap.c b/keyboards/spaceholdings/nebula12b/keymaps/via/keymap.c new file mode 100755 index 0000000000..943c27857b --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/keymaps/via/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2022 Yiancar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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( /* Base */ + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, + MO(1), KC_P0, KC_PDOT), + +[1] = LAYOUT_all( /* FN */ + RGB_TOG, RGB_MOD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_PENT), + +[2] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + +[3] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/spaceholdings/nebula12b/keymaps/via/readme.md b/keyboards/spaceholdings/nebula12b/keymaps/via/readme.md new file mode 100755 index 0000000000..9b6fd121ae --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/keymaps/via/readme.md @@ -0,0 +1,5 @@ +# The default keymap for Nebula12B. VIA support enabled. + +![Layer 0](https://i.imgur.com/CoMteJW.png) + +![Layer 1](https://i.imgur.com/LbIPiJj.png) \ No newline at end of file diff --git a/keyboards/spaceholdings/nebula12b/keymaps/via/rules.mk b/keyboards/spaceholdings/nebula12b/keymaps/via/rules.mk new file mode 100755 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/spaceholdings/nebula12b/nebula12b.c b/keyboards/spaceholdings/nebula12b/nebula12b.c new file mode 100755 index 0000000000..821999a105 --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/nebula12b.c @@ -0,0 +1,42 @@ +/* Copyright 2022 Yiancar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "nebula12b.h" + +#ifdef RGB_MATRIX_ENABLE +// clang-format off +led_config_t g_led_config = { { + { 13, 15, 1 }, + { 4, 3, 2 }, + { 5, 6, 7 }, + { 11, 10, 9 }, +}, { + {224, 0 }, {224, 9 }, {224, 27 }, {112, 27 }, { 0,27 }, + { 0, 46 }, {112, 46 }, {224, 46 }, {224, 55 }, {224,64 }, + {112, 64 }, { 0, 64 }, { 0, 55 }, { 0, 9 }, { 0, 0 }, {112, 9 } +}, { + 2, + 4, 4, 4, 4, 4, 4, 4, + 2, + 4, 4, 4, + 2, + 4, + 2, + 4 +} }; +// clang-format on +#endif + diff --git a/keyboards/spaceholdings/nebula12b/nebula12b.h b/keyboards/spaceholdings/nebula12b/nebula12b.h new file mode 100755 index 0000000000..3733aa1eb6 --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/nebula12b.h @@ -0,0 +1,34 @@ +/* Copyright 2022 Yiancar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define XXX KC_NO + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. + +#define LAYOUT_all( \ + K00, K01, K02, \ + K10, K11, K12, \ + K20, K21, K22, \ + K30, K31, K32 \ +) { \ + { K00, K01, K02, }, \ + { K10, K11, K12, }, \ + { K20, K21, K22, }, \ + { K30, K31, K32, } \ +} diff --git a/keyboards/spaceholdings/nebula12b/readme.md b/keyboards/spaceholdings/nebula12b/readme.md new file mode 100755 index 0000000000..7a48fb04e4 --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/readme.md @@ -0,0 +1,32 @@ +# Nebula12B + +This is a micropad layout PCB. It supports VIA, full per-key RGB and underglow RGB. This is revision B. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A micropad with ATMEGA32U4 +* Hardware Availability: https://spaceholdings.net/ + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make spaceholdings/nebula12b: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). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or dfu-util (`make nebula12b::flash`) diff --git a/keyboards/spaceholdings/nebula12b/rules.mk b/keyboards/spaceholdings/nebula12b/rules.mk new file mode 100755 index 0000000000..92dd198801 --- /dev/null +++ b/keyboards/spaceholdings/nebula12b/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes # Enable Per-key RGB +RGB_MATRIX_DRIVER = WS2812 # Per-key RGB Driver + +LTO_ENABLE = yes diff --git a/keyboards/spaceholdings/nebula68b/keymaps/default/readme.md b/keyboards/spaceholdings/nebula68b/keymaps/default/readme.md index 699c741555..a4a6c7facf 100755 --- a/keyboards/spaceholdings/nebula68b/keymaps/default/readme.md +++ b/keyboards/spaceholdings/nebula68b/keymaps/default/readme.md @@ -1,4 +1,4 @@ -# The default keymap for Nebula68. VIA support disabled. +# The default keymap for Nebula68B. VIA support disabled. ![Layer 0](https://i.imgur.com/dXyRwb1.png) diff --git a/keyboards/spaceholdings/nebula68b/keymaps/via/readme.md b/keyboards/spaceholdings/nebula68b/keymaps/via/readme.md index 75cbcac25e..583ddc02cf 100755 --- a/keyboards/spaceholdings/nebula68b/keymaps/via/readme.md +++ b/keyboards/spaceholdings/nebula68b/keymaps/via/readme.md @@ -1,4 +1,4 @@ -# The default keymap for Nebula68. VIA support enabled. +# The default keymap for Nebula68B. VIA support enabled. ![Layer 0](https://i.imgur.com/dXyRwb1.png) diff --git a/keyboards/spaceholdings/nebula68b/readme.md b/keyboards/spaceholdings/nebula68b/readme.md index 624d9aced0..4c238e2ea0 100755 --- a/keyboards/spaceholdings/nebula68b/readme.md +++ b/keyboards/spaceholdings/nebula68b/readme.md @@ -29,4 +29,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to - Unplug - Hold Escape - Plug In -- Flash using QMK Toolbox or dfu-util (`make nebula65b::flash`) +- Flash using QMK Toolbox or dfu-util (`make nebula68b::flash`) diff --git a/keyboards/spaceman/pancake/rev2/readme.md b/keyboards/spaceman/pancake/rev2/readme.md index e8b65c4888..5b68180741 100644 --- a/keyboards/spaceman/pancake/rev2/readme.md +++ b/keyboards/spaceman/pancake/rev2/readme.md @@ -10,3 +10,58 @@ Make example for this keyboard (after setting up your build environment): make spaceman/pancake/rev2: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). + + +Alternative OLED Logos: + +![Japanese](https://i.imgur.com/g666Wvn.png) +```C + 0x00, 0xC0, 0x3C, 0x00, 0x04, 0x1A, + 0xE4, 0x00, 0x82, 0x84, 0x40, 0x20, + 0x18, 0x00, 0x10, 0x0E, 0x84, 0x7C, + 0x04, 0x00, 0x10, 0x10, 0x10, 0x10, + 0x10, 0x00, 0x24, 0x24, 0xFE, 0x24, + 0x24, 0x00, 0x00, 0xC0, 0x20, 0x10, + 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x64, 0x74, + 0x74, 0x34, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x08, 0x08, 0x08, 0x08, 0x10, + 0x10, 0x20, 0xC0, 0x00, 0x00, 0x8C, + 0x53, 0x22, 0x22, 0x44, 0xC4, 0x5C, + 0x4C, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x44, 0x44, 0x44, + 0xC4, 0x22, 0x22, 0x53, 0x8C, 0x00, + 0x00, 0x01, 0x0E, 0x04, 0x04, 0x08, + 0x09, 0x08, 0x08, 0x10, 0x10, 0x10, + 0x10, 0x10, 0x10, 0x11, 0x13, 0x10, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x18, + 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, + 0x01, 0x00, +``` +![Trans Rights](https://i.imgur.com/TijjY6j.png) + +```c + 0x00, 0x00, 0x00, 0x02, 0x02, 0xFE, + 0x02, 0x02, 0x00, 0xFE, 0x12, 0x12, + 0xEC, 0x00, 0xFC, 0x12, 0x12, 0xFC, + 0x00, 0xFE, 0x04, 0x18, 0x20, 0xFE, + 0x00, 0x8C, 0x92, 0x92, 0x62, 0x00, + 0x00, 0x00, 0x00, 0xFE, 0x12, 0x12, + 0xEC, 0x00, 0x82, 0xFE, 0x82, 0x00, + 0x7C, 0x82, 0x82, 0x92, 0x70, 0x00, + 0xFE, 0x10, 0x10, 0xFE, 0x00, 0x02, + 0x02, 0xFE, 0x02, 0x02, 0x00, 0x8C, + 0x92, 0x92, 0x62, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC0, 0xF0, 0xF0, 0xF8, + 0x98, 0x98, 0xF8, 0xF8, 0xF8, 0xF8, + 0xFC, 0xFE, 0xFE, 0xFE, 0xF6, 0xF2, + 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0xC0, + 0xE0, 0xF0, 0x70, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x1F, 0x3F, 0x7F, + 0x7F, 0x6F, 0x07, 0x07, 0x03, 0x03, + 0x03, 0x03, 0x0F, 0x1F, 0x1E, 0x18, + 0x00, 0x00, +``` diff --git a/keyboards/splitkb/kyria/keymaps/artflag/config.h b/keyboards/splitkb/kyria/keymaps/artflag/config.h new file mode 100644 index 0000000000..5607926cd3 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/artflag/config.h @@ -0,0 +1,23 @@ +/* Copyright 2022 Thomas Baart + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define TAPPING_TERM 175 +#define TAPPING_TOGGLE 2 + +// Lets you roll mod-tap keys +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/splitkb/kyria/keymaps/artflag/keymap.c b/keyboards/splitkb/kyria/keymaps/artflag/keymap.c new file mode 100644 index 0000000000..9f732b767c --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/artflag/keymap.c @@ -0,0 +1,37 @@ +// Copyright 2021 Your Name (@artflag) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Tap Dance declarations + +enum { + CT_CLN, // Reverses colon and semicolon and triggers semicolon on tap dance. +}; + +void dance_cln_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code16(KC_COLN); + } else { + register_code(KC_SCLN); + } +} + +void dance_cln_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code16(KC_COLN); + } else { + unregister_code(KC_SCLN); + } +} + +// All tap dance functions would go here. +qk_tap_dance_action_t tap_dance_actions[] = { + [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_ESC, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, TD(CT_CLN), KC_BSPC, KC_LGUI, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, KC_TAB, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_BSLS, TT(2), KC_LBRC, KC_RBRC, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_GRV, KC_LCTL, KC_LALT, KC_SPC, KC_LSPO, TT(1), TT(1), KC_RSPC, KC_ENT, KC_MINS, KC_EQL), + [1] = LAYOUT(KC_TRNS, KC_NO, KC_7, KC_8, KC_9, KC_NO, KC_NO, KC_NO, KC_UP, KC_PGUP, KC_PSLS, KC_TRNS, KC_TRNS, KC_0, KC_4, KC_5, KC_6, KC_PDOT, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PAST, KC_PPLS, KC_TRNS, KC_NO, KC_1, KC_2, KC_3, KC_PCMM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_HOME, KC_END, KC_PGDN, KC_EXLM, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [2] = LAYOUT(KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_MPLY, KC_VOLU, KC_BRIU, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, KC_NO, KC_MSTP, KC_VOLD, KC_BRID, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO) +}; diff --git a/keyboards/splitkb/kyria/keymaps/artflag/readme.md b/keyboards/splitkb/kyria/keymaps/artflag/readme.md new file mode 100644 index 0000000000..02cb1ce19a --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/artflag/readme.md @@ -0,0 +1,26 @@ +# Simple workman layout + +## Features + +- Workman layout +- semicolon and colon are flipped. Colon on tap, semicolon on double tap. + +## Using the layout + +1. Use https://config.qmk.fm/#/splitkb/kyria/rev2/LAYOUT to edit `workman-artflag.json`. + +1. Convert to `keymap.c`: + + ```bash + cd keyboards/splitkb/kyria/keymaps/ArtFlag + qmk json2c workman-artflag.json > keymap.c + cd ../../../../.. + ``` + +1. Git diff to bring back the code for tap dancing. +1. Compile and flash: + + ```bash + qmk compile && qmk flash + ``` + \ No newline at end of file diff --git a/keyboards/splitkb/kyria/keymaps/artflag/rules.mk b/keyboards/splitkb/kyria/keymaps/artflag/rules.mk new file mode 100644 index 0000000000..e5ddcae8d9 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/artflag/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/splitkb/kyria/keymaps/artflag/workman-artflag.json b/keyboards/splitkb/kyria/keymaps/artflag/workman-artflag.json new file mode 100644 index 0000000000..f7429164c4 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/artflag/workman-artflag.json @@ -0,0 +1,167 @@ +{ + "version": 1, + "notes": "", + "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": "splitkb/kyria/rev2", + "keymap": "workman-artflag", + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC", + "KC_Q", + "KC_D", + "KC_R", + "KC_W", + "KC_B", + "KC_J", + "KC_F", + "KC_U", + "KC_P", + "KC_SCLN", + "KC_BSPC", + "KC_LGUI", + "KC_A", + "KC_S", + "KC_H", + "KC_T", + "KC_G", + "KC_Y", + "KC_N", + "KC_E", + "KC_O", + "KC_I", + "KC_QUOT", + "KC_TAB", + "KC_Z", + "KC_X", + "KC_M", + "KC_C", + "KC_V", + "KC_BSLS", + "TT(2)", + "KC_LBRC", + "KC_RBRC", + "KC_K", + "KC_L", + "KC_COMM", + "KC_DOT", + "KC_SLSH", + "KC_GRV", + "KC_LCTL", + "KC_LALT", + "KC_SPC", + "KC_LSPO", + "TT(1)", + "TT(1)", + "KC_RSPC", + "KC_ENT", + "KC_MINS", + "KC_EQL" + ], + [ + "KC_TRNS", + "KC_NO", + "KC_7", + "KC_8", + "KC_9", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_UP", + "KC_PGUP", + "KC_PSLS", + "KC_TRNS", + "KC_TRNS", + "KC_0", + "KC_4", + "KC_5", + "KC_6", + "KC_PDOT", + "KC_NO", + "KC_LEFT", + "KC_DOWN", + "KC_RGHT", + "KC_PAST", + "KC_PPLS", + "KC_TRNS", + "KC_NO", + "KC_1", + "KC_2", + "KC_3", + "KC_PCMM", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_DEL", + "KC_HOME", + "KC_END", + "KC_PGDN", + "KC_EXLM", + "KC_PMNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ], + [ + "KC_NO", + "KC_NO", + "KC_F9", + "KC_F10", + "KC_F11", + "KC_F12", + "KC_NO", + "KC_MPLY", + "KC_VOLU", + "KC_BRIU", + "KC_NO", + "KC_MUTE", + "KC_NO", + "KC_NO", + "KC_F5", + "KC_F6", + "KC_F7", + "KC_F8", + "KC_NO", + "KC_MSTP", + "KC_VOLD", + "KC_BRID", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_F1", + "KC_F2", + "KC_F3", + "KC_F4", + "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_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_NO", + "KC_NO" + ] + ], + "author": "" +} \ No newline at end of file diff --git a/keyboards/splitkb/kyria/keymaps/bbaserdem/config.h b/keyboards/splitkb/kyria/keymaps/bbaserdem/config.h new file mode 100644 index 0000000000..b7b883d3bd --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/bbaserdem/config.h @@ -0,0 +1,32 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// Kyria specific +#ifdef KEYBOARD_splitkb_kyria_rev1 + // Split definition; use the following to flash; + // pro-micro: avrdude-split-left/right + // elite-c: dfu-split-left/right +# define ENCODER_DIRECTION_FLIP +# define EE_HANDS + + // Make sure kyria has bigger oled display +# ifdef OLED_ENABLE +# define OLED_DISPLAY_128X64 +# endif +#endif diff --git a/keyboards/splitkb/kyria/keymaps/bbaserdem/keymap.c b/keyboards/splitkb/kyria/keymaps/bbaserdem/keymap.c new file mode 100644 index 0000000000..d3720ea764 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/bbaserdem/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "bbaserdem.h" + +#define LAYOUT_split_3x6_5_wrapper(...) LAYOUT_split_3x6_5(__VA_ARGS__) + +/* F layout + * ┌───┬───┬───┬───┬───┬───┐        ┌───┬───┬───┬───┬───┬───┐ + * │ W │ F │ G │ Ğ │ I │ O │        │ D │ R │ N │ H │ P │ Q │ + * ├───┼───┼───┼───┼───┼───┤        ├───┼───┼───┼───┼───┼───┤ + * │ X │ A │ S │ D │ F │ G │        │ T │ K │ M │ L │ Y │ Ş │ + * ├───┼───┼───┼───┼───┼───┼───┬───┐ ┌───┬───┼───┼───┼───┼───┼───┼───┤ + * │* +│ J │ Ö │ V │ C │ Ç │   │   │ │   │   │ Z │ S │ B │. :│, ;│< >│ + * └───┴───┴───┼───┼───┼───┤Esc│Shf│ │Shf│Del├───┼───┼───┼───┴───┴───┘ + *             │En1│Tab│Ent│ │ │ │ │ │Spc│Bsp│En2│ + *             └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x6_5_wrapper( + _BL1_1_,_BL1_5_, _BR1_5_,_BR1_1_, + _BL2_1_,_BL2_5_, _BR2_5_,_BR2_1_, + _BL3_1_,_BL3_5_,xxx2xxx,xxx2xxx,_BR3_5_,_BR3_1_, + BB_ENC0, _BL4_3_,KC_LSFT,KC_RSFT,_BR4_3_,BB_ENC1 + ), + [_CHAR] = LAYOUT_split_3x6_5_wrapper( + XXXXXXX,_CL1_5_, _CR1_5_,XXXXXXX, + XXXXXXX,_CL2_5_, _CR2_5_,XXXXXXX, + XXXXXXX,_CL3_5_,xxx2xxx,xxx2xxx,_CR3_5_,XXXXXXX, + _______,_CL4_3_,_______,_______,_CR4_3_,_______ + ), + [_GAME] = LAYOUT_split_3x6_5_wrapper( + _GA1_1_,_GA1_5_, ___5___,___1___, + _GA2_1_,_GA2_5_, ___5___,___1___, + _GA3_1_,_GA3_5_,xxx2xxx,xxx2xxx,___5___,___1___, + _______,_GA4_3_,_______,_______,___3___,_______ + ), + [_MEDI] = LAYOUT_split_3x6_5_wrapper( + ___1___,___5___, _ME1_5_,___1___, + ___1___,___5___, _ME2_5_,___1___, + ___1___,___5___,xxx2xxx,xxx2xxx,_ME3_5_,___1___, + ___1___,___3___,_______,_______,_ME4_3_,___1___ + ), + [_NAVI] = LAYOUT_split_3x6_5_wrapper( + ___1___,___5___, _NA1_5_,___1___, + ___1___,___5___, _NA2_5_,___1___, + ___1___,___5___,xxx2xxx,xxx2xxx,_NA3_5_,___1___, + ___1___,___3___,_______,_______,_NA4_3_,___1___ + ), + [_SYMB] = LAYOUT_split_3x6_5_wrapper( + ___1___,___5___, _SY1_5_,___1___, + ___1___,___5___, _SY2_5_,___1___, + ___1___,___5___,xxx2xxx,xxx2xxx,_SY3_5_,___1___, + ___1___,___3___,_______,_______,_SY4_3_,___1___ + ), + [_NUMB] = LAYOUT_split_3x6_5_wrapper( + ___1___,_NU1_5_, ___5___,___1___, + ___1___,_NU2_5_, ___5___,___1___, + ___1___,_NU3_5_,xxx2xxx,xxx2xxx,___5___,___1___, + ___1___,_NU4_3_,_______,_______,___3___,___1___ + ), + [_FUNC] = LAYOUT_split_3x6_5_wrapper( + ___1___,_FU1_5_, ___5___,___1___, + ___1___,_FU2_5_, ___5___,___1___, + ___1___,_FU3_5_,xxx2xxx,xxx2xxx,___5___,___1___, + ___1___,_FU4_3_,_______,_______,___3___,___1___ + ), + [_MOUS] = LAYOUT_split_3x6_5_wrapper( + ___1___,_MO1_5_, ___5___,___1___, + ___1___,_MO2_5_, ___5___,___1___, + ___1___,_MO3_5_,xxx2xxx,xxx2xxx,___5___,___1___, + ___1___,_MO4_3_,_______,_______,___3___,___1___ + ), + [_MUSI] = LAYOUT_split_3x6_5_wrapper( + _MU_12_,_MU_12_, + _MU_06_,xxx2xxx,xxx2xxx,_MU_06_, + MU_TOG,_MUL_3_,_MU_02_,_MUR_3_,___1___ + ) +}; + +#ifdef KEYBOARD_splitkb_kyria_rev1 // Kyria specific code +#ifdef OLED_ENABLE // Kyria's oled screen +// Rotate the display on kyria +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} +// For kyria; print logo, and allow default status printing +bool oled_task_keymap(void) { + render_qmk_logo(0, 0); + render_status_lite(4, 0); + return false; +} +#endif //OLED_ENABLE +#endif //KEYBOARD_splitkb_kyria_rev1 diff --git a/keyboards/splitkb/kyria/keymaps/bbaserdem/readme.md b/keyboards/splitkb/kyria/keymaps/bbaserdem/readme.md new file mode 100644 index 0000000000..6381612978 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/bbaserdem/readme.md @@ -0,0 +1,32 @@ +This folder contains my Kyria (`split_3x6_5`) board layout. +Check out the [user readme](../../../../../users/bbaserdem/readme.md) for more info. + +# Kyria + +I use a rev 1.3 PCB as a daily driver. + +## Hardware + +* Using a modified High-profile case; with metal switch plate. +* Currently using a Pro-Micro and an Elite-C as microcontrollers. +* Using Gateron Silent Black Ink with Progressive springs (100g), lubed. +* Have mill-max sockets for hotswap feature. +* All microcontrollers and OLED's are socketed for easy removal. + +## Features + +* Use two thumb keys in the 2u layout. +* Have rotary encoders in the outermost keys of the thumb cluster. +* Have underglow leds soldered. + +## Issues + +* Stabilizers squiek, and need lubing. +* The double tap buttons (home row; left leader the most) don't contact well. + +## Todo + +* Switch to Proton C conversion with a game plan. +* Lube stabilizers. +* Get tenting puck. +* (Not depending on me) migrate this code to layouts. diff --git a/keyboards/splitkb/kyria/keymaps/bbaserdem/rules.mk b/keyboards/splitkb/kyria/keymaps/bbaserdem/rules.mk new file mode 100644 index 0000000000..21013120e6 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/bbaserdem/rules.mk @@ -0,0 +1,30 @@ +# Copyright 2021 Batuhan Başerdem +# @bbaserdem +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Kyria hardware +ifneq (,$(findstring splitkb/kyria/rev1,$(KEYBOARD))) + # Elective features + ENCODER_ENABLE = yes + OLED_ENABLE = yes + # Nonexistent features + AUDIO_ENABLE = no + BACKLIGHT_ENABLE = no + RGB_MATRIX_ENABLE = no + # Space savers + NKRO_ENABLE = no + VELOCIKEY_ENABLE = no + WPM_ENABLE = no +endif diff --git a/keyboards/splitkb/kyria/keymaps/j-inc/keymap.c b/keyboards/splitkb/kyria/keymaps/j-inc/keymap.c index f193c6e00c..af583a607f 100644 --- a/keyboards/splitkb/kyria/keymaps/j-inc/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/j-inc/keymap.c @@ -341,7 +341,7 @@ bool oled_task_user(void) { #ifdef ENCODER_ENABLE bool encoder_update_user(uint8_t index, bool clockwise) { - switch(get_highest_layer(layer_state)){ + switch(biton32(layer_state)){ case 1: if (clockwise) { tap_code16(C(KC_TAB)); diff --git a/keyboards/splitkb/kyria/keymaps/j-inc/rules.mk b/keyboards/splitkb/kyria/keymaps/j-inc/rules.mk index ee07f52ff1..000c995025 100644 --- a/keyboards/splitkb/kyria/keymaps/j-inc/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/j-inc/rules.mk @@ -9,6 +9,7 @@ MOUSEKEY_ENABLE = no TAP_DANCE_ENABLE = no STENO_ENABLE = no BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +TERMINAL_ENABLE = no GRAVE_ESC_ENABLE = no MAGIC_ENABLE = no SPACE_CADET_ENABLE = no diff --git a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h index 495b3032c6..ce3b5561e8 100644 --- a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format b/keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format new file mode 100644 index 0000000000..df3dbd17b4 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format @@ -0,0 +1,26 @@ +--- +BasedOnStyle: Google +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: 'true' +AlignConsecutiveDeclarations: 'true' +AlignOperands: 'true' +AllowAllParametersOfDeclarationOnNextLine: 'false' +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: 'false' +BinPackArguments: 'true' +BinPackParameters: 'true' +ColumnLimit: '160' +IndentCaseLabels: 'true' +IndentPPDirectives: AfterHash +IndentWidth: '4' +MaxEmptyLinesToKeep: '1' +PointerAlignment: Right +SortIncludes: 'false' +SpaceBeforeAssignmentOperators: 'true' +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: 'false' +TabWidth: '4' +UseTab: Never + +... diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/README.md b/keyboards/splitkb/kyria/keymaps/muppetjones/README.md new file mode 100644 index 0000000000..20fdd47025 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/README.md @@ -0,0 +1,11 @@ +# Kyria + +## Compile + +```shell +make splitkb/kyria/rev1:muppetjones:avrdude-split-left +``` + +```shell +make splitkb/kyria/rev1:muppetjones:avrdude-split-right +``` diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/config.h b/keyboards/splitkb/kyria/keymaps/muppetjones/config.h new file mode 100644 index 0000000000..92d495be4a --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/config.h @@ -0,0 +1,60 @@ +/* Copyright 2020 Stephen Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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_DISPLAY_128X64 +#endif + +// If you are using an Elite C rev3 on the slave side, uncomment the lines below: +// #define SPLIT_USB_DETECT +// #define NO_USB_STARTUP_CHECK + +// EC11K encoders have a different resolution than other EC11 encoders. +// When using the default resolution of 4, if you notice your encoder skipping +// every other tick, lower the resolution to 2. +#define ENCODER_RESOLUTION 2 +#define ENCODER_DIRECTION_FLIP + +// The Leader key allows to flexibly assign macros to key sequences. +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 350 + +// Change "hold" time (default is 200 ms) +// -- used for tap dance and other tap mods +// -- defined in user namespace +// #define TAPPING_TERM 200 + +// Prevent normal rollover on alphas from accidentally triggering mods. +#define IGNORE_MOD_TAP_INTERRUPT + +// Enable rapid switch from tap to hold, disables double tap hold auto-repeat. +#define TAPPING_FORCE_HOLD + +// Reduce firmware size +// https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ +// also requires EXTRAFLAGS in config.h +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +// Allows to use either side as the master. Look at the documentation for info: +// https://docs.qmk.fm/#/config_options?id=setting-handedness +#define EE_HANDS + +// Allows media codes to properly register in macros and rotary encoder code +#define TAP_CODE_DELAY 10 +#define COMBO_TERM 40 diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c b/keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c new file mode 100644 index 0000000000..ca4a306341 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c @@ -0,0 +1,276 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "muppetjones.h" +#include "rgblight.h" + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +/* Layers from muppetjones.h + _CLMK_DH = 0, + _MOUSE, + _LOWER, + _RAISE, + _NAV, + _ADJUST, + */ + +/* + * Custom Keys + */ + +#ifdef ENCODER_ENABLE +bool encoder_update_standard(uint8_t index, bool clockwise); +#endif + +/* + * LAYERS + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off +/* + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,-------------------------------------------. + * |CAPSWORD| Q | W | F | P | B | | J | L | U | Y | ; : | | \ | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |ESC/HYPR| A | R | S | T | G | | M | N | E | I | O | ' " | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | D | V |LShift|Leader| | Del | Tab | K | H | , < | . > | / ? | Sft/Ent| + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | MUTE | Del | Enter| Space| Enter| | Bspc | Space| Hyper| Tab | AltGr| + * | | | Alt | Lower| Raise| | | Nav | Esc | Raise| | + * `----------------------------------' `----------------------------------' + */ +[_CLMK_DH] = LAYOUT_wrapper( + CAPSWRD, __COLEMAK_MOD_DH_L1________________________, __COLEMAK_MOD_DH_R1_W_QUOT_________________, KC_BSLS, + HY_ESC, __COLEMAK_MOD_DH_L2_W_GACS_________________, __COLEMAK_MOD_DH_R2_W_SCAG_________________, KC_QUOT, + TD_LAYR, __COLEMAK_MOD_DH_L3________________________, KC_LSFT, KC_LEAD, KC_DEL, KC_TAB, __COLEMAK_MOD_DH_R3________________________, KC_SFTENT, + KC_MUTE, KC_DEL, HY_ESC, LOW_BSP, RAI_ENT, KC_BSPC, NAV_SPC, HY_ESC, RAI_TAB, KC_RALT +), +[_QWERTY] = LAYOUT_wrapper( + _______, __QWERTY_L1________________________________, __QWERTY_R1________________________________, _______, + _______, __QWERTY_L2________________________________, __QWERTY_R2________________________________, _______, + _______, __QWERTY_L3________________________________, _______, _______, _______, _______, __QWERTY_R3________________________________, _______, + __BLANK____________________________________, __BLANK____________________________________ +), +[_MOUSE] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, _______, _______, _______, _______, __BLANK____________________________________, _______, + KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN2 +), +/* + * Lower Layer: Numpad and some symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | ~ | ` | ( | ) | xxxx | | / ? | 7 & | 8 * | 9 ( | - _ | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | LGUI | LALT |LCTL [|LSFT ]| _ - | | * | 4 $ | 5 % | 6 ^ | , < | + | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | xxxx | xxxx | { | } | LSFT | | | | | | 0 ) | 1 ! | 2 @ | 3 # | = + | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | Lower| | | | | Nav | 0 | . | | + * `----------------------------------' `----------------------------------' + */ + [_LOWER] = LAYOUT_wrapper( + _______, __SYMBOLS_L1_______________________________, __NUMPAD_R1________________________________, _______, + _______, __SYMBOLS_L2_______________________________, __NUMPAD_R2________________________________, KC_COMM, + _______, __SYMBOLS_L3_______________________________, _______, _______, _______, _______, __NUMPAD_R3________________________________, KC_DOT, + __BLANK____________________________________, _______, KC_SPC, KC_0, KC_DOT, _______ + ), +/* + * Raise Layer: Symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | ! | @ | { | } | | | | | & | € | | | \ | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` | | _ | - | / | * | % | ' " | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | | + | = | , | . | / ? | - _ | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | Lower| | | | | Nav | Raise| | | + * `----------------------------------' `----------------------------------' + */ + // [_RAISE] = LAYOUT( + // _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_AMPR, _______, _______, _______, KC_BSLS, + // _______, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_GRV, KC_UNDS, KC_MINS, KC_SLSH, KC_ASTR, KC_PERC, KC_QUOT, + // _______, KC_PERC, KC_CIRC, KC_LCBR, KC_RCBR, KC_TILD, _______, _______, _______, _______, KC_PLUS, KC_EQL, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // ), + [_RAISE] = LAYOUT_wrapper( + _______, XXXXXXX, XXXXXXX, KC_GRV, KC_GRV, KC_BSLS, __SYMBOLS_R1_______________________________, _______, + _______, XXXXXXX, XXXXXXX, KC_UNDS, KC_MINS, KC_TILD, __SYMBOLS_R2_______________________________, _______, + _______, XXXXXXX, XXXXXXX, KC_PLUS, KC_EQL, KC_GRV, _______, _______, _______, _______, __SYMBOLS_R3_______________________________, _______, + __BLANK____________________________________, __BLANK____________________________________ + ), +/* + * Navigation Layer (w/ symbols on left) + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | PgUp | Home | Up | End | | ScrlLk | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | GUI | ALT | CTL | SFT | | | PgDn | Left | Down | Up | Right| CapsLk | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | Lower| | | | | Nav | Raise| | | + * `----------------------------------' `----------------------------------' + */ + [_NAV] = LAYOUT_wrapper( + _______, __VIM_L1___________________________________, __NAV_R1___________________________________, KC_SLCK, + _______, __BLANK_W_GACS_____________________________, __NAV_R2___________________________________, KC_CAPS, + _______, __BLANK____________________________________, _______, _______, _______, _______, __NAV_R3___________________________________, _______, + __BLANK____________________________________, __BLANK____________________________________ + ), + /* + * Adjust Layer: Function keys, RGB + * + * ,-------------------------------------------. ,-------------------------------------------. + * | RESET |RESET |DEBUG | | | | | | F1 | F2 | F3 | F4 | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | TOG | SAI | HUI | VAI | MOD | | | F5 | F6 | F7 | F8 | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | SAD | HUD | VAD | RMOD | | | | | | | F9 | F10 | F11 | F12 | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_ADJUST] = LAYOUT_wrapper( + RESET, __ADJUST_L1________________________________, __MEDIA_R1_________________________________, _______, + _______, __ADJUST_L2________________________________, __MEDIA_R2_________________________________, _______, + _______, __ADJUST_L3________________________________, _______, _______, _______, _______, __MEDIA_R3_________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // /* + // * Layer template + // * + // * ,-------------------------------------------. ,-------------------------------------------. + // * | | | | | | | | | | | | | | + // * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + // * | | | | | | | | | | | | | | + // * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + // * | | | | | | | | | | | | | | | | | | + // * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + // * | | | | | | | | | | | | + // * | | | | | | | | | | | | + // * `----------------------------------' `----------------------------------' + // */ + // [_LAYERINDEX] = LAYOUT( + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // ), + // clang-format on +}; + +/* + * + */ + +void keyboard_post_init_user(void) { + // Call the keymap level matrix init. + +#ifdef RGBLIGHT_ENABLE + set_rgb_home(); +#endif +} + +layer_state_t layer_state_set_user(layer_state_t state) { +#ifdef RGBLIGHT_ENABLE + set_rgb_by_layer(state); +#endif + return state; +} + +bool process_record_keymap(uint16_t keycode, keyrecord_t* record) { + // Regular user keycode case statement + switch (keycode) { + default: + return true; + } + return true; +} + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { +# ifdef POINTING_DEVICE_ENABLE + if (IS_LAYER_ON(_MOUSE)) + return encoder_update_mouse(index, clockwise); + else +# endif + return encoder_update_standard(index, clockwise); +} + +bool encoder_update_standard(uint8_t index, bool clockwise) { + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down +# ifdef MOUSEKEY_ENABLE + if (clockwise) { + tap_code(KC_WH_D); + } else { + tap_code(KC_WH_U); + } +# else + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } +# endif + } + return true; +} +#endif + +#ifdef RGBLIGHT_ENABLE +void set_layer_hsv(layer_state_t state, HSV* layer_color) { + uint16_t h = layer_color->h, s = layer_color->s, v = layer_color->v; + switch (get_highest_layer(state)) { + case _RAISE: + h += 3 * RGBLIGHT_HUE_STEP; + break; + case _LOWER: + h += -3 * RGBLIGHT_HUE_STEP; + break; + case _NAV: + h += 2 * RGBLIGHT_HUE_STEP; + break; + case _MOUSE: + h += -8 * RGBLIGHT_HUE_STEP; + break; + default: + break; + } + layer_color->h = h % 255; + layer_color->s = s; + layer_color->v = v % 255; + return; +} +#endif diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk b/keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk new file mode 100644 index 0000000000..b7e46ecfd2 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk @@ -0,0 +1,11 @@ +OLED_ENABLE = no # 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 +MOUSEKEY_ENABLE = yes +TAP_DANCE_ENABLE = yes +POINTING_DEVICE_ENABLE = yes +COMBO_ENABLE = yes + +# Reduce firmware size +# https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ diff --git a/keyboards/splitkb/kyria/keymaps/ninjonas/oled.c b/keyboards/splitkb/kyria/keymaps/ninjonas/oled.c index d0f2a1b6cd..813328aa0c 100644 --- a/keyboards/splitkb/kyria/keymaps/ninjonas/oled.c +++ b/keyboards/splitkb/kyria/keymaps/ninjonas/oled.c @@ -111,7 +111,7 @@ void oled_slash_separator(void){ void render_layout_state(void) { oled_write_P(PSTR("Layout: "), false); - switch (get_highest_layer(default_layer_state)) { + switch (biton32(default_layer_state)) { case _COLEMAK: oled_write_P(PSTR("Colemak"), false); break; diff --git a/keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c b/keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c index 3cd9df27fb..0a4f1887c3 100644 --- a/keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c @@ -311,7 +311,7 @@ bool oled_task_user(void) { #ifdef ENCODER_ENABLE bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case QWERTY: // History scrubbing. For Adobe products, hold shift while moving // backward to go forward instead. @@ -336,7 +336,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { break; } } else if (index == 1) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case QWERTY: // Scrolling with PageUp and PgDn. if (clockwise) { diff --git a/keyboards/splitkb/kyria/keymaps/travishi/config.h b/keyboards/splitkb/kyria/keymaps/travishi/config.h new file mode 100644 index 0000000000..c579a76ecc --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/travishi/config.h @@ -0,0 +1,42 @@ +/* Copyright 2022 TravisHi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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_DISPLAY_128X64 +#endif + +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_LAYERS + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_SLEEP +#endif + +// The Leader key allows to flexibly assign macros to key sequences. +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 350 + +#define TAPPING_TERM 200 + +// Allows to use either side as the master. Look at the documentation for info: +// https://docs.qmk.fm/#/config_options?id=setting-handedness +#define EE_HANDS + +// Allows media codes to properly register in macros and rotary encoder code +#define TAP_CODE_DELAY 10 diff --git a/keyboards/splitkb/kyria/keymaps/travishi/keymap.c b/keyboards/splitkb/kyria/keymaps/travishi/keymap.c new file mode 100644 index 0000000000..e91d16b8f9 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/travishi/keymap.c @@ -0,0 +1,423 @@ +/* Copyright 2022 TravisHi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 { + DVORAK = 0, + QWERTY, + LAYERS, + NUMSYM, + FPSGAMES, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + * Base Layer: DVORAK + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ESC | ' " | , < | . | P | Y | | F | G | C | R | L |L_Qwerty| + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | Tab | A | O | E | U | I | | D | H | T | N | S | - | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | : ; | Q | J | K | X |LCtrl | | | Win |L_Lay | B | M | W | V | Z | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | Left |Right |L_NumS| Space| Bksp | |R_Alt | ENTER| Del | Up | Down | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [DVORAK] = LAYOUT( + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, DF(QWERTY), + KC_TAB, 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_LCTL, XXXXXXX, KC_LWIN, DF(LAYERS), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_LEFT, KC_RGHT, MO(NUMSYM), KC_SPC, KC_BSPC, KC_RALT, KC_ENT, KC_DEL, KC_UP, KC_DOWN + ), + + + + + +/* + * Base Layer: QWERTY + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ESC | Q | W | E | R | T | | Y | U | I | O | P |L_Dvorak| + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | Tab | A | S | D | F | G | | H | J | K | L | ; : | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B |LCtrl | | | Win |L_Lay | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | Left |Right |L_NumS| Space| Bksp | | RAlt | ENTER| Del | Up | Down | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [QWERTY] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, DF(DVORAK), + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, XXXXXXX, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCTL, XXXXXXX, KC_LWIN, DF(LAYERS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LEFT, KC_RGHT, MO(NUMSYM), KC_SPC, KC_BSPC, KC_RALT, KC_ENT, KC_DEL, KC_UP, KC_DOWN + ), + + + + + +/* + * Base Layer: FPSGAMES + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ESC | 1 | Q | W | E | R | | Y | U | I | O | P |L_Dvorak| + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | Tab | 2 | A | S | D | F | | H | K | J | L | ; | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | 3 | Z | X | C | V | |L_NumS| | |L_Lay | N | M | , < | . > | / ? | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | LCtrl| Space| LAlt | | | | Mute |Vol U |Vol D | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [FPSGAMES] = LAYOUT( + KC_ESC, KC_1, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, DF(DVORAK), + KC_TAB, KC_2, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_K, KC_L, KC_SCLN, XXXXXXX, + KC_LSFT, KC_3, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, MO(NUMSYM), XXXXXXX, DF(LAYERS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, + XXXXXXX, XXXXXXX, KC_LCTL, KC_SPC, KC_LALT, XXXXXXX, XXXXXXX, KC_MUTE, KC_VOLU, KC_VOLD + ), + + + + + +/* + * MO Layer: Numbers, symbols & Vol control + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | ~ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | \ | : | ; | - | [ | { | ( | | ) | } | ] | _ | , | . | / | ? | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | Left |Right | |LShift| Home | | End | | Mute |Vol U |Vol D | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [NUMSYM] = LAYOUT( + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_PIPE, KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + KC_LEFT, KC_RGHT, XXXXXXX, KC_LSFT, KC_HOME, KC_END, XXXXXXX, KC_MUTE, KC_VOLU, KC_VOLD + ), + + + + + +/* + * Adjust Layer: Layer index + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | |FPSGames|Dvorak| | | | | | | |L_Dvorak| + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | | | |QWERTY| | | | | | | | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | |NUMSYM| | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [LAYERS] = LAYOUT( + _______, _______, _______, DF(FPSGAMES), DF(DVORAK), _______, _______, _______, _______, _______, _______, DF(DVORAK), + _______, _______, _______, _______, DF(QWERTY), _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(NUMSYM), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; + +// END LAYERS + + + + + +/////////////////////////// +// OLED Display settings +#ifdef OLED_ENABLE + + + + +// WPM-responsive animation stuff here +# define IDLE_FRAMES 2 +# define IDLE_SPEED 20 // below this wpm value your animation will idle + +// #define PREP_FRAMES 1 // uncomment if >1 + +# define TAP_FRAMES 2 +# define TAP_SPEED 40 // above this wpm value typing animation to trigger + +# define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms +// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing +# define ANIM_SIZE 1024 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 +uint8_t current_tap_frame = 0; + +// Code containing pixel art, contains: +// 5 idle frames, 1 prep frame, and 2 tap frames + +// To make your own pixel art: +// save a png/jpeg of an 128x32 image (resource: https://www.pixilart.com/draw ) +// follow this guide up to and including "CONVERT YOUR IMAGE" https://docs.splitkb.com/hc/en-us/articles/360013811280-How-do-I-convert-an-image-for-use-on-an-OLED-display- +// replace numbers in brackets with your own +// if you start getting errors when compiling make sure you didn't accedentally delete a bracket + + +static void render_anim(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, 0x80, 0x80, 0xc0, 0x40, +0x40, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x60, 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, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x60, 0x30, +0x18, 0x0c, 0x06, 0x02, 0xc2, 0x42, 0x62, 0x22, 0x22, 0x24, 0x2f, 0x39, 0x31, 0x60, 0xe0, 0x10, +0x10, 0x08, 0x88, 0xcc, 0x44, 0x66, 0x23, 0x21, 0x31, 0x10, 0x98, 0x89, 0x8b, 0x0e, 0x08, 0x10, +0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x10, 0x60, 0x18, +0xe4, 0x1a, 0xe4, 0x1a, 0xcc, 0x30, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x78, 0x08, 0x08, 0x0c, 0x84, 0x9f, 0xe0, 0xb0, +0x98, 0x08, 0x0c, 0x04, 0x04, 0x04, 0xe6, 0xe2, 0xf2, 0xf2, 0xb2, 0xb3, 0xe1, 0xe1, 0xc1, 0x81, +0xe3, 0xbf, 0x81, 0xc0, 0x40, 0x40, 0x60, 0xa0, 0xbe, 0x3f, 0x1b, 0x9b, 0x8f, 0xcf, 0x66, 0x32, +0x9e, 0xb1, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0f, 0x08, 0x08, 0x10, +0xd0, 0x70, 0x08, 0x0e, 0x02, 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, 0xfc, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x01, 0x01, 0x01, 0x11, 0x11, 0x89, 0xcb, 0x4b, 0x4b, 0x8b, 0x87, 0x91, 0x4b, 0x45, +0xe0, 0xa0, 0xb0, 0xd0, 0x51, 0x79, 0xad, 0xb4, 0xd6, 0x5a, 0x6b, 0x2d, 0x34, 0x96, 0xfb, 0xa9, +0xbd, 0x46, 0x66, 0x33, 0x19, 0x0c, 0x07, 0x01, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x70, 0x1c, 0x07, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x0c, 0x38, 0xe0, 0x80, 0xc0, 0x40, 0x60, 0x20, 0x20, 0x20, +0x20, 0x20, 0x60, 0xc0, 0x80, 0x80, 0x80, 0x87, 0x8c, 0x88, 0x99, 0xd2, 0x5a, 0x6a, 0x29, 0x2d, +0x34, 0x94, 0x96, 0x9a, 0xcb, 0x49, 0x69, 0x2c, 0xb4, 0x96, 0x9a, 0x8b, 0x4d, 0x45, 0x46, 0x42, +0x21, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0e, 0x0b, 0x09, 0x04, 0x04, 0x04, 0x04, +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, 0xf0, 0x1e, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x06, 0x0e, 0x0a, 0x1a, 0x1b, 0x35, 0x65, 0x45, +0x45, 0xc3, 0x82, 0x82, 0x81, 0x01, 0x01, 0x01, 0x00, 0x10, 0xf0, 0xf8, 0xf8, 0x78, 0x18, 0x00, +0x00, 0x80, 0xe0, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0xc0, 0x20, 0x50, 0x10, 0xa0, 0x20, 0x40, +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, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, +0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, +0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x06, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x18, 0x10, 0x10, 0x30, 0x20, 0x20, 0x60, +0x40, 0x80, 0x80, 0xc0, 0x41, 0x63, 0x26, 0x3c, 0x10, 0x48, 0x88, 0xab, 0x29, 0x70, 0xc0, 0x88, +0x8e, 0xcf, 0x47, 0x43, 0x41, 0x40, 0x60, 0x20, 0x20, 0x20, 0x30, 0x10, 0x10, 0x18, 0x08, 0x08, +0x0c, 0x05, 0x06, 0x02, 0x0c, 0x19, 0x3c, 0x29, 0x6a, 0x44, 0x44, 0xc5, 0x84, 0x04, 0x02, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x04, 0x0b, 0x0b, 0x36, 0x28, 0x2f, 0x2c, 0x29, 0x1a, 0x1c, 0x18, 0x1d, 0x16, 0x0a, 0x07, +0x01, 0x02, 0x02, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, +0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x18, 0x10, 0x10, 0x10}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0x40, +0x40, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x60, 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, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x60, 0x30, +0x18, 0x0c, 0x06, 0x02, 0xc2, 0x42, 0x62, 0x22, 0x22, 0x24, 0x2f, 0x39, 0x31, 0x60, 0xe0, 0x10, +0x10, 0x08, 0x88, 0xcc, 0x44, 0x66, 0x23, 0x21, 0x31, 0x10, 0x98, 0x89, 0x8b, 0x0e, 0x08, 0x10, +0x20, 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, 0x98, 0x66, 0x0d, 0x72, 0x0d, 0x72, 0x0c, 0x30, 0x08, +0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x78, 0x08, 0x08, 0x0c, 0x84, 0x9f, 0xe0, 0xb0, +0x98, 0x08, 0x0c, 0x04, 0x04, 0x04, 0xe6, 0xe2, 0xf2, 0xf2, 0xb2, 0xb3, 0xe1, 0xe1, 0xc1, 0x81, +0xe3, 0xbf, 0x81, 0xc0, 0x40, 0x40, 0x60, 0xa0, 0xbe, 0x3f, 0x1b, 0x9b, 0x8f, 0xcf, 0x66, 0x32, +0x9e, 0xb1, 0x40, 0x40, 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, 0x01, 0x01, 0x07, 0x04, 0xf8, 0x08, 0x08, 0x04, 0x04, +0x07, 0x0c, 0xf8, 0x80, 0x00, 0xfc, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x01, 0x01, 0x01, 0x11, 0x11, 0x89, 0xcb, 0x4b, 0x4b, 0x8b, 0x87, 0x91, 0x4b, 0x45, +0xe0, 0xa0, 0xb0, 0xd0, 0x51, 0x79, 0xad, 0xb4, 0xd6, 0x5a, 0x6b, 0x2d, 0x34, 0x96, 0xfb, 0x29, +0x3d, 0x16, 0x16, 0x13, 0x11, 0x10, 0x30, 0x20, 0x40, 0x40, 0x80, 0x80, 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, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 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, 0x0f, 0x38, 0xe0, 0x00, 0x00, +0x00, 0x00, 0x00, 0x07, 0x3c, 0xe7, 0x8c, 0x38, 0xe0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, +0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x87, 0x8c, 0x88, 0x99, 0xd2, 0x5a, 0x6a, 0x29, 0x2d, +0x34, 0x94, 0x96, 0x9a, 0xcb, 0x49, 0x69, 0x2c, 0xb4, 0x96, 0x9a, 0x8b, 0x4d, 0x45, 0x46, 0x42, +0x20, 0x20, 0x20, 0x60, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, +0x0a, 0x12, 0x22, 0x21, 0x41, 0x81, 0x01, 0x00, 0x00, 0x04, 0x1c, 0xfc, 0x3c, 0x0c, 0x00, 0x00, +0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf0, 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, 0x01, 0x07, 0x3c, +0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x82, 0x87, 0x85, 0x8d, 0x49, 0x49, 0x49, +0x6c, 0x24, 0x24, 0x24, 0x24, 0x14, 0x14, 0x16, 0x12, 0x0a, 0x0a, 0x0a, 0x0b, 0x05, 0x05, 0x05, +0x05, 0x03, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x02, 0x06, 0x04, 0x04, 0x0c, 0x08, +0x18, 0x20, 0xe0, 0xf0, 0x90, 0x18, 0xc9, 0x0e, 0x44, 0x92, 0x22, 0x2a, 0x4a, 0x9c, 0xb0, 0xe0, +0x60, 0x04, 0x07, 0x87, 0x83, 0x81, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 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, 0x08, 0x08, 0x08, 0x04, 0x04, +0x04, 0x03, 0x03, 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, 0x80, 0x40, 0x40, 0x80, 0x80, 0x80, +0x80, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x60, 0x20, 0x20, 0x20, 0x30, 0x10, 0x10, 0x18, 0x08, 0x08, +0x0c, 0x05, 0x02, 0x02, 0x0d, 0x1a, 0x3b, 0x2b, 0x6a, 0x46, 0x47, 0xc6, 0x87, 0x05, 0x02, 0x01, +0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x04, 0x0a, 0x0a, 0x32, 0x22, 0x25, 0x29, 0x21, 0x15, 0x10, 0x15, 0x10, 0x12, 0x08, 0x05, +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, 0x01, 0x01, 0x01, 0x03, +0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x18, 0x10, 0x10, 0x10} +}; + + + + // assumes 1 frame prep stage + void animation_phase(void) { + 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() != 000) { + oled_on(); // not essential but turns on animation OLED with 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_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + + } +} + + + + + + + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + + +static void render_keymap(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(default_layer_state)) { + case DVORAK: + oled_write_P(PSTR("Dvorak\n\n"), false); + oled_write_P(PSTR("' , . p y f g c r l \n"), false); + oled_write_P(PSTR("a o e i u d h t n s \n"), false); + oled_write_P(PSTR("; q j k x b m w v z \n"), false); + break; + case QWERTY: + oled_write_P(PSTR("Qwerty\n\n"), false); + oled_write_P(PSTR("q w e r t y u i o p \n"), false); + oled_write_P(PSTR("a s d f g h j k l ; \n"), false); + oled_write_P(PSTR("z x c v b n m , . / \n"), false); + break; + case NUMSYM: + oled_write_P(PSTR("Num & Sym\n\n"), false); + oled_write_P(PSTR("`12345 | 67890= \n"), false); + oled_write_P(PSTR("~!@#$P | ^&*()+ \n"), false); + oled_write_P(PSTR("|\\:;-[{ }]_,./? \n"), false); + break; + case FPSGAMES: + oled_write_P(PSTR("FPS Games \n\n"), false); + oled_write_P(PSTR("1 q W e r | \n"), false); + oled_write_P(PSTR("2 A S D f | \n"), false); + oled_write_P(PSTR("3 z x c v | \n"), false); + break; + case LAYERS: + oled_write_P(PSTR("Index Layer\n\n"), false); + oled_write_P(PSTR("- - G D - | - - - - - \n"), false); + oled_write_P(PSTR("- - - Q - | - - - - - \n"), false); + oled_write_P(PSTR("- - - N - | - - - - - \n"), false); + break; + default: + oled_write_P(PSTR("ERR No Layer!\n"), false); + } +} + + + +// Host Keyboard LED Status +/* +static void render_indicator_status(void) { + 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("CAPS ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false); +} +*/ + +bool oled_task_user(void) { + if (is_keyboard_master()) { + render_keymap(); + } else { + //render_indicator_status(); + //oled_write_P(PSTR(" Kyria rev1.4\n\n"), false); + render_anim(); // renders pixelart + } + return false; +} +#endif \ No newline at end of file diff --git a/keyboards/splitkb/kyria/keymaps/travishi/readme.md b/keyboards/splitkb/kyria/keymaps/travishi/readme.md new file mode 100644 index 0000000000..c7b1f6dd1a --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/travishi/readme.md @@ -0,0 +1,99 @@ +# Introduction +This keyboard layout centers around Dvorak, harnesing the power of the Kyria thumb +clusters and layers to reduce finger and wrist movement. + +## IMPORTANT NOTE +This keymap will only work if you have all the kyria keys available! If you've used 2u keys on the thumb cluster, or have broken off a column, this layout will not work! + +--- + +## Features +- **Dvorak:** So you don't have to leave the home row so much. +- **Qwerty:** So you don't have to remap common programs. +- **Custom FPS gaming layer:** Because the WASD stagger is so extreme on the Kyria. +- **A number layer:** To access numbers, symbols and volume controls. +- **Index Layer:** To help navigate thru base layers without wasting accessible keys. +- And a very *very* rare **fren** to tag along on your adventures. + +## Guiding ideology +- Use lower thumb keys as much as possible. +- Minimise home row departure. +- Minimize or eliminate non home row pinkie finger use. +- Create macros for very common key shortcuts (ctrl + c/v/s, ctrl+shift+home etc.). +- Create macros for very common commands (git status, git pull, git push etc.). +- Use hints to indicate current layer (rgb lighting/OLED display). +- Allow graceful layer handling (emergency return to default layer/layer index layer). +--- + + +# Current Layers +- Base1: dvorak +- Base2: qwerty +- Base3: Gaming layer (WASD is too staggered on Kyria) +- MO layer: Number, Symbol & volume control layer + +## Future Layers + +- F keys +- FE macros +- Git macros + +--- + + +# Issues +### Major +- [x] None + +### Minor +- [ ] Backlight LEDs dont indicate layer +- [ ] Not fully using thumb clusters +- [ ] Function keys and indicators missing (NUM, CAPS, SCROLL) +- [ ] No Macro layers + +--- + +# Helpful Links + +- QMK Docs https://docs.qmk.fm/#/ +- [Keymap diagram editor for the Kyria](http://www.keyboard-layout-editor.com/##@_name=Kyria%3B&@_y:0.25&x:3&a:7%3B&=&_x:9%3B&=%3B&@_y:-0.75&x:2%3B&=&_x:1%3B&=&_x:7%3B&=&_x:1%3B&=%3B&@_y:-0.875&x:5%3B&=&_x:5%3B&=%3B&@_y:-0.625%3B&=&=&_x:13%3B&=&=%3B&@_y:-0.75&x:3%3B&=&_x:9%3B&=%3B&@_y:-0.75&x:2%3B&=&_x:1%3B&=&_x:7%3B&=&_x:1%3B&=%3B&@_y:-0.875&x:5%3B&=&_x:5%3B&=%3B&@_y:-0.625%3B&=&=&_x:13%3B&=&=%3B&@_y:-0.75&x:3%3B&=&_x:9%3B&=%3B&@_y:-0.75&x:2%3B&=&_x:1%3B&=&_x:7%3B&=&_x:1%3B&=%3B&@_y:-0.875&x:5%3B&=&_x:5%3B&=%3B&@_y:-0.625%3B&=&=&_x:13%3B&=&=%3B&@_y:-0.5&x:2.5%3B&=&_x:10%3B&=%3B&@_rx:4&ry:8.175&y:-4.675000000000001&x:-0.5%3B&=%3B&@_rx:13&y:-4.675000000000001&x:-0.5%3B&=%3B&@_r:15&rx:4&y:-4.675000000000001&x:-0.5%3B&=%3B&@_r:30&y:-2&x:-0.5%3B&=%3B&@_x:-0.5%3B&=%3B&@_r:45&y:-2&x:-0.5%3B&=%3B&@_x:-0.5%3B&=%3B&@_r:-45&rx:13&y:-5.675000000000001&x:-0.5%3B&=%3B&@_x:-0.5%3B&=%3B&@_r:-30&y:-2&x:-0.5%3B&=%3B&@_x:-0.5%3B&=%3B&@_r:-15&y:-1&x:-0.5%3B&=) +- [Thomas' Guide for creating OLED images](https://docs.splitkb.com/hc/en-us/articles/360013811280) +- [Image converter](https://javl.github.io/image2cpp/) + +--- + +## Useful notes +Various useful info for setting up your own keyboard layout. + +### Install QMK Tool steps +[QMK Setup (Windows)](https://docs.qmk.fm/#/newbs_getting_started) +- Install QMK MSYS, +- Install Toolbox, +- Using QMK MSYS, follow the setup guide, then `cd` to where you've cloned the `qmk_firmware` folder, +- `qmk compile` to generate your .hex file (it should be located in the `qmk_firmware` folder), +- Using QMK Toolbox, flash the .hex file to your keyboard halves (drag your hex file into the toolbox window, press the reset button on the keyboard, the toolbox should detect this, then press flash. You need to reset each half separately). +- Congrats, all done! + + +--- +### Layer template +``` +// * ,-------------------------------------------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +``` + diff --git a/keyboards/splitkb/kyria/keymaps/travishi/rules.mk b/keyboards/splitkb/kyria/keymaps/travishi/rules.mk new file mode 100644 index 0000000000..a1564cfe4b --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/travishi/rules.mk @@ -0,0 +1,12 @@ +# Enabled features +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 diff --git a/keyboards/splitkb/kyria/rev1/proton_c/rules.mk b/keyboards/splitkb/kyria/rev1/proton_c/rules.mk index 1a5f9a7cb3..496312fe98 100644 --- a/keyboards/splitkb/kyria/rev1/proton_c/rules.mk +++ b/keyboards/splitkb/kyria/rev1/proton_c/rules.mk @@ -9,4 +9,4 @@ WS2812_DRIVER = pwm SERIAL_DRIVER = usart AUDIO_ENABLE = no LTO_ENABLE = no -CONVERT_TO_PROTON_C = yes +CONVERT_TO = proton_c diff --git a/keyboards/splitkb/kyria/rev1/rules.mk b/keyboards/splitkb/kyria/rev1/rules.mk index cc2cbba604..e7d6763fcd 100644 --- a/keyboards/splitkb/kyria/rev1/rules.mk +++ b/keyboards/splitkb/kyria/rev1/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 RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) diff --git a/keyboards/splitkb/kyria/rev2/proton_c/rules.mk b/keyboards/splitkb/kyria/rev2/proton_c/rules.mk index 1a5f9a7cb3..496312fe98 100644 --- a/keyboards/splitkb/kyria/rev2/proton_c/rules.mk +++ b/keyboards/splitkb/kyria/rev2/proton_c/rules.mk @@ -9,4 +9,4 @@ WS2812_DRIVER = pwm SERIAL_DRIVER = usart AUDIO_ENABLE = no LTO_ENABLE = no -CONVERT_TO_PROTON_C = yes +CONVERT_TO = proton_c diff --git a/keyboards/splitography/keymaps/jeandeaual/keymap.c b/keyboards/splitography/keymaps/jeandeaual/keymap.c index 87c4159443..6679d835f2 100644 --- a/keyboards/splitography/keymaps/jeandeaual/keymap.c +++ b/keyboards/splitography/keymaps/jeandeaual/keymap.c @@ -225,7 +225,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } return false; case KC_QUOT: - if ((base_layer != dvorak) || (get_highest_layer(layer_state) != _BLUE)) { + if ((base_layer != dvorak) || (biton32(layer_state) != _BLUE)) { break; } if (record->event.pressed) { diff --git a/keyboards/splitography/keymaps/multi/keymap.c b/keyboards/splitography/keymaps/multi/keymap.c index 7d847e40b6..af1cc1a801 100644 --- a/keyboards/splitography/keymaps/multi/keymap.c +++ b/keyboards/splitography/keymaps/multi/keymap.c @@ -331,7 +331,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; case KC_QUOT: - if ((base_layer != dvorak) || (get_highest_layer(layer_state) != _BLUE)) { + if ((base_layer != dvorak) || (biton32(layer_state) != _BLUE)) { break; } if (record->event.pressed) { diff --git a/keyboards/star75/config.h b/keyboards/star75/config.h new file mode 100644 index 0000000000..e4d5ec2c89 --- /dev/null +++ b/keyboards/star75/config.h @@ -0,0 +1,65 @@ +/* +Copyright 2022 Horns Lyn (@hornslyn) +SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4B35 +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER DXWS +#define PRODUCT Star75 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B7, D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0, E6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* encoder definitions */ +#ifdef ENCODER_ENABLE +#define ENCODERS_PAD_A { B2 } +#define ENCODERS_PAD_B { B1 } +#endif + +/* 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_DI_PIN B3 + +#ifdef RGB_DI_PIN +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLED_NUM 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_LIMIT_VAL 180 +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#endif diff --git a/keyboards/star75/info.json b/keyboards/star75/info.json new file mode 100644 index 0000000000..ccf8646431 --- /dev/null +++ b/keyboards/star75/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "Star75", + "url": "https://item.taobao.com/item.htm?id=656392112467", + "maintainer": "qmk", + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.5, "y":0}, {"label":"F2", "x":2.5, "y":0}, {"label":"F3", "x":3.5, "y":0}, {"label":"F4", "x":4.5, "y":0}, {"label":"F5", "x":6, "y":0}, {"label":"F6", "x":7, "y":0}, {"label":"F7", "x":8, "y":0}, {"label":"F8", "x":9, "y":0}, {"label":"F9", "x":10.5, "y":0}, {"label":"F10", "x":11.5, "y":0}, {"label":"F11", "x":12.5, "y":0}, {"label":"F12", "x":13.5, "y":0}, {"label":"Ins", "x":15, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Home", "x":15, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"PgUp", "x":15, "y":2.25}, {"label":"Capslock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":"", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"PgDn", "x":15, "y":3.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"Up", "x":14, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Fn", "x":10, "y":5.25, "w":1.25}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.25}, {"label":"Left", "x":13, "y":5.25}, {"label":"Down", "x":14, "y":5.25}, {"label":"Right", "x":15, "y":5.25}] + } + } +} diff --git a/keyboards/star75/keymaps/default/keymap.c b/keyboards/star75/keymaps/default/keymap.c new file mode 100644 index 0000000000..996615877d --- /dev/null +++ b/keyboards/star75/keymaps/default/keymap.c @@ -0,0 +1,103 @@ +/* +Copyright 2022 Horns Lyn (@hornslyn) +SPDX-License-Identifier: GPL-2.0-or-later */ +#include QMK_KEYBOARD_H + +enum layer_names { + _HOME = 0, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_HOME] = 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_INS, + KC_GRV, KC_1, KC_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_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN1] = 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, RGB_TOG, RGB_RMOD, KC_TRNS), + + [_FN2] = 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), + + [_FN3] = 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) +}; + +/* capslock/layer indicators; using rgb led; start */ +// capslock; +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_RED} +); +// layer 1; +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_CYAN} +); +// layer 2; +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_PURPLE} +); +// layer 3; +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_GREEN} +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, + my_layer1_layer, // Overrides caps lock layer + my_layer2_layer, // Overrides other layers + my_layer3_layer // Overrides other layers +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(_FN1, layer_state_cmp(state, _FN1)); + rgblight_set_layer_state(_FN2, layer_state_cmp(state, _FN2)); + rgblight_set_layer_state(_FN3, layer_state_cmp(state, _FN3)); + return state; +} +/* capslock/layer indicators; using rgb led; end */ + +/* encoder; start */ +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_HOME] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FN1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_FN2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_FN3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } + +}; +#endif +/* encoder; end */ + diff --git a/keyboards/star75/keymaps/default/readme.md b/keyboards/star75/keymaps/default/readme.md new file mode 100644 index 0000000000..d1b7656403 --- /dev/null +++ b/keyboards/star75/keymaps/default/readme.md @@ -0,0 +1,16 @@ +# Default Star75 Layout + +This is the default layout of Star75 PCB. + +Note that the optional encoder is disabled by default. + +rules.mk OPTIONS + +`ENCODER_MAP_ENABLE = yes` - turns on the optional encoder + +## Layer diagrams +Default layer +![Star75 Default Layout](https://i.imgur.com/AYbSn4O.png) + +Fn layer +![Star75 Fn Layout](https://i.imgur.com/51IbsCP.png) diff --git a/keyboards/star75/keymaps/via/keymap.c b/keyboards/star75/keymaps/via/keymap.c new file mode 100644 index 0000000000..43b53d80dd --- /dev/null +++ b/keyboards/star75/keymaps/via/keymap.c @@ -0,0 +1,102 @@ +/* +Copyright 2022 Horns Lyn (@hornslyn) +SPDX-License-Identifier: GPL-2.0-or-later */ +#include QMK_KEYBOARD_H + +enum layer_names { + _HOME = 0, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_HOME] = 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_INS, + KC_GRV, KC_1, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN1] = 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, RGB_TOG, RGB_RMOD, KC_TRNS), + + [_FN2] = 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), + + [_FN3] = 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) +}; + +/* capslock/layer indicators; using rgb led; start */ +// capslock; +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_RED} +); +// layer 1; +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_CYAN} +); +// layer 2; +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_PURPLE} +); +// layer 3; +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_GREEN} +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, + my_layer1_layer, // Overrides caps lock layer + my_layer2_layer, // Overrides other layers + my_layer3_layer // Overrides other layers +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(_FN1, layer_state_cmp(state, _FN1)); + rgblight_set_layer_state(_FN2, layer_state_cmp(state, _FN2)); + rgblight_set_layer_state(_FN3, layer_state_cmp(state, _FN3)); + return state; +} +/* capslock/layer indicators; using rgb led; end */ + +/* encoder; start */ +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_HOME] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FN1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_FN2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_FN3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif +/* encoder; end */ + diff --git a/keyboards/star75/keymaps/via/rules.mk b/keyboards/star75/keymaps/via/rules.mk new file mode 100644 index 0000000000..f48a8b1056 --- /dev/null +++ b/keyboards/star75/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes +LTO_ENABLE = yes + diff --git a/keyboards/star75/readme.md b/keyboards/star75/readme.md new file mode 100644 index 0000000000..6d7b9b0577 --- /dev/null +++ b/keyboards/star75/readme.md @@ -0,0 +1,28 @@ +# 大星外设 DXWS Star75 + +75% Hotswap PCB with optional rotary encoder. + +![View of Star75 Keyboard](https://i.imgur.com/UrvnjiZ.jpeg) +![Star75 Default Layout](https://i.imgur.com/LkTP0Cj.png) + +* Keyboard Maintainer: QMK Community +* Hardware Supported: Star75 1.2mm Flex-cut Hotswap PCB +* Hardware Availability: [大星外设](https://item.taobao.com/item.htm?id=656392112467) + +Make example for this keyboard (after setting up your build environment): + + make star75:default + +Flashing example for this keyboard: + + make star75: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 `RESET` if it is available + diff --git a/keyboards/star75/rules.mk b/keyboards/star75/rules.mk new file mode 100644 index 0000000000..0b3ffc06f2 --- /dev/null +++ b/keyboards/star75/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes +LTO_ENABLE = yes + + diff --git a/keyboards/star75/star75.c b/keyboards/star75/star75.c new file mode 100644 index 0000000000..abadba8625 --- /dev/null +++ b/keyboards/star75/star75.c @@ -0,0 +1,4 @@ +/* +Copyright 2022 Horns Lyn (@hornslyn) +SPDX-License-Identifier: GPL-2.0-or-later */ +#include "star75.h" diff --git a/keyboards/star75/star75.h b/keyboards/star75/star75.h new file mode 100644 index 0000000000..7e47ea0e40 --- /dev/null +++ b/keyboards/star75/star75.h @@ -0,0 +1,25 @@ +/* +Copyright 2022 Horns Lyn (@hornslyn) +SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4D, \ + K50, K51, K52, K55, K59, K5A, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, K4C, K4D, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, K59, K5A, KC_NO, K5C, K5D, K5E } \ +} + + + diff --git a/keyboards/suavity/ehan/chconf.h b/keyboards/suavity/ehan/chconf.h new file mode 100644 index 0000000000..35fb883183 --- /dev/null +++ b/keyboards/suavity/ehan/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/austin/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/suavity/ehan/config.h b/keyboards/suavity/ehan/config.h new file mode 100644 index 0000000000..1f5c7cd321 --- /dev/null +++ b/keyboards/suavity/ehan/config.h @@ -0,0 +1,49 @@ +/* +Copyright 2021 Suavity 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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5344 // 5344 short for "SD" (Suavity Designs) +#define PRODUCT_ID 0x4548 // 4548 short for "EH" (EHan) +#define DEVICE_VER 0x0001 +#define MANUFACTURER Suavity Designs +#define PRODUCT ehan + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, C14, B7, B6, B5, B4, B3, A15, C13, B9, B8 } +// Matrix Column Pins: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 +#define MATRIX_ROW_PINS { A7, B0, A3, A4, A5, A6 } +// Matrix Row Pins: R0 R1 R2 R3 R4 R5 +#define DIODE_DIRECTION COL2ROW +// Current flow out of the diodes are from rows to columns + +#define LED_CAPS_LOCK_PIN B11 // LED for Step Caps +#define LED_SCROLL_LOCK_PIN F1 // LED Indicator for Scroll Lock +#define LED_PIN_ON_STATE 1 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + diff --git a/keyboards/suavity/ehan/ehan.c b/keyboards/suavity/ehan/ehan.c new file mode 100644 index 0000000000..cc5a9fdc4a --- /dev/null +++ b/keyboards/suavity/ehan/ehan.c @@ -0,0 +1,3 @@ +// Copyright 2021 Henry Lum (@suavity) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "ehan.h" diff --git a/keyboards/suavity/ehan/ehan.h b/keyboards/suavity/ehan/ehan.h new file mode 100644 index 0000000000..fbc6d33a96 --- /dev/null +++ b/keyboards/suavity/ehan/ehan.h @@ -0,0 +1,75 @@ +// Copyright 2021 Henry Lum (@suavity) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" +#define ___ KC_NO + +/* + * ┌───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┐ + * │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 │ │3E │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤ + * │20 │21 │22 │23 │24 │25 │ │26 │27 │28 │29 │2A │2B │2C │2D ││2E │2F │2G │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐3D │ ISO Enter + * LShift │30 │31 │32 │33 │34 │35 │ │36 │37 │38 │39 │3A │3B │3C │ │3C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤ + * │40 │ │40 │41 │42 │43 │44 │45 │46 │ │47 │48 │49 │4A │4B │4C │4D │4E │ │4F │ │4D │ 2.75u RShift + * └────────┘ ├────┴┬──┴─┬─┴───┼───┼───┴───┤ ├───┴───┴───┼───┴─┬─┴─┬─┴──┬───┴─┬─┘┌───┼───┼───┐ └──────────┘ + * │50 │ │53 │54 │55 │ │58 │5A │5C │ │5D │ │5E │5F │5G │ + * └─────┘ └─────┴───┴───────┘ └───────────┴─────┴───┘ └─────┘ └───┴───┴───┘ + * ┌───────────┐ ┌──────────┬─────┬────┐ + * 3u LSpace │55 │ │58 │5A │5C │ 2.75u/1.5u/1.25u + * └───────────┘ └──────────┴─────┴────┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, \ + K50, K53, K54, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___, ___, }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, ___, }, \ + { K50, ___, ___, K53, K54, K55, ___, ___, K58, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G, } \ +} + +#define LAYOUT_ansi_split_bs_rshift_lspace( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, \ + K50, K53, K54, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, ___, ___ }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, ___ }, \ + { K50, ___, ___, K53, K54, K55, ___, ___, K58, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_iso_split_bs_rshift_lspace( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, \ + K50, K53, K54, K55, K58, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, ___ }, \ + { K50, ___, ___, K53, K54, K55, ___, ___, K58, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ +} diff --git a/keyboards/suavity/ehan/halconf.h b/keyboards/suavity/ehan/halconf.h new file mode 100644 index 0000000000..79afc88c96 --- /dev/null +++ b/keyboards/suavity/ehan/halconf.h @@ -0,0 +1,26 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +// #define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/suavity/ehan/info.json b/keyboards/suavity/ehan/info.json new file mode 100755 index 0000000000..0f2ad67561 --- /dev/null +++ b/keyboards/suavity/ehan/info.json @@ -0,0 +1,310 @@ +{ + "keyboard_name": "ehan", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":8.5, "y":0}, + {"label":"F7", "x":9.5, "y":0}, + {"label":"F8", "x":10.5, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":13, "y":0}, + {"label":"F11", "x":14, "y":0}, + {"label":"F12", "x":15, "y":0}, + {"label":"F13", "x":16, "y":0}, + {"label":"PrtSc", "x":17.25, "y":0}, + {"label":"Scroll Lock", "x":18.25, "y":0}, + {"label":"Pause", "x":19.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":9, "y":1.5}, + {"label":"8*", "x":10, "y":1.5}, + {"label":"9(", "x":11, "y":1.5}, + {"label":"0)", "x":12, "y":1.5}, + {"label":"-_", "x":13, "y":1.5}, + {"label":"=+", "x":14, "y":1.5}, + {"label":"\\|", "x":15, "y":1.5}, + {"label":"Backspace", "x":16, "y":1.5}, + {"label":"Insert", "x":17.25, "y":1.5}, + {"label":"Home", "x":18.25, "y":1.5}, + {"label":"Page Up", "x":19.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":8.5, "y":2.5}, + {"label":"U", "x":9.5, "y":2.5}, + {"label":"I", "x":10.5, "y":2.5}, + {"label":"O", "x":11.5, "y":2.5}, + {"label":"P", "x":12.5, "y":2.5}, + {"label":"[{", "x":13.5, "y":2.5}, + {"label":"]}", "x":14.5, "y":2.5}, + {"label":"\\|", "x":15.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":17.25, "y":2.5}, + {"label":"End", "x":18.25, "y":2.5}, + {"label":"Page Down", "x":19.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":8.75, "y":3.5}, + {"label":"J", "x":9.75, "y":3.5}, + {"label":"K", "x":10.75, "y":3.5}, + {"label":"L", "x":11.75, "y":3.5}, + {"label":";:", "x":12.75, "y":3.5}, + {"label":"'\"", "x":13.75, "y":3.5}, + {"label":"#~", "x":14.75, "y":3.5}, + {"label":"Enter", "x":15.75, "y":3.5, "w":1.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"B", "x":8.25, "y":4.5}, + {"label":"N", "x":9.25, "y":4.5}, + {"label":"M", "x":10.25, "y":4.5}, + {"label":",<", "x":11.25, "y":4.5}, + {"label":".>", "x":12.25, "y":4.5}, + {"label":"/?", "x":13.25, "y":4.5}, + {"label":"Shift", "x":14.25, "y":4.5, "w":1.75}, + {"label":"Fn", "x":16, "y":4.5}, + {"label":"\u2191", "x":18.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Alt", "x":2.75, "y":5.5, "w":1.5}, + {"label":"GUI", "x":4.25, "y":5.5}, + {"label":"Space", "x":5.25, "y":5.5, "w":2}, + {"label":"Space", "x":8.25, "y":5.5, "w":3}, + {"label":"ALT", "x":11.25, "y":5.5, "w":1.5}, + {"label":"GUI", "x":12.75, "y":5.5, "w":1}, + {"label":"Ctrl", "x":15, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":17.25, "y":5.5}, + {"label":"\u2193", "x":18.25, "y":5.5}, + {"label":"\u2193", "x":19.25, "y":5.5} + ] + }, + "LAYOUT_ansi_split_bs_rshift_lspace": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":8.5, "y":0}, + {"label":"F7", "x":9.5, "y":0}, + {"label":"F8", "x":10.5, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":13, "y":0}, + {"label":"F11", "x":14, "y":0}, + {"label":"F12", "x":15, "y":0}, + {"label":"F13", "x":16, "y":0}, + {"label":"PrtSc", "x":17.25, "y":0}, + {"label":"Scroll Lock", "x":18.25, "y":0}, + {"label":"Pause", "x":19.25, "y":0}, + + {"label":"`~", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2@", "x":2, "y":1.5}, + {"label":"3#", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":9, "y":1.5}, + {"label":"8*", "x":10, "y":1.5}, + {"label":"9(", "x":11, "y":1.5}, + {"label":"0)", "x":12, "y":1.5}, + {"label":"-_", "x":13, "y":1.5}, + {"label":"=+", "x":14, "y":1.5}, + {"label":"\\|", "x":15, "y":1.5}, + {"label":"Backspace", "x":16, "y":1.5}, + {"label":"Insert", "x":17.25, "y":1.5}, + {"label":"Home", "x":18.25, "y":1.5}, + {"label":"Page Up", "x":19.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":8.5, "y":2.5}, + {"label":"U", "x":9.5, "y":2.5}, + {"label":"I", "x":10.5, "y":2.5}, + {"label":"O", "x":11.5, "y":2.5}, + {"label":"P", "x":12.5, "y":2.5}, + {"label":"[{", "x":13.5, "y":2.5}, + {"label":"]}", "x":14.5, "y":2.5}, + {"label":"\\|", "x":15.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":17.25, "y":2.5}, + {"label":"End", "x":18.25, "y":2.5}, + {"label":"Page Down", "x":19.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":8.75, "y":3.5}, + {"label":"J", "x":9.75, "y":3.5}, + {"label":"K", "x":10.75, "y":3.5}, + {"label":"L", "x":11.75, "y":3.5}, + {"label":";:", "x":12.75, "y":3.5}, + {"label":"'\"", "x":13.75, "y":3.5}, + {"label":"Enter", "x":14.75, "y":3.5, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.5, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"B", "x":8.25, "y":4.5}, + {"label":"N", "x":9.25, "y":4.5}, + {"label":"M", "x":10.25, "y":4.5}, + {"label":",<", "x":11.25, "y":4.5}, + {"label":".>", "x":12.25, "y":4.5}, + {"label":"/?", "x":13.25, "y":4.5}, + {"label":"Shift", "x":14.25, "y":4.5, "w":1.75}, + {"label":"Fn", "x":16, "y":4.5}, + {"label":"\u2191", "x":18.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Alt", "x":2.75, "y":5.5, "w":1.5}, + {"label":"GUI", "x":4.25, "y":5.5}, + {"label":"Space", "x":5.25, "y":5.5, "w":2}, + {"label":"Space", "x":8.25, "y":5.5, "w":3}, + {"label":"ALT", "x":11.25, "y":5.5, "w":1.5}, + {"label":"GUI", "x":12.75, "y":5.5, "w":1}, + {"label":"Ctrl", "x":15, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":17.25, "y":5.5}, + {"label":"\u2193", "x":18.25, "y":5.5}, + {"label":"\u2193", "x":19.25, "y":5.5} + ] + }, + "LAYOUT_iso_split_bs_rshift_lspace": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":8.5, "y":0}, + {"label":"F7", "x":9.5, "y":0}, + {"label":"F8", "x":10.5, "y":0}, + {"label":"F9", "x":11.5, "y":0}, + {"label":"F10", "x":13, "y":0}, + {"label":"F11", "x":14, "y":0}, + {"label":"F12", "x":15, "y":0}, + {"label":"F13", "x":16, "y":0}, + {"label":"PrtSc", "x":17.25, "y":0}, + {"label":"Scroll Lock", "x":18.25, "y":0}, + {"label":"Pause", "x":19.25, "y":0}, + + {"label":"`\u00ac", "x":0, "y":1.5}, + {"label":"1!", "x":1, "y":1.5}, + {"label":"2\"", "x":2, "y":1.5}, + {"label":"3\u00a3", "x":3, "y":1.5}, + {"label":"4$", "x":4, "y":1.5}, + {"label":"5%", "x":5, "y":1.5}, + {"label":"6^", "x":6, "y":1.5}, + {"label":"7&", "x":9, "y":1.5}, + {"label":"8*", "x":10, "y":1.5}, + {"label":"9(", "x":11, "y":1.5}, + {"label":"0)", "x":12, "y":1.5}, + {"label":"-_", "x":13, "y":1.5}, + {"label":"=+", "x":14, "y":1.5}, + {"label":"\\|", "x":15, "y":1.5}, + {"label":"Backspace", "x":16, "y":1.5}, + {"label":"Insert", "x":17.25, "y":1.5}, + {"label":"Home", "x":18.25, "y":1.5}, + {"label":"Page Up", "x":19.25, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":8.5, "y":2.5}, + {"label":"U", "x":9.5, "y":2.5}, + {"label":"I", "x":10.5, "y":2.5}, + {"label":"O", "x":11.5, "y":2.5}, + {"label":"P", "x":12.5, "y":2.5}, + {"label":"[{", "x":13.5, "y":2.5}, + {"label":"]}", "x":14.5, "y":2.5}, + {"label":"Delete", "x":17.25, "y":2.5}, + {"label":"End", "x":18.25, "y":2.5}, + {"label":"Page Down", "x":19.25, "y":2.5}, + + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":8.75, "y":3.5}, + {"label":"J", "x":9.75, "y":3.5}, + {"label":"K", "x":10.75, "y":3.5}, + {"label":"L", "x":11.75, "y":3.5}, + {"label":";:", "x":12.75, "y":3.5}, + {"label":"'@", "x":13.75, "y":3.5}, + {"label":"#~", "x":14.75, "y":3.5}, + {"label":"Enter", "x":15.75, "y":2.5, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"\\|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"B", "x":8.25, "y":4.5}, + {"label":"N", "x":9.25, "y":4.5}, + {"label":"M", "x":10.25, "y":4.5}, + {"label":",<", "x":11.25, "y":4.5}, + {"label":".>", "x":12.25, "y":4.5}, + {"label":"/?", "x":13.25, "y":4.5}, + {"label":"Shift", "x":14.25, "y":4.5, "w":1.75}, + {"label":"Fn", "x":16, "y":4.5}, + {"label":"\u2191", "x":18.25, "y":4.5}, + + {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, + {"label":"Alt", "x":2.75, "y":5.5, "w":1.5}, + {"label":"GUI", "x":4.25, "y":5.5}, + {"label":"Space", "x":5.25, "y":5.5, "w":2}, + {"label":"Space", "x":8.25, "y":5.5, "w":3}, + {"label":"ALT", "x":11.25, "y":5.5, "w":1.5}, + {"label":"GUI", "x":12.75, "y":5.5, "w":1}, + {"label":"Ctrl", "x":15, "y":5.5, "w":1.5}, + {"label":"\u2190", "x":17.25, "y":5.5}, + {"label":"\u2193", "x":18.25, "y":5.5}, + {"label":"\u2192", "x":19.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/suavity/ehan/keymaps/default/keymap.c b/keyboards/suavity/ehan/keymaps/default/keymap.c new file mode 100755 index 0000000000..5579f84ac6 --- /dev/null +++ b/keyboards/suavity/ehan/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2021 Suavity 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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ansi_split_bs_rshift_lspace( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/suavity/ehan/keymaps/default_iso/keymap.c b/keyboards/suavity/ehan/keymaps/default_iso/keymap.c new file mode 100644 index 0000000000..62c5550789 --- /dev/null +++ b/keyboards/suavity/ehan/keymaps/default_iso/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2021 Suavity 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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_iso_split_bs_rshift_lspace( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_iso_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/suavity/ehan/keymaps/via/keymap.c b/keyboards/suavity/ehan/keymaps/via/keymap.c new file mode 100644 index 0000000000..9b267698db --- /dev/null +++ b/keyboards/suavity/ehan/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* +Copyright 2021 Suavity 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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ansi_split_bs_rshift_lspace( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, KC_SPC, KC_RALT, KC_RWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_ansi_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_ansi_split_bs_rshift_lspace( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/suavity/ehan/keymaps/via/rules.mk b/keyboards/suavity/ehan/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/suavity/ehan/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/suavity/ehan/mcuconf.h b/keyboards/suavity/ehan/mcuconf.h new file mode 100644 index 0000000000..5cea69887f --- /dev/null +++ b/keyboards/suavity/ehan/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/austin/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +// #undef STM32_PWM_USE_TIM3 +// #define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/suavity/ehan/readme.md b/keyboards/suavity/ehan/readme.md new file mode 100644 index 0000000000..76d997f6ed --- /dev/null +++ b/keyboards/suavity/ehan/readme.md @@ -0,0 +1,23 @@ +# ehan: A 10.5° Split TKL Keyboard designed by Suavity Designs | QMK Firmware + +![Imgur](https://i.imgur.com/bAiBbjgh.png) + +## Introduction + +ehan is a 10.5° Split TKL that supports 3U Spacebars, + +* Keyboard Maintainer: [Suavity Designs](https://github.com/suavity) +* Hardware Supported: ARM STM32F072CBT6 +* Hardware Availability: [suavity.cc/ehan](https://suavity.cc/keyboards/ehan/) + +The latest iteration of the PCB is v3.00 as of 07/'21. This is noted on the back of the PCB. +* Default Keymap: [See here](http://www.keyboard-layout-editor.com/#/gists/6504b0b388736213f43b64df1d576139) +* PCB Supported Layouts: [See here](http://www.keyboard-layout-editor.com/#/gists/9aab5e15a89469138da760f968df26ae) + +## How to compile + +After setting up your build environment, you can compile the ehan default keymap by using: + + make suavity/ehan:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/suavity/ehan/rules.mk b/keyboards/suavity/ehan/rules.mk new file mode 100644 index 0000000000..9383acaf00 --- /dev/null +++ b/keyboards/suavity/ehan/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # 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 + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/t9/config.h b/keyboards/t9/config.h new file mode 100644 index 0000000000..8767440992 --- /dev/null +++ b/keyboards/t9/config.h @@ -0,0 +1,138 @@ +// Copyright 2022 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* Keyboard Matrix Assignments */ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { D7, B4, B5, B6 } +#define UNUSED_PINS { B0, B1, B2, B3, C6, C7, D0, D1, D2, D3, D4, D5, D6, E6 } +#define DIODE_DIRECTION COL2ROW + +// The pin connected to the data pin of the LEDs +#define RGB_DI_PIN B7 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 28 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 17 +# define RGBLIGHT_VAL_STEP 17 +# define RGBLIGHT_ANIMATIONS +#endif + +// The number of LEDs connected +#define DRIVER_LED_TOTAL 21 + +// Tap Num key twice in less than 200ms for RGB layer +#define TAPPING_TERM 200 + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x1000 +#define MANUFACTURER XenGi +#define PRODUCT t9 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define LAYER_STATE_8BIT + +/* + * 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 NO_MUSIC_MODE + + +/* + * ┌───┬───┬───┬───┐ + * │ ⏮ │ ⏯ │ ■ │ ⏭ │ + * ├───┼───┼───┼───┤ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ │ + * ├───┼───┼───┤ + │ + * │ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ │ + * ├───┴───┼───┤Ent│ + * │ 0 │ . │ │ + * └───────┴───┴───┘ + */ + + +#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 Enables +#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 + +// 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_LED_FLUSH_LIMIT 16 +// limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 + diff --git a/keyboards/t9/info.json b/keyboards/t9/info.json new file mode 100644 index 0000000000..b760b483c8 --- /dev/null +++ b/keyboards/t9/info.json @@ -0,0 +1,53 @@ +{ + "manufacturer": "XenGi", + "keyboard_name": "t9", + "maintainer": "XenGi", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D7", "B4", "B5", "B6"], + "rows": ["F0", "F1", "F4", "F5", "F6", "F7"] + }, + "processor": "atmega32u4", + "url": "https://gitlab.com/tnine", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_numpad_6x4": { + "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 }, + { "h": 2, "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 2], "x": 2, "y": 4 }, + { "matrix": [5, 0], "w": 2, "x": 0, "y": 5 }, + { "matrix": [5, 2], "x": 2, "y": 5 }, + { "h": 2, "matrix": [5, 3], "x": 3, "y": 4 } + ] + } + } +} diff --git a/keyboards/t9/keymaps/default/keymap.c b/keyboards/t9/keymaps/default/keymap.c new file mode 100644 index 0000000000..b65d34f7d5 --- /dev/null +++ b/keyboards/t9/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +#include QMK_KEYBOARD_H + +// Tap Dance declarations +enum { + TD_NUM_RGB, +}; + +// Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for NumLock, twice for RGB layer + [TD_NUM_RGB] = ACTION_TAP_DANCE_LAYER_TOGGLE(KC_NUM, 1), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┐ + * │ ⏮ │ ⏯ │ ■ │ ⏭ │ + * ├───┼───┼───┼───┤ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ │ + * ├───┼───┼───┤ + │ + * │ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ │ + * ├───┴───┼───┤Ent│ + * │ 0 │ . │ │ + * └───────┴───┴───┘ + */ + [0] = LAYOUT_numpad_6x4( + KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, + TD(TD_NUM_RGB), 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 + ), + + /* + * ┌─────┬─────┬─────┬─────┐ + * │ModeR│Breat│Plain│Mode │ + * ├─────┼─────┼─────┼─────┤ + * │ │Rainb│Swirl│Sped-│ + * ├─────┼─────┼─────┼─────┤ + * │Brig+│Brig-│ │ │ + * ├─────┼─────┼─────┤Sped+│ + * │Satu+│Satu-│ │ │ + * ├─────┼─────┼─────┼─────┤ + * │Hue+ │Hue- │ │ │ + * ├─────┴─────┼─────┤OnOff│ + * │ │ │ │ + * └───────────┴─────┴─────┘ + */ + [1] = LAYOUT_numpad_6x4( + RGB_RMOD, RGB_M_B, RGB_M_P, RGB_MOD, + _______, RGB_M_R, RGB_M_SW, RGB_SPD, + RGB_VAI, RGB_VAD, _______, + RGB_SAI, RGB_SAD, _______, RGB_SPI, + RGB_HUI, RGB_HUD, _______, + _______, _______, RGB_TOG + ) +}; + diff --git a/keyboards/t9/readme.md b/keyboards/t9/readme.md new file mode 100644 index 0000000000..74c2fe6462 --- /dev/null +++ b/keyboards/t9/readme.md @@ -0,0 +1,34 @@ +# t9 + +![t9](https://i.imgur.com/NJGw3d7.png) + +A QMK based 6x4 numpad keyboard intended to act as a switch and keycap tester. + +* Keyboard Maintainer: [XenGi](https://github.com/XenGi) +* Hardware Supported: [t9](https://github.com/tnine/pcb) +* Hardware Availability: [gerber files](https://gitlab.com/tnine/pcb/-/releases/rev1) + +Make example for this keyboard (after setting up your build environment): + +```shell +make t9:default +# or with the QMK tool +qmk compile -kb t9 -km default +``` + +Flashing example for this keyboard: + +```shell +make t9:default:flash +# or with the QMK tool +qmk flash -kb t9 -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 key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly short the pads on the back of the PCB diff --git a/keyboards/t9/rules.mk b/keyboards/t9/rules.mk new file mode 100644 index 0000000000..d6bcc6fe01 --- /dev/null +++ b/keyboards/t9/rules.mk @@ -0,0 +1,32 @@ +MCU = atmega32u4 +F_CPU = 16000000 +ARCH = AVR8 +F_USB = $(F_CPU) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +MUSIC_ENABLE = no + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 # also supports SK6812MINI +TAP_DANCE_ENABLE = yes + +WS2812_DRIVER = bitbang + +LAYOUTS = numpad_6x4 + diff --git a/keyboards/t9/t9.c b/keyboards/t9/t9.c new file mode 100644 index 0000000000..fed03ded19 --- /dev/null +++ b/keyboards/t9/t9.c @@ -0,0 +1,20 @@ +#include "quantum.h" + +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 20, 19, 18, 17, }, + { 16, 15, 14, 13, }, + { 12, 11, 10, NO_LED }, + { 9, 8, 7, 6 }, + { 5, 4, 3, NO_LED }, + { 2, NO_LED, 1, 0 } +}, { + // LED Index to Physical Position + // x = 224 / (NUMBER_OF_COLS - 1) * COL_POSITION + // y = 64 / (NUMBER_OF_ROWS - 1) * ROW_POSITION + { 224, 58 }, { 149, 64 }, { 37, 64 }, { 149, 51 }, { 75, 51 }, { 0, 51 }, { 224, 32 }, { 149, 38 }, { 75, 38 }, { 0, 38 }, { 149, 26 }, { 75, 26 }, { 0, 26 }, { 224, 13 }, { 149, 13 }, { 75, 13 }, { 0, 13 }, { 224, 0 }, { 149, 0 }, { 75, 0 }, { 0, 0 } +}, { + // LED Index to Flag + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 +} }; + diff --git a/keyboards/t9/t9.h b/keyboards/t9/t9.h new file mode 100644 index 0000000000..d29715bc7a --- /dev/null +++ b/keyboards/t9/t9.h @@ -0,0 +1,22 @@ +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_numpad_6x4( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, \ + k30, k31, k32, k33, \ + k40, k41, k42, \ + k50, k52, k53 \ +) { \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, ___ }, \ + { k30, k31, k32, k33 }, \ + { k40, k41, k42, ___ }, \ + { k50, ___, k52, k53 } \ +} + diff --git a/keyboards/takashicompany/minizone/info.json b/keyboards/takashicompany/minizone/info.json index 75e0c6258e..4c4969d1fc 100644 --- a/keyboards/takashicompany/minizone/info.json +++ b/keyboards/takashicompany/minizone/info.json @@ -5,235 +5,48 @@ "layouts": { "LAYOUT": { "layout": [ - { - "x": 1.68, - "y": 0, - "w": 0.84, - "h": 0.84 - }, - { - "x": 7.56, - "y": 0, - "w": 0.84, - "h": 0.84 - }, - { - "x": 0.84, - "y": 0.21, - "w": 0.84, - "h": 0.84 - }, - { - "x": 2.52, - "y": 0.21, - "w": 0.84, - "h": 0.84 - }, - { - "x": 6.72, - "y": 0.21, - "w": 0.84, - "h": 0.84 - }, - { - "x": 8.4, - "y": 0.21, - "w": 0.84, - "h": 0.84 - }, - { - "x": 0, - "y": 0.42, - "w": 0.84, - "h": 0.84 - }, - { - "x": 3.36, - "y": 0.42, - "w": 0.84, - "h": 0.84 - }, - { - "x": 5.88, - "y": 0.42, - "w": 0.84, - "h": 0.84 - }, - { - "x": 9.24, - "y": 0.42, - "w": 0.84, - "h": 0.84 - }, - { - "x": 1.68, - "y": 0.84, - "w": 0.84, - "h": 0.84 - }, - { - "x": 7.56, - "y": 0.84, - "w": 0.84, - "h": 0.84 - }, - { - "x": 0.84, - "y": 1.05, - "w": 0.84, - "h": 0.84 - }, - { - "x": 2.52, - "y": 1.05, - "w": 0.84, - "h": 0.84 - }, - { - "x": 6.72, - "y": 1.05, - "w": 0.84, - "h": 0.84 - }, - { - "x": 8.4, - "y": 1.05, - "w": 0.84, - "h": 0.84 - }, - { - "x": 0, - "y": 1.26, - "w": 0.84, - "h": 0.84 - }, - { - "x": 3.36, - "y": 1.26, - "w": 0.84, - "h": 0.84 - }, - { - "x": 5.88, - "y": 1.26, - "w": 0.84, - "h": 0.84 - }, - { - "x": 9.24, - "y": 1.26, - "w": 0.84, - "h": 0.84 - }, - { - "x": 1.68, - "y": 1.68, - "w": 0.84, - "h": 0.84 - }, - { - "x": 7.56, - "y": 1.68, - "w": 0.84, - "h": 0.84 - }, - { - "x": 0.84, - "y": 1.89, - "w": 0.84, - "h": 0.84 - }, - { - "x": 2.52, - "y": 1.89, - "w": 0.84, - "h": 0.84 - }, - { - "x": 6.72, - "y": 1.89, - "w": 0.84, - "h": 0.84 - }, - { - "x": 8.4, - "y": 1.89, - "w": 0.84, - "h": 0.84 - }, - { - "x": 0, - "y": 2.1, - "w": 0.84, - "h": 0.84 - }, - { - "x": 3.36, - "y": 2.1, - "w": 0.84, - "h": 0.84 - }, - { - "x": 5.88, - "y": 2.1, - "w": 0.84, - "h": 0.84 - }, - { - "x": 9.24, - "y": 2.1, - "w": 0.84, - "h": 0.84 - }, - { - "x": 1.68, - "y": 2.52, - "w": 0.84, - "h": 0.84 - }, - { - "x": 7.56, - "y": 2.52, - "w": 0.84, - "h": 0.84 - }, - { - "x": 2.52, - "y": 2.73, - "w": 0.84, - "h": 0.84 - }, - { - "x": 6.72, - "y": 2.73, - "w": 0.84, - "h": 0.84 - }, - { - "x": 3.36, - "y": 2.94, - "w": 0.84, - "h": 0.84 - }, - { - "x": 4.2, - "y": 2.94, - "w": 0.84, - "h": 0.84 - }, - { - "x": 5.04, - "y": 2.94, - "w": 0.84, - "h": 0.84 - }, - { - "x": 5.88, - "y": 2.94, - "w": 0.84, - "h": 0.84 - } + { "x": 0, "y": 0.42, "w": 0.84, "h": 0.84 }, + { "x": 0.84, "y": 0.21, "w": 0.84, "h": 0.84 }, + { "x": 1.68, "y": 0, "w": 0.84, "h": 0.84 }, + { "x": 2.52, "y": 0.21, "w": 0.84, "h": 0.84 }, + { "x": 3.36, "y": 0.42, "w": 0.84, "h": 0.84 }, + { "x": 5.88, "y": 0.42, "w": 0.84, "h": 0.84 }, + { "x": 6.72, "y": 0.21, "w": 0.84, "h": 0.84 }, + { "x": 7.56, "y": 0, "w": 0.84, "h": 0.84 }, + { "x": 8.4, "y": 0.21, "w": 0.84, "h": 0.84 }, + { "x": 9.24, "y": 0.42, "w": 0.84, "h": 0.84 }, + + { "x": 0, "y": 1.26, "w": 0.84, "h": 0.84 }, + { "x": 0.84, "y": 1.05, "w": 0.84, "h": 0.84 }, + { "x": 1.68, "y": 0.84, "w": 0.84, "h": 0.84 }, + { "x": 2.52, "y": 1.05, "w": 0.84, "h": 0.84 }, + { "x": 3.36, "y": 1.26, "w": 0.84, "h": 0.84 }, + { "x": 5.88, "y": 1.26, "w": 0.84, "h": 0.84 }, + { "x": 6.72, "y": 1.05, "w": 0.84, "h": 0.84 }, + { "x": 7.56, "y": 0.84, "w": 0.84, "h": 0.84 }, + { "x": 8.4, "y": 1.05, "w": 0.84, "h": 0.84 }, + { "x": 9.24, "y": 1.26, "w": 0.84, "h": 0.84 }, + + { "x": 0, "y": 2.1, "w": 0.84, "h": 0.84 }, + { "x": 0.84, "y": 1.89, "w": 0.84, "h": 0.84 }, + { "x": 1.68, "y": 1.68, "w": 0.84, "h": 0.84 }, + { "x": 2.52, "y": 1.89, "w": 0.84, "h": 0.84 }, + { "x": 3.36, "y": 2.1, "w": 0.84, "h": 0.84 }, + { "x": 5.88, "y": 2.1, "w": 0.84, "h": 0.84 }, + { "x": 6.72, "y": 1.89, "w": 0.84, "h": 0.84 }, + { "x": 7.56, "y": 1.68, "w": 0.84, "h": 0.84 }, + { "x": 8.4, "y": 1.89, "w": 0.84, "h": 0.84 }, + { "x": 9.24, "y": 2.1, "w": 0.84, "h": 0.84 }, + + { "x": 1.68, "y": 2.52, "w": 0.84, "h": 0.84 }, + { "x": 2.52, "y": 2.73, "w": 0.84, "h": 0.84 }, + { "x": 3.36, "y": 2.94, "w": 0.84, "h": 0.84 }, + { "x": 4.2, "y": 2.94, "w": 0.84, "h": 0.84 }, + { "x": 5.04, "y": 2.94, "w": 0.84, "h": 0.84 }, + { "x": 5.88, "y": 2.94, "w": 0.84, "h": 0.84 }, + { "x": 6.72, "y": 2.73, "w": 0.84, "h": 0.84 }, + { "x": 7.56, "y": 2.52, "w": 0.84, "h": 0.84 } ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/minizone/keymaps/default/keymap.c b/keyboards/takashicompany/minizone/keymaps/default/keymap.c index 0d651325b2..51c9cc1678 100644 --- a/keyboards/takashicompany/minizone/keymaps/default/keymap.c +++ b/keyboards/takashicompany/minizone/keymaps/default/keymap.c @@ -6,55 +6,63 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( - LT(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, LT(5, KC_D), KC_F, KC_G, KC_H, KC_J, LT(5, KC_K), KC_L, KC_ENT, + 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_LANG2), LSFT_T(KC_TAB), KC_SPC, LT(1, KC_LANG1), KC_PGUP, KC_NO + KC_LCTL, KC_LGUI, LALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_PGUP, KC_PGDN ), - + 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_RO, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, + LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), + KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - - LAYOUT(LT(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, LT(5, KC_D), KC_F, KC_G, KC_H, KC_J, LT(5, KC_K), KC_L, KC_ENT, + + 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_TRNS, KC_TRNS, LALT_T(KC_LANG2), LSFT_T(KC_TAB), KC_SPC, LT(3, KC_LANG1), KC_TRNS, KC_TRNS + KC_LCTL, KC_LGUI, LALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LANG1), KC_PGUP, KC_PGDN ), - + 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_JYEN, - MO(4), KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, + 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 ), - + LAYOUT( - KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_0, - 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_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, + 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_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + 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_WH_U, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, - KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_WH_D, KC_LANG1, KC_NO, KC_NO, KC_DEL, + 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_LANG2, KC_TRNS, KC_NO, KC_LANG1, KC_NO, KC_NO, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - + ), + 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(7), MO(8), + 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 ), - + LAYOUT( - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, DF(0), DF(2), + 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 diff --git a/keyboards/takashicompany/minizone/keymaps/pimoroni_trackball/config.h b/keyboards/takashicompany/minizone/keymaps/pimoroni_trackball/config.h new file mode 100644 index 0000000000..bcc6982848 --- /dev/null +++ b/keyboards/takashicompany/minizone/keymaps/pimoroni_trackball/config.h @@ -0,0 +1,7 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 +#define PIMORONI_TRACKBALL_SCALE 1 +#define POINTING_DEVICE_TASK_THROTTLE_MS 1 \ No newline at end of file diff --git a/keyboards/takashicompany/minizone/keymaps/pimoroni_trackball/keymap.c b/keyboards/takashicompany/minizone/keymaps/pimoroni_trackball/keymap.c new file mode 100644 index 0000000000..0d070b4596 --- /dev/null +++ b/keyboards/takashicompany/minizone/keymaps/pimoroni_trackball/keymap.c @@ -0,0 +1,403 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +enum custom_keycodes { + KC_MY_BTN1 = SAFE_RANGE, + KC_MY_BTN2, + KC_MY_BTN3, + KC_MY_SCR, +}; + + +enum click_state { + NONE = 0, + WAITING, // マウスレイヤーが有効になるのを待つ。 Wait for mouse layer to activate. + CLICKABLE, // マウスレイヤー有効になりクリック入力が取れる。 Mouse layer is enabled to take click input. + CLICKING, // クリック中。 Clicking. + SCROLLING // スクロール中。 Scrolling. +}; + +enum click_state state; // 現在のクリック入力受付の状態 Current click input reception status +uint16_t click_timer; // タイマー。状態に応じて時間で判定する。 Timer. Time to determine the state of the system. + +uint16_t to_clickable_time = 10; // この秒数(千分の一秒)、WAITING状態ならクリックレイヤーが有効になる。 For this number of seconds (milliseconds), if in WAITING state, the click layer is activated. +uint16_t to_reset_time = 1000; // この秒数(千分の一秒)、CLICKABLE状態ならクリックレイヤーが無効になる。 For this number of seconds (milliseconds), the click layer is disabled if in CLICKABLE state. + +uint16_t click_layer = 9; // マウス入力が可能になった際に有効になるレイヤー。Layers enabled when mouse input is enabled + +int16_t scroll_v_mouse_interval_counter; // 垂直スクロールの入力をカウントする。 Counting Vertical Scroll Inputs +int16_t scroll_h_mouse_interval_counter; // 水平スクロールの入力をカウントする。 Counts horizontal scrolling inputs. + +int16_t scroll_v_threshold = 30; // この閾値を超える度に垂直スクロールが実行される。 Vertical scrolling is performed each time this threshold is exceeded. +int16_t scroll_h_threshold = 30; // この閾値を超える度に水平スクロールが実行される。 Each time this threshold is exceeded, horizontal scrolling is performed. + +int16_t after_click_lock_movement = 0; // クリック入力後の移動量を測定する変数。 Variable that measures the amount of movement after a click input. + +int16_t mouse_record_threshold = 30; // ポインターの動きを一時的に記録するフレーム数。 Number of frames in which the pointer movement is temporarily recorded. +int16_t mouse_move_count_ratio = 5; // ポインターの動きを再生する際の移動フレームの係数。 The coefficient of the moving frame when replaying the pointer movement. + +int16_t mouse_record_x; +int16_t mouse_record_y; +int16_t mouse_record_count; + +int16_t mouse_move_remain_count; + +bool is_record_mouse; + +bool is_mouse_move_x_min; +int16_t mouse_move_x_sign; +int16_t mouse_move_y_sign; + +double mouse_interval_delta; +double mouse_interval_counter; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + 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_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_PGUP, KC_PGDN + ), + + 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_RO, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, + LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), + KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), + KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + 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_LANG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LANG1), KC_PGUP, KC_PGDN + ), + + 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_JYEN, + 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 + ), + + 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_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + 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_LANG2, KC_TRNS, KC_NO, KC_LANG1, KC_NO, KC_NO, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + 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 + ), + + 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 + ), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MY_BTN1, KC_MY_SCR, KC_MY_BTN2, KC_MY_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MY_SCR, KC_MY_BTN1, KC_TRNS, KC_MY_SCR, KC_MY_BTN2, KC_MY_BTN3, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +// クリック用のレイヤーを有効にする。 Enable layers for clicks +void enable_click_layer(void) { + layer_on(click_layer); + click_timer = timer_read(); + state = CLICKABLE; +} + +// クリック用のレイヤーを無効にする。 Disable layers for clicks. +void disable_click_layer(void) { + state = NONE; + layer_off(click_layer); + scroll_v_mouse_interval_counter = 0; + scroll_h_mouse_interval_counter = 0; +} + +// 自前の絶対数を返す関数。 Functions that return absolute numbers. +int16_t my_abs(int16_t num) { + if (num < 0) { + num = -num; + } + + return num; +} + +// 自前の符号を返す関数。 Function to return the sign. +int16_t mmouse_move_y_sign(int16_t num) { + if (num < 0) { + return -1; + } + + return 1; +} + +// 現在クリックが可能な状態か。 Is it currently clickable? +bool is_clickable_mode(void) { + return state == CLICKABLE || state == CLICKING || state == SCROLLING; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + case KC_MY_BTN1: + case KC_MY_BTN2: + case KC_MY_BTN3: + { + report_mouse_t currentReport = pointing_device_get_report(); + + // どこのビットを対象にするか。 Which bits are to be targeted? + uint8_t btn = 1 << (keycode - KC_MY_BTN1); + + if (record->event.pressed) { + // ビットORは演算子の左辺と右辺の同じ位置にあるビットを比較して、両方のビットのどちらかが「1」の場合に「1」にします。 + // Bit OR compares bits in the same position on the left and right sides of the operator and sets them to "1" if either of both bits is "1". + currentReport.buttons |= btn; + state = CLICKING; + after_click_lock_movement = 30; + } else { + // ビットANDは演算子の左辺と右辺の同じ位置にあるビットを比較して、両方のビットが共に「1」の場合だけ「1」にします。 + // Bit AND compares the bits in the same position on the left and right sides of the operator and sets them to "1" only if both bits are "1" together. + currentReport.buttons &= ~btn; + enable_click_layer(); + } + + pointing_device_set_report(currentReport); + pointing_device_send(); + return false; + } + + case KC_MY_SCR: + if (record->event.pressed) { + state = SCROLLING; + } else { + enable_click_layer(); // スクロールキーを離した時に再度クリックレイヤーを有効にする。 Enable click layer again when the scroll key is released. + } + return false; + + default: + if (record->event.pressed) { + disable_click_layer(); + } + + } + + return true; +} + + +report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + + if (!is_record_mouse) { + if (mouse_report.x != 0 || mouse_report.y != 0) { + is_record_mouse = true; + mouse_record_x = 0; + mouse_record_y = 0; + mouse_record_count = 0; + } + } + + if (is_record_mouse) { + mouse_record_x += mouse_report.x; + mouse_record_y += mouse_report.y; + mouse_record_count++; + + if (mouse_record_count >= mouse_record_threshold) { + mouse_interval_counter = 0; + int16_t absX = my_abs(mouse_record_x); + int16_t absY = my_abs(mouse_record_y); + is_mouse_move_x_min = absX < absY; + + mouse_move_remain_count = absY + absX; + mouse_move_remain_count *= mouse_move_count_ratio; + + mouse_move_x_sign = mmouse_move_y_sign(mouse_record_x); + mouse_move_y_sign = mmouse_move_y_sign(mouse_record_y); + + if (is_mouse_move_x_min) { + if (mouse_record_x == 0) { + mouse_interval_delta = 0; + } else { + mouse_interval_delta = (double)absX / (double)absY; + } + } else { + if (mouse_record_y == 0) { + mouse_interval_delta = 0; + } else { + mouse_interval_delta = (double)absY / (double)absX; + } + } + + is_record_mouse = false; + mouse_record_count = 0; + } + } + + if (mouse_move_remain_count > 0) { + mouse_interval_counter += mouse_interval_delta; + + bool can_move_min = mouse_interval_counter >= 1; + + if (can_move_min) { + mouse_interval_counter -= 1; + } + + if (is_mouse_move_x_min) { + + mouse_report.y = mouse_move_y_sign; + + if (can_move_min) { + mouse_report.x = mouse_move_x_sign; + } + } else { + + mouse_report.x = mouse_move_x_sign; + + if (can_move_min) { + mouse_report.y = mouse_move_y_sign; + } + } + + mouse_report.x *= 1 + mouse_move_remain_count / 10; + mouse_report.y *= 1 + mouse_move_remain_count / 10; + + mouse_move_remain_count--; + } else { + mouse_report.x = 0; + mouse_report.y = 0; + } + + int16_t current_x = mouse_report.x; + int16_t current_y = mouse_report.y; + int16_t current_h = 0; + int16_t current_v = 0; + + if (current_x != 0 || current_y != 0) { + + switch (state) { + case CLICKABLE: + click_timer = timer_read(); + break; + + case CLICKING: + after_click_lock_movement -= my_abs(current_x) + my_abs(current_y); + + if (after_click_lock_movement > 0) { + current_x = 0; + current_y = 0; + } + + break; + + case SCROLLING: + { + int8_t rep_v = 0; + int8_t rep_h = 0; + + // 垂直スクロールの方の感度を高める。 Increase sensitivity toward vertical scrolling. + if (my_abs(current_y) * 2 > my_abs(current_x)) { + + scroll_v_mouse_interval_counter += current_y; + while (my_abs(scroll_v_mouse_interval_counter) > scroll_v_threshold) { + if (scroll_v_mouse_interval_counter < 0) { + scroll_v_mouse_interval_counter += scroll_v_threshold; + rep_v += scroll_v_threshold; + } else { + scroll_v_mouse_interval_counter -= scroll_v_threshold; + rep_v -= scroll_v_threshold; + } + + } + } else { + + scroll_h_mouse_interval_counter += current_x; + + while (my_abs(scroll_h_mouse_interval_counter) > scroll_h_threshold) { + if (scroll_h_mouse_interval_counter < 0) { + scroll_h_mouse_interval_counter += scroll_h_threshold; + rep_h += scroll_h_threshold; + } else { + scroll_h_mouse_interval_counter -= scroll_h_threshold; + rep_h -= scroll_h_threshold; + } + } + } + + current_h = rep_h / scroll_h_threshold; + current_v = -rep_v / scroll_v_threshold; + current_x = 0; + current_y = 0; + } + break; + + case WAITING: + if (timer_elapsed(click_timer) > to_clickable_time) { + enable_click_layer(); + } + break; + + default: + click_timer = timer_read(); + state = WAITING; + } + } + else + { + switch (state) { + case CLICKING: + case SCROLLING: + + break; + + case CLICKABLE: + if (timer_elapsed(click_timer) > to_reset_time) { + disable_click_layer(); + } + break; + + case WAITING: + if (timer_elapsed(click_timer) > 50) { + state = NONE; + } + break; + + default: + state = NONE; + } + } + + mouse_report.x = current_x; + mouse_report.y = current_y; + mouse_report.h = current_h; + mouse_report.v = current_v; + + return mouse_report; +} diff --git a/keyboards/takashicompany/minizone/keymaps/pimoroni_trackball/rules.mk b/keyboards/takashicompany/minizone/keymaps/pimoroni_trackball/rules.mk new file mode 100644 index 0000000000..df0cf51896 --- /dev/null +++ b/keyboards/takashicompany/minizone/keymaps/pimoroni_trackball/rules.mk @@ -0,0 +1,4 @@ +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = pimoroni_trackball +OLED_ENABLE = no +VIA_ENABLE = yes diff --git a/keyboards/takashicompany/minizone/keymaps/via/keymap.c b/keyboards/takashicompany/minizone/keymaps/via/keymap.c index 8fa3480915..d78a5bbf17 100644 --- a/keyboards/takashicompany/minizone/keymaps/via/keymap.c +++ b/keyboards/takashicompany/minizone/keymaps/via/keymap.c @@ -6,86 +6,71 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( - LT(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, LT(5, KC_D), KC_F, KC_G, KC_H, KC_J, LT(5, KC_K), KC_L, KC_ENT, + 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_LANG2), LSFT_T(KC_TAB), KC_SPC, LT(1, KC_LANG1), KC_PGUP, KC_NO + KC_LCTL, KC_LGUI, LALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_PGUP, KC_PGDN ), - + 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_RO, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, + LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), + KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - - LAYOUT(LT(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, LT(5, KC_D), KC_F, KC_G, KC_H, KC_J, LT(5, KC_K), KC_L, KC_ENT, + + 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_TRNS, KC_TRNS, LALT_T(KC_LANG2), LSFT_T(KC_TAB), KC_SPC, LT(3, KC_LANG1), KC_TRNS, KC_TRNS + KC_LCTL, KC_LGUI, LALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LANG1), KC_PGUP, KC_PGDN ), - + 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_JYEN, - MO(4), KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, + 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 ), - + LAYOUT( - KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_0, + 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_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + 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_WH_U, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, - KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_WH_D, KC_LANG1, KC_NO, KC_NO, KC_DEL, + 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_LANG2, KC_TRNS, KC_NO, KC_LANG1, KC_NO, KC_NO, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - + ), + 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(7), MO(8), + 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 ), - + LAYOUT( - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, DF(0), DF(2), + 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 - ), - - 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 - ), - - 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 - ), - - 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 - ), - + ), 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 ) - }; \ No newline at end of file diff --git a/keyboards/takashicompany/radialex/keymaps/default/keymap.c b/keyboards/takashicompany/radialex/keymaps/default/keymap.c index ad8274e432..7bb266e00b 100644 --- a/keyboards/takashicompany/radialex/keymaps/default/keymap.c +++ b/keyboards/takashicompany/radialex/keymaps/default/keymap.c @@ -21,34 +21,69 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - + LAYOUT( - LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_ESC, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, RADIALEX, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL, - KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_ESC, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, RADIALEX, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL, + KC_PSCR, KC_LCTL, KC_LGUI, LALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL ), + LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, - KC_TRNS, SFT_T(LSFT(KC_LBRC)), LSFT(KC_LBRC), LSFT(KC_SLSH), LSFT(KC_MINS), LSFT(KC_RO), LSFT(KC_SCLN), LSFT(KC_QUOT), LSFT(KC_RBRC), LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + LAYOUT( - KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, 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_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL, KC_TRNS, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), + KC_TRNS, KC_TRNS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_TRNS, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + LAYOUT( - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, - KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, RADIALEX, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS, + KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS, + KC_PSCR, KC_LCTL, KC_LGUI, LALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL + ), + + LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_TRNS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_JYEN, KC_TRNS, + KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + + LAYOUT( + KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, + KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_TRNS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, 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_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_NO, KC_LANG1, KC_NO, KC_NO, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_TRNS, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, DF(0), DF(3), + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS + ) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/takashicompany/radialex/keymaps/via/config.h b/keyboards/takashicompany/radialex/keymaps/via/config.h index 74f9e9e64f..c93405c3b3 100644 --- a/keyboards/takashicompany/radialex/keymaps/via/config.h +++ b/keyboards/takashicompany/radialex/keymaps/via/config.h @@ -17,4 +17,4 @@ along with this program. If not, see . #pragma once -#define DYNAMIC_KEYMAP_LAYER_COUNT 8 +#define DYNAMIC_KEYMAP_LAYER_COUNT 9 diff --git a/keyboards/takashicompany/radialex/keymaps/via/keymap.c b/keyboards/takashicompany/radialex/keymaps/via/keymap.c index ce9c9d78ea..b84ccc86b2 100644 --- a/keyboards/takashicompany/radialex/keymaps/via/keymap.c +++ b/keyboards/takashicompany/radialex/keymaps/via/keymap.c @@ -20,57 +20,65 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( - LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_ESC, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, RADIALEX, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL, - KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_ESC, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, RADIALEX, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL, + KC_PSCR, KC_LCTL, KC_LGUI, LALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL ), + LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, - KC_TRNS, SFT_T(LSFT(KC_LBRC)), LSFT(KC_LBRC), LSFT(KC_SLSH), LSFT(KC_MINS), LSFT(KC_RO), LSFT(KC_SCLN), LSFT(KC_QUOT), LSFT(KC_RBRC), LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + LAYOUT( - KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, 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_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL, KC_TRNS, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), + KC_TRNS, KC_TRNS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_TRNS, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + LAYOUT( - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, - KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, RADIALEX, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS, + KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS, + KC_PSCR, KC_LCTL, KC_LGUI, LALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL + ), + + LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_TRNS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_JYEN, KC_TRNS, + KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + 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_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, + KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_TRNS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - + 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_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, 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_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_NO, KC_LANG1, KC_NO, KC_NO, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_TRNS, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS ), - + LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - 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, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, DF(0), DF(3), + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS ) diff --git a/keyboards/tetris/keymaps/default/keymap.c b/keyboards/tetris/keymaps/default/keymap.c index 9e2a96ffc3..1b53ea80b9 100755 --- a/keyboards/tetris/keymaps/default/keymap.c +++ b/keyboards/tetris/keymaps/default/keymap.c @@ -37,7 +37,7 @@ void matrix_init_user(void) { } void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); if (RGB_encoder_dir != 0) { if (timer_elapsed(RGB_encoder_timer) > 1400) { @@ -152,7 +152,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) { bool encoder_update_user(uint8_t index, bool clockwise) { RGB_encoder_timer = timer_read(); RGB_encoder_timer2 = timer_read(); - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); if (clockwise) { RGB_encoder_dir = 1; } else { diff --git a/keyboards/thevankeyboards/minivan/keymaps/belak/config.h b/keyboards/thevankeyboards/minivan/keymaps/belak/config.h index 488ffa5418..47d96a29d8 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/belak/config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/belak/config.h @@ -4,6 +4,5 @@ #include "../../config.h" #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD #endif diff --git a/keyboards/thevankeyboards/minivan/keymaps/belak/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/belak/keymap.c index 0ed709747a..437b1881a4 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/belak/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/belak/keymap.c @@ -22,9 +22,6 @@ #define TD_LCTL TD(BE_TD_CTL) #define TD_LALT TD(BE_TD_ALT) -#define ACTION_TAP_DANCE_MOD_TAP(mod) \ - { .fn = {mod_tap_fn, NULL, mod_reset_fn}, .user_data = (void *)&((uint8_t){mod}), } - enum belak_td { BE_TD_GUI = 0, BE_TD_CTL, @@ -35,9 +32,15 @@ void mod_tap_fn(qk_tap_dance_state_t *state, void *user_data); void mod_reset_fn(qk_tap_dance_state_t *state, void *user_data); qk_tap_dance_action_t tap_dance_actions[] = { - [BE_TD_GUI] = ACTION_TAP_DANCE_MOD_TAP(KC_LGUI), - [BE_TD_CTL] = ACTION_TAP_DANCE_MOD_TAP(KC_LCTL), - [BE_TD_ALT] = ACTION_TAP_DANCE_MOD_TAP(KC_LALT), + [BE_TD_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(mod_tap_fn, NULL, mod_reset_fn), + [BE_TD_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(mod_tap_fn, NULL, mod_reset_fn), + [BE_TD_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(mod_tap_fn, NULL, mod_reset_fn), +}; + +uint16_t tap_dance_keys[] = { + [BE_TD_GUI] = KC_LGUI, + [BE_TD_CTL] = KC_LCTL, + [BE_TD_ALT] = KC_LALT, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -71,8 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void mod_tap_fn(qk_tap_dance_state_t *state, void *user_data) { switch (state->count) { case 1: - uint8_t *mod = (uint8_t *)user_data; - register_mods(MOD_BIT(*mod)); + register_mods(MOD_BIT(tap_dance_keys[state->keycode - QK_TAP_DANCE])); send_keyboard_report(); break; case 2: @@ -88,9 +90,8 @@ void mod_tap_fn(qk_tap_dance_state_t *state, void *user_data) { } void mod_reset_fn(qk_tap_dance_state_t *state, void *user_data) { - uint8_t *mod = (uint8_t *)user_data; layer_off(_L1); layer_off(_L2); - unregister_mods(MOD_BIT(*mod)); + unregister_mods(MOD_BIT(tap_dance_keys[state->keycode - QK_TAP_DANCE])); send_keyboard_report(); } diff --git a/keyboards/thevankeyboards/minivan/keymaps/halvves/config.h b/keyboards/thevankeyboards/minivan/keymaps/halvves/config.h index c6404f8ce5..6be8d217bd 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/halvves/config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/halvves/config.h @@ -1,7 +1,6 @@ #pragma once #define TAPPING_TERM 505 -#define PERMISSIVE_HOLD #define RETRO_TAPPING // smooth mousekeys (copied from the ergo ez config) diff --git a/keyboards/thevankeyboards/roadkit/keymaps/flipphone/keymap.c b/keyboards/thevankeyboards/roadkit/keymaps/flipphone/keymap.c index a6fa5ed722..b00cf80f5c 100644 --- a/keyboards/thevankeyboards/roadkit/keymaps/flipphone/keymap.c +++ b/keyboards/thevankeyboards/roadkit/keymaps/flipphone/keymap.c @@ -147,7 +147,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } uint8_t layer; - layer = get_highest_layer(layer_state); + layer = biton32(layer_state); switch (keycode) { case FPH_1 ... FPH_9: diff --git a/keyboards/tkw/grandiceps/rules.mk b/keyboards/tkw/grandiceps/rules.mk index f408feb059..8274edd22d 100644 --- a/keyboards/tkw/grandiceps/rules.mk +++ b/keyboards/tkw/grandiceps/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/tkw/stoutgat/v2/f411/rules.mk b/keyboards/tkw/stoutgat/v2/f411/rules.mk index b32a8b7f5b..c25a64f4b3 100644 --- a/keyboards/tkw/stoutgat/v2/f411/rules.mk +++ b/keyboards/tkw/stoutgat/v2/f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/tominabox1/bigboy/bigboy.c b/keyboards/tominabox1/bigboy/bigboy.c new file mode 100755 index 0000000000..3cb1ec442d --- /dev/null +++ b/keyboards/tominabox1/bigboy/bigboy.c @@ -0,0 +1,31 @@ +/* Copyright 2022 tominabox1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "bigboy.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_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + } + return true; +} +#endif /* ENCODER_ENABLE */ diff --git a/keyboards/tominabox1/bigboy/bigboy.h b/keyboards/tominabox1/bigboy/bigboy.h new file mode 100755 index 0000000000..ef3b4a44f9 --- /dev/null +++ b/keyboards/tominabox1/bigboy/bigboy.h @@ -0,0 +1,34 @@ +/* Copyright 2022 tominabox1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + + +#define LAYOUT( \ + K00, K01, K02, \ + K10, K11, K12 \ +) { \ + { K00, K01, K02, }, \ + { K10, K11, K12 }, \ +} + +#define LAYOUT_2us( \ + K00, K01, K02 \ +) { \ + { K00, K01, K02 }, \ +} diff --git a/keyboards/tominabox1/bigboy/config.h b/keyboards/tominabox1/bigboy/config.h new file mode 100755 index 0000000000..d6cc8e7b55 --- /dev/null +++ b/keyboards/tominabox1/bigboy/config.h @@ -0,0 +1,60 @@ +/* Copyright 2022 tominabox1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7431 +#define PRODUCT_ID 0x6262 +#define DEVICE_VER 0x0001 +#define MANUFACTURER tominabox1 +#define PRODUCT BigBoy + +/* key matrix size */ +#define DIRECT_PINS { \ + { D0, B1, B0 }, \ + { B7, B2, B3 } \ +} + +#define UNUSED_PINS + +#define ENCODERS_PAD_A { C6 } +#define ENCODERS_PAD_B { B6 } +#define ENCODER_RESOLUTION 2 + +#define RGB_DI_PIN B5 + +#ifdef RGB_DI_PIN + + #define RGBLED_NUM 5 + + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_RGB_TEST + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_TWINKLE + +#endif /* RGB_DI_PIN */ diff --git a/keyboards/tominabox1/bigboy/info.json b/keyboards/tominabox1/bigboy/info.json new file mode 100644 index 0000000000..49c5b16d85 --- /dev/null +++ b/keyboards/tominabox1/bigboy/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "BigBoy", + "url": "", + "maintainer": "tominabox1", + "layouts": { + "LAYOUT": { + "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"1,0", "x":0, "y":1}, {"label":"1,1", "x":1, "y":1}, {"label":"1,2", "x":2, "y":1}] + }, + "LAYOUT_2us": { + "layout": [{"label":"0,0", "x":0, "y":0, "h":2}, {"label":"0,1", "x":1, "y":0, "h":2}, {"label":"0,2", "x":2, "y":0, "h":2}] + } + } +} diff --git a/keyboards/tominabox1/bigboy/keymaps/default/keymap.c b/keyboards/tominabox1/bigboy/keymaps/default/keymap.c new file mode 100755 index 0000000000..dfb4030e68 --- /dev/null +++ b/keyboards/tominabox1/bigboy/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 tominabox1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#define LT1_SPC LT(1, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, KC_3, + KC_4, KC_5, MO(1) + ), + [1] = LAYOUT( + QK_BOOT, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO + ), + [2] = LAYOUT( + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO + ), +}; diff --git a/keyboards/tominabox1/bigboy/keymaps/default_2u/keymap.c b/keyboards/tominabox1/bigboy/keymaps/default_2u/keymap.c new file mode 100755 index 0000000000..7ad83d3d6f --- /dev/null +++ b/keyboards/tominabox1/bigboy/keymaps/default_2u/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2022 tominabox1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#define LT1_SPC LT(1, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_2us( + KC_1, KC_2, MO(1) + ), + [1] = LAYOUT_2us( + QK_BOOT, KC_NO, KC_NO + ), + [2] = LAYOUT_2us( + KC_NO, KC_NO, KC_NO + ), +}; diff --git a/keyboards/tominabox1/bigboy/readme.md b/keyboards/tominabox1/bigboy/readme.md new file mode 100755 index 0000000000..c76065637c --- /dev/null +++ b/keyboards/tominabox1/bigboy/readme.md @@ -0,0 +1,20 @@ +# BigBoy + +A macropad designed by dingusxmcgee_ and tominabox1. + +![bigboy](https://i.imgur.com/oqxx6sEh.jpg) + +* Keyboard Maintainer: [tominabox1](https://github.com/tominabox1) +* Hardware Supported: BigBoy + +Make example for this keyboard (after setting up your build environment): + + make bigboy:default + +Flashing example for this keyboard: + + make bigboy:default:flash + +**Reset Key:** To enter the bootloader, either push the RESET button on the PCB, hold the top left key when plugging in, or the a programmed button on the keymap. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/tominabox1/bigboy/rules.mk b/keyboards/tominabox1/bigboy/rules.mk new file mode 100755 index 0000000000..a31774530d --- /dev/null +++ b/keyboards/tominabox1/bigboy/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/tominabox1/le_chiffre/config.h b/keyboards/tominabox1/le_chiffre/config.h index b2e4c673a4..7abeaa1810 100644 --- a/keyboards/tominabox1/le_chiffre/config.h +++ b/keyboards/tominabox1/le_chiffre/config.h @@ -20,7 +20,7 @@ /* USB Device descriptor parameter */ #define VENDOR_ID 0x7431 #define PRODUCT_ID 0xD645 -#define DEVICE_VER 0x0001 + #define MANUFACTURER tominabox1 #define PRODUCT Le Chiffre @@ -28,19 +28,6 @@ #define MATRIX_ROWS 4 #define MATRIX_COLS 10 -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS { B3, D4, F1, C6 } -#define MATRIX_COL_PINS { F4, F5, B0, B2, B1, B4, D7, C7, D2, F7 } -#define UNUSED_PINS /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL @@ -53,14 +40,10 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Define encoder pads */ -#define ENCODERS_PAD_A { D5 } -#define ENCODERS_PAD_B { D3 } - /* * WS2812 Underglow Matrix options */ -#define RGB_DI_PIN F0 + #define RGBLED_NUM 11 #define DRIVER_LED_TOTAL RGBLED_NUM @@ -76,53 +59,4 @@ #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 -# 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 diff --git a/keyboards/tominabox1/le_chiffre/he/config.h b/keyboards/tominabox1/le_chiffre/he/config.h new file mode 100644 index 0000000000..bfba9b96be --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/he/config.h @@ -0,0 +1,39 @@ +/* Copyright 2022 tominabox1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define DEVICE_VER 0x0003 + + +/* COL2ROW, ROW2COL*/ +#undef DIODE_DIRECTION +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_ROW_PINS { B3, D4, F1, C6 } +#define MATRIX_COL_PINS { F4, F5, B0, B2, B1, B4, D7, C7, D2, F7 } +#define UNUSED_PINS + +/* Define encoder pads */ +#define ENCODERS_PAD_A { D5 } +#define ENCODERS_PAD_B { D3 } + +/* + * WS2812 Underglow Matrix options + */ +#define RGB_DI_PIN F0 diff --git a/keyboards/boardsource/beiwagon/beiwagon.c b/keyboards/tominabox1/le_chiffre/he/he.c similarity index 64% rename from keyboards/boardsource/beiwagon/beiwagon.c rename to keyboards/tominabox1/le_chiffre/he/he.c index f4ba170e6e..0e07cc7111 100644 --- a/keyboards/boardsource/beiwagon/beiwagon.c +++ b/keyboards/tominabox1/le_chiffre/he/he.c @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 tominabox1 * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -13,26 +13,21 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +#include "he.h" -#include "beiwagon.h" #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { - {7,8,9}, - {10,11,12}, - {13,14,15}, - {16,17,18} + // 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 } }, { - {2, 0}, {1, 0}, {0, 0}, - {2, 1}, {1, 1}, {0, 1}, - {2, 2}, {1, 2}, {0, 2}, - {2, 3}, {1, 3}, {0, 3}, -}, { - 2, 2, 2, 2, 2, 2, - 1, 1, 1, - 1, 4, 1, - 1, 4, 1, - 1, 1, 1 + // 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/boardsource/technik_s/technik_s.h b/keyboards/tominabox1/le_chiffre/he/he.h similarity index 54% rename from keyboards/boardsource/technik_s/technik_s.h rename to keyboards/tominabox1/le_chiffre/he/he.h index 97ee9a7f5f..fc14242dd9 100644 --- a/keyboards/boardsource/technik_s/technik_s.h +++ b/keyboards/tominabox1/le_chiffre/he/he.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* Copyright 2022 tominabox1 * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -13,19 +13,21 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - #pragma once #include "quantum.h" -#define LAYOUT( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ - K12, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ - K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ - K36, K37, K38, K39, K40, K41, K42, K43, K44, K45 \ - ) { \ - {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ - {K12, KC_NO, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ - {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ - {K36, K37, K38, K39,KC_NO,K40, K41,KC_NO,K42, K43, K44, K45} \ - } +#define XXX KC_NO + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K38, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K32, K34, K35, K37 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { XXX, XXX, K32, XXX, K34, K35, XXX, K37, K38, XXX } \ +} diff --git a/keyboards/tominabox1/le_chiffre/he/readme.md b/keyboards/tominabox1/le_chiffre/he/readme.md new file mode 100644 index 0000000000..eb0904a2ff --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/he/readme.md @@ -0,0 +1 @@ +The HE firmware is for the Hotswap Edition (HE) PCB by @nasp, available at checkerboards.xyz. diff --git a/keyboards/tominabox1/le_chiffre/he/rules.mk b/keyboards/tominabox1/le_chiffre/he/rules.mk new file mode 100644 index 0000000000..7054ebf63b --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/he/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +LTO_ENABLE = yes diff --git a/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c index 10a2fb0d4a..c626cba1cc 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c +++ b/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c @@ -144,13 +144,14 @@ void render_mod_status(uint8_t modifiers) { oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); } -bool oled_task_user(void) { +void oled_task_keymap(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(); + return false; } diff --git a/keyboards/tominabox1/le_chiffre/readme.md b/keyboards/tominabox1/le_chiffre/readme.md index ea18546c61..d2d688289e 100644 --- a/keyboards/tominabox1/le_chiffre/readme.md +++ b/keyboards/tominabox1/le_chiffre/readme.md @@ -4,12 +4,18 @@ 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. +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). + +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! + * Keyboard Maintainer: [TJ Campie](https://github.com/tominabox1) -* Hardware Supported: Le Chiffre (source not available at this time) +* Hardware Supported: [Le Chiffre](https://github.com/tominabox1/Le-Chiffre-Keyboard) * Hardware Availability: Bring your own case. Make example for this keyboard (after setting up your build environment): - make tominabox1/le_chiffre:default + make tominabox1/le_chiffre/rev1:default + make tominabox1/le_chiffre/rev2:default + make tominabox1/le_chiffre/he:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/tominabox1/le_chiffre/rev1/config.h b/keyboards/tominabox1/le_chiffre/rev1/config.h new file mode 100644 index 0000000000..0e5b6887cd --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/rev1/config.h @@ -0,0 +1,44 @@ +/* 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 . + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define DEVICE_VER 0x0001 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B3, D4, F1, C6 } +#define MATRIX_COL_PINS { F4, F5, B0, B2, B1, B4, D7, C7, D2, F7 } +#define UNUSED_PINS + +/* Define encoder pads */ +#define ENCODERS_PAD_A { D5 } +#define ENCODERS_PAD_B { D3 } + +/* + * WS2812 Underglow Matrix options + */ +#define RGB_DI_PIN F0 diff --git a/keyboards/tominabox1/le_chiffre/le_chiffre.c b/keyboards/tominabox1/le_chiffre/rev1/rev1.c similarity index 97% rename from keyboards/tominabox1/le_chiffre/le_chiffre.c rename to keyboards/tominabox1/le_chiffre/rev1/rev1.c index 8eca292cce..e3b2b014f4 100644 --- a/keyboards/tominabox1/le_chiffre/le_chiffre.c +++ b/keyboards/tominabox1/le_chiffre/rev1/rev1.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 "le_chiffre.h" +#include "rev1.h" #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { diff --git a/keyboards/tominabox1/le_chiffre/le_chiffre.h b/keyboards/tominabox1/le_chiffre/rev1/rev1.h similarity index 100% rename from keyboards/tominabox1/le_chiffre/le_chiffre.h rename to keyboards/tominabox1/le_chiffre/rev1/rev1.h diff --git a/keyboards/tominabox1/le_chiffre/rev1/rules.mk b/keyboards/tominabox1/le_chiffre/rev1/rules.mk new file mode 100644 index 0000000000..2cd4ebf52f --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/rev1/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +LTO_ENABLE = yes + diff --git a/keyboards/tominabox1/le_chiffre/rev2/config.h b/keyboards/tominabox1/le_chiffre/rev2/config.h new file mode 100644 index 0000000000..c37f4775aa --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/rev2/config.h @@ -0,0 +1,43 @@ +/* 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 . + */ +#pragma once + +#include "config_common.h" + +#define DEVICE_VER 0x0002 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B3, F6, F7, C7 } +#define MATRIX_COL_PINS { B2, F0, F1, F4, F5, B5, B4, D7, D6, D4 } +#define UNUSED_PINS + +/* Define encoder pads */ +#define ENCODERS_PAD_A { B6 } +#define ENCODERS_PAD_B { C6 } + +/* + * WS2812 Underglow Matrix options + */ +#define RGB_DI_PIN B1 diff --git a/keyboards/tominabox1/le_chiffre/rev2/readme.md b/keyboards/tominabox1/le_chiffre/rev2/readme.md new file mode 100644 index 0000000000..b8c65bc0e0 --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/rev2/readme.md @@ -0,0 +1,2 @@ +Updated v2 PCB with better plate screw clearances, ESD protection, as well as sweet sweet curvy traces. +Rev. 2.0 requires new firmware due to the pinout changing to facilitate prettier trace runs. \ No newline at end of file diff --git a/keyboards/tominabox1/le_chiffre/rev2/rev2.c b/keyboards/tominabox1/le_chiffre/rev2/rev2.c new file mode 100644 index 0000000000..e15aa35243 --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/rev2/rev2.c @@ -0,0 +1,33 @@ +/* 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 "rev2.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/rev2.h b/keyboards/tominabox1/le_chiffre/rev2/rev2.h new file mode 100644 index 0000000000..0277e1b42d --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/rev2/rev2.h @@ -0,0 +1,33 @@ +/* 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 . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K38, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K32, K34, K35, K37 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { XXX, XXX, K32, XXX, K34, K35, XXX, K37, K38, XXX } \ +} diff --git a/keyboards/tominabox1/le_chiffre/rev2/rules.mk b/keyboards/tominabox1/le_chiffre/rev2/rules.mk new file mode 100644 index 0000000000..2cd4ebf52f --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/rev2/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +LTO_ENABLE = yes + diff --git a/keyboards/tominabox1/le_chiffre/rules.mk b/keyboards/tominabox1/le_chiffre/rules.mk index bc5775a151..57b3d94eab 100644 --- a/keyboards/tominabox1/le_chiffre/rules.mk +++ b/keyboards/tominabox1/le_chiffre/rules.mk @@ -1,19 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # Enable N-Key Rollover -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -ENCODER_ENABLE = yes -OLED_ENABLE = no -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = WS2812 -LTO_ENABLE = yes +DEFAULT_FOLDER = tominabox1/le_chiffre/rev1 diff --git a/keyboards/torn/keymaps/manna-harbour_miryoku/config.h b/keyboards/torn/keymaps/manna-harbour_miryoku/config.h index 89a67474ca..a71d199fb8 100644 --- a/keyboards/torn/keymaps/manna-harbour_miryoku/config.h +++ b/keyboards/torn/keymaps/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c +++ b/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/keyboards/tronguylabs/m122_3270/blackpill/rules.mk b/keyboards/tronguylabs/m122_3270/blackpill/rules.mk index c802f00412..821cf29632 100644 --- a/keyboards/tronguylabs/m122_3270/blackpill/rules.mk +++ b/keyboards/tronguylabs/m122_3270/blackpill/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/tzarc/djinn/djinn.c b/keyboards/tzarc/djinn/djinn.c index 5e5fe44c67..23f59991a9 100644 --- a/keyboards/tzarc/djinn/djinn.c +++ b/keyboards/tzarc/djinn/djinn.c @@ -70,7 +70,7 @@ void keyboard_post_init_kb(void) { wait_ms(150); // Initialise the LCD - lcd = qp_ili9341_make_spi_device(320, 240, LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN, 4, 0); + lcd = qp_ili9341_make_spi_device(320, 240, LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN, 4, 3); qp_init(lcd, QP_ROTATION_0); // Turn on the LCD and clear the display diff --git a/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c b/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c index 8927a8ee0a..82a7e52808 100644 --- a/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c +++ b/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c @@ -104,7 +104,7 @@ void rgbflag(uint8_t r, uint8_t g, uint8_t b) { } void set_state_leds(void) { - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _MOVE: rgbflag(C_BLU); break; @@ -192,3 +192,4 @@ void suspend_wakeup_init_user(void) backlight_set(backlight_config.level); rgblight_set(); } + diff --git a/keyboards/waterfowl/config.h b/keyboards/waterfowl/config.h new file mode 100644 index 0000000000..63dc125dca --- /dev/null +++ b/keyboards/waterfowl/config.h @@ -0,0 +1,57 @@ +/* Copyright 2022 CyanDuck +* +* This program is free software: you can 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 "config_common.h" + + +/* USB Device properties */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x9CE3 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CyanDuck +#define PRODUCT Waterfowl + +/* Key matrix size */ +/* Rows are doubled up */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 5 + +// Wiring +#define MATRIX_ROW_PINS { D4, C6, D7, E6 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1 } + +// COL2ROW, ROW2COL +#define DIODE_DIRECTION COL2ROW + +// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed +#define DEBOUNCE 5 + +// Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + +#define SOFT_SERIAL_PIN D2 +#define OLED_DISPLAY_128X64 +#define SPLIT_MODS_ENABLE +#define SPLIT_WPM_ENABLE +#define SPLIT_USB_DETECT + +// Encoders +#define ENCODERS_PAD_A { B4, B3 } +#define ENCODERS_PAD_B { B5, B2 } +#define ENCODER_RESOLUTIONS { 4, 2 } + +// Tapping term +#define TAPPING_TERM 200 \ No newline at end of file diff --git a/keyboards/waterfowl/info.json b/keyboards/waterfowl/info.json new file mode 100644 index 0000000000..8731803a25 --- /dev/null +++ b/keyboards/waterfowl/info.json @@ -0,0 +1,54 @@ +{ + "keyboard_name": "Waterfowl", + "url": "", + "maintainer": "JW2586", + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":1}, + {"x":1, "y":0.25}, + {"x":2, "y":0}, + {"x":3, "y":0.375}, + {"x":4, "y":0.5}, + {"x":9, "y":0.5}, + {"x":10, "y":0.375}, + {"x":11, "y":0}, + {"x":12, "y":0.25}, + {"x":13, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":1.25}, + {"x":2, "y":1}, + {"x":3, "y":1.375}, + {"x":4, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.375}, + {"x":11, "y":1}, + {"x":12, "y":1.25}, + {"x":13, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":2.25}, + {"x":2, "y":2}, + {"x":3, "y":2.375}, + {"x":4, "y":2.5}, + {"x":9, "y":2.5}, + {"x":10, "y":2.375}, + {"x":11, "y":2}, + {"x":12, "y":2.25}, + {"x":13, "y":3}, + + {"x":2, "y":3.5}, + {"x":3.5, "y":3.5}, + {"x":4.5, "y":3.7}, + {"x":5.5, "y":4.1}, + {"x":5.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":7.5, "y":4.1}, + {"x":8.5, "y":3.7}, + {"x":9.5, "y":3.5}, + {"x":11, "y":3.5} + ] + } + } +} diff --git a/keyboards/waterfowl/keymaps/cyanduck/keymap.c b/keyboards/waterfowl/keymaps/cyanduck/keymap.c new file mode 100644 index 0000000000..ffcf18ae26 --- /dev/null +++ b/keyboards/waterfowl/keymaps/cyanduck/keymap.c @@ -0,0 +1,129 @@ +/* Copyright 2022 CyanDuck +* +* This program is free software: you can 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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _COLEMAKDH, + _NAVNUM, + _SYM, + _FUNC, + _GAME +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Colemak-DH + * + * ,----------------------------------. ,----------------------------------. + * | Q | W | F | P | B | | J | L | U | Y | ; | + * |------+------+------+------+------| |------+------+------+------+------| + * | A | R | S | T | G | | M | N | E | I | O | + * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| + * | Z | X | C | D | V | | 2 | | 3 | | K | H | , | . | / | + * `----------------------------------' `-----' `-----' `----------------------------------' + * ,-----. ,--------------------. ,--------------------. ,-----. + * | 1 | | DEL | SPACE | TAB | | TO(0) | BS | ENTER | | 4 | + * `-----' `--------------------' `--------------------' `-----' + */ +[_COLEMAKDH] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, MT(MOD_LALT, KC_R), MT(MOD_LCTL, KC_S), MT(MOD_LSFT, KC_T), KC_G, KC_M, MT(MOD_LSFT, KC_N), MT(MOD_LCTL, KC_E), MT(MOD_LALT, KC_I), KC_O, + KC_Z, KC_X, KC_C, MT(MOD_LGUI, KC_D), KC_V, KC_K, MT(MOD_LGUI, KC_H), KC_COMM, KC_DOT, KC_SLSH, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4 +), + +/* NAVNUM + * + * ,----------------------------------. ,----------------------------------. + * | ESC | PgUp | UP | PgDn | TO(4)| | / | 7 | 8 | 9 | - | + * |------+------+------+------+------| |------+------+------+------+------| + * | Home | Left | Down | Right| End | | = | 4 | 5 | 6 | + | + * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| + * | | | INS | TO(2)| | | 2 | | 3 | | 0 | 1 | 2 | 3 | * | + * `----------------------------------' `-----' `-----' `----------------------------------' + * ,-----. ,--------------------. ,--------------------. ,-----. + * | 1 | | DEL | SPACE | MO(3)| | TO(0) | BS | ENTER | | 4 | + * `-----' `--------------------' `--------------------' `-----' + */ +[_NAVNUM] = LAYOUT( + KC_ESC, KC_PGUP, KC_UP, KC_PGDN, TO(4), KC_SLSH, KC_7, KC_8, KC_9, KC_MINS, + KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_EQL, KC_4, KC_5, KC_6, KC_PLUS, + KC_NO, KC_NO, KC_INS, TO(2), KC_NO, KC_0, KC_1, KC_2, KC_3, KC_ASTR, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_ESC, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4 +), + +/* SYM + * + * ,----------------------------------. ,----------------------------------. + * | % | @ | [ | ] | \ | | ¦ | ¬ | ^ | | | + * |------+------+------+------+------| |------+------+------+------+------| + * | # | ! | ( | ) | | | | _ | ' | " | ~ | ` | + * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| + * | $ | £ | { | } | & | | 2 | | 3 | | TO(1)| | | | | + * `----------------------------------' `-----' `-----' `----------------------------------' + * ,-----. ,--------------------. ,--------------------. ,-----. + * | 1 | | DEL | SPACE | TAB | | TO(0) | BS | ENTER | | 4 | + * `-----' `--------------------' `--------------------' `-----' + */ +[_SYM] = LAYOUT( + KC_PERC, S(KC_QUOT), KC_LBRC, KC_RBRC, KC_NUBS, RALT(KC_GRV), S(KC_GRV), KC_CIRC, KC_NO, KC_NO, + KC_NONUS_HASH, KC_EXLM, KC_LPRN, KC_RPRN, S(KC_NUBS), KC_UNDS, KC_QUOT, S(KC_2), S(KC_NUHS), KC_GRV, + KC_DLR, S(KC_3), KC_LCBR, KC_RCBR, KC_AMPR, TO(1), KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4 +), + +/* FUNC + * + * ,----------------------------------. ,----------------------------------. + * | | | | | | | | F7 | F8 | F9 | F11 | + * |------+------+------+------+------| |------+------+------+------+------| + * | | | | | | | | F4 | F5 | F6 | F12 | + * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| + * | Reset| | | | | | 2 | | 3 | | F10 | F1 | F2 | F3 | F13 | + * `----------------------------------' `-----' `-----' `----------------------------------' + * ,-----. ,--------------------. ,--------------------. ,-----. + * | 1 | | DEL | SPACE | TAB | | TO(0) | BS | ENTER | | 4 | + * `-----' `--------------------' `--------------------' `-----' + */ +[_FUNC] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F11, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F4, KC_F5, KC_F6, KC_F12, + RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_F10, KC_F1, KC_F2, KC_F3, KC_F13, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4 +), + +/* GAME + * + * ,----------------------------------. ,----------------------------------. + * | ESC | Q | W | E | R | | | | | | | + * |------+------+------+------+------| |------+------+------+------+------| + * |Shift | A | S | D | F | | | | | | | + * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| + * | Ctrl | Z | X | C | V | | 2 | | 3 | | | | | | | + * `----------------------------------' `-----' `-----' `----------------------------------' + * ,-----. ,--------------------. ,--------------------. ,-----. + * | 1 | | T | SPACE | TAB | | TO(0) | BS | ENTER | | 4 | + * `-----' `--------------------' `--------------------' `-----' + */ +[_GAME] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, KC_T, KC_SPC, KC_TAB, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4 +), +}; diff --git a/keyboards/waterfowl/keymaps/default/keymap.c b/keyboards/waterfowl/keymaps/default/keymap.c new file mode 100644 index 0000000000..f233d00134 --- /dev/null +++ b/keyboards/waterfowl/keymaps/default/keymap.c @@ -0,0 +1,108 @@ +/* Copyright 2022 CyanDuck +* +* This program is free software: you can 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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY, + _NAVNUM, + _SYM, + _FUNC, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* 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 | | 2 | | 3 | | N | M | , | . | / | + * `----------------------------------' `-----' `-----' `----------------------------------' + * ,-----. ,--------------------. ,--------------------. ,-----. + * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 | + * `-----' `--------------------' `--------------------' `-----' + */ +[_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LCTL, KC_D), MT(MOD_LSFT, KC_F), KC_G, KC_H, MT(MOD_LSFT, KC_J), MT(MOD_LCTL, KC_K), MT(MOD_LALT, KC_L), MT(MOD_LGUI, KC_SCLN), + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 +), + +/* NAVNUM + * + * ,----------------------------------. ,----------------------------------. + * | | PgUp | UP | PgDn | | | / | 7 | 8 | 9 | - | + * |------+------+------+------+------| |------+------+------+------+------| + * | Home | Left | Down | Right| End | | = | 4 | 5 | 6 | + | + * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| + * | | | INS | | | | 2 | | 3 | | 0 | 1 | 2 | 3 | * | + * `----------------------------------' `-----' `-----' `----------------------------------' + * ,-----. ,--------------------. ,--------------------. ,-----. + * | 1 | | DEL | SPACE | MO(3)| | ESC | BS | ENTER | | 4 | + * `-----' `--------------------' `--------------------' `-----' + */ +[_NAVNUM] = LAYOUT( + KC_NO, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_SLSH, KC_7, KC_8, KC_9, KC_MINS, + KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_EQL, KC_4, KC_5, KC_6, KC_PLUS, + KC_NO, KC_NO, KC_INS, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_ASTR, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 +), + +/* SYM + * + * ,----------------------------------. ,----------------------------------. + * | % | @ | [ | ] | \ | | ¦ | ¬ | ^ | | | + * |------+------+------+------+------| |------+------+------+------+------| + * | # | ! | ( | ) | | | | _ | ' | " | ~ | ` | + * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| + * | $ | £ | { | } | & | | 2 | | 3 | | | | | | | + * `----------------------------------' `-----' `-----' `----------------------------------' + * ,-----. ,--------------------. ,--------------------. ,-----. + * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 | + * `-----' `--------------------' `--------------------' `-----' + */ +[_SYM] = LAYOUT( + KC_PERC, S(KC_QUOT), KC_LBRC, KC_RBRC, KC_NUBS, RALT(KC_GRV), S(KC_GRV), KC_CIRC, KC_NO, KC_NO, + KC_NONUS_HASH, KC_EXLM, KC_LPRN, KC_RPRN, S(KC_NUBS), KC_UNDS, KC_QUOT, S(KC_2), S(KC_NUHS), KC_GRV, + KC_DLR, S(KC_3), KC_LCBR, KC_RCBR, KC_AMPR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 +), + +/* FUNC + * + * ,----------------------------------. ,----------------------------------. + * | | | | | | | | F7 | F8 | F9 | F11 | + * |------+------+------+------+------| |------+------+------+------+------| + * | | | | | | | | F4 | F5 | F6 | F12 | + * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------| + * | Reset| | | | | | 2 | | 3 | | F10 | F1 | F2 | F3 | F13 | + * `----------------------------------' `-----' `-----' `----------------------------------' + * ,-----. ,--------------------. ,--------------------. ,-----. + * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 | + * `-----' `--------------------' `--------------------' `-----' + */ +[_FUNC] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F11, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F4, KC_F5, KC_F6, KC_F12, + RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_F10, KC_F1, KC_F2, KC_F3, KC_F13, + KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4 +), +}; diff --git a/keyboards/waterfowl/readme.md b/keyboards/waterfowl/readme.md new file mode 100644 index 0000000000..9b504ca769 --- /dev/null +++ b/keyboards/waterfowl/readme.md @@ -0,0 +1,21 @@ +# Waterfowl + +The Waterfowl is a 36-key split keyboard inspired by the Kyria and Arch-36. + +* Keyboard Maintainer: [CyanDuck](https://github.com/JW2586) +* Hardware Supported: Pro Micro 5V/16MHz and compatible. + +Make example for this keyboard (after setting up your build environment): + + make waterfowl:default + +Example of flashing this keyboard: + + make waterfowl:default:flash + +Enter the bootloader by: +- Press the key mapped to reset (bottom left key in FUNC layer/layer 3) +- Press the reset button on the PCB +- Connect GND and RST pins on pro micro + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/waterfowl/rules.mk b/keyboards/waterfowl/rules.mk new file mode 100644 index 0000000000..1515d5f866 --- /dev/null +++ b/keyboards/waterfowl/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = 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 diff --git a/keyboards/waterfowl/waterfowl.c b/keyboards/waterfowl/waterfowl.c new file mode 100644 index 0000000000..55dcdf4796 --- /dev/null +++ b/keyboards/waterfowl/waterfowl.c @@ -0,0 +1,161 @@ +/* Copyright 2022 CyanDuck +* +* This program is free software: you can 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 "waterfowl.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (index == 0) { // Left roller + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + } else if (index == 1) { // Left encoder + if (clockwise) { + tap_code16(S(KC_TAB)); + } else { + tap_code(KC_TAB); + } + } else if (index == 2) { // Right roller + if (clockwise) { + tap_code16(S(KC_MS_WH_DOWN)); + } else { + tap_code16(S(KC_MS_WH_UP)); + } + } else if (index == 3) { // Right encoder + if (clockwise) { + tap_code(KC_RIGHT); + } else { + tap_code(KC_LEFT); + } + } + + return true; +} +#endif + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + if (is_keyboard_master() && is_keyboard_left()) { + return OLED_ROTATION_90; + } else { + return OLED_ROTATION_270; + } +} +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_master()) { + // Host Keyboard Layer Status + oled_write_P(PSTR("LAYER:\n"), false); + oled_write_P(PSTR("\n"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("DEFAULT\n\n\n\n"), false); + break; + case 3: + oled_write_P(PSTR("FUNCTION\n\n\n\n"), false); + break; + case 2: + oled_write_P(PSTR("SYMBOLS\n\n\n\n"), false); + break; + case 1: + oled_write_P(PSTR("NAVIGATIONAND\nNUMBERS\n"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } + } else { + static const char PROGMEM my_logo[] = { + // Paste the code from the previous step below this line! + // 'waterfowl for OLED', 64x128px +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x10, 0x10, 0x08, 0x0c, 0x04, 0x04, 0x02, 0x02, 0x02, 0x01, +0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1a, 0x26, 0x40, +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, 0xe0, +0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x16, 0x1c, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x03, 0x0c, 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, 0x80, 0xf0, 0xfc, 0xff, +0x78, 0xf8, 0xfc, 0xfe, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xfc, +0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x3f, 0x1e, 0x1c, 0x1c, 0x14, 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, +0x10, 0x10, 0x10, 0x30, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x38, 0x7c, 0x7e, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x0f, 0x07, 0x03, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xc0, 0x38, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0x38, +0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0x3c, 0x03, 0x80, +0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x80, 0xc0, 0x40, 0x7f, 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, 0x06, 0x04, 0x0c, 0x0c, 0x0c, 0x04, 0x07, 0x02, 0x03, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x02, 0x06, 0x06, 0x06, +0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 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, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(my_logo, sizeof(my_logo)); + } + return true; +} +#endif diff --git a/keyboards/waterfowl/waterfowl.h b/keyboards/waterfowl/waterfowl.h new file mode 100644 index 0000000000..0c7f897dbf --- /dev/null +++ b/keyboards/waterfowl/waterfowl.h @@ -0,0 +1,44 @@ +/* Copyright 2022 CyanDuck +* +* This program is free software: you can 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" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + L00, L01, L02, L03, L04, R04, R03, R02, R01, R00, \ + L05, L06, L07, L08, L09, R09, R08, R07, R06, R05, \ + L10, L11, L12, L13, L14, R14, R13, R12, R11, R10, \ + L15, L16, L17, L18, L19, R19, R18, R17, R16, R15 \ +) \ +{ \ + { L00, L01, L02, L03, L04 }, \ + { L05, L06, L07, L08, L09 }, \ + { L10, L11, L12, L13, L14 }, \ + { L15, L16, L17, L18, L19 }, \ + { R00, R01, R02, R03, R04 }, \ + { R05, R06, R07, R08, R09 }, \ + { R10, R11, R12, R13, R14 }, \ + { R15, R16, R17, R18, R19}, \ +} diff --git a/keyboards/westm/westm68/config.h b/keyboards/westm/westm68/config.h index d1063583d3..96534c80c7 100644 --- a/keyboards/westm/westm68/config.h +++ b/keyboards/westm/westm68/config.h @@ -23,7 +23,6 @@ /* USB Device descriptor parameter */ #define VENDOR_ID 0x574D // WM -#define PRODUCT_ID 0x0001 #define DEVICE_VER 0x0001 #define MANUFACTURER WestM #define PRODUCT WestM68 @@ -43,3 +42,7 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE + +/* Hold ESC key (first key of first column) to trigger bootloader */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file diff --git a/keyboards/westm/westm68/keymaps/default/keymap.c b/keyboards/westm/westm68/keymaps/default/keymap.c index d49c8f81ea..0ed64abebd 100755 --- a/keyboards/westm/westm68/keymaps/default/keymap.c +++ b/keyboards/westm/westm68/keymaps/default/keymap.c @@ -20,15 +20,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi( /* 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_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_BSLASH, 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, + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RIGHT ), [1] = LAYOUT_65_ansi( /* FN */ - KC_ESC, KC_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, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + KC_GRAVE, KC_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_CAPS_LOCK, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, KC__VOLDOWN, KC__VOLUP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; \ No newline at end of file diff --git a/keyboards/westm/westm68/keymaps/via/keymap.c b/keyboards/westm/westm68/keymaps/via/keymap.c index a4818ea81a..604213140d 100644 --- a/keyboards/westm/westm68/keymaps/via/keymap.c +++ b/keyboards/westm/westm68/keymaps/via/keymap.c @@ -18,31 +18,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi( /* Base */ - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, + KC_ESC, KC_1, KC_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_BSLASH, 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_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), [1] = LAYOUT_65_ansi( /* FN */ - KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + KC_GRAVE, KC_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_CAPS_LOCK, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, KC__VOLDOWN, KC__VOLUP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_65_ansi( /* 2 */ - KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, KC__VOLDOWN, KC__VOLUP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + KC_GRAVE, KC_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_CAPS_LOCK, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, + _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_65_ansi( /* 3 */ - KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, KC__VOLDOWN, KC__VOLUP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + KC_GRAVE, KC_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_CAPS_LOCK, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, + _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/westm/westm68/rev1/config.h b/keyboards/westm/westm68/rev1/config.h index 054b47cca2..488d644c3e 100644 --- a/keyboards/westm/westm68/rev1/config.h +++ b/keyboards/westm/westm68/rev1/config.h @@ -16,6 +16,8 @@ #pragma once +#define PRODUCT_ID 0x0101 + // The pin connected to the data pin of the LEDs #define RGB_DI_PIN A8 #define RGBLED_NUM 16 diff --git a/keyboards/westm/westm68/rev1/rules.mk b/keyboards/westm/westm68/rev1/rules.mk index 1e3cebb145..e69de29bb2 100644 --- a/keyboards/westm/westm68/rev1/rules.mk +++ b/keyboards/westm/westm68/rev1/rules.mk @@ -1 +0,0 @@ -RGBLIGHT_ENABLE = yes diff --git a/keyboards/westm/westm68/rev2/config.h b/keyboards/westm/westm68/rev2/config.h new file mode 100644 index 0000000000..94ce14d3f9 --- /dev/null +++ b/keyboards/westm/westm68/rev2/config.h @@ -0,0 +1,33 @@ +/* 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 PRODUCT_ID 0x0102 + +// The pin connected to the data pin of the LEDs +#define RGB_DI_PIN A8 +#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/rev2.c b/keyboards/westm/westm68/rev2/rev2.c new file mode 100644 index 0000000000..ca7efe7860 --- /dev/null +++ b/keyboards/westm/westm68/rev2/rev2.c @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "rev2.h" \ No newline at end of file diff --git a/keyboards/westm/westm68/rev2/rev2.h b/keyboards/westm/westm68/rev2/rev2.h new file mode 100644 index 0000000000..e30df949a9 --- /dev/null +++ b/keyboards/westm/westm68/rev2/rev2.h @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "westm68.h" \ No newline at end of file diff --git a/keyboards/mechmini/.noci b/keyboards/westm/westm68/rev2/rules.mk similarity index 100% rename from keyboards/mechmini/.noci rename to keyboards/westm/westm68/rev2/rules.mk diff --git a/keyboards/westm/westm68/rules.mk b/keyboards/westm/westm68/rules.mk index a54cc39924..d92a34591f 100644 --- a/keyboards/westm/westm68/rules.mk +++ b/keyboards/westm/westm68/rules.mk @@ -17,5 +17,7 @@ CONSOLE_ENABLE = yes # 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 +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output + +DEFAULT_FOLDER = westm/westm68/rev2 diff --git a/keyboards/westm/westm9/chconf.h b/keyboards/westm/westm9/chconf.h new file mode 100644 index 0000000000..d79a01d36b --- /dev/null +++ b/keyboards/westm/westm9/chconf.h @@ -0,0 +1,26 @@ +/* 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 CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next \ No newline at end of file diff --git a/keyboards/westm/westm9/config.h b/keyboards/westm/westm9/config.h new file mode 100644 index 0000000000..4175b5b3f8 --- /dev/null +++ b/keyboards/westm/westm9/config.h @@ -0,0 +1,48 @@ +/* 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 + +#include "config_common.h" + +/* Ensure we jump to bootloader if the RESET keycode was pressed */ +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x574D // WM +#define DEVICE_VER 0x0001 +#define MANUFACTURER WestM +#define PRODUCT WestM9 + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +#define MATRIX_ROW_PINS { A14, A15, B3 } +#define MATRIX_COL_PINS { B8, B5, B4 } +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Hold ESC key (first key of first column) to trigger bootloader */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file diff --git a/keyboards/mechwild/waka60/f401/eeprom/halconf.h b/keyboards/westm/westm9/halconf.h similarity index 95% rename from keyboards/mechwild/waka60/f401/eeprom/halconf.h rename to keyboards/westm/westm9/halconf.h index b57977316a..285215f1b9 100644 --- a/keyboards/mechwild/waka60/f401/eeprom/halconf.h +++ b/keyboards/westm/westm9/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Kyle McCreery +/* 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 diff --git a/keyboards/westm/westm9/info.json b/keyboards/westm/westm9/info.json new file mode 100644 index 0000000000..5c36e74ab4 --- /dev/null +++ b/keyboards/westm/westm9/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "WestM9", + "url": "https://github.com/WestMProducts", + "maintainer": "WestM", + "layouts": { + "LAYOUT_macropad": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/westm/westm9/keymaps/default/keymap.c b/keyboards/westm/westm9/keymaps/default/keymap.c new file mode 100755 index 0000000000..181f5af6c1 --- /dev/null +++ b/keyboards/westm/westm9/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_macropad( + KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, + KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_NO, KC_NO, MO(1) + ), + [1] = LAYOUT_macropad( + RGB_TOG, RGB_RMOD, RGB_SAI, + RGB_VAD, RGB_VAI, RGB_SAD, + RGB_HUD, RGB_HUI, KC_NO + ) +}; \ No newline at end of file diff --git a/keyboards/westm/westm9/keymaps/via/keymap.c b/keyboards/westm/westm9/keymaps/via/keymap.c new file mode 100644 index 0000000000..9b9166ce8b --- /dev/null +++ b/keyboards/westm/westm9/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* 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 . + */ + + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_macropad( + KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, + KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_NO, KC_NO, MO(1) + ), + [1] = LAYOUT_macropad( + RGB_TOG, RGB_RMOD, RGB_MOD, + RGB_VAD, RGB_VAI, KC_NO, + RGB_HUD, RGB_HUI, KC_NO + ), + [2] = LAYOUT_macropad( + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO + ), + [3] = LAYOUT_macropad( + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO + ) +}; diff --git a/keyboards/westm/westm9/keymaps/via/rules.mk b/keyboards/westm/westm9/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/westm/westm9/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mechwild/waka60/f401/eeprom/mcuconf.h b/keyboards/westm/westm9/mcuconf.h similarity index 91% rename from keyboards/mechwild/waka60/f401/eeprom/mcuconf.h rename to keyboards/westm/westm9/mcuconf.h index da43021663..328b5d45a9 100644 --- a/keyboards/mechwild/waka60/f401/eeprom/mcuconf.h +++ b/keyboards/westm/westm9/mcuconf.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Kyle McCreery +/* 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 @@ -19,4 +19,4 @@ #include_next #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE +#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/westm/westm9/readme.md b/keyboards/westm/westm9/readme.md new file mode 100644 index 0000000000..883aab3c35 --- /dev/null +++ b/keyboards/westm/westm9/readme.md @@ -0,0 +1,16 @@ +# WestM + +A 9 key Macropad + +## Bootloader +* **Physical reset button**: Briefly press the button on the back of the PCB. +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard. + +* Keyboard Maintainer: [WestM](https://github.com/westm00) +* Hardware Supported: WM9 + +Make example for this keyboard (after setting up your build environment): + + make westm/westm9/rev1: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). \ No newline at end of file diff --git a/keyboards/westm/westm9/rev1/config.h b/keyboards/westm/westm9/rev1/config.h new file mode 100644 index 0000000000..48ed5d6869 --- /dev/null +++ b/keyboards/westm/westm9/rev1/config.h @@ -0,0 +1,56 @@ +/* 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 PRODUCT_ID 0x0301 + +// The pin connected to the data pin of the LEDs +#define RGB_DI_PIN F1 +#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 + +/* I2C for Oled */ +#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 + +/* Required for SH1106 Oled Driver */ +#define OLED_IC OLED_IC_SH1106 +#define OLED_COLUMN_OFFSET 2 // SH1106 screen is a little off to the left + +#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 + +#define OLED_UPDATE_INTERVAL 66 \ No newline at end of file diff --git a/keyboards/westm/westm9/rev1/rev1.c b/keyboards/westm/westm9/rev1/rev1.c new file mode 100644 index 0000000000..666dcaa218 --- /dev/null +++ b/keyboards/westm/westm9/rev1/rev1.c @@ -0,0 +1,116 @@ +/* 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 . + */ + +#include "rev1.h" + +void board_init(void) { + // Purely for fixing problem on prototype board + rgblight_toggle(); // Fixes if LEDs were off in the first place buggy LED turns on + rgblight_set(); // Need this to fix buggy first LED upon plugging in PCB + + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; // DMA re-map, you may not need this depending on your +} + +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_0; +} + +static void render_logo(void) { + static const char PROGMEM my_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xfc, 0x0c, 0x0c, 0x0c, 0x18, 0x30, + 0x60, 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, 0x80, 0xc0, 0xe0, 0x70, 0x30, 0x30, 0x70, 0xe0, + 0xc0, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x30, 0xb8, 0x98, 0x18, 0x18, 0xf8, 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, 0x10, 0xff, 0xc7, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x0f, 0x3c, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, + 0x70, 0x30, 0x10, 0x18, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0x8f, 0xc3, 0xc1, 0xc0, 0xe0, 0xe0, 0x70, 0x38, 0x1f, + 0x0f, 0x07, 0xe3, 0xf1, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 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, 0xf8, 0xfc, 0x07, 0x07, 0x07, 0x07, 0x06, 0x0e, + 0x0c, 0x0c, 0x18, 0x18, 0x80, 0xe0, 0xff, 0xfe, 0x7c, 0x38, 0x04, 0x06, 0x03, 0xc1, 0xc1, 0xe0, + 0x70, 0x18, 0x0e, 0x07, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0x78, 0x1c, 0x0e, 0x07, 0x03, 0x03, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x0f, 0x1f, 0x3f, 0xff, 0xff, 0xbf, 0x1f, 0x07, 0x00, 0x1f, 0x1f, 0x1c, 0x1c, + 0x0c, 0x0c, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0c, 0x0c, + 0x0e, 0x0c, 0x0c, 0x1c, 0x38, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0e, 0x1c, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x18, 0x0c, 0x0f, 0x1f, 0xff, 0xff, 0x07, 0x00, 0x80, 0xc0, 0xe0, 0x38, 0x0f, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xfe, 0x7f, 0x07, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0xc0, + 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf8, 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, 0x01, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x18, 0x18, 0x38, 0x30, + 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1c, 0x38, 0x70, 0x60, 0x60, + 0x60, 0x60, 0x60, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1c, 0x38, 0x30, 0x70, 0x70, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x70, 0x7c, 0x7f, 0x6f, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x71, 0x7f, 0x7f, 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, 0x61, 0x67, 0x7f, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(my_logo, sizeof(my_logo)); +} + + +bool oled_task_kb(void) { + // Defer to the keymap if they want to override + if(!oled_task_user()) { + return false; + } + + // default keyboard drawing code + render_logo(); + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/westm/westm9/rev1/rev1.h b/keyboards/westm/westm9/rev1/rev1.h new file mode 100644 index 0000000000..45420db2e3 --- /dev/null +++ b/keyboards/westm/westm9/rev1/rev1.h @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "westm9.h" \ No newline at end of file diff --git a/keyboards/westm/westm9/rev1/rules.mk b/keyboards/westm/westm9/rev1/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/westm/westm9/rev2/config.h b/keyboards/westm/westm9/rev2/config.h new file mode 100644 index 0000000000..84a7589360 --- /dev/null +++ b/keyboards/westm/westm9/rev2/config.h @@ -0,0 +1,56 @@ +/* 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 PRODUCT_ID 0x0302 + +// The pin connected to the data pin of the LEDs +#define RGB_DI_PIN F1 +#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 + +/* I2C for Oled */ +#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 + +/* Required for SH1106 Oled Driver */ +#define OLED_IC OLED_IC_SH1106 +#define OLED_COLUMN_OFFSET 2 // SH1106 screen is a little off to the left + +#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 + +#define OLED_UPDATE_INTERVAL 66 \ No newline at end of file diff --git a/keyboards/westm/westm9/rev2/rev2.c b/keyboards/westm/westm9/rev2/rev2.c new file mode 100644 index 0000000000..31c80c3606 --- /dev/null +++ b/keyboards/westm/westm9/rev2/rev2.c @@ -0,0 +1,112 @@ +/* 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 . + */ + +#include "rev2.h" + +void board_init(void) { + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; // DMA re-map, you may not need this depending on your +} + +#ifdef OLED_ENABLE + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_0; +} + +static void render_logo(void) { + static const char PROGMEM my_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xfc, 0x0c, 0x0c, 0x0c, 0x18, 0x30, + 0x60, 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, 0x80, 0xc0, 0xe0, 0x70, 0x30, 0x30, 0x70, 0xe0, + 0xc0, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x30, 0xb8, 0x98, 0x18, 0x18, 0xf8, 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, 0x10, 0xff, 0xc7, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x0f, 0x3c, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, + 0x70, 0x30, 0x10, 0x18, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0x8f, 0xc3, 0xc1, 0xc0, 0xe0, 0xe0, 0x70, 0x38, 0x1f, + 0x0f, 0x07, 0xe3, 0xf1, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 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, 0xf8, 0xfc, 0x07, 0x07, 0x07, 0x07, 0x06, 0x0e, + 0x0c, 0x0c, 0x18, 0x18, 0x80, 0xe0, 0xff, 0xfe, 0x7c, 0x38, 0x04, 0x06, 0x03, 0xc1, 0xc1, 0xe0, + 0x70, 0x18, 0x0e, 0x07, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0x78, 0x1c, 0x0e, 0x07, 0x03, 0x03, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x0f, 0x1f, 0x3f, 0xff, 0xff, 0xbf, 0x1f, 0x07, 0x00, 0x1f, 0x1f, 0x1c, 0x1c, + 0x0c, 0x0c, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0c, 0x0c, + 0x0e, 0x0c, 0x0c, 0x1c, 0x38, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0e, 0x1c, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x18, 0x0c, 0x0f, 0x1f, 0xff, 0xff, 0x07, 0x00, 0x80, 0xc0, 0xe0, 0x38, 0x0f, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xfe, 0x7f, 0x07, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0xc0, + 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf8, 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, 0x01, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x18, 0x18, 0x38, 0x30, + 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1c, 0x38, 0x70, 0x60, 0x60, + 0x60, 0x60, 0x60, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1c, 0x38, 0x30, 0x70, 0x70, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x70, 0x7c, 0x7f, 0x6f, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x71, 0x7f, 0x7f, 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, 0x61, 0x67, 0x7f, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(my_logo, sizeof(my_logo)); +} + + +bool oled_task_kb(void) { + // Defer to the keymap if they want to override + if(!oled_task_user()) { + return false; + } + + // default keyboard drawing code + render_logo(); + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/westm/westm9/rev2/rev2.h b/keyboards/westm/westm9/rev2/rev2.h new file mode 100644 index 0000000000..45420db2e3 --- /dev/null +++ b/keyboards/westm/westm9/rev2/rev2.h @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "westm9.h" \ No newline at end of file diff --git a/keyboards/westm/westm9/rev2/rules.mk b/keyboards/westm/westm9/rev2/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/westm/westm9/rules.mk b/keyboards/westm/westm9/rules.mk new file mode 100644 index 0000000000..b8be7c4530 --- /dev/null +++ b/keyboards/westm/westm9/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +OLED_ENABLE = yes # Enable the OLED feature +OLED_DRIVER = SSD1306 # OLED driver + +DEFAULT_FOLDER = westm/westm9/rev2 diff --git a/keyboards/westm/westm9/westm9.c b/keyboards/westm/westm9/westm9.c new file mode 100644 index 0000000000..45420db2e3 --- /dev/null +++ b/keyboards/westm/westm9/westm9.c @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "westm9.h" \ No newline at end of file diff --git a/keyboards/boardsource/beiwagon/beiwagon.h b/keyboards/westm/westm9/westm9.h similarity index 77% rename from keyboards/boardsource/beiwagon/beiwagon.h rename to keyboards/westm/westm9/westm9.h index ed5d516529..a88aeb8573 100644 --- a/keyboards/boardsource/beiwagon/beiwagon.h +++ b/keyboards/westm/westm9/westm9.h @@ -1,4 +1,4 @@ -/* Copyright 2020 Boardsource +/* 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 @@ -18,15 +18,13 @@ #include "quantum.h" -#define LAYOUT( \ +#define LAYOUT_macropad( \ K00, K01, K02, \ K10, K11, K12, \ - K20, K21, K22, \ - K30, K31, K32\ - ) { \ - {K00, K01, K02 }, \ - {K10, K11, K12 }, \ - {K20, K21, K22 }, \ - {K30, K31, K32 } \ - } - + K20, K21, K22 \ +) \ +{ \ + { K00, K01, K02 }, \ + { K10, K11, K12 }, \ + { K20, K21, K22 }, \ +} diff --git a/keyboards/westm/westmergo/config.h b/keyboards/westm/westmergo/config.h index 1f90dc82b8..3e775a7401 100644 --- a/keyboards/westm/westmergo/config.h +++ b/keyboards/westm/westmergo/config.h @@ -18,7 +18,7 @@ /* USB Device descriptor parameter */ #define VENDOR_ID 0x574D // WM -#define PRODUCT_ID 0x0001 +#define PRODUCT_ID 0x0201 #define DEVICE_VER 0x0001 // Revision prototype #define MANUFACTURER WestM #define PRODUCT WestMErgo @@ -43,7 +43,7 @@ #define RGBLIGHT_EFFECT_TWINKLE // The pin connected to the data pin of the LEDs #define RGB_DI_PIN A8 -#define RGBLED_NUM 19 +#define RGBLED_NUM 16 /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/westm/westmergo/keymaps/default/keymap.c b/keyboards/westm/westmergo/keymaps/default/keymap.c index ba24687860..4302717ec4 100755 --- a/keyboards/westm/westmergo/keymaps/default/keymap.c +++ b/keyboards/westm/westmergo/keymaps/default/keymap.c @@ -19,16 +19,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_alice( /* Base */ - 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_PGUP, KC_TAB, KC_Q, KC_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, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_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_EQUAL, KC_BSPC, + KC_MNXT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_MPRV, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_SPC, KC_LALT, KC_SPC, KC_RALT, KC_RCTL ), [1] = LAYOUT_alice( /* FN */ - QK_BOOT, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_HOME, _______, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, - KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, + _______, KC_GRAVE, KC_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_CAPS_LOCK, _______, KC_UP, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC__VOLDOWN, KC__VOLUP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/westm/westmergo/keymaps/via/keymap.c b/keyboards/westm/westmergo/keymaps/via/keymap.c index 8389331a09..962efbbffc 100644 --- a/keyboards/westm/westmergo/keymaps/via/keymap.c +++ b/keyboards/westm/westmergo/keymaps/via/keymap.c @@ -19,30 +19,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_alice( - 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_PGUP, KC_TAB, KC_Q, KC_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, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_LGUI, KC_SPC, KC_LALT, KC_SPC, KC_RALT, KC_RCTL + KC_MPLY, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_MPRV, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_MNXT, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_SPC, KC_LALT, KC_SPC, KC_LGUI, KC_RCTL ), [1] = LAYOUT_alice( /* FN */ - QK_BOOT, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_HOME, _______, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, - KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, + _______, KC_GRAVE, KC_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_CAPS_LOCK, _______, KC_UP, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC__VOLDOWN, KC__VOLUP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [2] = LAYOUT_alice( /* 2 */ - 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_HOME, _______, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, - KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, + _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC__VOLDOWN, KC__VOLUP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [3] = LAYOUT_alice( /* 3 */ - 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_HOME, _______, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, - KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, + _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_MUTE, RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC__VOLDOWN, KC__VOLUP, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/westm/westmergo/westmergo.h b/keyboards/westm/westmergo/westmergo.h index 2ed5a1ab2c..550773b5ac 100644 --- a/keyboards/westm/westmergo/westmergo.h +++ b/keyboards/westm/westmergo/westmergo.h @@ -20,19 +20,17 @@ #define XXX KC_NO -// Full backspace -// Split right shift #define LAYOUT_alice( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0f, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0d, k0e, k0f,\ k10, k11, k12, k13, k14, k15, k16, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, \ k20, k21, k22, k23, k24, k25, k26, k28, k29, k2a, k2b, k2c, k2d, k2f, \ k31, k32, k33, k34, k35, k36, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, \ k41, k43, k45, k46, k49, k4b, k4f \ ) \ { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX, k0f }, \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, XXX, k0d, k0e, k0f },\ { k10, k11, k12, k13, k14, k15, k16, XXX, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \ { k20, k21, k22, k23, k24, k25, k26, XXX, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f }, \ { XXX, k31, k32, k33, k34, k35, k36, XXX, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \ - { XXX, k41, XXX, k43, XXX, k45, k46, XXX, XXX, k49, XXX, k4b, XXX, XXX, XXX, k4f }, \ + { XXX, k41, XXX, k43, XXX, k45, k46, XXX, XXX, k49, XXX, k4b, XXX, XXX, XXX, k4f }, \ } diff --git a/keyboards/wilba_tech/wt65_d/config.h b/keyboards/wilba_tech/wt65_d/config.h new file mode 100644 index 0000000000..84712921a6 --- /dev/null +++ b/keyboards/wilba_tech/wt65_d/config.h @@ -0,0 +1,33 @@ +// Copyright 2022 Jason Williams (@wilba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#include "config_common.h" + +// USB Device descriptor parameter +#define VENDOR_ID 0x6582 // wilba.tech +#define PRODUCT_ID 0x0031 // PCB #49 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wilba.tech +#define PRODUCT wilba.tech WT65-D + +// key matrix size +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +// Keyboard Matrix Assignments +#define MATRIX_ROW_PINS { E6, F0, F4, F6, F7 } +#define MATRIX_COL_PINS { F5, D5, D3, D2, B7, B0, B3, C7, C6, B6, B5, B4, D7, D6, D4 } +#define UNUSED_PINS +#define DIODE_DIRECTION COL2ROW + +// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN F1 + +// 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/wilba_tech/wt65_d/info.json b/keyboards/wilba_tech/wt65_d/info.json new file mode 100644 index 0000000000..d29e95bf12 --- /dev/null +++ b/keyboards/wilba_tech/wt65_d/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "wilba.tech WT65-D", + "url": "https://wilba.tech", + "maintainer": "Wilba", + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,3", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,1", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,12", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,10", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0}, {"label":"2,13", "x":14, "y":0}, {"label":"0,14", "x":15, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"1,14", "x":15, "y":1}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,12", "x":12.75, "y":2, "w":2.25}, {"label":"2,14", "x":15, "y":2}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"3,14", "x":15, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4}, {"label":"4,2", "x":2.25, "y":4, "w":1.25}, {"label":"4,3", "x":3.5, "y":4, "w":6}, {"label":"4,9", "x":9.5, "y":4, "w":1.25}, {"label":"4,10", "x":10.75, "y":4}, {"label":"4,11", "x":11.75, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c new file mode 100644 index 0000000000..3572bf9032 --- /dev/null +++ b/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2022 Jason Williams (@wilba) +// SPDX-License-Identifier: GPL-2.0-or-later + +// Default layout for WT65-D +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Default layer + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + // Fn1 Layer + [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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + // Fn2 Layer + [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), + + // Fn3 Layer + [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), +}; \ No newline at end of file diff --git a/keyboards/wilba_tech/wt65_d/keymaps/via/keymap.c b/keyboards/wilba_tech/wt65_d/keymaps/via/keymap.c new file mode 100644 index 0000000000..1f9d213f05 --- /dev/null +++ b/keyboards/wilba_tech/wt65_d/keymaps/via/keymap.c @@ -0,0 +1 @@ +#include "../default/keymap.c" \ No newline at end of file diff --git a/keyboards/wilba_tech/wt65_d/keymaps/via/rules.mk b/keyboards/wilba_tech/wt65_d/keymaps/via/rules.mk new file mode 100644 index 0000000000..036bd6d1c3 --- /dev/null +++ b/keyboards/wilba_tech/wt65_d/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/wt65_d/readme.md b/keyboards/wilba_tech/wt65_d/readme.md new file mode 100644 index 0000000000..527a824ad1 --- /dev/null +++ b/keyboards/wilba_tech/wt65_d/readme.md @@ -0,0 +1,25 @@ +# wilba.tech WT65-D + +WT65-D is a keyboard PCB supporting 65% layout. [More info at wilba.tech](https://wilba.tech/) + +* Keyboard Maintainer: [wilba](https://github.com/wilba) +* Hardware Supported: wilba.tech WT65-D +* Hardware Availability: [wilba.tech](https://wilba.tech/) + +Make example for this keyboard (after setting up your build environment): + + make wilba_tech/wt65_d:default + +Flashing example for this keyboard: + + make wilba_tech/wt65_d:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/wilba_tech/wt65_d/rules.mk b/keyboards/wilba_tech/wt65_d/rules.mk new file mode 100644 index 0000000000..51570559c0 --- /dev/null +++ b/keyboards/wilba_tech/wt65_d/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/wilba_tech/wt65_d/wt65_d.c b/keyboards/wilba_tech/wt65_d/wt65_d.c new file mode 100644 index 0000000000..b734652c78 --- /dev/null +++ b/keyboards/wilba_tech/wt65_d/wt65_d.c @@ -0,0 +1,4 @@ +// Copyright 2022 Jason Williams (@wilba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "wt65_d.h" \ No newline at end of file diff --git a/keyboards/wilba_tech/wt65_d/wt65_d.h b/keyboards/wilba_tech/wt65_d/wt65_d.h new file mode 100644 index 0000000000..4f0b36d075 --- /dev/null +++ b/keyboards/wilba_tech/wt65_d/wt65_d.h @@ -0,0 +1,23 @@ +// Copyright 2022 Jason Williams (@wilba) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K003, K002, K001, K004, K005, K006, K007, K008, K009, K012, K011, K010, K013, K213, 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, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K403, K409, K410, K411, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, K403, ____, ____, ____, ____, ____, K409, K410, K411, K412, K413, K414 } \ +} + diff --git a/keyboards/wolf/ryujin/config.h b/keyboards/wolf/ryujin/config.h new file mode 100644 index 0000000000..dc9cbcb657 --- /dev/null +++ b/keyboards/wolf/ryujin/config.h @@ -0,0 +1,43 @@ +/* +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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x5453 // TS - ToastyStoemp +#define PRODUCT_ID 0x0200 // Ryujin - Miroticaps +#define DEVICE_VER 0x0001 // Version 1 +#define MANUFACTURER Miroticaps +#define PRODUCT Ryujin + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { D5, D3, D2, D1, D0 } +#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 \ No newline at end of file diff --git a/keyboards/wolf/ryujin/info.json b/keyboards/wolf/ryujin/info.json new file mode 100644 index 0000000000..351b5bb971 --- /dev/null +++ b/keyboards/wolf/ryujin/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "Ryujin", + "url": "", + "maintainer": "ToastyStoemp", + "layouts": { + "LAYOUT": { + "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0}, {"label":"0,14", "x":14, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,12", "x":12.75, "y":2}, {"label":"2,13", "x":13.75, "y":2, "w":1.25}, {"label":"2,14", "x":15, "y":2}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"3,14", "x":15, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,5", "x":3.75, "y":4, "w":6.25}, {"label":"4,10", "x":10, "y":4, "w":1.25}, {"label":"4,11", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/wolf/ryujin/keymaps/default/keymap.c b/keyboards/wolf/ryujin/keymaps/default/keymap.c new file mode 100644 index 0000000000..61de40a78d --- /dev/null +++ b/keyboards/wolf/ryujin/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_CLCK, 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_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + ) +}; diff --git a/keyboards/wolf/ryujin/keymaps/via/keymap.c b/keyboards/wolf/ryujin/keymaps/via/keymap.c new file mode 100644 index 0000000000..2c06ad86b5 --- /dev/null +++ b/keyboards/wolf/ryujin/keymaps/via/keymap.c @@ -0,0 +1,57 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_CLCK, 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_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + ), + + [_LAYER2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ) +}; diff --git a/keyboards/wolf/ryujin/keymaps/via/rules.mk b/keyboards/wolf/ryujin/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/wolf/ryujin/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/wolf/ryujin/readme.md b/keyboards/wolf/ryujin/readme.md new file mode 100644 index 0000000000..bc9713563a --- /dev/null +++ b/keyboards/wolf/ryujin/readme.md @@ -0,0 +1,21 @@ +# Ryujin + +The following is the QMK Firmware for the Ryujin PCB. + +The PCB features: +* QMK & VIA compatibility + +--- + +* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp) + +Make example for this keyboard (after setting up your build environment): + + make wolf/ryujin: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 ESC key and plug in the keyboard (Top Left most switch) +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the B key on layer 1 which is mapped to `RESET` diff --git a/keyboards/wolf/ryujin/rules.mk b/keyboards/wolf/ryujin/rules.mk new file mode 100644 index 0000000000..f4ad147581 --- /dev/null +++ b/keyboards/wolf/ryujin/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = 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 diff --git a/keyboards/wolf/ryujin/ryujin.c b/keyboards/wolf/ryujin/ryujin.c new file mode 100644 index 0000000000..a2298a546d --- /dev/null +++ b/keyboards/wolf/ryujin/ryujin.c @@ -0,0 +1,14 @@ +/* +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 . +*/ +#include "ryujin.h" diff --git a/keyboards/wolf/ryujin/ryujin.h b/keyboards/wolf/ryujin/ryujin.h new file mode 100644 index 0000000000..bd7a3ecddd --- /dev/null +++ b/keyboards/wolf/ryujin/ryujin.h @@ -0,0 +1,32 @@ +/* +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 + +#include "quantum.h" + +/* Keymap Definitions */ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K45, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h b/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h index 131c755d4a..30b86224c6 100644 --- a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h +++ b/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h @@ -19,6 +19,5 @@ along with this program. If not, see . #define CONFIG_USER_H #define TAPPING_TERM 1000 -#define PERMISSIVE_HOLD #endif diff --git a/keyboards/work_louder/micro/config.h b/keyboards/work_louder/micro/config.h new file mode 100644 index 0000000000..a4d5ca2c93 --- /dev/null +++ b/keyboards/work_louder/micro/config.h @@ -0,0 +1,89 @@ +// Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +#define RGB_DI_PIN D1 +#define DRIVER_LED_TOTAL 12 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 +#define RGB_MATRIX_DISABLE_KEYCODES +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#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 + +#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 + +/* 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 ENCODERS_PAD_A \ + { D4, B0 } +#define ENCODERS_PAD_B \ + { D6, B1 } + +#define WORK_LOUDER_LED_PIN_1 B7 +#define WORK_LOUDER_LED_PIN_2 B6 +#define WORK_LOUDER_LED_PIN_3 B5 diff --git a/keyboards/work_louder/micro/info.json b/keyboards/work_louder/micro/info.json new file mode 100644 index 0000000000..62baf15351 --- /dev/null +++ b/keyboards/work_louder/micro/info.json @@ -0,0 +1,64 @@ +{ + "manufacturer": "Work Louder", + "keyboard_name": "micro", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "rgblight": true, + "rgb_matrix": true + }, + "matrix_pins": { + "custom_lite": true, + "cols": ["B4", "C6", "C7", "E6"], + "rows": ["F1", "F4", "F5", "F6"] + }, + "processor": "atmega32u4", + "rgblight": { + "animations": { + "all": true + }, + "brightness_steps": 8, + "hue_steps": 8, + "led_count": 8, + "max_brightness": 255, + "saturation_steps": 8 + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xE6E3", + "vid": "0x574C" + }, + "build": { + "lto": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1.25, "y": 0.25 }, + { "matrix": [0, 2], "x": 2.25, "y": 0.25 }, + { "matrix": [0, 3], "x": 3.5, "y": 0 }, + { "matrix": [1, 0], "x": 0.25, "y": 1.25 }, + { "matrix": [1, 1], "x": 1.25, "y": 1.25 }, + { "matrix": [1, 2], "x": 2.25, "y": 1.25 }, + { "matrix": [1, 3], "x": 3.25, "y": 1.25 }, + { "matrix": [2, 0], "x": 0.25, "y": 2.25 }, + { "matrix": [2, 1], "x": 1.25, "y": 2.25 }, + { "matrix": [2, 2], "x": 2.25, "y": 2.25 }, + { "matrix": [2, 3], "x": 3.25, "y": 2.25 }, + { "matrix": [3, 0], "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.25, "y": 3.25 }, + { "matrix": [3, 2], "x": 2.25, "y": 3.25 }, + { "matrix": [3, 3], "x": 3.5, "y": 3.5 } + ] + } + } +} diff --git a/keyboards/work_louder/micro/keymaps/default/keymap.c b/keyboards/work_louder/micro/keymaps/default/keymap.c new file mode 100644 index 0000000000..6b5541e017 --- /dev/null +++ b/keyboards/work_louder/micro/keymaps/default/keymap.c @@ -0,0 +1,91 @@ +// Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + LED_LEVEL = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT( + KC_MPLY, KC_9, KC_0, KC_NO, + KC_5, KC_6, KC_7, KC_8, + KC_1, KC_2, KC_3, KC_4, + TO(1), KC_DOT, KC_COMM, LED_LEVEL + ), + LAYOUT( + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8, + KC_9, KC_0, KC_A, KC_B, + TO(2), KC_C, KC_D, KC_E + ), + LAYOUT( + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8, + KC_9, KC_0, KC_A, KC_B, + TO(3), KC_C, KC_D, KC_E + ), + LAYOUT( + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8, + KC_9, KC_0, KC_A, KC_B, + TO(0), KC_C, LED_LEVEL,KC_E + ), + +}; + +typedef union { + uint32_t raw; + struct { + uint8_t led_level : 3; + }; +} work_louder_config_t; + +work_louder_config_t work_louder_config; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LED_LEVEL: + if (record->event.pressed) { + work_louder_config.led_level++; + if (work_louder_config.led_level > 4) { + work_louder_config.led_level = 0; + } + work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); + eeconfig_update_user(work_louder_config.raw); + layer_state_set_kb(layer_state); + } + break; + } + return true; +} + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(C(KC_Z), C(KC_Y)) }, + { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, +}; +#endif + + +layer_state_t layer_state_set_user(layer_state_t state) { + layer_state_cmp(state, 1) ? work_louder_micro_led_1_on(): work_louder_micro_led_1_off(); + layer_state_cmp(state, 2) ? work_louder_micro_led_2_on(): work_louder_micro_led_2_off(); + layer_state_cmp(state, 3) ? work_louder_micro_led_3_on(): work_louder_micro_led_3_off(); + + return state; +} + +void eeconfig_init_user(void) { + work_louder_config.raw = 0; + work_louder_config.led_level = 1; + eeconfig_update_user(work_louder_config.raw); +} + +void matrix_init_user(void) { + work_louder_config.raw = eeconfig_read_user(); + work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); +} diff --git a/keyboards/work_louder/micro/keymaps/default/rules.mk b/keyboards/work_louder/micro/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/work_louder/micro/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/work_louder/micro/keymaps/via/keymap.c b/keyboards/work_louder/micro/keymaps/via/keymap.c new file mode 100644 index 0000000000..da910af6b2 --- /dev/null +++ b/keyboards/work_louder/micro/keymaps/via/keymap.c @@ -0,0 +1,92 @@ +// Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT( + KC_MPLY, KC_9, KC_0, KC_NO, + KC_5, KC_6, KC_7, KC_8, + KC_1, KC_2, KC_3, KC_4, + TO(1), KC_DOT, KC_COMM, USER09 + ), + LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + TO(2), _______, _______, _______ + + ), + LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + TO(3), _______, _______, _______ + ), + LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + TO(0), _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(C(KC_Z), C(KC_Y)) }, + { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif + + +typedef union { + uint32_t raw; + struct { + uint8_t led_level : 3; + }; +} work_louder_config_t; + +work_louder_config_t work_louder_config; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +#ifdef CONSOLE_ENABLE + uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, 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 USER09: + if (record->event.pressed) { + work_louder_config.led_level++; + if (work_louder_config.led_level > 4) { + work_louder_config.led_level = 0; + } + work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); + eeconfig_update_user(work_louder_config.raw); + layer_state_set_kb(layer_state); + } + break; + } + return true; +} + + +layer_state_t layer_state_set_user(layer_state_t state) { + layer_state_cmp(state, 1) ? work_louder_micro_led_1_on(): work_louder_micro_led_1_off(); + layer_state_cmp(state, 2) ? work_louder_micro_led_2_on(): work_louder_micro_led_2_off(); + layer_state_cmp(state, 3) ? work_louder_micro_led_3_on(): work_louder_micro_led_3_off(); + + return state; +} + +void eeconfig_init_user(void) { + work_louder_config.raw = 0; + work_louder_config.led_level = 1; + eeconfig_update_user(work_louder_config.raw); +} + +void matrix_init_user(void) { + work_louder_config.raw = eeconfig_read_user(); + work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); +} diff --git a/keyboards/work_louder/micro/keymaps/via/rules.mk b/keyboards/work_louder/micro/keymaps/via/rules.mk new file mode 100644 index 0000000000..70cf4224c0 --- /dev/null +++ b/keyboards/work_louder/micro/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/work_louder/micro/matrix.c b/keyboards/work_louder/micro/matrix.c new file mode 100644 index 0000000000..d2ae16ad9c --- /dev/null +++ b/keyboards/work_louder/micro/matrix.c @@ -0,0 +1,131 @@ +// Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +/* + * scan matrix + */ +#include +#include +#include +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "debounce.h" +#include QMK_KEYBOARD_H + +/* matrix state(1:on, 0:off) */ +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values + +static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; +#define MATRIX_ROW_SHIFTER ((matrix_row_t)1) + +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 setPinInputHigh_atomic(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 bool select_row(uint8_t row) { + pin_t pin = row_pins[row]; + if (pin != NO_PIN) { + setPinOutput_writeLow(pin); + return true; + } + return false; +} + +static void unselect_row(uint8_t row) { + pin_t pin = row_pins[row]; + if (pin != NO_PIN) { + setPinInputHigh_atomic(pin); + } +} + +static void unselect_rows(void) { + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + unselect_row(x); + } +} + +__attribute__((weak)) void matrix_init_custom(void) { + unselect_rows(); + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + if (col_pins[x] != NO_PIN) { + setPinInputHigh_atomic(col_pins[x]); + } + } + setPinInputHigh_atomic(F7); + setPinInputHigh_atomic(F0); +} + +void matrix_read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { + // Start with a clear matrix row + matrix_row_t current_row_value = 0; + + if (!select_row(current_row)) { // Select row + return; // skip NO_PIN row + } + matrix_output_select_delay(); + + // For each col... + matrix_row_t row_shifter = MATRIX_ROW_SHIFTER; + for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++, row_shifter <<= 1) { + uint8_t pin_state = 0; + if (current_row == 3 && col_index == 0) { + pin_state = !readMatrixPin(F7); + } else if (current_row == 3 && col_index == 3) { + pin_state = !readMatrixPin(F0); + } else { + pin_state = readMatrixPin(col_pins[col_index]); + } + // Populate the matrix row with the state of the col pin + current_row_value |= pin_state ? 0 : row_shifter; + } + + // Unselect row + unselect_row(current_row); + matrix_output_unselect_delay(current_row, current_row_value != 0); // wait for all Col signals to go HIGH + + // Update the matrix + current_matrix[current_row] = current_row_value; +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + static matrix_row_t temp_matrix[MATRIX_ROWS] = {0}; + + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { + matrix_read_cols_on_row(temp_matrix, current_row); + } + + bool changed = memcmp(current_matrix, temp_matrix, sizeof(temp_matrix)) != 0; + if (changed) { + memcpy(current_matrix, temp_matrix, sizeof(temp_matrix)); + } + return changed; +} diff --git a/keyboards/work_louder/micro/micro.c b/keyboards/work_louder/micro/micro.c new file mode 100644 index 0000000000..aae8048c59 --- /dev/null +++ b/keyboards/work_louder/micro/micro.c @@ -0,0 +1,170 @@ +// Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#if defined(RGB_MATRIX_ENABLE) +// clang-format off +led_config_t g_led_config = { { + { NO_LED, 10, 11, NO_LED }, + { 9 , 8, 7, 6 }, + { 2, 3, 4, 5 }, + { NO_LED, 1, 0, NO_LED } + }, { + { 122, 64 }, { 103, 64 }, + { 84, 45 }, { 103, 45 }, { 133, 45 }, { 152, 45 }, + { 152, 26 }, { 122, 26 }, { 103, 26 }, { 84, 26 }, + { 103, 7 }, { 122, 7 } + }, + { + 4, 4, + 4, 4, 4, 4, + 4, 4, 4, 4, + 4, 4 + } +}; +// clang-format on +#endif + +#if defined(ENCODER_ENABLE) && !defined(ENCODERS) && !defined(ENCODER_MAP_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); + } + } else if (index == 1) { + if (clockwise) { + tap_code_delay(KC_WH_U, 10); + } else { + tap_code_delay(KC_WH_D, 10); + } + } + return true; +} +#endif + +void work_louder_micro_led_1_on(void) { + writePin(WORK_LOUDER_LED_PIN_1, true); +} +void work_louder_micro_led_2_on(void) { + writePin(WORK_LOUDER_LED_PIN_2, true); +} +void work_louder_micro_led_3_on(void) { + writePin(WORK_LOUDER_LED_PIN_3, true); +} + +void work_louder_micro_led_1_off(void) { + writePin(WORK_LOUDER_LED_PIN_1, false); +} +void work_louder_micro_led_2_off(void) { + writePin(WORK_LOUDER_LED_PIN_2, false); +} +void work_louder_micro_led_3_off(void) { + writePin(WORK_LOUDER_LED_PIN_3, false); +} + +void work_louder_micro_led_all_on(void) { + work_louder_micro_led_1_on(); + work_louder_micro_led_2_on(); + work_louder_micro_led_3_on(); +} + +void work_louder_micro_led_all_off(void) { + work_louder_micro_led_1_off(); + work_louder_micro_led_2_off(); + work_louder_micro_led_3_off(); +} + +void work_louder_micro_led_1_set(uint8_t n) { +#if WORK_LOUDER_LED_PIN_1 == B7 + OCR1C = n; +#else + n ? work_louder_micro_led_1_on() : work_louder_micro_led_1_off(); +#endif +} +void work_louder_micro_led_2_set(uint8_t n) { +#if WORK_LOUDER_LED_PIN_2 == B6 + OCR1B = n; +#else + n ? work_louder_micro_led_2_on() : work_louder_micro_led_2_off(); +#endif +} +void work_louder_micro_led_3_set(uint8_t n) { +#if WORK_LOUDER_LED_PIN_3 == B5 + OCR1A = n; +#else + n ? work_louder_micro_led_3_on() : work_louder_micro_led_3_off(); +#endif +} + +void work_louder_micro_led_all_set(uint8_t n) { + work_louder_micro_led_1_set(n); + work_louder_micro_led_2_set(n); + work_louder_micro_led_3_set(n); +} + +#ifdef DEFER_EXEC_ENABLE +uint32_t startup_animation(uint32_t trigger_time, void *cb_arg) { + static uint8_t index = 0; + + switch (index) { + case 0: + work_louder_micro_led_1_on(); + break; + case 1: + work_louder_micro_led_2_on(); + break; + case 2: + work_louder_micro_led_3_on(); + break; + case 3: + work_louder_micro_led_1_off(); + break; + case 4: + work_louder_micro_led_2_off(); + break; + case 5: + work_louder_micro_led_3_off(); + break; + default: + return 0; + } + index++; + return 100; +} +#endif + +void matrix_init_kb(void) { + + setPinOutput(WORK_LOUDER_LED_PIN_1); // left led + writePin(WORK_LOUDER_LED_PIN_1, false); + setPinOutput(WORK_LOUDER_LED_PIN_2); // middle led + writePin(WORK_LOUDER_LED_PIN_2, false); + setPinOutput(WORK_LOUDER_LED_PIN_3); // right led + writePin(WORK_LOUDER_LED_PIN_3, false); + +#ifdef DEFER_EXEC_ENABLE + defer_exec(500, startup_animation, NULL); +#else + wait_ms(500); + work_louder_micro_led_1_on(); + wait_ms(100); + work_louder_micro_led_2_on(); + wait_ms(100); + work_louder_micro_led_3_on(); + wait_ms(100); + work_louder_micro_led_1_off(); + wait_ms(100); + work_louder_micro_led_2_off(); + wait_ms(100); + work_louder_micro_led_3_off(); + wait_ms(200); +#endif + matrix_init_user(); + +} diff --git a/keyboards/work_louder/micro/micro.h b/keyboards/work_louder/micro/micro.h new file mode 100644 index 0000000000..715b09eb33 --- /dev/null +++ b/keyboards/work_louder/micro/micro.h @@ -0,0 +1,22 @@ +// Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +extern void work_louder_micro_led_1_on(void); +extern void work_louder_micro_led_2_on(void); +extern void work_louder_micro_led_3_on(void); + +extern void work_louder_micro_led_1_off(void); +extern void work_louder_micro_led_2_off(void); +extern void work_louder_micro_led_3_off(void); + +extern void work_louder_micro_led_all_on(void); + +extern void work_louder_micro_led_all_off(void); + +extern void work_louder_micro_led_1_set(uint8_t n); +extern void work_louder_micro_led_2_set(uint8_t n); +extern void work_louder_micro_led_3_set(uint8_t n); + +extern void work_louder_micro_led_all_set(uint8_t n); diff --git a/keyboards/work_louder/micro/readme.md b/keyboards/work_louder/micro/readme.md new file mode 100644 index 0000000000..568980e57b --- /dev/null +++ b/keyboards/work_louder/micro/readme.md @@ -0,0 +1,26 @@ +# work_louder/micro + +![work_louder/micro](https://i.imgur.com/4Hdt41Gh.jpg) + +A 16 "key" macro pad, with dual encoders, per key RGB, RGB underglow and more + +* Keyboard Maintainer: [Drashna Jael're](https://github.com/Drashna Jael're) +* Hardware Supported: atmega32u4 based PCB +* Hardware Availability: [Work Louder shop](https://worklouder.cc/creator-micro/) + +Make example for this keyboard (after setting up your build environment): + + make work_louder/micro:default + +Flashing example for this keyboard: + + make work_louder/micro: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 horizontal encoder (top left) 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 diff --git a/keyboards/work_louder/micro/rules.mk b/keyboards/work_louder/micro/rules.mk new file mode 100644 index 0000000000..757b87cfe4 --- /dev/null +++ b/keyboards/work_louder/micro/rules.mk @@ -0,0 +1,6 @@ +RGB_MATRIX_DRIVER = WS2812 + +SRC += rgb_functions.c \ + matrix.c + +DEFERRED_EXEC_ENABLE = yes diff --git a/keyboards/work_louder/work_board/keymaps/default/keymap.c b/keyboards/work_louder/work_board/keymaps/default/keymap.c index cae65ff5c2..59bb437d9d 100644 --- a/keyboards/work_louder/work_board/keymaps/default/keymap.c +++ b/keyboards/work_louder/work_board/keymaps/default/keymap.c @@ -144,9 +144,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT( - _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/wuque/promise87/ansi/ansi.c b/keyboards/wuque/promise87/ansi/ansi.c new file mode 100644 index 0000000000..8e20dfb751 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/ansi.c @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "ansi.h" diff --git a/keyboards/wuque/promise87/ansi/ansi.h b/keyboards/wuque/promise87/ansi/ansi.h new file mode 100644 index 0000000000..513c3a8d2a --- /dev/null +++ b/keyboards/wuque/promise87/ansi/ansi.h @@ -0,0 +1,218 @@ +/* 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 + +#include "quantum.h" + + +/* Standard Arrangement + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │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 │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 │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │4c │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi_split_bs + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │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 │4c │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi_split_lshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ │4f │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi_split_lshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi_split_rshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │4c │4d │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi_split_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi_split_bs_rshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │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 │4c │4d │ │4f │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ + * │50 │51 │52 │56 │5a │5b │5c │5d ││5e │5f │5g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} diff --git a/keyboards/wuque/promise87/ansi/config.h b/keyboards/wuque/promise87/ansi/config.h new file mode 100644 index 0000000000..e51738c13a --- /dev/null +++ b/keyboards/wuque/promise87/ansi/config.h @@ -0,0 +1,55 @@ +/* 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x906D +#define PRODUCT_ID 0x0005 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wuque +#define PRODUCT promise87 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_ROW_PINS { B3, B7, B2, F0, D3, D0 } +#define MATRIX_COL_PINS { D6, D7, D1, D5, F7, D4, F5, F4, F1, C7, C6, B6, B5, B4, E6, B1, B0 } + +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN F6 +#define LED_PIN_ON_STATE 0 + +#define RGB_DI_PIN D2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 1 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */ + #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 +#endif diff --git a/keyboards/wuque/promise87/ansi/info.json b/keyboards/wuque/promise87/ansi/info.json new file mode 100644 index 0000000000..cec6fa0d68 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/info.json @@ -0,0 +1,603 @@ +{ + "keyboard_name": "promise87", + "url": "https://shop.wuquestudio.com/", + "maintainer": "spbgzh", + "layout_aliases": { + "LAYOUT_87_ansi": "LAYOUT_tkl_f13_ansi", + "LAYOUT_87_ansi_split_bs": "LAYOUT_tkl_f13_ansi_split_bs", + "LAYOUT_87_ansi_split_lshift": "LAYOUT_tkl_f13_ansi_split_lshift", + "LAYOUT_87_ansi_split_rshift": "LAYOUT_tkl_f13_ansi_split_rshift" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_split_lshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_split_rshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space","x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/wuque/promise87/ansi/keymaps/default/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..ea439bd2f6 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/default/readme.md b/keyboards/wuque/promise87/ansi/keymaps/default/readme.md new file mode 100644 index 0000000000..f3a77c93fd --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi/keymap.c new file mode 100644 index 0000000000..b4053256f9 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi/readme.md b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi/readme.md new file mode 100644 index 0000000000..63cbbfc568 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi/readme.md @@ -0,0 +1 @@ +# The tkl_f13_ansi keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs/keymap.c new file mode 100644 index 0000000000..628e6211ad --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_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_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs/readme.md b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs/readme.md new file mode 100644 index 0000000000..e61fd5af62 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_ansi_split_bs keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs_rshift/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..11fdcf8021 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs_rshift/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = 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_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs_rshift/readme.md b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs_rshift/readme.md new file mode 100644 index 0000000000..f7f7ee4eed --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_bs_rshift/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_ansi_split_bs_rshift keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_lshift/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_lshift/keymap.c new file mode 100644 index 0000000000..3e278b0d5d --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_lshift/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_ansi_split_lshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13_ansi_split_lshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_lshift/readme.md b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_lshift/readme.md new file mode 100644 index 0000000000..17ed054145 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_lshift/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_ansi_split_lshift keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_rshift/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_rshift/keymap.c new file mode 100644 index 0000000000..1163b7ff6c --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_rshift/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_ansi_split_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_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_tkl_f13_ansi_split_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_rshift/readme.md b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_rshift/readme.md new file mode 100644 index 0000000000..d0f6cbe57a --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/default_tkl_f13_ansi_split_rshift/readme.md @@ -0,0 +1 @@ +# The tkl_f13_ansi_split_rshift keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/via/keymap.c b/keyboards/wuque/promise87/ansi/keymaps/via/keymap.c new file mode 100644 index 0000000000..3bd4a06dea --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/ansi/keymaps/via/readme.md b/keyboards/wuque/promise87/ansi/keymaps/via/readme.md new file mode 100644 index 0000000000..a500dfdb15 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for promise87 diff --git a/keyboards/wuque/promise87/ansi/keymaps/via/rules.mk b/keyboards/wuque/promise87/ansi/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/wuque/promise87/ansi/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wuque/promise87/ansi/readme.md b/keyboards/wuque/promise87/ansi/readme.md new file mode 100644 index 0000000000..a5c5591de9 --- /dev/null +++ b/keyboards/wuque/promise87/ansi/readme.md @@ -0,0 +1,27 @@ +# promise87 + +More Info at [promise87](https://shop.wuquestudio.com/) +​ + +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: promise 87 +* Hardware Availability: [promise87](https://shop.wuquestudio.com/) +​ + +Make example for this keyboard (after setting up your build environment): + + make wuque/promise87/ansi:default + +Flashing example for this keyboard: + + make wuque/promise87/ansi: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 + PageUp +* 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/promise87/ansi/rules.mk b/keyboards/wuque/promise87/ansi/rules.mk new file mode 100644 index 0000000000..ffe655b21f --- /dev/null +++ b/keyboards/wuque/promise87/ansi/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = tkl_f13_ansi tkl_f13_ansi_split_bs_rshift diff --git a/keyboards/wuque/promise87/wkl/config.h b/keyboards/wuque/promise87/wkl/config.h new file mode 100644 index 0000000000..c8fac0e451 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/config.h @@ -0,0 +1,55 @@ +/* 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x906D +#define PRODUCT_ID 0x0006 +#define DEVICE_VER 0x0001 +#define MANUFACTURER wuque +#define PRODUCT promise87 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_ROW_PINS { B3, B7, B2, F0, D3, D0 } +#define MATRIX_COL_PINS { D6, D7, D1, D5, F7, D4, F5, F4, F1, C7, C6, B6, B5, B4, E6, B1, B0 } + +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN F6 +#define LED_PIN_ON_STATE 0 + +#define RGB_DI_PIN D2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 1 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */ + #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 +#endif diff --git a/keyboards/wuque/promise87/wkl/info.json b/keyboards/wuque/promise87/wkl/info.json new file mode 100644 index 0000000000..8f119fe002 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/info.json @@ -0,0 +1,586 @@ +{ + "keyboard_name": "promise87", + "url": "https://shop.wuquestudio.com/", + "maintainer": "spbgzh", + "layout_aliases": { + "LAYOUT_all_wkl": "LAYOUT_all", + "LAYOUT_87_wkl": "LAYOUT_tkl_f13_ansi_wkl", + "LAYOUT_87_wkl_split_bs": "LAYOUT_tkl_f13_ansi_wkl_split_bs", + "LAYOUT_87_wkl_split_lshift": "LAYOUT_tkl_f13_ansi_wkl_split_lshift", + "LAYOUT_87_wkl_split_rshift": "LAYOUT_tkl_f13_ansi_wkl_split_rshift" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_wkl": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_wkl_split_bs": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_wkl_split_lshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift1", "x": 0, "y": 4.25, "w": 1.25 }, + { "label": "Shift2", "x": 1.25, "y": 4.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_wkl_split_rshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w" : 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 }, + { "label": "Print", "x": 15.25, "y": 0 }, + { "label": "Scroll", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Backspace1", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PageUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "\\", "x": 13.5,"y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PageDown", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ";", "x": 10.75, "y": 3.25 }, + { "label": "'", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "Shift1", "x": 12.25, "y": 4.25, "w": 1.75 }, + { "label": "Shift2", "x": 14, "y": 4.25 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "Space","x": 4, "y": 5.25, "w": 7 }, + { "label": "Alt", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "Menu", "x": 13.5, "y": 5.25, "w": 1.5 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/wuque/promise87/wkl/keymaps/default/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/default/keymap.c new file mode 100644 index 0000000000..d56749b9cb --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/default/readme.md b/keyboards/wuque/promise87/wkl/keymaps/default/readme.md new file mode 100644 index 0000000000..f3a77c93fd --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl/keymap.c new file mode 100644 index 0000000000..842da351e5 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_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_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl/readme.md b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl/readme.md new file mode 100644 index 0000000000..b009ab3ef2 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_ansi_wkl keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs/keymap.c new file mode 100644 index 0000000000..ccd8e35487 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_ansi_wkl_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_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_wkl_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs/readme.md b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs/readme.md new file mode 100644 index 0000000000..22921ef2e7 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_ansi_wkl_split_bs keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs_rshift/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..a751bdea30 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs_rshift/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_ansi_wkl_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_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs_rshift/readme.md b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs_rshift/readme.md new file mode 100644 index 0000000000..a0baa328e6 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_bs_rshift/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_ansi_wkl_split_bs_rshift keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_lshift/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_lshift/keymap.c new file mode 100644 index 0000000000..1b5806b2cf --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_lshift/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_ansi_wkl_split_lshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_LSFT, KC_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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_wkl_split_lshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_lshift/readme.md b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_lshift/readme.md new file mode 100644 index 0000000000..4b39705074 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_lshift/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_ansi_wkl_split_lshift keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_rshift/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_rshift/keymap.c new file mode 100644 index 0000000000..28834dcb03 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_rshift/keymap.c @@ -0,0 +1,36 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] ={ + [0] = LAYOUT_tkl_f13_ansi_wkl_split_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_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_wkl_split_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_rshift/readme.md b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_rshift/readme.md new file mode 100644 index 0000000000..a7df0be109 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/default_tkl_f13_ansi_wkl_split_rshift/readme.md @@ -0,0 +1 @@ +# The default_tkl_f13_ansi_wkl_split_rshift keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/via/keymap.c b/keyboards/wuque/promise87/wkl/keymaps/via/keymap.c new file mode 100644 index 0000000000..6ae4f5398b --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/wuque/promise87/wkl/keymaps/via/readme.md b/keyboards/wuque/promise87/wkl/keymaps/via/readme.md new file mode 100644 index 0000000000..a500dfdb15 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for promise87 diff --git a/keyboards/wuque/promise87/wkl/keymaps/via/rules.mk b/keyboards/wuque/promise87/wkl/keymaps/via/rules.mk new file mode 100644 index 0000000000..43061db1dd --- /dev/null +++ b/keyboards/wuque/promise87/wkl/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wuque/promise87/wkl/readme.md b/keyboards/wuque/promise87/wkl/readme.md new file mode 100644 index 0000000000..f4562164bd --- /dev/null +++ b/keyboards/wuque/promise87/wkl/readme.md @@ -0,0 +1,27 @@ +# promise87 + +More Info at [promise87](https://shop.wuquestudio.com/) +​ + +* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh) +* Hardware Supported: promise 87 +* Hardware Availability: [promise87](https://shop.wuquestudio.com/) +​ + +Make example for this keyboard (after setting up your build environment): + + make wuque/promise87/wkl:default + +Flashing example for this keyboard: + + make wuque/promise87/wkl: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 + PageUp +* 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/promise87/wkl/rules.mk b/keyboards/wuque/promise87/wkl/rules.mk new file mode 100644 index 0000000000..85a4a905a5 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/wuque/promise87/wkl/wkl.c b/keyboards/wuque/promise87/wkl/wkl.c new file mode 100644 index 0000000000..6264f7b1d6 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/wkl.c @@ -0,0 +1,17 @@ +/* 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 . + */ + +#include "wkl.h" diff --git a/keyboards/wuque/promise87/wkl/wkl.h b/keyboards/wuque/promise87/wkl/wkl.h new file mode 100644 index 0000000000..913ed9f881 --- /dev/null +++ b/keyboards/wuque/promise87/wkl/wkl.h @@ -0,0 +1,217 @@ +/* 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 + +#include "quantum.h" + + +/* LAYOUT_all + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │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 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │4d │ │4f │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K52, K56, K5B, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi_wkl + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │4c │ │4f │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi_wkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K52, K56, K5B, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi_wkl_split_bs + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │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 │4c │ │4f │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi_wkl_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K52, K56, K5B, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi_wkl_split_lshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4a │4b │4c │ │4f │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi_wkl_split_lshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ + K50, K52, K56, K5B, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi_wkl_split_rshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 ││1e │1f │1g │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │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 │4c │4d │ │4f │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi_wkl_split_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K52, K56, K5B, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} + + +/* LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ + * │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 │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ + * │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 │4c │4d │ │4f │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤┌───┼───┼───┐ + * │50 │ │52 │56 │5b │ │5d ││5e │5f │5g │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘ + */ +#define LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ + K50, K52, K56, K5B, K5D, K5E, K5F, K5G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ + { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ + { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ +} diff --git a/keyboards/xelus/rs108/config.h b/keyboards/xelus/rs108/config.h new file mode 100644 index 0000000000..d7527010e8 --- /dev/null +++ b/keyboards/xelus/rs108/config.h @@ -0,0 +1,75 @@ +/* Copyright 2022 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// USB Device descriptor parameter +#define VENDOR_ID 0x5845 // XE +#define PRODUCT_ID 0x5208 // RS108 "R+08" +#define DEVICE_VER 0x0002 +#define MANUFACTURER Xelus +#define PRODUCT RS60 + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 11 + +#define MATRIX_ROW_PINS { B5, B6, B7, A1, A0, C13, B0, A7, A5, A4, A3, A2 } +#define MATRIX_COL_PINS { A10, A8, B15, B14, B13, B12, B1, B10, B4, B3, A15 } +#define UNUSED_PINS + +// COL2ROW or ROW2COL +#define DIODE_DIRECTION COL2ROW + +// Set 0 if debouncing isn't needed +#define DEBOUNCE 5 + +// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap +#define LOCKING_SUPPORT_ENABLE + +// Locking resynchronize hack +#define LOCKING_RESYNC_ENABLE + +//Indicator +#define LED_CAPS_LOCK_PIN A6 +#define LED_SCROLL_LOCK_PIN A13 +#define LED_NUM_LOCK_PIN A14 + +// I2C config +#define I2C1_SCL_PIN B8 +#define I2C1_SDA_PIN B9 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_SDA_PAL_MODE 4 +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 + +// EEPROM config +// 24LC32 +#define EXTERNAL_EEPROM_BYTE_COUNT 4096 +#define EXTERNAL_EEPROM_PAGE_SIZE 32 +#define EXTERNAL_EEPROM_ADDRESS_SIZE 2 +#define EXTERNAL_EEPROM_WRITE_TIME 5 + +// More EEPROM for layers +#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 + +// Hardware Defines +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +// HSE CLK +#define STM32_HSECLK 16000000 + +//Force NKRO +#define FORCE_NKRO diff --git a/keyboards/xelus/rs108/halconf.h b/keyboards/xelus/rs108/halconf.h new file mode 100644 index 0000000000..b3e848852b --- /dev/null +++ b/keyboards/xelus/rs108/halconf.h @@ -0,0 +1,26 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/austin/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/xelus/rs108/info.json b/keyboards/xelus/rs108/info.json new file mode 100644 index 0000000000..019945ebe8 --- /dev/null +++ b/keyboards/xelus/rs108/info.json @@ -0,0 +1,119 @@ +{ + "keyboard_name": "RS108", + "url": "", + "maintainer": "xelus22", + "layouts": { + "LAYOUT_108_fullsize_ansi": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + { "label": "Num Lock", "x": 18.5, "y": 0 }, + { "label": "MUTE", "x": 19.5, "y": 0 }, + { "label": "VOLD", "x": 20.5, "y": 0 }, + { "label": "VOLU", "x": 21.5, "y": 0 }, + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "!", "x": 1, "y": 1.25 }, + { "label": "@", "x": 2, "y": 1.25 }, + { "label": "#", "x": 3, "y": 1.25 }, + { "label": "$", "x": 4, "y": 1.25 }, + { "label": "%", "x": 5, "y": 1.25 }, + { "label": "^", "x": 6, "y": 1.25 }, + { "label": "&", "x": 7, "y": 1.25 }, + { "label": "*", "x": 8, "y": 1.25 }, + { "label": "(", "x": 9, "y": 1.25 }, + { "label": ")", "x": 10, "y": 1.25 }, + { "label": "_", "x": 11, "y": 1.25 }, + { "label": "+", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w": 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "x": 17.25, "y": 1.25 }, + { "label": "Num Lock", "x": 18.5, "y": 1.25 }, + { "label": "/", "x": 19.5, "y": 1.25 }, + { "label": "*", "x": 20.5, "y": 1.25 }, + { "label": "-", "x": 21.5, "y": 1.25 }, + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "{", "x": 11.5, "y": 2.25 }, + { "label": "}", "x": 12.5, "y": 2.25 }, + { "label": "|", "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "x": 17.25, "y": 2.25 }, + { "label": "7", "x": 18.5, "y": 2.25 }, + { "label": "8", "x": 19.5, "y": 2.25 }, + { "label": "9", "x": 20.5, "y": 2.25 }, + { "label": "+", "x": 21.5, "y": 2.25, "h": 2 }, + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ":", "x": 10.75, "y": 3.25 }, + { "label": "\"", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "4", "x": 18.5, "y": 3.25 }, + { "label": "5", "x": 19.5, "y": 3.25 }, + { "label": "6", "x": 20.5, "y": 3.25 }, + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": "<", "x": 9.25, "y": 4.25 }, + { "label": ">", "x": 10.25, "y": 4.25 }, + { "label": "?", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + { "label": "1", "x": 18.5, "y": 4.25 }, + { "label": "2", "x": 19.5, "y": 4.25 }, + { "label": "3", "x": 20.5, "y": 4.25 }, + { "label": "Enter", "x": 21.5, "y": 4.25, "h": 2 }, + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 }, + { "label": "0", "x": 18.5, "y": 5.25, "w": 2 }, + { "label": ".", "x": 20.5, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/xelus/rs108/keymaps/default/keymap.c b/keyboards/xelus/rs108/keymaps/default/keymap.c new file mode 100644 index 0000000000..39b996309b --- /dev/null +++ b/keyboards/xelus/rs108/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_108_fullsize_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, 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_CAPS, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [1] = LAYOUT_108_fullsize_ansi( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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/xelus/rs108/keymaps/via/keymap.c b/keyboards/xelus/rs108/keymaps/via/keymap.c new file mode 100644 index 0000000000..5f2917ca7f --- /dev/null +++ b/keyboards/xelus/rs108/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the 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_108_fullsize_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, 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_CAPS, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [1] = LAYOUT_108_fullsize_ansi( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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_108_fullsize_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_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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_108_fullsize_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_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, 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/xelus/rs108/keymaps/via/rules.mk b/keyboards/xelus/rs108/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/xelus/rs108/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/xelus/rs108/mcuconf.h b/keyboards/xelus/rs108/mcuconf.h new file mode 100644 index 0000000000..2ef15d0720 --- /dev/null +++ b/keyboards/xelus/rs108/mcuconf.h @@ -0,0 +1,42 @@ +/* Copyright 2022 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/xelus/kangaroo/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +// 64MHz core +#define STM32_PLLM_VALUE 8 +#define STM32_PLLN_VALUE 168 +#define STM32_PLLP_VALUE 4 +#define STM32_PLLQ_VALUE 7 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE1_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/xelus/rs108/readme.md b/keyboards/xelus/rs108/readme.md new file mode 100644 index 0000000000..d287387190 --- /dev/null +++ b/keyboards/xelus/rs108/readme.md @@ -0,0 +1,19 @@ +# RS108 + +Full-size PCB in collaboration with Bisoromi and Mekibo + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: RS108 +* Hardware Availability: Custom Keyboard Group Buys + +Make example for this keyboard (after setting up your build environment): + + make xelus/rs108:default + +Reset your keyboard in 3 ways: + +* Software reset on Fn [MO(1)] + Backspace +* Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard +* Physical reset button: on the back of the PCB, there should be a small golden button you can press + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/xelus/rs108/rs108.c b/keyboards/xelus/rs108/rs108.c new file mode 100644 index 0000000000..7c23446466 --- /dev/null +++ b/keyboards/xelus/rs108/rs108.c @@ -0,0 +1,16 @@ +/* Copyright 2022 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "rs108.h" diff --git a/keyboards/xelus/rs108/rs108.h b/keyboards/xelus/rs108/rs108.h new file mode 100644 index 0000000000..5ba9d70ce8 --- /dev/null +++ b/keyboards/xelus/rs108/rs108.h @@ -0,0 +1,42 @@ +/* Copyright 2022 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 XXXXX KC_NO + +#define LAYOUT_108_fullsize_ansi( \ + K0000, K0001, K0101, K0002, K0102, K0003, K0103, K0004, K0104, K0005, K0105, K0006, K0106, K0007, K0107, K0008, K0108, K0009, K0109, K0010, \ + K0200, K0300, K0201, K0301, K0202, K0302, K0203, K0303, K0204, K0304, K0205, K0305, K0206, K0306, K0207, K0307, K0208, K0308, K0209, K0309, K0210, \ + K0400, K0500, K0401, K0501, K0402, K0502, K0403, K0503, K0404, K0504, K0405, K0505, K0406, K0506, K0407, K0507, K0408, K0508, K0409, K0509, \ + K0600, K0700, K0601, K0701, K0602, K0702, K0603, K0703, K0604, K0704, K0605, K0705, K0706, K0708, K0609, K0709, K0610, \ + K0800, K0900, K0801, K0901, K0802, K0902, K0803, K0903, K0804, K0904, K0805, K0906, K0907, K0908, K0809, K0909, \ + K1000, K1100, K1001, K1102, K1104, K1005, K1006, K1106, K1007, K1107, K1008, K1009, K1109, K1010 \ +) { \ + { K0000, K0001, K0002, K0003, K0004, K0005, K0006, K0007, K0008, K0009, K0010 }, \ + { XXXXX, K0101, K0102, K0103, K0104, K0105, K0106, K0107, K0108, K0109, XXXXX }, \ + { K0200, K0201, K0202, K0203, K0204, K0205, K0206, K0207, K0208, K0209, K0210 }, \ + { K0300, K0301, K0302, K0303, K0304, K0305, K0306, K0307, K0308, K0309, XXXXX }, \ + { K0400, K0401, K0402, K0403, K0404, K0405, K0406, K0407, K0408, K0409, XXXXX }, \ + { K0500, K0501, K0502, K0503, K0504, K0505, K0506, K0507, K0508, K0509, XXXXX }, \ + { K0600, K0601, K0602, K0603, K0604, K0605, XXXXX, XXXXX, XXXXX, K0609, K0610 }, \ + { K0700, K0701, K0702, K0703, K0704, K0705, K0706, XXXXX, K0708, K0709, XXXXX }, \ + { K0800, K0801, K0802, K0803, K0804, K0805, XXXXX, XXXXX, XXXXX, K0809, XXXXX }, \ + { K0900, K0901, K0902, K0903, K0904, XXXXX, K0906, K0907, K0908, K0909, XXXXX }, \ + { K1000, K1001, XXXXX, XXXXX, XXXXX, K1005, K1006, K1007, K1008, K1009, K1010 }, \ + { K1100, XXXXX, K1102, XXXXX, K1104, XXXXX, K1106, K1107, XXXXX, K1109, XXXXX }, \ +} diff --git a/keyboards/xelus/rs108/rules.mk b/keyboards/xelus/rs108/rules.mk new file mode 100644 index 0000000000..86ab82cc61 --- /dev/null +++ b/keyboards/xelus/rs108/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = STM32F401 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +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/xiudi/xd002/keymaps/tap_dance/config.h b/keyboards/xiudi/xd002/keymaps/tap_dance/config.h index 1fd93f875f..b86e862d30 100644 --- a/keyboards/xiudi/xd002/keymaps/tap_dance/config.h +++ b/keyboards/xiudi/xd002/keymaps/tap_dance/config.h @@ -1,4 +1,3 @@ #pragma once #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD diff --git a/keyboards/xiudi/xd60/keymaps/birkir/keymap.c b/keyboards/xiudi/xd60/keymaps/birkir/keymap.c index ab129332c9..fe7cd60662 100644 --- a/keyboards/xiudi/xd60/keymaps/birkir/keymap.c +++ b/keyboards/xiudi/xd60/keymaps/birkir/keymap.c @@ -47,7 +47,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { edit = false; } - switch (get_highest_layer(state)) { + switch (biton32(state)) { case 1: rgblight_mode(1); rgblight_setrgb(0xD3, 0x7F, 0xED); diff --git a/keyboards/xiudi/xd60/keymaps/kmontag42/keymap.c b/keyboards/xiudi/xd60/keymaps/kmontag42/keymap.c index d17fc2f35d..8e081c6731 100644 --- a/keyboards/xiudi/xd60/keymaps/kmontag42/keymap.c +++ b/keyboards/xiudi/xd60/keymaps/kmontag42/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Loop void matrix_scan_user(void) { static uint8_t old_layer = 255; - uint8_t new_layer = get_highest_layer(layer_state); + uint8_t new_layer = biton32(layer_state); if (old_layer != new_layer) { switch (new_layer) { diff --git a/keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c b/keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c index c278df1b21..5f7337d68b 100644 --- a/keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c @@ -100,7 +100,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Runs whenever there is a layer state change. layer_state_t layer_state_set_user(layer_state_t state) { - uint8_t layer = get_highest_layer(state); + uint8_t layer = biton32(state); gp100_led_off(); gp103_led_off(); diff --git a/keyboards/xiudi/xd75/keymaps/bbaserdem/config.h b/keyboards/xiudi/xd75/keymaps/bbaserdem/config.h deleted file mode 100644 index 271f48d001..0000000000 --- a/keyboards/xiudi/xd75/keymaps/bbaserdem/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -// place overrides here diff --git a/keyboards/xiudi/xd75/keymaps/bbaserdem/keymap.c b/keyboards/xiudi/xd75/keymaps/bbaserdem/keymap.c deleted file mode 100644 index 6f8576b09b..0000000000 --- a/keyboards/xiudi/xd75/keymaps/bbaserdem/keymap.c +++ /dev/null @@ -1,21 +0,0 @@ -#include QMK_KEYBOARD_H -#include "bbaserdem.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Layout - * ,-----------------------------------------------------------. - * |Blt|Lck| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | - * |---+---+-----------------------------------------------+---| - * |Int|Trm| |Cps| - * |---+---| |---| - * |Clc|Psw| | \ | - * |---+---| PLANCK |---| - * |Rev|Ffw| | [ | - * |---+---| |---| - * |Tog|Mut| | ] | - * `-----------------------------------------------------------' - */ -[0] = KM( FKLAVYE ), -[1] = KM( AYARLAR ), -}; - diff --git a/keyboards/xiudi/xd75/keymaps/bbaserdem/readme.md b/keyboards/xiudi/xd75/keymaps/bbaserdem/readme.md deleted file mode 100644 index a0ade691aa..0000000000 --- a/keyboards/xiudi/xd75/keymaps/bbaserdem/readme.md +++ /dev/null @@ -1,14 +0,0 @@ -# XD75RE Setup - -(WIP) F keyboard for turkish, using unicode. - -* Write down keymap in userspace -* Figure out LED indicators - -# Make - -Take the board into reset mode, then -``` -make xiudi/xd75:bbaserdem:dfu -``` -Either sudo it or set permissions in udev. diff --git a/keyboards/xiudi/xd75/keymaps/bbaserdem/rules.mk b/keyboards/xiudi/xd75/keymaps/bbaserdem/rules.mk deleted file mode 100644 index 3e501cd00e..0000000000 --- a/keyboards/xiudi/xd75/keymaps/bbaserdem/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -# Build options -BACKLIGHT_ENABLE = yes # Switch LEDs -MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses -RGBLIGHT_ENABLE = no # LED strips -TAP_DANCE_ENABLE = no # Use multi-tap features -AUDIO_ENABLE = no # Audio stuff - diff --git a/keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c b/keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c index a0295f2f45..1b29686cff 100644 --- a/keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c @@ -286,7 +286,7 @@ void matrix_init_user(void) { } layer_state_t layer_state_set_user(layer_state_t state) { - switch(get_highest_layer(state)) { + switch(biton32(state)) { case _QWERTY: rgblight_sethsv_white(); break; diff --git a/keyboards/xiudi/xd75/keymaps/kloki/keymap.c b/keyboards/xiudi/xd75/keymaps/kloki/keymap.c index d25a16fbb6..a630019347 100644 --- a/keyboards/xiudi/xd75/keymaps/kloki/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/kloki/keymap.c @@ -70,7 +70,7 @@ bool WINDOWN = false; bool SHIFTDOWN = false; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { case 0: diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c new file mode 100644 index 0000000000..07ecbcd848 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c @@ -0,0 +1,173 @@ +/* Copyright 2017 WunderaaaaaAa + * Modified by RAOEUS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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_steno.h" + +void matrix_init_user(void) { + steno_set_mode(STENO_MODE_GEMINI); +} + +enum layer_names { _QWERTY, _LOWER, _RAISE, _BOTH, _STENO }; + +enum keycodes { QWERTY = SAFE_RANGE, LOWER, RAISE, STENO, EXT_STN }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* QWERTY + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | NUM | / | * | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | Del | 7 | 8 | 9 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | 4 | 5 | 6 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LShift | Z | X | C | V | B | N | M | , | . | / | Enter | 1 | 2 | 3 | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCtl | LAlt | LGUI | Steno | Lower | Space | Space | Raise | Left | Down | Up | Right | 0 | . | Enter | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_ortho_5x15( + 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_NUM, KC_PSLS, KC_PAST, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_P7, KC_P8, KC_P9, + 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_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_ENT, KC_P1, KC_P2, KC_P3, + KC_LCTRL, KC_LALT, KC_LGUI, STENO, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + + /* STENO + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | FN | S | T | P | H | * | * | F | P | L | T | D | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | S | K | W | R | * | * | R | B | G | S | Z | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | EXIT | | | # | A | O | E | U | # | PWR | RES1 | RES2 | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_STENO] = LAYOUT_ortho_5x15( + STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC, XXXXXXX, XXXXXXX, XXXXXXX, + STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + EXT_STN, XXXXXXX, XXXXXXX, STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2, STN_PWR, STN_RE1, STN_RE2, XXXXXXX, XXXXXXX, XXXXXXX), + + /* LOWER + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO ~ | ISO | | Home | End | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_5x15( + 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_CAPS, 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 | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO # | ISO / | Pg Up | Pg Dn | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_5x15( + 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_CAPS, 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, _______, _______, _______), + + /* BOTH (LOWER + RAISE) + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | Reset | Debug | | | | | TermOf | TermOn | | | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | AGNorm | AGSwap | QWERTY | STENO | | | PLAIN | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RGB+ | | | | | | | RGBTOG | HUE+ | SAT+ | BRITE+ | SPEED+ | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RGB- | | | | | | | | HUE- | SAT- | BRITE- | SPEED- | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [_BOTH] = LAYOUT_ortho_5x15( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, _______, _______, _______, + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, STENO, _______, _______, RGB_M_P, _______, _______, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, + RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + layer_move(_QWERTY); + }; + return false; + break; + case STENO: + if (record->event.pressed) { + layer_move(_STENO); + } + return false; + break; + case EXT_STN: + if (record->event.pressed) { + layer_off(_STENO); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } + return false; + break; + } + return true; +} diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/readme.md b/keyboards/xiudi/xd75/keymaps/raoeus/readme.md new file mode 100644 index 0000000000..40da8596e5 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/raoeus/readme.md @@ -0,0 +1,77 @@ +# RAOEUS Layout for the XD75 + +This layout is based on the Preonic layout, but with an additional numpad on the right. I have also added a stenography layer for use with Plover. + +To compile this XD75 keymapping, please run `make xiudi/xd75:raoeus` + +To compile _and_ flash, please run `make xiudi/xd75:raoeus:flash` + + /* QWERTY + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | NUM | / | * | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | Del | 7 | 8 | 9 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | 4 | 5 | 6 | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | LShift | Z | X | C | V | B | N | M | , | . | / | Enter | 1 | 2 | 3 | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCtl | LAlt | LGUI | Steno | Lower | Space | Space | Raise | Left | Down | Up | Right | 0 | . | Enter | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + /* STENO + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | FN | S | T | P | H | * | * | F | P | L | T | D | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| + * | | S | K | W | R | * | * | R | B | G | S | Z | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| + * | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| + * | EXIT | | | # | A | O | E | U | # | PWR | RES1 | RES2 | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + /* LOWER + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO ~ | ISO | | Home | End | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + /* RAISE + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAPS | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | ISO # | ISO / | Pg Up | Pg Dn | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + /* BOTH (LOWER + RAISE) + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | Reset | Debug | | | | | TermOf | TermOn | | | Del | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | AGNorm | AGSwap | QWERTY | STENO | | | PLAIN | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RGB+ | | | | | | | RGBTOG | HUE+ | SAT+ | BRITE+ | SPEED+ | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | RGB- | | | | | | | | HUE- | SAT- | BRITE- | SPEED- | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/rules.mk b/keyboards/xiudi/xd75/keymaps/raoeus/rules.mk new file mode 100644 index 0000000000..0694ab5b65 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/raoeus/rules.mk @@ -0,0 +1,3 @@ +MOUSEKEY_ENABLE = no # Mouse keys +STENO_ENABLE = yes # Additional protocols for Stenography requires VIRTSER +AUTO_SHIFT_ENABLE = yes # When you hold down a character in QWERTY, shift is automatically applied diff --git a/keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c b/keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c index f48eb94214..b7b98cd4c5 100644 --- a/keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c @@ -180,7 +180,7 @@ void matrix_init_user(void) { //Set a color based on the layer layer_state_t layer_state_set_user(layer_state_t state) { - switch(get_highest_layer(state)) { + switch(biton32(state)) { case _LYFK: rgblight_setrgb_user_LYFK(); break; diff --git a/keyboards/yanghu/unicorne/f411/rules.mk b/keyboards/yanghu/unicorne/f411/rules.mk index b32a8b7f5b..c25a64f4b3 100644 --- a/keyboards/yanghu/unicorne/f411/rules.mk +++ b/keyboards/yanghu/unicorne/f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/ymdk/sp64/keymaps/minkezhang/config.h b/keyboards/ymdk/sp64/keymaps/minkezhang/config.h new file mode 100644 index 0000000000..5bfa79eb21 --- /dev/null +++ b/keyboards/ymdk/sp64/keymaps/minkezhang/config.h @@ -0,0 +1,5 @@ +// Copyright 2022 Minke Zhang (@minkezhang) +// SPDX-License-Identifier: GPL-3.0-only +#pragma once + +#define RGBLIGHT_LAYERS diff --git a/keyboards/ymdk/sp64/keymaps/minkezhang/keymap.c b/keyboards/ymdk/sp64/keymaps/minkezhang/keymap.c new file mode 100644 index 0000000000..7481696fd6 --- /dev/null +++ b/keyboards/ymdk/sp64/keymaps/minkezhang/keymap.c @@ -0,0 +1,149 @@ +// Copyright 2022 Minke Zhang (@minkezhang) +// SPDX-License-Identifier: GPL-3.0-only +#include QMK_KEYBOARD_H + +/* Layer transitions diagram + * + * BASE <-> _FN [MO] + * BASE <-> _NUM [TG] + * _NUM <-> _MIRROR [MO] + * + * Direct transitions between layers not listed here are considered bugs. + */ +enum layer_names { + BASE, // default layer + _FN, // function layer + _NUM, // numpad + _MIRROR, // mirrorboard layer +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ = │ BkSp │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ Tab │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ Caps │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ LShift │ Z │ X │ C │ V │ B │ │ N │ M │ < │ > │ ? │Shft │ Up │ Del │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ Ctrl │ Win │ Alt │ Fn │ Sp │ │ │ Alt │ Fn │ Lft │ Dwn │ Rgt │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[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_MINUS, KC_EQUAL, 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_LBRACKET, KC_RBRACKET, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPACE, KC_SPACE, KC_RALT, TG(_NUM), KC_LEFT, KC_DOWN, KC_RIGHT + ), + +/* Function + * + * Cannot access the _NUM layer directly. + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ ` │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ │ Up │ │ │ │ │ │ │ │ │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ Enter │ │ Lft │ Dwn │ Rgt │ │ │ │ │ │ │ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ NO │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_ENT, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, _______, _______ + ), + +/* Numpad + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ ` │ │ │ │ │ │ │ │ Num │ / │ * │ - │ | │ | + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ │ │ │ │ │ │ │ │ 7 │ 8 │ 9 │ + │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ │ │ │ │ │ │ │ │ 4 │ 5 │ 6 │ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ │ │ │ │ │ │ │ 1 │ 2 │ 3 │ Ent │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ Fn │ │ │ 0 │ . │ Fn │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_NUM] = LAYOUT( + KC_GRV, _______, _______, _______, _______, _______, _______, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, + _______, _______, _______, MO(_MIRROR), _______, KC_P0, KC_PDOT, TG(_NUM), _______, _______, _______ + ), + +/* Mirrorboard + * + * Useful in some niche situations per XKCD. Cannot pass directly to BASE layer + * without releasing the _MIRROR toggle key. + * + * ┌-----┬-----┬-----┬-----┬-----┬-----┬-----┐ ┌-----┬-----┬-----┬-----┬-----┬-----┬----------┐ + * │ Bk │ = │ - │ 0 │ 9 │ 8 │ 7 │ │ │ │ │ │ | │ | + * ├-----┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┘ ┌--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬--┴--┬-------┤ + * │ \ │ P │ O │ I │ U │ Y │ │ │ │ │ │ │ │ │ │ + * ├--------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴-------┤ + * │ Enter │ ; │ L │ K │ J │ H │ │ │ │ │ │ │ │ │ + * ├---------┴┬----┴┬----┴┬----┴┬----┴┬----┴┐ └┬----┴┬----┴┬----┴┬----┴┬----┴┬----┴┬-----┬-----┤ + * │ │ ? │ > │ < │ M │ N │ │ │ │ │ │ │ │ │ │ + * ├------┬---┴-┬---┴--┬--┴-----┴----┬┴----┬┘ ┌┴-----┴-----┴--┬--┴----┬┴-----┼-----┼-----┼-----┤ + * │ │ │ │ │ │ │ │ │ NO │ │ │ │ + * └------┴-----┴------┴-------------┴-----┘ └---------------┴-------┴------┴-----┴-----┴-----┘ + */ +[_MIRROR] = LAYOUT( + KC_BSPC, KC_EQUAL, KC_MINUS, KC_0, KC_9, KC_8, KC_7, _______, _______, _______, _______, _______, _______, _______, + KC_BSLS, KC_P, KC_O, KC_I, KC_U, KC_Y, _______, _______, _______, _______, _______, _______, _______, _______, + KC_ENT, KC_SCOLON, KC_L, KC_K, KC_J, KC_H, _______, _______, _______, _______, _______, _______, _______, + _______, KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, _______, _______ + ), +}; + +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) +const rgblight_segment_t PROGMEM BASE_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 12, HSV_OFF}); +const rgblight_segment_t PROGMEM _FN_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 12, HSV_RED}); +const rgblight_segment_t PROGMEM _NUM_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 12, HSV_YELLOW}); +const rgblight_segment_t PROGMEM _MIRROR_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 12, HSV_ORANGE}); + +const rgblight_segment_t* const PROGMEM user_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + BASE_layer, + _FN_layer, + _NUM_layer, + _MIRROR_layer +); + +void keyboard_post_init_user(void) { + rgblight_layers = user_rgb_layers; +} +layer_state_t default_layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, BASE)); + + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + +/* Add some indication for current function layer. + * + * N.B.: rgblight_set_layer_state calls rgblight_mode_noeeprom. + */ + rgblight_set_layer_state(1, layer_state_cmp(state, _FN)); + rgblight_set_layer_state(2, layer_state_cmp(state, _NUM)); + rgblight_set_layer_state(3, layer_state_cmp(state, _MIRROR)); + + return state; +} +#endif diff --git a/keyboards/ymdk/sp64/keymaps/minkezhang/readme.md b/keyboards/ymdk/sp64/keymaps/minkezhang/readme.md new file mode 100644 index 0000000000..50d4eb8788 --- /dev/null +++ b/keyboards/ymdk/sp64/keymaps/minkezhang/readme.md @@ -0,0 +1,7 @@ +# YMDK Split 64 +Personal Keymap for [minkezhang](https://github.com/minkezhang) + +## Compile +```bash +qmk compile -kb ymdk/sp64 -km minkezhang +``` diff --git a/keyboards/ymdk/sp64/keymaps/minkezhang/rules.mk b/keyboards/ymdk/sp64/keymaps/minkezhang/rules.mk new file mode 100644 index 0000000000..1e3cebb145 --- /dev/null +++ b/keyboards/ymdk/sp64/keymaps/minkezhang/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/zfrontier/big_switch/config.h b/keyboards/zfrontier/big_switch/config.h index 99bd790cae..ddec2b2796 100644 --- a/keyboards/zfrontier/big_switch/config.h +++ b/keyboards/zfrontier/big_switch/config.h @@ -51,4 +51,3 @@ along with this program. If not, see . /* long tapping config */ #define TAPPING_TERM 500 -#define PERMISSIVE_HOLD diff --git a/keyboards/zvecr/zv48/f401/rules.mk b/keyboards/zvecr/zv48/f401/rules.mk index 94dd741994..37ee7172f8 100644 --- a/keyboards/zvecr/zv48/f401/rules.mk +++ b/keyboards/zvecr/zv48/f401/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F401 +BOARD = BLACKPILL_STM32_F401 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/keyboards/zvecr/zv48/f411/rules.mk b/keyboards/zvecr/zv48/f411/rules.mk index b32a8b7f5b..c25a64f4b3 100644 --- a/keyboards/zvecr/zv48/f411/rules.mk +++ b/keyboards/zvecr/zv48/f411/rules.mk @@ -1,5 +1,6 @@ # MCU name MCU = STM32F411 +BOARD = BLACKPILL_STM32_F411 # Bootloader selection BOOTLOADER = stm32-dfu diff --git a/layouts/community/60_ansi/manna-harbour_miryoku/config.h b/layouts/community/60_ansi/manna-harbour_miryoku/config.h index 81f1ceb42f..20af16623d 100644 --- a/layouts/community/60_ansi/manna-harbour_miryoku/config.h +++ b/layouts/community/60_ansi/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c b/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c +++ b/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/66_ansi/xyverz/config.h b/layouts/community/66_ansi/xyverz/config.h index 37a57dbffd..06e5830af8 100644 --- a/layouts/community/66_ansi/xyverz/config.h +++ b/layouts/community/66_ansi/xyverz/config.h @@ -1,6 +1,5 @@ #pragma once #define TAPPING_TERM 600 // ms -#define PERMISSIVE_HOLD #undef RGBLIGHT_HUE_STEP #define RGBLIGHT_HUE_STEP 8 diff --git a/layouts/community/alice/manna-harbour_miryoku/config.h b/layouts/community/alice/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..61f31d228e --- /dev/null +++ b/layouts/community/alice/manna-harbour_miryoku/config.h @@ -0,0 +1,23 @@ +// Copyright 2021 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define XXX KC_NO + + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_alice( \ +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_PGUP, KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_PGDN, KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ + KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_SLSH, KC_RSFT, KC_RSFT, \ + KC_LCTL, K32, K33, K34, K36, K37, KC_RCTL \ +) diff --git a/layouts/community/alice/manna-harbour_miryoku/keymap.c b/layouts/community/alice/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/layouts/community/alice/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/alice_split_bs/manna-harbour_miryoku/config.h b/layouts/community/alice_split_bs/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..8d8ad00227 --- /dev/null +++ b/layouts/community/alice_split_bs/manna-harbour_miryoku/config.h @@ -0,0 +1,22 @@ +// Copyright 2021 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_alice_split_bs( \ +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_PGUP, KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ +KC_PGDN, KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ + KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_SLSH, KC_RSFT, KC_RSFT, \ + KC_LCTL, K32, K33, K34, K36, K37, KC_RCTL \ +) diff --git a/layouts/community/alice_split_bs/manna-harbour_miryoku/keymap.c b/layouts/community/alice_split_bs/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..dbab7f9820 --- /dev/null +++ b/layouts/community/alice_split_bs/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ergodox/ab/keymap.c b/layouts/community/ergodox/ab/keymap.c index e85d5d528c..001123e286 100644 --- a/layouts/community/ergodox/ab/keymap.c +++ b/layouts/community/ergodox/ab/keymap.c @@ -130,7 +130,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/absenth/keymap.c b/layouts/community/ergodox/absenth/keymap.c index 884167aa31..d84b68f0ef 100644 --- a/layouts/community/ergodox/absenth/keymap.c +++ b/layouts/community/ergodox/absenth/keymap.c @@ -157,7 +157,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/adam/config.h b/layouts/community/ergodox/adam/config.h index 1555ae11fd..62e82d8b2b 100644 --- a/layouts/community/ergodox/adam/config.h +++ b/layouts/community/ergodox/adam/config.h @@ -1,5 +1,5 @@ #pragma once #undef TAPPING_TERM -#define TAPPING_TERM 300 +#define TAPPING_TERM 300 //At 500 some bad logic takes hold #define IGNORE_MOD_TAP_INTERRUPT diff --git a/layouts/community/ergodox/adam/keymap.c b/layouts/community/ergodox/adam/keymap.c index 9dd611e03e..50270838aa 100644 --- a/layouts/community/ergodox/adam/keymap.c +++ b/layouts/community/ergodox/adam/keymap.c @@ -129,7 +129,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (layer) { // TODO: Make this relevant to the ErgoDox EZ. diff --git a/layouts/community/ergodox/adnw_k_o_y/keymap.c b/layouts/community/ergodox/adnw_k_o_y/keymap.c index 6aa309c2cc..589a9ea873 100644 --- a/layouts/community/ergodox/adnw_k_o_y/keymap.c +++ b/layouts/community/ergodox/adnw_k_o_y/keymap.c @@ -139,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/alexjj/keymap.c b/layouts/community/ergodox/alexjj/keymap.c index c9adf7af63..64e7c94433 100644 --- a/layouts/community/ergodox/alexjj/keymap.c +++ b/layouts/community/ergodox/alexjj/keymap.c @@ -206,7 +206,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/andrew_osx/keymap.c b/layouts/community/ergodox/andrew_osx/keymap.c index 4f3f6ef0cb..990fea4f45 100644 --- a/layouts/community/ergodox/andrew_osx/keymap.c +++ b/layouts/community/ergodox/andrew_osx/keymap.c @@ -141,7 +141,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/berfarah/keymap.c b/layouts/community/ergodox/berfarah/keymap.c index 7dc09e7543..164d026ef3 100644 --- a/layouts/community/ergodox/berfarah/keymap.c +++ b/layouts/community/ergodox/berfarah/keymap.c @@ -219,7 +219,7 @@ static inline void mod_layer_with_rgb(keyrecord_t *record, uint8_t layer) { bf_set_led(layer); } else { layer_off(layer); - uint8_t currentLayer = get_highest_layer(layer_state); + uint8_t currentLayer = biton32(layer_state); bf_set_led(currentLayer); }; }; @@ -266,7 +266,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_right_led_1_off(); ergodox_right_led_2_off(); diff --git a/layouts/community/ergodox/bryan/keymap.c b/layouts/community/ergodox/bryan/keymap.c index ab301e8922..acae77d5fc 100644 --- a/layouts/community/ergodox/bryan/keymap.c +++ b/layouts/community/ergodox/bryan/keymap.c @@ -200,7 +200,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/choromanski/keymap.c b/layouts/community/ergodox/choromanski/keymap.c index 933f13b25f..8be3c7ea7e 100644 --- a/layouts/community/ergodox/choromanski/keymap.c +++ b/layouts/community/ergodox/choromanski/keymap.c @@ -30,15 +30,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { OSL(3), TG(2), TO(5), TO(1), KC_CAPS, KC_LCTL, KC_LALT, KC_MUTE, - KC_BSPC, KC_DEL, KC_LGUI, + KC_BSPC, KC_DEL, KC_LGUI, - KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_RPRN, 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_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_RBRC, KC_K, KC_M, KC_COMM, ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_RSFT, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TG(4), - KC_RALT, KC_RCTL, - KC_WH_U, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TG(4), + KC_RALT, KC_RCTL, + KC_WH_U, KC_WH_D, KC_ENT, KC_SPC ), @@ -106,22 +106,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [2] = LAYOUT_ergodox( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + 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 ), /* Keymap 3: Symbols @@ -147,9 +147,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [3] = LAYOUT_ergodox( KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - KC_TRNS, KC_PIPE, KC_PLUS, KC_LABK, KC_RABK, KC_HASH, KC_TRNS, - KC_TRNS, KC_EXLM, KC_MINS, KC_EQL, KC_PERC, KC_AT, - KC_TRNS, KC_ASTR, KC_AMPR, KC_SLSH, KC_DLR, KC_CIRC, KC_TRNS, + KC_TRNS, KC_PIPE, KC_PLUS, KC_LABK, KC_RABK, KC_HASH, KC_TRNS, + KC_TRNS, KC_EXLM, KC_MINS, KC_EQL, KC_PERC, KC_AT, + KC_TRNS, KC_ASTR, KC_AMPR, KC_SLSH, KC_DLR, KC_CIRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -229,8 +229,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [5] = LAYOUT_ergodox( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, KC_LCTL, LALT(KC_TAB), TO(0), KC_LALT, KC_SPC, KC_MPRV, KC_MNXT, KC_VOLU, @@ -249,7 +249,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/colemak/keymap.c b/layouts/community/ergodox/colemak/keymap.c index db2addd6d9..54b0c5834a 100644 --- a/layouts/community/ergodox/colemak/keymap.c +++ b/layouts/community/ergodox/colemak/keymap.c @@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/colemak_code_friendly/keymap.c b/layouts/community/ergodox/colemak_code_friendly/keymap.c index 6350bd9ee2..936ddbc2a5 100644 --- a/layouts/community/ergodox/colemak_code_friendly/keymap.c +++ b/layouts/community/ergodox/colemak_code_friendly/keymap.c @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_LSFT, LCTL_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, RALT_T(KC_B), KC_LCBR, KC_LCTL, KC_LGUI, KC_LALT, KC_LBRC, KC_RBRC, - + KC_HOME, KC_END, KC_PSCR, MO(LAYER_LNUM), KC_ENT, KC_LGUI, @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F8, KC_F7, KC_F6, KC_F5, M_IN_PRN, KC_TRNS, KC_F4, KC_F3, KC_F2, KC_F1, M_IN_BRC, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, - + KC_TRNS, KC_TRNS, DYN_REC_START1, KC_TRNS, KC_TRNS, DYN_MACRO_PLAY1, @@ -126,8 +126,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | } |------+------+------+------+------+--------| * | | F4 | F3 | F2 | F1 | [] | | | |K/RAlt| M | , |./Supe|/ RCtl| RShift | * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' - * | MUTE | VOLD | VOLU | | | | Left | Down | Up |Right | Del | - * '----------------------------------' '----------------------------------' + * | MUTE | VOLD | VOLU | | | | Left | Down | Up |Right | Del | + * '----------------------------------' '----------------------------------' * .-------------. .-------------. * | | | | Ins |ScrLck| * .------+------+------| |------+------+------. @@ -143,7 +143,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F8, KC_F7, KC_F6, KC_F5, M_IN_PRN, KC_TRNS, KC_F4, KC_F3, KC_F2, KC_F1, M_IN_BRC, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, - + KC_TRNS, KC_TRNS, DYN_REC_START1, KC_TRNS, KC_TRNS, DYN_MACRO_PLAY1, @@ -185,7 +185,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { S(KC_ESC), S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_D), KC_LSFT, S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), KC_LCBR, S(KC_LCTL), S(KC_LGUI), S(KC_LALT), S(KC_LBRC), S(KC_RBRC), - + S(KC_HOME), S(KC_END), S(KC_PSCR), KC_CAPS, S(KC_ENT), S(KC_LGUI), @@ -227,7 +227,7 @@ static bool process_record_dynamic_macro_wrapper(uint16_t keycode, keyrecord_t * } bool process_record_user(uint16_t keycode, keyrecord_t *record) { - + /* the purpose of the ..._wrapper is to detect START/ST0P keys to light the blue led during recording */ if (!process_record_dynamic_macro_wrapper(keycode, record)) { @@ -308,19 +308,19 @@ 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); + uint8_t layer = biton32(layer_state); //led 1, RED, Caps-Lock ON //if (host_keyboard_leds() & (1<event.pressed) { return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END); - } + } break; case MACRO_PRIVATE: if (record->event.pressed) { return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END); - } + } break; case MACRO_STATIC: if (record->event.pressed) { return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END); - } + } break; case MACRO_CONST: if (record->event.pressed) { return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END); - } + } break; case MACRO_VOID: if (record->event.pressed) { return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END); - } + } break; case MACRO_VAR: if (record->event.pressed) { return MACRO( T(V), T(A), T(R), T(SPACE), END); - } + } break; case MACRO_STRING: if (record->event.pressed) { return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END); - } - break; + } + break; case MACRO_BOOL: if (record->event.pressed) { return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END); - } - break; + } + break; case MACRO_INT: if (record->event.pressed) { return MACRO( T(I), T(N), T(T), T(SPACE), END); - } + } break; case MACRO_FLOAT: if (record->event.pressed) { return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END); - } + } break; case MACRO_RETURN: if (record->event.pressed) { return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END); - } + } break; case MACRO_NULL: if (record->event.pressed) { return MACRO( T(N), T(U), T(L), T(L), END); - } + } case MACRO_BREAK: if (record->event.pressed) { return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END); - } + } break; case MACRO_TODO: if (record->event.pressed) { return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END); - } + } break; case MACRO_NEW: if (record->event.pressed) { return MACRO( T(N), T(E), T(W), T(SPACE), END); - } + } break; case MACRO_PARENTHESE: if (record->event.pressed) { return MACRO( D(LSHIFT),T(9), T(0),U(LSHIFT), T(SCOLON), END); - } + } break; } return MACRO_NONE; @@ -213,7 +213,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/dave/keymap.c b/layouts/community/ergodox/dave/keymap.c index c54e50ba98..efa270c406 100644 --- a/layouts/community/ergodox/dave/keymap.c +++ b/layouts/community/ergodox/dave/keymap.c @@ -147,7 +147,7 @@ void matrix_scan_user(void) { */ static uint8_t leds[4]; uint8_t led; - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); diff --git a/layouts/community/ergodox/deadcyclo/keymap.c b/layouts/community/ergodox/deadcyclo/keymap.c index 76f5279257..345e25e03e 100644 --- a/layouts/community/ergodox/deadcyclo/keymap.c +++ b/layouts/community/ergodox/deadcyclo/keymap.c @@ -90,10 +90,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LALT, KC_RALT,KC_LEAD,LCTL(LSFT(KC_U)), LT(SYMB,KC_TILD), KC_PGUP, KC_INS, KC_PGDN, - KC_RBRC,KC_BSPC, KC_ENT + KC_RBRC,KC_BSPC, KC_ENT ), -/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U)) - * +/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U)) + * * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| @@ -192,7 +192,7 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, I3_RUN, KC_TRNS, KC_TRNS, * ,-------------. ,-------------. * | | | | ▒ | ▓ | * ,------|------|------| |------+------+------. - * | | | | | | | | + * | | | | | | | | * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' @@ -218,7 +218,7 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, I3_RUN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -/* Keymap 4: Unicode 2 +/* Keymap 4: Unicode 2 * * ,--------------------------------------------------. ,--------------------------------------------------. * | | ¹ | ² | ³ | ⁴ | ⁵ | ⁶ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | ℃ | ™ | @@ -234,12 +234,12 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, I3_RUN, KC_TRNS, KC_TRNS, * ,-------------. ,-------------. * | | | | | | * ,------|------|------| |------+------+------. - * | | | | | | | | + * | | | | | | | | * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ -// Unicode 2 +// Unicode 2 [UNI2] = LAYOUT_ergodox( KC_TRNS, UC(0x00b9), UC(0x00b2), UC(0x00b3), UC(0x2074), UC(0x2075), UC(0x2076), KC_TRNS, UC(0x2081), UC(0x2082), UC(0x2083), UC(0x2084), UC(0x2085), UC(0x2086), @@ -346,7 +346,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/dragon788/keymap.c b/layouts/community/ergodox/dragon788/keymap.c index b32346a9df..956a592b6d 100644 --- a/layouts/community/ergodox/dragon788/keymap.c +++ b/layouts/community/ergodox/dragon788/keymap.c @@ -183,7 +183,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/dvorak/keymap.c b/layouts/community/ergodox/dvorak/keymap.c index 664d8055a4..68b575fd68 100644 --- a/layouts/community/ergodox/dvorak/keymap.c +++ b/layouts/community/ergodox/dvorak/keymap.c @@ -138,7 +138,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/dvorak_emacs/keymap.c b/layouts/community/ergodox/dvorak_emacs/keymap.c index 14c592f27f..6055fd770d 100644 --- a/layouts/community/ergodox/dvorak_emacs/keymap.c +++ b/layouts/community/ergodox/dvorak_emacs/keymap.c @@ -120,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/dvorak_emacs_software/keymap.c b/layouts/community/ergodox/dvorak_emacs_software/keymap.c index c2bc1ef8f2..4f90f193c6 100644 --- a/layouts/community/ergodox/dvorak_emacs_software/keymap.c +++ b/layouts/community/ergodox/dvorak_emacs_software/keymap.c @@ -121,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/dvorak_intl_squisher/keymap.c b/layouts/community/ergodox/dvorak_intl_squisher/keymap.c index 2d3ec3806b..3ebbd2df09 100644 --- a/layouts/community/ergodox/dvorak_intl_squisher/keymap.c +++ b/layouts/community/ergodox/dvorak_intl_squisher/keymap.c @@ -139,7 +139,7 @@ LAYOUT_ergodox( // layer 0 : default // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/dvorak_plover/keymap.c b/layouts/community/ergodox/dvorak_plover/keymap.c index 51f7e61203..989aafb90a 100644 --- a/layouts/community/ergodox/dvorak_plover/keymap.c +++ b/layouts/community/ergodox/dvorak_plover/keymap.c @@ -181,7 +181,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/dvorak_programmer/keymap.c b/layouts/community/ergodox/dvorak_programmer/keymap.c index a8acee119a..33115d21f3 100644 --- a/layouts/community/ergodox/dvorak_programmer/keymap.c +++ b/layouts/community/ergodox/dvorak_programmer/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL), MO(BRACKETS), KC_A, KC_O, KC_E, KC_U, KC_I, MO(SHELL_NAV), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV), - OSL(SHORTCUTS),OSM(MOD_LCTL), OSM(MOD_LALT),OSL(SYMBOL),MO(NUMBER), + OSL(SHORTCUTS),OSM(MOD_LCTL), OSM(MOD_LALT),OSL(SYMBOL),MO(NUMBER), // thumb cluster OSM(MOD_LSFT), RCTL(KC_S), RCTL(KC_DEL), @@ -62,10 +62,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_UP, KC_DOWN,KC_ENT, KC_SPC ), + - - - + + // shell navigation layer [SHELL_NAV] = LAYOUT_ergodox( // left hand @@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS ), - + // key navigation layer [KEY_NAV] = LAYOUT_ergodox( // left hand @@ -177,7 +177,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, @@ -187,7 +187,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_PLUS, KC_AMPR, KC_ASTR, KC_GRAVE,KC_TILD, KC_TRNS, KC_MINS, KC_DLR, KC_PERC, KC_CIRC, KC_PIPE, KC_TRNS, KC_TRNS, KC_EQUAL,KC_EXLM, KC_AT, KC_HASH, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(SEMICOLON_NEWLINE), M(END_NEWLINE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -198,7 +198,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,M(OPEN_CLOSE_CURLY), M(OPEN_CLOSE_PAREN),M(OPEN_CLOSE_BRACKET), KC_TRNS,KC_TRNS, KC_TRNS,KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, @@ -207,8 +207,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, M(OPEN_CLOSE_BRACKET),M(OPEN_CLOSE_PAREN),M(OPEN_CLOSE_CURLY),KC_TRNS,KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -219,7 +219,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, MEH(KC_F1), MEH(KC_F2), MEH(KC_F3), MEH(KC_F4), MEH(KC_F5), MEH(KC_F6), KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, MEH(KC_0),MEH(KC_1), MEH(KC_2), @@ -272,12 +272,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case MC_CUT_LINE: if (record->event.pressed) { return MACRO( T(HOME), D(LSFT), T(END), U(LSFT), D(LCTL), T(X), U(LCTL), END); - } + } break; case MC_PASTE_LINE: if (record->event.pressed) { return MACRO( T(END), T(ENTER), D(LCTL), T(V), U(LCTL), END); - } + } break; case MC_NEW_SEARCH_TAB: if (record->event.pressed) { @@ -287,17 +287,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case SCREEN_TAB_LEFT: if (record->event.pressed) { return MACRO( D(LCTL), T(A), U(LCTL), T(P), END); - } + } break; case SCREEN_TAB_RIGHT: if (record->event.pressed) { return MACRO( D(LCTL), T(A), U(LCTL), T(N), END); - } + } break; case SCREEN_NEW_TAB: if (record->event.pressed) { return MACRO( D(LCTL), T(A), U(LCTL), T(C), END); - } + } break; case SCREEN_COPY_MODE: if (record->event.pressed) { @@ -306,14 +306,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case SCREEN_PASTE: if (record->event.pressed) { - return MACRO( D(LCTL), T(A), U(LCTL), T(RBRC), END); + return MACRO( D(LCTL), T(A), U(LCTL), T(RBRC), END); } - break; + break; case SWITCH_NDS: if (record->event.pressed) { return MACRO( D(LSFT), T(F11), U(LSFT), W(255), D(LALT), T(TAB), U(LALT), END); - } - break; + } + break; case OPEN_CLOSE_PAREN: if (record->event.pressed) { return MACRO( D(LSFT), T(9), T(0), U(LSFT), T(LEFT), END); @@ -323,39 +323,39 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { return MACRO( T(LBRC), T(RBRC), T(LEFT), END); } - break; + break; case OPEN_CLOSE_CURLY: if (record->event.pressed) { return MACRO( D(LSFT), T(LBRC), T(RBRC), U(LSFT), T(LEFT), END); } - break; + break; case OPEN_CLOSE_SINGLE_QUOTE: if (record->event.pressed) { return MACRO( T(QUOT), T(QUOT), T(LEFT), END); } - break; + break; case OPEN_CLOSE_DOUBLE_QUOTE: if (record->event.pressed) { return MACRO( D(LSFT), T(QUOT), T(QUOT), U(LSFT), T(LEFT), END); } - break; + break; case SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND: if (record->event.pressed) { return MACRO( T(UP), T(HOME), D(LALT), T(D), U(LALT), END); } - break; + break; case SEMICOLON_NEWLINE: if (record->event.pressed) { return MACRO( T(END), T(SCLN), T(ENTER), END); - } + } break; case END_NEWLINE: if (record->event.pressed) { return MACRO( T(END), T(ENTER), END); - } - break; - - + } + break; + + } return MACRO_NONE; }; @@ -378,7 +378,7 @@ void led_set_user(uint8_t usb_led) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_2_off(); @@ -387,13 +387,13 @@ void matrix_scan_user(void) { case NUMBER: case SYMBOL: case BRACKETS: - //case SHELL_LAYER: + //case SHELL_LAYER: ergodox_right_led_2_on(); break; case KEY_NAV: case KEY_SEL: ergodox_right_led_3_on(); - break; + break; case SHORTCUTS: ergodox_right_led_2_on(); ergodox_right_led_3_on(); @@ -401,6 +401,6 @@ void matrix_scan_user(void) { default: // none break; - } + } return; }; diff --git a/layouts/community/ergodox/dvorak_programmer_swe/keymap.c b/layouts/community/ergodox/dvorak_programmer_swe/keymap.c index 2578547f17..a8a428a04b 100644 --- a/layouts/community/ergodox/dvorak_programmer_swe/keymap.c +++ b/layouts/community/ergodox/dvorak_programmer_swe/keymap.c @@ -306,7 +306,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/dvorak_spanish/keymap.c b/layouts/community/ergodox/dvorak_spanish/keymap.c index 805abb0b77..98aa638a0f 100644 --- a/layouts/community/ergodox/dvorak_spanish/keymap.c +++ b/layouts/community/ergodox/dvorak_spanish/keymap.c @@ -192,13 +192,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { key_timer = timer_read(); register_code(KC_RSFT); - } else { + } else { unregister_code(KC_RSFT); - if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { - register_code(KC_RALT); - register_code(KC_BSLS); - unregister_code(KC_BSLS); - unregister_code(KC_RALT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_BSLS); + unregister_code(KC_BSLS); + unregister_code(KC_RALT); } } break; @@ -207,13 +207,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { key_timer = timer_read(); register_code(KC_LALT); - } else { + } else { unregister_code(KC_LALT); - if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { - register_code(KC_RALT); - register_code(KC_LBRACKET); - unregister_code(KC_LBRACKET); - unregister_code(KC_RALT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_LBRACKET); + unregister_code(KC_LBRACKET); + unregister_code(KC_RALT); } } break; @@ -222,13 +222,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { key_timer = timer_read(); register_code(KC_LALT); - } else { + } else { unregister_code(KC_LALT); - if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { - register_code(KC_RALT); - register_code(KC_RBRACKET); - unregister_code(KC_RBRACKET); - unregister_code(KC_RALT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_RBRACKET); + unregister_code(KC_RBRACKET); + unregister_code(KC_RALT); } } break; @@ -236,7 +236,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case CAPS: { if (record->event.pressed) { register_code(KC_CAPSLOCK); - } else { + } else { unregister_code(KC_CAPSLOCK); } break; @@ -253,7 +253,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); @@ -270,10 +270,11 @@ void matrix_scan_user(void) { // none break; } - + // Turn the caps lock led on if (host_keyboard_leds() & (1<= 0: if section['name'] == 'layout_config': - config.update(loads("\n".join(section['code_lines']))) + config.update(loads("\n".join( + section['code_lines'] + ))) elif section['sub_name'].startswith('layer'): layer_name = section['sub_name'] config['layer_lines'][layer_name] = section['code_lines'] @@ -218,7 +215,6 @@ def parse_config(path): assert 'layout' in config return config - # header file parsing IF0_RE = re.compile(r""" @@ -228,6 +224,7 @@ IF0_RE = re.compile(r""" #endif """, re.MULTILINE | re.DOTALL | re.VERBOSE) + COMMENT_RE = re.compile(r""" /\* .*? @@ -247,7 +244,6 @@ def regex_partial(re_str_fmt, flags): def partial(*args, **kwargs): re_str = re_str_fmt.format(*args, **kwargs) return re.compile(re_str, flags) - return partial @@ -260,6 +256,7 @@ KEYDEF_REP = regex_partial(r""" ) # capture group end """, re.MULTILINE | re.DOTALL | re.VERBOSE) + ENUM_RE = re.compile(r""" ( enum @@ -271,6 +268,7 @@ ENUM_RE = re.compile(r""" ) # capture group end """, re.MULTILINE | re.DOTALL | re.VERBOSE) + ENUM_KEY_REP = regex_partial(r""" ( {} # the prefixes @@ -311,13 +309,14 @@ def parse_valid_keys(config, out_path): include_path = os.path.join(dirpath, include) if os.path.exists(include_path): header_data = read_header_file(include_path) - valid_keycodes.update(parse_keydefs(config, header_data)) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) return valid_keycodes # Keymap Parsing - def iter_raw_codes(layer_lines, filler, separator): filler_re = re.compile("[" + filler + " ]") for line in layer_lines: @@ -347,21 +346,28 @@ LAYER_CHANGE_RE = re.compile(r""" (DF|TG|MO)\(\d+\) """, re.VERBOSE) + MACRO_RE = re.compile(r""" M\(\w+\) """, re.VERBOSE) + UNICODE_RE = re.compile(r""" U[0-9A-F]{4} """, re.VERBOSE) + NON_CODE = re.compile(r""" ^[^A-Z0-9_]$ """, re.VERBOSE) def parse_uni_code(raw_code): - macro_id = "UC_" + (unicodedata.name(raw_code).replace(" ", "_").replace("-", "_")) + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) code = "M({})".format(macro_id) uc_hex = "{:04X}".format(ord(raw_code)) return code, macro_id, uc_hex @@ -401,13 +407,19 @@ def parse_code(raw_code, key_prefixes, valid_keycodes): def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): keymap = {} - raw_codes = list(iter_raw_codes(layer_lines, config['filler'], config['separator'])) + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) indexed_codes = iter_indexed_codes(raw_codes, key_indexes) key_prefixes = config['key_prefixes'] for raw_code, key_index, row_index in indexed_codes: - code, macro_id, uc_hex = parse_code(raw_code, key_prefixes, valid_keycodes) + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) # TODO: line numbers for invalid codes - err_msg = "Could not parse key '{}' on row {}".format(raw_code, row_index) + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) assert code is not None, err_msg # print(repr(raw_code), repr(code), macro_id, uc_hex) if macro_id: @@ -420,14 +432,17 @@ def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): def parse_keymaps(config, valid_keycodes): keymaps = collections.OrderedDict() - key_indexes = config.get('key_indexes', KEYBOARD_LAYOUTS[config['layout']]) + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) # TODO: maybe validate key_indexes for layer_name, layer_lines, in config['layer_lines'].items(): - keymaps[layer_name] = parse_keymap(config, key_indexes, layer_lines, valid_keycodes) + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) return keymaps - # keymap.c output USERCODE = """ @@ -438,7 +453,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); @@ -557,6 +572,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ }}; """ + UNICODE_MACRO_TEMPLATE = """ case {macro_id}: unicode_action_function(0x{hi:02x}, 0x{lo:02x}); @@ -568,7 +584,9 @@ def unicode_macro_cases(config): for macro_id, uc_hex in config['unicode_macros'].items(): hi = int(uc_hex, 16) >> 8 lo = int(uc_hex, 16) & 0xFF - yield UNICODE_MACRO_TEMPLATE.format(macro_id=macro_id, hi=hi, lo=lo) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) def iter_keymap_lines(keymap, row_indents=None): diff --git a/layouts/community/ergodox/german-manuneo/keymap.c b/layouts/community/ergodox/german-manuneo/keymap.c index b6217800c3..9b24df83db 100644 --- a/layouts/community/ergodox/german-manuneo/keymap.c +++ b/layouts/community/ergodox/german-manuneo/keymap.c @@ -741,7 +741,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/german/keymap.c b/layouts/community/ergodox/german/keymap.c index 150aaf3a73..99dda5185c 100644 --- a/layouts/community/ergodox/german/keymap.c +++ b/layouts/community/ergodox/german/keymap.c @@ -140,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/haegin/keymap.c b/layouts/community/ergodox/haegin/keymap.c index cf5db6333b..c3c2afecb8 100644 --- a/layouts/community/ergodox/haegin/keymap.c +++ b/layouts/community/ergodox/haegin/keymap.c @@ -226,7 +226,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/ishigoya-jp/keymap.c b/layouts/community/ergodox/ishigoya-jp/keymap.c index 8fe2b7e415..e9d89d1bbc 100644 --- a/layouts/community/ergodox/ishigoya-jp/keymap.c +++ b/layouts/community/ergodox/ishigoya-jp/keymap.c @@ -109,7 +109,7 @@ static uint16_t start; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * - * + * * ,----------------------------------------------------. ,--------------------------------------------------. * | En / 和 | | ^ | % | | |Selall| | Undo | | $ | @ | LT | UP | RT | * |----------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| @@ -129,9 +129,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | Num | | Esc | | | * `--------------------' `----------------------' * - * + * * tmux prefix set to C-b - * + * */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* @@ -175,9 +175,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | shift| fn |------| |------| |kazari| * | | | Num | | | | | * `--------------------' `--------------------' - * - * - * + * + * + * */ [JP] = LAYOUT_ergodox( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -218,14 +218,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' - * - * - * + * + * + * */ [JPXON] = LAYOUT_ergodox( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(JPXE), KC_NO, M(JPXKE), KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, M(JPXKA), KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, M(JPXKA), 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, @@ -261,14 +261,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' - * - * - * + * + * + * */ [JPKAZARI] = LAYOUT_ergodox( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(JPGO), M(JPZA), M(JPBE), M(JPGE), KC_NO, - KC_NO, M(JPDO), M(JPJI), M(JPGA), M(JPGI), M(JPZU), + KC_NO, M(JPDO), M(JPJI), M(JPGA), M(JPGI), M(JPZU), KC_NO, KC_NO, M(JPZO), M(JPBI), M(JPDI), KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, @@ -304,14 +304,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' - * - * - * + * + * + * */ [JPTOPROW] = LAYOUT_ergodox( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_E, KC_MINS, M(JPRE), KC_NO, KC_NO, - KC_NO, M(JPRA), M(JPRI), M(JPNA), M(JPNO), M(JPMI), + KC_NO, M(JPRA), M(JPRI), M(JPNA), M(JPNO), M(JPMI), 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, @@ -348,14 +348,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' - * - * - * + * + * + * */ [JPTRKZ] = LAYOUT_ergodox( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(JPPE),KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(JPPI), KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, @@ -397,7 +397,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_NO, KC_NO, KC_NO, JP_DQUO, KC_RBRACKET, KC_BSPC, KC_SCLN, - KC_NO, KC_NO, KC_SLSH, JP_PLUS, LSFT(KC_RBRACKET), JP_RCBR, + KC_NO, KC_NO, KC_SLSH, JP_PLUS, LSFT(KC_RBRACKET), JP_RCBR, KC_NO, KC_NO, JP_ASTR, KC_MINS, LSFT(KC_8), LSFT(KC_9), JP_COLN, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_HASH, KC_NO, KC_NO, @@ -417,7 +417,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - + // MACRO only works in this function switch(id) { case 0: @@ -445,9 +445,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } } break; - + // kana macros start here - + case JPVU: if (record->event.pressed) { return MACRO( I(1), T(V), T(U), END); @@ -641,7 +641,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case JPDI: if (record->event.pressed) { return MACRO( I(1), T(D), T(I), END); - } + } break; case JPZE: if (record->event.pressed) { @@ -838,9 +838,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO( I(1), T(B), T(U), END); } break; - + // kana macros end here - + break; case SHIFT: if (record->event.pressed) { @@ -848,8 +848,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (layer_state == (1<event.pressed) { start = timer_read(); @@ -917,7 +917,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; */ } - return MACRO_NONE; + return MACRO_NONE; }; // Runs just one time when the keyboard initializes. @@ -927,15 +927,15 @@ 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); - uint8_t deflayer = get_highest_layer(default_layer_state); + uint8_t layer = biton32(layer_state); + uint8_t deflayer = biton32(default_layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); - - + + switch (layer) { case 0: //none diff --git a/layouts/community/ergodox/issmirnov/keymap.c b/layouts/community/ergodox/issmirnov/keymap.c index 2743a04e93..b129148b08 100644 --- a/layouts/community/ergodox/issmirnov/keymap.c +++ b/layouts/community/ergodox/issmirnov/keymap.c @@ -125,7 +125,7 @@ _______, _______, KC_LGUI // called by QMK during key processing before the actual key event is handled. Useful for macros. bool process_record_user(uint16_t keycode, keyrecord_t *record) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); switch (keycode) { case TAP_TOG_LAYER: process_tap_tog(_SYMB,record); @@ -157,7 +157,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Runs constantly in the background, in a loop every 100ms or so. // Best used for LED status output triggered when user isn't actively typing. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); if (layer == 0) { // Set up LED indicators for stuck modifier keys. // https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/report.h#L118 @@ -202,7 +202,7 @@ void matrix_scan_user(void) { // only runs when when the layer is changed, good for updating LED's and clearing sticky state layer_state_t layer_state_set_user(layer_state_t state) { - uint8_t layer = get_highest_layer(state); + uint8_t layer = biton32(state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/italian/keymap.c b/layouts/community/ergodox/italian/keymap.c index 3a81cc213b..64dd51db67 100644 --- a/layouts/community/ergodox/italian/keymap.c +++ b/layouts/community/ergodox/italian/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TT(SYMB), 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_LALT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, MT(MOD_LGUI,KC_NONUS_BSLASH),KC_PPLS, KC_PMNS,KC_PAST,MT(MOD_LCTL,KC_PSLS), KC_INS, KC_LGUI, KC_HOME, @@ -197,7 +197,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/j3rn/keymap.c b/layouts/community/ergodox/j3rn/keymap.c index 8ff8db2381..5081ddf527 100644 --- a/layouts/community/ergodox/j3rn/keymap.c +++ b/layouts/community/ergodox/j3rn/keymap.c @@ -141,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/jackhumbert/keymap.c b/layouts/community/ergodox/jackhumbert/keymap.c index b6d1b33e33..9d357881e2 100644 --- a/layouts/community/ergodox/jackhumbert/keymap.c +++ b/layouts/community/ergodox/jackhumbert/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_P, KC_BSPC, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_SCLN, KC_QUOT, KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT, - MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, + MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, RGB_TOG, RGB_HUI, RGB_MOD, M(2), KC_SPC,KC_SPC @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, - KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -51,9 +51,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MDIA] = LAYOUT_ergodox( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, - KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -97,7 +97,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/jacobono/keymap.c b/layouts/community/ergodox/jacobono/keymap.c index 7c5b914872..e97209fc84 100644 --- a/layouts/community/ergodox/jacobono/keymap.c +++ b/layouts/community/ergodox/jacobono/keymap.c @@ -227,7 +227,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/jafo/keymap.c b/layouts/community/ergodox/jafo/keymap.c index 28c95d6540..b8b8e63517 100644 --- a/layouts/community/ergodox/jafo/keymap.c +++ b/layouts/community/ergodox/jafo/keymap.c @@ -139,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/jgarr/keymap.c b/layouts/community/ergodox/jgarr/keymap.c index 38eaa5fca0..ac4e562263 100644 --- a/layouts/community/ergodox/jgarr/keymap.c +++ b/layouts/community/ergodox/jgarr/keymap.c @@ -138,7 +138,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/josh/keymap.c b/layouts/community/ergodox/josh/keymap.c index 3f9d8779e1..07ee97ec82 100644 --- a/layouts/community/ergodox/josh/keymap.c +++ b/layouts/community/ergodox/josh/keymap.c @@ -188,7 +188,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/kastyle/keymap.c b/layouts/community/ergodox/kastyle/keymap.c index 268080c7dc..c9789955b3 100644 --- a/layouts/community/ergodox/kastyle/keymap.c +++ b/layouts/community/ergodox/kastyle/keymap.c @@ -1,5 +1,5 @@ /* Setup to approximate a Kinesis Advantage with an eye to use in a - * Mac/OSX environment + * Mac/OSX environment * This version adds a hand swap feature to flip the keyboard */ #include QMK_KEYBOARD_H #include "debug.h" @@ -143,7 +143,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/kejadlen/keymap.c b/layouts/community/ergodox/kejadlen/keymap.c index 92a667dec0..6ce209f806 100644 --- a/layouts/community/ergodox/kejadlen/keymap.c +++ b/layouts/community/ergodox/kejadlen/keymap.c @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/kines-ish/keymap.c b/layouts/community/ergodox/kines-ish/keymap.c index 718bf6cee1..2d1513667f 100644 --- a/layouts/community/ergodox/kines-ish/keymap.c +++ b/layouts/community/ergodox/kines-ish/keymap.c @@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/kristian/keymap.c b/layouts/community/ergodox/kristian/keymap.c index 3f84823b99..3fdccb790a 100644 --- a/layouts/community/ergodox/kristian/keymap.c +++ b/layouts/community/ergodox/kristian/keymap.c @@ -35,7 +35,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/manna-harbour_miryoku/config.h b/layouts/community/ergodox/manna-harbour_miryoku/config.h index 10c61fdfdc..566701bfc4 100644 --- a/layouts/community/ergodox/manna-harbour_miryoku/config.h +++ b/layouts/community/ergodox/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . @@ -8,6 +7,58 @@ #define XXX KC_NO +#if defined (MIRYOKU_MAPPING_SHIFTED_ROWS) +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ergodox_pretty( \ +XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ +XXX, XXX, XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX, XXX, XXX, \ +XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ + XXX, XXX, XXX, XXX, \ + XXX, XXX, \ + XXX, XXX, XXX, XXX, XXX, XXX \ +) +#elif defined (MIRYOKU_MAPPING_SHIFTED_ROWS_EXTENDED_THUMBS) +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ergodox_pretty( \ +XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \ +XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \ +XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ +XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, XXX, \ +XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ + XXX, XXX, XXX, XXX, \ + XXX, XXX, \ + XXX, XXX, XXX, XXX, XXX, XXX \ +) +#elif defined (MIRYOKU_MAPPING_SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER) || defined (MIRYOKU_MAPPING_PEAK_ERGODOX) +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT_ergodox_pretty( \ +XXX, XXX, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, XXX, XXX, \ +XXX, K00, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K09, XXX, \ +XXX, K10, K21, K22, K23, K24, K25, K26, K27, K28, K19, XXX, \ +XXX, K20, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, K29, XXX, \ +XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ + XXX, XXX, XXX, XXX, \ + XXX, XXX, \ + XXX, XXX, XXX, XXX, XXX, XXX \ +) +#else #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ @@ -24,3 +75,4 @@ XXX, XXX, XXX, XXX, K32, K37, XXX, XXX, XXX, XXX,\ XXX, XXX,\ K33, K34, XXX, XXX, K35, K36\ ) +#endif diff --git a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ergodox/maz/keymap.c b/layouts/community/ergodox/maz/keymap.c index 4d313dee43..3244f2152d 100644 --- a/layouts/community/ergodox/maz/keymap.c +++ b/layouts/community/ergodox/maz/keymap.c @@ -183,7 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/mclennon_osx/keymap.c b/layouts/community/ergodox/mclennon_osx/keymap.c index ae67d8fb40..72e9d505a1 100644 --- a/layouts/community/ergodox/mclennon_osx/keymap.c +++ b/layouts/community/ergodox/mclennon_osx/keymap.c @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/meagerfindings/keymap.c b/layouts/community/ergodox/meagerfindings/keymap.c index c780c1a9fb..f4340b8e1b 100644 --- a/layouts/community/ergodox/meagerfindings/keymap.c +++ b/layouts/community/ergodox/meagerfindings/keymap.c @@ -538,7 +538,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/msc/keymap.c b/layouts/community/ergodox/msc/keymap.c index 62d18798dd..5d9de3239b 100644 --- a/layouts/community/ergodox/msc/keymap.c +++ b/layouts/community/ergodox/msc/keymap.c @@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/naps62/keymap.c b/layouts/community/ergodox/naps62/keymap.c index fe6289097b..230b3376b2 100644 --- a/layouts/community/ergodox/naps62/keymap.c +++ b/layouts/community/ergodox/naps62/keymap.c @@ -141,7 +141,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c b/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c index 7c57820c43..7c91b3fbb0 100644 --- a/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c +++ b/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c @@ -5,7 +5,7 @@ #define UM 0 #define L0 0 // layer_0 -#define L1 1 // layer_1 +#define L1 1 // layer_1 #define L2 2 // layer_2 #define L3 3 // layer_3 #define L4 4 // layer_4 @@ -344,7 +344,7 @@ void unicode_action_function(uint16_t hi, uint16_t lo) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/osx_de/keymap.c b/layouts/community/ergodox/osx_de/keymap.c index cbbfc42280..5c3d7e49ea 100644 --- a/layouts/community/ergodox/osx_de/keymap.c +++ b/layouts/community/ergodox/osx_de/keymap.c @@ -31,117 +31,117 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE]=LAYOUT_ergodox( //left half - KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(M_CTL_SFT_HASH), - KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, - KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G, - KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, - LT(SYMB,DE_LABK), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), KC_UP, KC_DOWN, - M(M_MEH_SH_ACUT), TG(MDIA), - KC_HOME, - KC_BSPC, KC_DEL, LT(SMLY,KC_END), + KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(M_CTL_SFT_HASH), + KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, + KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G, + KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, + LT(SYMB,DE_LABK), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), KC_UP, KC_DOWN, + M(M_MEH_SH_ACUT), TG(MDIA), + KC_HOME, + KC_BSPC, KC_DEL, LT(SMLY,KC_END), //right half - M(M_CTL_SFT_HASH), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, - KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, - DE_H, DE_J, DE_K, DE_L, DE_ODIA, ALT_T(DE_ADIA), - KC_RALT, DE_N, DE_M, DE_COMM, DE_DOT, CTL_T(DE_MINS), KC_RSFT, - KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_PLUS), - TG(NUMB), ALL_T(DE_ACUT), - KC_PGUP, + M(M_CTL_SFT_HASH), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, + KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, + DE_H, DE_J, DE_K, DE_L, DE_ODIA, ALT_T(DE_ADIA), + KC_RALT, DE_N, DE_M, DE_COMM, DE_DOT, CTL_T(DE_MINS), KC_RSFT, + KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_PLUS), + TG(NUMB), ALL_T(DE_ACUT), + KC_PGUP, KC_PGDN, KC_ENT, KC_SPC), [SYMB]=LAYOUT_ergodox( //left half - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS, DE_LABK, DE_RABK, DE_EXLM, DE_QUES, KC_TRNS, KC_TRNS, - KC_TRNS, DE_HASH, DE_DLR, DE_BSLS, DE_SLSH, KC_DOT, - KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, DE_PIPE, DE_TILD, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_DEL, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, DE_LABK, DE_RABK, DE_EXLM, DE_QUES, KC_TRNS, KC_TRNS, + KC_TRNS, DE_HASH, DE_DLR, DE_BSLS, DE_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, DE_PIPE, DE_TILD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_DEL, KC_TRNS, //right half - M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_LABK, DE_RABK, DE_EXLM, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), DE_HASH, - KC_TRNS, DE_PIPE, DE_TILD, DE_CIRC, KC_UP, DE_MINS, LSFT(KC_4), - DE_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, - KC_F13, KC_F12, - KC_F14, + M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_LABK, DE_RABK, DE_EXLM, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), DE_HASH, + KC_TRNS, DE_PIPE, DE_TILD, DE_CIRC, KC_UP, DE_MINS, LSFT(KC_4), + DE_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, + KC_F13, KC_F12, + KC_F14, KC_F15, KC_TRNS, KC_TRNS), [MDIA]=LAYOUT_ergodox( //left half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, - KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, //right half - KC_MUTE, 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_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, + KC_MUTE, 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_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK), [SMLY]=LAYOUT_ergodox( //left half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, //right half - M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, - M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [NUMB]=LAYOUT_ergodox( //left half - 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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, //right half - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_MINS, - KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, - KC_0, KC_DOT, KC_COMM, DE_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_MINS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [EGOS]=LAYOUT_ergodox( //left half - KC_TRNS, KC_TRNS, KC_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_TRNS, KC_TRNS, - KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_F1, KC_F2, - KC_F3, - KC_SPC, KC_LCTL, KC_F4, + KC_TRNS, KC_TRNS, KC_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_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, //right half - M(M_TOGGLE_5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, + M(M_TOGGLE_5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; @@ -318,7 +318,7 @@ 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); +uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); @@ -328,22 +328,22 @@ switch (layer) { case SYMB: ergodox_right_led_1_on(); - - + + break; case MDIA: - + ergodox_right_led_2_on(); - + break; case SMLY: - - + + ergodox_right_led_3_on(); break; case NUMB: ergodox_right_led_1_on(); - + ergodox_right_led_3_on(); break; case EGOS: @@ -357,3 +357,4 @@ break; } }; + diff --git a/layouts/community/ergodox/osx_de_adnw_koy/keymap.c b/layouts/community/ergodox/osx_de_adnw_koy/keymap.c index cd09d066a6..b8ffc2e51f 100644 --- a/layouts/community/ergodox/osx_de_adnw_koy/keymap.c +++ b/layouts/community/ergodox/osx_de_adnw_koy/keymap.c @@ -27,105 +27,105 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE]=LAYOUT_ergodox( //left half - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL, - KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI, - TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U, - KC_LSFT, CTL_T(KC_X), KC_Q, DE_ADIA, DE_UDIA, DE_ODIA, KC_LALT, - LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - TG(MDIA), MEH_T(LSFT(DE_ACUT)), - KC_HOME, - KC_BSPC, KC_DEL, KC_END, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL, + KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI, + TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U, + KC_LSFT, CTL_T(KC_X), KC_Q, DE_ADIA, DE_UDIA, DE_ODIA, KC_LALT, + LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + TG(MDIA), MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, //right half - KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_MINS, - KC_RGUI, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y, - KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F), - KC_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT, - KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), - ALL_T(DE_ACUT), TG(NUMB), - KC_PGUP, + KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_MINS, + KC_RGUI, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y, + KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F), + KC_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), TG(NUMB), + KC_PGUP, KC_PGDN, KC_ENT, KC_SPC), [SYMB]=LAYOUT_ergodox( //left half - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS, KC_GRV, LSFT(KC_GRV), DE_EXLM, DE_QUES, KC_TRNS, KC_TRNS, - KC_TRNS, DE_HASH, DE_DLR, LALT(LSFT(KC_7)), DE_SLSH, KC_DOT, - KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, LALT(KC_7), LALT(KC_N), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_DEL, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_GRV, LSFT(KC_GRV), DE_EXLM, DE_QUES, KC_TRNS, KC_TRNS, + KC_TRNS, DE_HASH, DE_DLR, LALT(LSFT(KC_7)), DE_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, LALT(KC_7), LALT(KC_N), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_DEL, KC_TRNS, //right half - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQUO, DE_QUOT, DE_QUES, - KC_TRNS, KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQUO, DE_QUOT, DE_QUES, + KC_TRNS, KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [MDIA]=LAYOUT_ergodox( //left half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, //right half - 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_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_VOLU, KC_VOLD, 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_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_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK), [QWERTZ]=LAYOUT_ergodox( //left half - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, - KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, - LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - KC_TRNS, MEH_T(LSFT(DE_ACUT)), - KC_HOME, - KC_BSPC, KC_DEL, KC_END, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_TRNS, MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, //right half - LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UDIA, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_ADIA), - KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), - ALL_T(DE_ACUT), KC_TRNS, - KC_PGUP, + LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UDIA, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_ADIA), + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), KC_TRNS, + KC_PGUP, KC_PGDN, KC_ENT, KC_SPC), [NUMB]=LAYOUT_ergodox( //left half - 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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, //right half - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS, - KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, - KC_0, KC_DOT, KC_0, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0, KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; // Runs constantly in the background, in a loop. void matrix_scan_user(void) { -uint8_t layer = get_highest_layer(layer_state); +uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); @@ -139,3 +139,4 @@ break; } }; + diff --git a/layouts/community/ergodox/osx_de_experimental/keymap.c b/layouts/community/ergodox/osx_de_experimental/keymap.c index faf238726f..8228b5e371 100644 --- a/layouts/community/ergodox/osx_de_experimental/keymap.c +++ b/layouts/community/ergodox/osx_de_experimental/keymap.c @@ -66,315 +66,315 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /** * Layer: BASE -* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ -* | ESC | 1 | 2 | 3 | 4 | 5 | Hold or toggle | | Hold or toggle | 6 | 7 | 8 | 9 | 0 | ß | -* | | | | | | | Layer NUMB | | Layer MDIA | | | | | | | -* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ -* | TAB | Q | W | E | R | T | Cmd | | Cmd | Z | U | I | O | P | Ü | -* | | | | | | | | | | | | | | | | -* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\ \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ -* | Alt | A | S | D | F | G | | H | J | K | L | Ö | Ä | -* | | | | | | | | | | | | | ALT | -* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ -* | Shift | Y | X | C | V | B | Alt | | Alt | N | M | , | . | - | Shift | -* | | Ctrl | | | | | | | | | | | | Ctrl | | -* \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ -* -* -* /-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------/ -* | < | LongPress / Type | LongPress / Type | Shift+Ctrl | Type | | # | ACUT | CMD+Shift | ALT+Shift | + | -* | SYMB | DE_CIRC_CTRLCMD | DE_PLUS_CTRAlt | | Toggle SMLY | | Meh | Hyper | | | SYMB | -* \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/ /-------------------//-------------------/ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ -* | HOME | END | | LEFT | RIGHT | -* | | | | | | -* \-------------------\/-------------------/ /-------------------/\-------------------\ -* | PGUP | | UP | -* | | | | -* /-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------/ -* | BSPC | DEL | PGDN | | DOWN | ENT | SPC | -* | | | | | | | | -* \-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\ -* -* +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | ESC | 1 | 2 | 3 | 4 | 5 | Hold or toggle | | Hold or toggle | 6 | 7 | 8 | 9 | 0 | ß | +* | | | | | | | Layer NUMB | | Layer MDIA | | | | | | | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | TAB | Q | W | E | R | T | Cmd | | Cmd | Z | U | I | O | P | Ü | +* | | | | | | | | | | | | | | | | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\ \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | Alt | A | S | D | F | G | | H | J | K | L | Ö | Ä | +* | | | | | | | | | | | | | ALT | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | Shift | Y | X | C | V | B | Alt | | Alt | N | M | , | . | - | Shift | +* | | Ctrl | | | | | | | | | | | | Ctrl | | +* \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ +* +* +* /-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------/ +* | < | LongPress / Type | LongPress / Type | Shift+Ctrl | Type | | # | ACUT | CMD+Shift | ALT+Shift | + | +* | SYMB | DE_CIRC_CTRLCMD | DE_PLUS_CTRAlt | | Toggle SMLY | | Meh | Hyper | | | SYMB | +* \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/ /-------------------//-------------------/ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ +* | HOME | END | | LEFT | RIGHT | +* | | | | | | +* \-------------------\/-------------------/ /-------------------/\-------------------\ +* | PGUP | | UP | +* | | | | +* /-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------/ +* | BSPC | DEL | PGDN | | DOWN | ENT | SPC | +* | | | | | | | | +* \-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\ +* +* **/ [BASE]=LAYOUT_ergodox( //left half - KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(TGH_NUM), - KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, - KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G, - KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, - LT(SYMB,DE_LABK), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT), - KC_HOME, KC_END, - KC_PGUP, - KC_BSPC, KC_DEL, KC_PGDN, + KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(TGH_NUM), + KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, + KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G, + KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, + LT(SYMB,DE_LABK), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT), + KC_HOME, KC_END, + KC_PGUP, + KC_BSPC, KC_DEL, KC_PGDN, //right half - M(TOG_HLD_MDIA), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, - KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, - DE_H, DE_J, DE_K, DE_L, DE_ODIA, ALT_T(DE_ADIA), - KC_RALT, DE_N, DE_M, DE_COMM, DE_DOT, CTL_T(DE_MINS), KC_RSFT, - MEH_T(DE_HASH), ALL_T(DE_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_PLUS), - KC_LEFT, KC_RIGHT, - KC_UP, + M(TOG_HLD_MDIA), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, + KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, + DE_H, DE_J, DE_K, DE_L, DE_ODIA, ALT_T(DE_ADIA), + KC_RALT, DE_N, DE_M, DE_COMM, DE_DOT, CTL_T(DE_MINS), KC_RSFT, + MEH_T(DE_HASH), ALL_T(DE_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_PLUS), + KC_LEFT, KC_RIGHT, + KC_UP, KC_DOWN, KC_ENT, KC_SPC), /** * Layer: SYMB -* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ -* | APPLICATION| F1 | F2 | F3 | F4 | F5 | F5 | | F6 | F6 | F7 | F8 | F9 | F10 | F11 | -* | | | | | | | | | | | | | | | | -* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ -* | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | -* | | | | | | | | | | | | | | | | -* /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\ \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/ -* | | # | $ | \ | / | . | | / | ( | ) | { | } | # | -* | | | | | | | | | | | | | | -* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ -* | | | < | % | | | ~ | | | | | | ~ | | | | | -* | | | | | | | | | | | | | | | | -* \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ -* -* -* /-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------/ -* | | | | | | | ' | DQOT | | Toggle 5 | | -* | | | | | | | | | | | | -* \-----------\\-----------\\-----------\\-----------\/-----------//-----------/ /-----------//-----------/ \-----------\\-----------\\-----------\\-----------\\-----------\ -* | | | | F13 | F12 | -* | | | | | | -* \-----------\/-----------/ /-----------/\-----------\ -* | | | F14 | -* | | | | -* /-----------//-----------//-----------/ /-----------//-----------//-----------/ -* | | DEL | | | F15 | | | -* | | | | | | | | -* \-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\ -* -* +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | APPLICATION| F1 | F2 | F3 | F4 | F5 | F5 | | F6 | F6 | F7 | F8 | F9 | F10 | F11 | +* | | | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | +* | | | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\ \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/ +* | | # | $ | \ | / | . | | / | ( | ) | { | } | # | +* | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | | | < | % | | | ~ | | | | | | ~ | | | | | +* | | | | | | | | | | | | | | | | +* \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ +* +* +* /-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------/ +* | | | | | | | ' | DQOT | | Toggle 5 | | +* | | | | | | | | | | | | +* \-----------\\-----------\\-----------\\-----------\/-----------//-----------/ /-----------//-----------/ \-----------\\-----------\\-----------\\-----------\\-----------\ +* | | | | F13 | F12 | +* | | | | | | +* \-----------\/-----------/ /-----------/\-----------\ +* | | | F14 | +* | | | | +* /-----------//-----------//-----------/ /-----------//-----------//-----------/ +* | | DEL | | | F15 | | | +* | | | | | | | | +* \-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\ +* +* **/ [SYMB]=LAYOUT_ergodox( //left half - KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5, - KC_TRNS, DE_LABK, DE_RABK, DE_EXLM, DE_QST, KC_TRNS, KC_TRNS, - KC_TRNS, DE_HASH, DE_DLR, DE_BSLS, DE_SLSH, KC_DOT, - KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, DE_PIPE, DE_TILD, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_DEL, KC_TRNS, + KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5, + KC_TRNS, DE_LABK, DE_RABK, DE_EXLM, DE_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_HASH, DE_DLR, DE_BSLS, DE_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, DE_PIPE, DE_TILD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_DEL, KC_TRNS, //right half - KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, DE_BSLS, DE_LBRC, DE_RBRC, DE_LABK, DE_RABK, DE_EXLM, - DE_SLSH, DE_LPRN, DE_RPRN, DE_LCBR, DE_RCBR, DE_HASH, - KC_TRNS, DE_PIPE, DE_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - DE_QUOT, DE_DQUO, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, - KC_F13, KC_F12, - KC_F14, + KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_BSLS, DE_LBRC, DE_RBRC, DE_LABK, DE_RABK, DE_EXLM, + DE_SLSH, DE_LPRN, DE_RPRN, DE_LCBR, DE_RCBR, DE_HASH, + KC_TRNS, DE_PIPE, DE_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + DE_QUOT, DE_DQUO, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, + KC_F13, KC_F12, + KC_F14, KC_F15, KC_TRNS, KC_TRNS), /** * Layer: MDIA -* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ -* | | | BTN1 | U | BTN2 | U | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* /-----//-----//-----//-----//-----//-----/\-----\ \-----\/-----//-----//-----//-----//-----//-----/ -* | | | L | D | R | D | | | | | | | | -* | | | | | | | | | | | | | | -* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ -* | | | L | D | R | BTN3 | | | | | | | | UP | | -* | | | | | | | | | | | | | | | | -* \-----\\-----\\-----\\-----\\-----\\-----\\-----\ \-----\\-----\\-----\\-----\\-----\\-----\\-----\ -* -* -* /-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----/ -* | | | | | | | | | LEFT | DOWN | RIGHT| -* | | | | | | | | | | | | -* \-----\\-----\\-----\\-----\/-----//-----/ /-----//-----/ \-----\\-----\\-----\\-----\\-----\ -* | | | | MPRV | MNXT | -* | | | | | | -* \-----\/-----/ /-----/\-----\ -* | | | VOLU | -* | | | | -* /-----//-----//-----/ /-----//-----//-----/ -* | | | | | VOLD | MUTE | MPLY | -* | | | | | | | | -* \-----\\-----\\-----\ \-----\\-----\\-----\ -* -* +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | BTN1 | U | BTN2 | U | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----/\-----\ \-----\/-----//-----//-----//-----//-----//-----/ +* | | | L | D | R | D | | | | | | | | +* | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | L | D | R | BTN3 | | | | | | | | UP | | +* | | | | | | | | | | | | | | | | +* \-----\\-----\\-----\\-----\\-----\\-----\\-----\ \-----\\-----\\-----\\-----\\-----\\-----\\-----\ +* +* +* /-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----/ +* | | | | | | | | | LEFT | DOWN | RIGHT| +* | | | | | | | | | | | | +* \-----\\-----\\-----\\-----\/-----//-----/ /-----//-----/ \-----\\-----\\-----\\-----\\-----\ +* | | | | MPRV | MNXT | +* | | | | | | +* \-----\/-----/ /-----/\-----\ +* | | | VOLU | +* | | | | +* /-----//-----//-----/ /-----//-----//-----/ +* | | | | | VOLD | MUTE | MPLY | +* | | | | | | | | +* \-----\\-----\\-----\ \-----\\-----\\-----\ +* +* **/ [MDIA]=LAYOUT_ergodox( //left half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, - KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, //right half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RIGHT, - KC_MPRV, KC_MNXT, - KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_MPRV, KC_MNXT, + KC_VOLU, KC_VOLD, KC_MUTE, KC_MPLY), /** * Layer: SMLY -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | Typing | Typing | Typing | | | | | -* | | | | | | | | | SM_SMILE| SM_SMIRK| SM_LAUGH| | | | | -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | Typing | Typing | Typing | | | | -* | | | | | | | | | | SM_FROWN| SM_SAD | SM_CRY | | | | -* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ -* | | | | | | | | Typing | Typing | | | | | -* | | | | | | | | SM_HEART| SM_KISS | | | | | -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ -* -* -* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | -* | | | | | | | | | | | | -* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ -* | | | | | | -* | | | | | | -* \--------\/--------/ /--------/\--------\ -* | | | | -* | | | | -* /--------//--------//--------/ /--------//--------//--------/ -* | | | | | | | | -* | | | | | | | | -* \--------\\--------\\--------\ \--------\\--------\\--------\ -* -* +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | Typing | Typing | Typing | | | | | +* | | | | | | | | | SM_SMILE| SM_SMIRK| SM_LAUGH| | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | Typing | Typing | Typing | | | | +* | | | | | | | | | | SM_FROWN| SM_SAD | SM_CRY | | | | +* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ +* | | | | | | | | Typing | Typing | | | | | +* | | | | | | | | SM_HEART| SM_KISS | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ +* +* +* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | +* | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ +* | | | | | | +* | | | | | | +* \--------\/--------/ /--------/\--------\ +* | | | | +* | | | | +* /--------//--------//--------/ /--------//--------//--------/ +* | | | | | | | | +* | | | | | | | | +* \--------\\--------\\--------\ \--------\\--------\\--------\ +* +* **/ [SMLY]=LAYOUT_ergodox( //left half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, //right half - M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, - M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), /** * Layer: NUMB -* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ -* | | | | | | | | | | F6 | F7 | F8 | F9 | F10 | F11 | -* | | | | | | | | | | | | | | | | -* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ -* | | | | UP | | | | | | / | 7 | 8 | 9 | * | F12 | -* | | | | | | | | | | | | | | | | -* /----//----//----//----//----//----/\----\ \----\/----//----//----//----//----//----/ -* | | | LEFT| DOWN| RGHT| | | / | 4 | 5 | 6 | + | - | -* | | | | | | | | | | | | | | -* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ -* | | | | | | | | | | % | 1 | 2 | 3 | | | -* | | | | | | | | | | | | | | | | -* \----\\----\\----\\----\\----\\----\\----\ \----\\----\\----\\----\\----\\----\\----\ -* -* -* /----//----//----//----//----/ /----//----//----//----//----/ -* | | | | | | | 0 | . | , | = | | -* | | | | | | | | | | | | -* \----\\----\\----\\----\/----//----/ /----//----/ \----\\----\\----\\----\\----\ -* | | | | | | -* | | | | | | -* \----\/----/ /----/\----\ -* | | | | -* | | | | -* /----//----//----/ /----//----//----/ -* | | | | | | | | -* | | | | | | | | -* \----\\----\\----\ \----\\----\\----\ -* -* +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | | | | | | | F6 | F7 | F8 | F9 | F10 | F11 | +* | | | | | | | | | | | | | | | | +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | UP | | | | | | / | 7 | 8 | 9 | * | F12 | +* | | | | | | | | | | | | | | | | +* /----//----//----//----//----//----/\----\ \----\/----//----//----//----//----//----/ +* | | | LEFT| DOWN| RGHT| | | / | 4 | 5 | 6 | + | - | +* | | | | | | | | | | | | | | +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | | | | | | | % | 1 | 2 | 3 | | | +* | | | | | | | | | | | | | | | | +* \----\\----\\----\\----\\----\\----\\----\ \----\\----\\----\\----\\----\\----\\----\ +* +* +* /----//----//----//----//----/ /----//----//----//----//----/ +* | | | | | | | 0 | . | , | = | | +* | | | | | | | | | | | | +* \----\\----\\----\\----\/----//----/ /----//----/ \----\\----\\----\\----\\----\ +* | | | | | | +* | | | | | | +* \----\/----/ /----/\----\ +* | | | | +* | | | | +* /----//----//----/ /----//----//----/ +* | | | | | | | | +* | | | | | | | | +* \----\\----\\----\ \----\\----\\----\ +* +* **/ [NUMB]=LAYOUT_ergodox( //left half - 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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, //right half - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, DE_SLSH, KC_7, KC_8, KC_9, DE_ASTR, KC_F12, - DE_SLSH, KC_4, KC_5, KC_6, DE_PLUS, DE_MINS, - KC_TRNS, DE_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, - KC_0, KC_DOT, KC_COMM, DE_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_SLSH, KC_7, KC_8, KC_9, DE_ASTR, KC_F12, + DE_SLSH, KC_4, KC_5, KC_6, DE_PLUS, DE_MINS, + KC_TRNS, DE_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), /** * Layer: EGOS -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ -* | Shift | | | | | | | | | | | | | -* | | | | | | | | | | | | | | -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ -* -* -* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ -* | Ctrl | | | | | | | | | Toggle 5| | -* | | | | | | | | | | | | -* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ -* | F1 | F2 | | | | -* | | | | | | -* \--------\/--------/ /--------/\--------\ -* | F3 | | | -* | | | | -* /--------//--------//--------/ /--------//--------//--------/ -* | SPC | Ctrl | F4 | | | | | -* | | | | | | | | -* \--------\\--------\\--------\ \--------\\--------\\--------\ -* -* +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ +* | Shift | | | | | | | | | | | | | +* | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ +* +* +* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ +* | Ctrl | | | | | | | | | Toggle 5| | +* | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ +* | F1 | F2 | | | | +* | | | | | | +* \--------\/--------/ /--------/\--------\ +* | F3 | | | +* | | | | +* /--------//--------//--------/ /--------//--------//--------/ +* | SPC | Ctrl | F4 | | | | | +* | | | | | | | | +* \--------\\--------\\--------\ \--------\\--------\\--------\ +* +* **/ [EGOS]=LAYOUT_ergodox( //left half - KC_TRNS, KC_TRNS, KC_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_TRNS, KC_TRNS, - KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_F1, KC_F2, - KC_F3, - KC_SPC, KC_LCTL, KC_F4, + KC_TRNS, KC_TRNS, KC_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_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, //right half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; @@ -556,7 +556,7 @@ 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); +uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); @@ -566,17 +566,17 @@ switch (layer) { case SYMB: ergodox_right_led_1_on(); - - + + break; case MDIA: - + ergodox_right_led_2_on(); - + break; case NUMB: - - + + ergodox_right_led_3_on(); break; case EGOS: @@ -590,3 +590,4 @@ break; } }; + diff --git a/layouts/community/ergodox/osx_fr/keymap.c b/layouts/community/ergodox/osx_fr/keymap.c index 22451c1a30..886e54208a 100644 --- a/layouts/community/ergodox/osx_fr/keymap.c +++ b/layouts/community/ergodox/osx_fr/keymap.c @@ -141,7 +141,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/osx_kinesis_pnut/keymap.c b/layouts/community/ergodox/osx_kinesis_pnut/keymap.c index fb50a3407e..ad6ea27364 100644 --- a/layouts/community/ergodox/osx_kinesis_pnut/keymap.c +++ b/layouts/community/ergodox/osx_kinesis_pnut/keymap.c @@ -145,7 +145,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/osx_neo2/keymap.c b/layouts/community/ergodox/osx_neo2/keymap.c index 125cc43a8f..3dbfceabc4 100644 --- a/layouts/community/ergodox/osx_neo2/keymap.c +++ b/layouts/community/ergodox/osx_neo2/keymap.c @@ -704,7 +704,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/phoenix/keymap.c b/layouts/community/ergodox/phoenix/keymap.c index 4371e5f2e7..a66462e3a8 100644 --- a/layouts/community/ergodox/phoenix/keymap.c +++ b/layouts/community/ergodox/phoenix/keymap.c @@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/plover/keymap.c b/layouts/community/ergodox/plover/keymap.c index 7b34dde2ed..ffb869309a 100644 --- a/layouts/community/ergodox/plover/keymap.c +++ b/layouts/community/ergodox/plover/keymap.c @@ -182,7 +182,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/qwerty_code_friendly/keymap.c b/layouts/community/ergodox/qwerty_code_friendly/keymap.c index ed06446907..6e285d5613 100644 --- a/layouts/community/ergodox/qwerty_code_friendly/keymap.c +++ b/layouts/community/ergodox/qwerty_code_friendly/keymap.c @@ -662,7 +662,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/reset_eeprom/keymap.c b/layouts/community/ergodox/reset_eeprom/keymap.c index 726447cbd0..83c252a9a1 100644 --- a/layouts/community/ergodox/reset_eeprom/keymap.c +++ b/layouts/community/ergodox/reset_eeprom/keymap.c @@ -96,7 +96,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c index 6eb319ca63..819944121e 100644 --- a/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c +++ b/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c @@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); diff --git a/layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c b/layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c index adf420daa0..a0964fac77 100644 --- a/layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c +++ b/layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c @@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); diff --git a/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c b/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c index cf3941ee1d..6aca3a6d5f 100644 --- a/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c +++ b/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); diff --git a/layouts/community/ergodox/sethbc/keymap.c b/layouts/community/ergodox/sethbc/keymap.c index f3a1f64309..26d3106ec4 100644 --- a/layouts/community/ergodox/sethbc/keymap.c +++ b/layouts/community/ergodox/sethbc/keymap.c @@ -77,7 +77,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/siroken3/keymap.c b/layouts/community/ergodox/siroken3/keymap.c index dd5125d20e..fed8b4a0c8 100644 --- a/layouts/community/ergodox/siroken3/keymap.c +++ b/layouts/community/ergodox/siroken3/keymap.c @@ -141,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/sneako/keymap.c b/layouts/community/ergodox/sneako/keymap.c index dffe797ab0..9d3cdd5a11 100644 --- a/layouts/community/ergodox/sneako/keymap.c +++ b/layouts/community/ergodox/sneako/keymap.c @@ -141,7 +141,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/software_neo2/keymap.c b/layouts/community/ergodox/software_neo2/keymap.c index c191a034f2..5f600a5ab5 100644 --- a/layouts/community/ergodox/software_neo2/keymap.c +++ b/layouts/community/ergodox/software_neo2/keymap.c @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/swedish-lindhe/keymap.c b/layouts/community/ergodox/swedish-lindhe/keymap.c index b0abff9ec6..368e216cdc 100644 --- a/layouts/community/ergodox/swedish-lindhe/keymap.c +++ b/layouts/community/ergodox/swedish-lindhe/keymap.c @@ -162,7 +162,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/swedish/keymap.c b/layouts/community/ergodox/swedish/keymap.c index 5e2d47de57..90218aa886 100644 --- a/layouts/community/ergodox/swedish/keymap.c +++ b/layouts/community/ergodox/swedish/keymap.c @@ -203,7 +203,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/swissgerman/keymap.c b/layouts/community/ergodox/swissgerman/keymap.c index 8766d16ae0..8ba9582934 100644 --- a/layouts/community/ergodox/swissgerman/keymap.c +++ b/layouts/community/ergodox/swissgerman/keymap.c @@ -222,7 +222,7 @@ 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); + uint8_t layer = biton32(layer_state); switch (layer) { // TODO: Make this relevant to the ErgoDox EZ. diff --git a/layouts/community/ergodox/techtomas/keymap.c b/layouts/community/ergodox/techtomas/keymap.c index bdbb50be42..742eca03a4 100644 --- a/layouts/community/ergodox/techtomas/keymap.c +++ b/layouts/community/ergodox/techtomas/keymap.c @@ -180,7 +180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/tkuichooseyou/keymap.c b/layouts/community/ergodox/tkuichooseyou/keymap.c index 08f1cfc9ab..ea6c8f259f 100644 --- a/layouts/community/ergodox/tkuichooseyou/keymap.c +++ b/layouts/community/ergodox/tkuichooseyou/keymap.c @@ -138,7 +138,7 @@ LAYOUT_ergodox( // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/tonyabra_osx/keymap.c b/layouts/community/ergodox/tonyabra_osx/keymap.c index 9b8048dda3..741a6396e8 100644 --- a/layouts/community/ergodox/tonyabra_osx/keymap.c +++ b/layouts/community/ergodox/tonyabra_osx/keymap.c @@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/townk_osx/keymap.c b/layouts/community/ergodox/townk_osx/keymap.c index c79d74d6eb..6799ad7460 100644 --- a/layouts/community/ergodox/townk_osx/keymap.c +++ b/layouts/community/ergodox/townk_osx/keymap.c @@ -229,7 +229,7 @@ uint8_t current_layer = BASE; // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_led_all_off(); ergodox_led_all_set(LED_BRIGHTNESS_LO); diff --git a/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c b/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c index 12548ae0ea..4b5181a70d 100644 --- a/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c +++ b/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_DELETE, KC_TRNS, KC_LGUI, KC_BSPACE,CTL_T(KC_NO),KC_LALT, - + KC_TILD, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINUS, @@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_Y, KC_U, KC_E, KC_O, KC_P, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_TRNS, @@ -110,9 +110,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ [2] = LAYOUT_ergodox( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_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, @@ -120,12 +120,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, - KC_F11, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F11, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -154,19 +154,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Left Hand KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, // Right Hand - KC_TRNS, KC_TRNS, KC_LOCKING_NUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LOCKING_NUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS, - KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS, + KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENTER, KC_TRNS, KC_KP_0, KC_KP_0, KC_KP_DOT, KC_ENTER, KC_TRNS, - KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), @@ -175,7 +175,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/win10_writers-block/keymap.c b/layouts/community/ergodox/win10_writers-block/keymap.c index 443e403b18..05adaed759 100644 --- a/layouts/community/ergodox/win10_writers-block/keymap.c +++ b/layouts/community/ergodox/win10_writers-block/keymap.c @@ -4,8 +4,8 @@ #include "version.h" #include "wait.h" -#define BASE 0 // default layer - helpful for writing in Office-style word processors. -#define SYMB 1 // symbol layer - NumPad, etc. - same as Ergodox EZ default but no EEPROM or Version key +#define BASE 0 // default layer - helpful for writing in Office-style word processors. +#define SYMB 1 // symbol layer - NumPad, etc. - same as Ergodox EZ default but no EEPROM or Version key #define RIMW 2 // rimworld layer - made for the game RimWorld, by Tynan Sylvester | feel free to remap for your favorite game! #define MDIA 3 // media layer - mouse and music - close to Ergodox EZ default media layer @@ -27,19 +27,19 @@ enum { }; void cake_count (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 2) { + if (state->count == 2) { layer_on (SYMB); //define double tap here layer_off (MDIA); - } - else { + } + else { layer_off (SYMB); //define single tap or hold here layer_off (MDIA); } - if (state->count == 3) { + if (state->count == 3) { layer_on (RIMW); //define triple tap here layer_off (MDIA); - } - else { + } + else { layer_off (RIMW); //define single tap or hold here layer_off (MDIA); reset_tap_dance (state); @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------. ,--------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | F12/L1 | Q | W | E | R | T | {/[ | |TD(L0 | Y | U | I | O | P | \ | + * | F12/L1 | Q | W | E | R | T | {/[ | |TD(L0 | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------| * |Caps/Win| A | S | D | F | G |------| |------| H | J | K | L | ; | ' | * |--------+------+------+------+------+------| }/] | TD(ctrl|------+------+------+------+------+--------| @@ -163,8 +163,8 @@ LT(SYMB, KC_F12), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -), - +), + /* Keymap 2: RimWorld Layer * * ,--------------------------------------------------. ,--------------------------------------------------. @@ -186,7 +186,7 @@ LT(SYMB, KC_F12), KC_Q, KC_W, KC_E, KC_R, KC_T, * | | | Q | | | | | * `--------------------' `--------------------' */ -// RIMWORLD +// RIMWORLD [RIMW] = LAYOUT_ergodox( // left hand KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, @@ -300,7 +300,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); @@ -315,7 +315,7 @@ void matrix_scan_user(void) { break; case 3: ergodox_right_led_3_on(); - break; + break; default: // none break; diff --git a/layouts/community/ergodox/xyverz/keymap.c b/layouts/community/ergodox/xyverz/keymap.c index f348736c6e..c77920bb13 100644 --- a/layouts/community/ergodox/xyverz/keymap.c +++ b/layouts/community/ergodox/xyverz/keymap.c @@ -1,6 +1,6 @@ /* * About this keymap: - * + * * The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak * software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner * keys. When I originally set up this keymap, I'd decided to continue using this layout with my ErgoDox. @@ -14,7 +14,7 @@ * layouts. * * What's New: - * + * * I've overhauled this Dvorak layout a bit to more match what I've got on my other Ortho boards. For * some keys, I'm moving away from my old Kinesis keymap and adding the brackets and braces to the * inner column vertical keys. I figure this will help me have better ease of use. In this update, I @@ -246,7 +246,7 @@ 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); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ergodox/zweihander-macos/keymap.c b/layouts/community/ergodox/zweihander-macos/keymap.c index 0aecc24e67..b2ddeb0d6b 100644 --- a/layouts/community/ergodox/zweihander-macos/keymap.c +++ b/layouts/community/ergodox/zweihander-macos/keymap.c @@ -140,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); diff --git a/layouts/community/ortho_3x10/bbaserdem/config.h b/layouts/community/ortho_3x10/bbaserdem/config.h new file mode 100644 index 0000000000..d781d34478 --- /dev/null +++ b/layouts/community/ortho_3x10/bbaserdem/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2019 Batuhan Başerdem @bbaserdem +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#pragma once + +// Gherkin specific +#ifdef KEYBOARD_40percentclub_gherkin + #define MUSIC_MAP + #define RGB_DI_PIN F6 + #define DRIVER_LED_TOTAL 10 +#endif diff --git a/layouts/community/ortho_3x10/bbaserdem/keymap.c b/layouts/community/ortho_3x10/bbaserdem/keymap.c new file mode 100644 index 0000000000..cf81f7036e --- /dev/null +++ b/layouts/community/ortho_3x10/bbaserdem/keymap.c @@ -0,0 +1,98 @@ +/* +Copyright 2019 Batuhan Başerdem @bbaserdem +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more 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 "bbaserdem.h" + +#ifdef KEYBOARD_40percentclub_gherkin + // Flip it + #undef LAYOUT_ortho_3x10 + #define LAYOUT_ortho_3x10( \ + K00, K01, K02, K03, K04, K05, K10, K11, K12, K13 , \ + K14, K15, K20, K21, K22, K23, K24, K25, K30, K31 , \ + K32, K33, K34, K35, K40, K41, K42, K43, K44, K45 \ + ) { \ + { K45, K44, K43, K42, K41, K40 }, \ + { K35, K34, K33, K32, K31, K30 }, \ + { K25, K24, K23, K22, K21, K20 }, \ + { K15, K14, K13, K12, K11, K10 }, \ + { K05, K04, K03, K02, K01, K00 } \ + } +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Game pad + * ,-----------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | F1 | F2 | F3 | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * |AdjsL| Q | W | E | R | Ent | Tab | Ctr | |^| | Alt | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * |Music| A | S | D | F | Spc |Shift| <-- | |v| | --> | + * `-----------------------------------------------------------' + */ + [_BASE] = LAYOUT_ortho_3x10( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F1, KC_F2, KC_F3, + MO(_MEDI), KC_Q, KC_W, KC_E, KC_R, KC_ENT, KC_TAB, KC_LCTL,KC_UP, KC_LALT, + MU_TOG, KC_A, KC_S, KC_D, KC_F, KC_SPC, KC_LSFT,KC_LEFT,KC_DOWN,KC_RGHT + ), +/* Adjust + * ,-----------------------------------------------------------. + * | Esc |RGBTg|HueUp|HueDn|SatUp|SatDn|ValUp|ValDn|ModNx|ModPr| + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | |BltTg|Breth|BriUp|BriDn| | |Veloc|SpdUp|SpdDn| + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * |Music| | | | | | | |EEprm|Reset| + * `-----------------------------------------------------------' + */ + [_MEDI] = LAYOUT_ortho_3x10( + CK_TOGG,RGB_TOG,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,RGB_MOD,RGB_RMOD, + _______,BL_TOGG,BL_BRTG,BL_INC, BL_DEC, XXXXXXX,XXXXXXX,VLK_TOG,RGB_SPI,RGB_SPD, + AU_TOG, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,EEP_RST,RESET + ), + [_MUSI] = LAYOUT_ortho_3x10_wrapper( + MU_FAST,_MU_08_,MU_REC, + MU_SLOW,_MU_08_,MU_STOP, + MU_TOG, _MU_08_,MU_PLAY + ), +}; + +// Music map, guitar like. +#ifdef AUDIO_ENABLE +const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_3x10( + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 +); +#endif + +// RGB matrix code +#ifdef RGB_MATRIX_ENABLE +// Gherkin +#if defined(KEYBOARD_40percentclub_gherkin) +led_config_t g_led_config = { + { // Key Matrix to LED Index + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} +}, { // LED Index to Physical Position + {224, 0}, {168, 0}, {112, 0}, { 56, 0}, { 0, 0}, + { 0, 64}, { 56, 64}, {112, 64}, {168, 64}, {224, 64}, +}, { // LED Index to Flag + 2,2,2,2,2,2,2,2,2,2 +}}; +// Disable layer switching +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {return true;} +#endif // Gherkin +#endif // RGB Matrix diff --git a/layouts/community/ortho_3x10/bbaserdem/readme.md b/layouts/community/ortho_3x10/bbaserdem/readme.md new file mode 100644 index 0000000000..3681eb840a --- /dev/null +++ b/layouts/community/ortho_3x10/bbaserdem/readme.md @@ -0,0 +1,19 @@ +This folder contains my [3x10\_ortho](../../../default/ortho_3x10) board layouts +Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info. + +# Gherkin + +I use [Gherkin](../../../../keyboards/40percentclub/gherkin/readme.md). + +It is used as a game pad, and key layout is inspired by spare keys I had lying around. +The firmware is very simple, and only includes one layer keymap, and RGB effects. + +## Status + +* [x] Layout adapted +* [x] Tested build +* [x] Confirmed on board + +## Build + +Build command: `CFLAGS="-Wno-error=deprecated" ` diff --git a/layouts/community/ortho_3x10/bbaserdem/rules.mk b/layouts/community/ortho_3x10/bbaserdem/rules.mk new file mode 100755 index 0000000000..7232f6969d --- /dev/null +++ b/layouts/community/ortho_3x10/bbaserdem/rules.mk @@ -0,0 +1,23 @@ +# Copyright 2019 Batuhan Başerdem @bbaserdem +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General 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 small layout is a macro-pad; does not need userspace + +# Gherkin has both RGB strip and LED lights +ifneq (,$(findstring 40percentclub/gherkin,$(KEYBOARD))) + CONVERT_TO_PROTON_C = yes + RGB_MATRIX_ENABLE = yes + RGB_MATRIX_DRIVER = WS2812 + AUDIO_ENABLE = yes + BACKLIGHT_ENABLE = yes + VELOCIKEY_ENABLE = yes +endif diff --git a/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h index b1e9526f99..99f40f2dc8 100644 --- a/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_4x12/bbaserdem/config.h b/layouts/community/ortho_4x12/bbaserdem/config.h new file mode 100755 index 0000000000..fb3ec1371b --- /dev/null +++ b/layouts/community/ortho_4x12/bbaserdem/config.h @@ -0,0 +1,26 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// Code pertaining to planck rev6 +#ifdef KEYBOARD_planck_rev6 + // Encoder I use; +# ifdef ENCODER_RESOLUTION +# undef ENCODER_RESOLUTION +# endif +# define ENCODER_RESOLUTION 2 +#endif diff --git a/layouts/community/ortho_4x12/bbaserdem/keymap.c b/layouts/community/ortho_4x12/bbaserdem/keymap.c new file mode 100755 index 0000000000..91ddc61764 --- /dev/null +++ b/layouts/community/ortho_4x12/bbaserdem/keymap.c @@ -0,0 +1,88 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "bbaserdem.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Base layer + [_BASE] = LAYOUT_ortho_4x12_wrapper( + _BL1_5_,_BL1_1_,_BR1_1_,_BR1_5_, + _BL2_5_,_BL2_1_,_BR2_1_,_BR2_5_, + _BL3_5_,_BL3_1_,_BR3_1_,_BR3_5_, + BB_ENC0,KC_DOWN,KC_UP, _BL4_3_,_BR4_3_,KC_LEFT,KC_RGHT,RGB_TOG + ), + // Extra characters overlay + [_CHAR] = LAYOUT_ortho_4x12_wrapper( + _CL1_5_,xxx2xxx,_CR1_5_, + _CL2_5_,xxx2xxx,_CR2_5_, + _CL3_5_,xxx2xxx,_CR3_5_, + ___3___,_CL4_3_,_CR4_3_,___3___ + ), + // Game layer: left_half + [_GAME] = LAYOUT_ortho_4x12_wrapper( + _GA1_5_,_GA1_1_,___6___, + _GA2_5_,_GA2_1_,___6___, + _GA3_5_,_GA3_1_,___6___, + ___3___,_GA4_3_,___6___ + ), + // Media layer: right_half + [_MEDI] = LAYOUT_ortho_4x12_wrapper( + ___6___,xxx1xxx,_ME1_5_, + ___6___,xxx1xxx,_ME2_5_, + ___6___,xxx1xxx,_ME3_5_, + ___6___,_ME4_3_,___3___ + ), + // Navigation layer: right_half + [_NAVI] = LAYOUT_ortho_4x12_wrapper( + ___6___,xxx1xxx,_NA1_5_, + ___6___,xxx1xxx,_NA2_5_, + ___6___,xxx1xxx,_NA3_5_, + ___6___,_NA4_3_,___3___ + ), + // Symbol layer: right_half + [_SYMB] = LAYOUT_ortho_4x12_wrapper( + ___6___,xxx1xxx,_SY1_5_, + ___6___,xxx1xxx,_SY2_5_, + ___6___,xxx1xxx,_SY3_5_, + ___6___,_SY4_3_,___3___ + ), + // Number layer: left_half + [_NUMB] = LAYOUT_ortho_4x12_wrapper( + xxx1xxx,_NU1_5_,___6___, + xxx1xxx,_NU2_5_,___6___, + xxx1xxx,_NU3_5_,___6___, + ___3___,_NU4_3_,___6___ + ), + // Function layer: left_half + [_FUNC] = LAYOUT_ortho_4x12_wrapper( + _FU1_5_,xxx1xxx,___6___, + _FU2_5_,xxx1xxx,___6___, + _FU3_5_,xxx1xxx,___6___, + ___3___,_FU4_3_,___6___ + ), + // Mouse layer: left_half + [_MOUS] = LAYOUT_ortho_4x12_wrapper( + _MO1_5_,xxx1xxx,___6___, + _MO2_5_,xxx1xxx,___6___, + _MO3_5_,xxx1xxx,___6___, + ___3___,_MO4_3_,___6___ + ), + // Music layer: everything + [_MUSI] = LAYOUT_ortho_4x12_wrapper( + _MU_12_,_MU_12_,_MU_12_, + ___1___,_MU_02_,_MUL_3_,_MUR_3_,_MU_02_,___1___) +}; diff --git a/layouts/community/ortho_4x12/bbaserdem/readme.md b/layouts/community/ortho_4x12/bbaserdem/readme.md new file mode 100644 index 0000000000..5eb6548574 --- /dev/null +++ b/layouts/community/ortho_4x12/bbaserdem/readme.md @@ -0,0 +1,12 @@ +This folder contains my [4x12\_ortho](../../../default/ortho_4x12) board layouts +Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info. + +# Planck Light + +I use a couple [planck](../../../../keyboards/planck/readme.md) keyboards. +To sell soon; don't use them anymore, but will keep the light version. + +# JJ40 + +A planck rev4 replacement; for my acrylic planck case which used to host a now +defunct rev4. diff --git a/tests/tap_dance/test.mk b/layouts/community/ortho_4x12/bbaserdem/rules.mk old mode 100644 new mode 100755 similarity index 66% rename from tests/tap_dance/test.mk rename to layouts/community/ortho_4x12/bbaserdem/rules.mk index 041d9b4dc9..b3ce684315 --- a/tests/tap_dance/test.mk +++ b/layouts/community/ortho_4x12/bbaserdem/rules.mk @@ -1,4 +1,6 @@ -# Copyright 2022 Jouke Witteveen + +# Copyright 2021 Batuhan Başerdem +# @bbaserdem # # This 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,10 +15,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# -------------------------------------------------------------------------------- -# Keep this file, even if it is empty, as a marker that this folder contains tests -# -------------------------------------------------------------------------------- - -TAP_DANCE_ENABLE = yes - -SRC += examples.c +# Planck rev6 has both RGBLIGHT and RGB_MATRIX enabled +ifneq (,$(findstring planck/rev6,$(KEYBOARD))) + RGB_MATRIX_ENABLE = yes + RGBLIGHT_ENABLE = no +endif +# JJ40 here +ifneq (,$(findstring jj40,$(KEYBOARD))) + RGB_MATRIX_ENABLE = yes +endif diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c index 9d208f0a7a..393bb88863 100644 --- a/layouts/community/ortho_4x12/jotix/keymap.c +++ b/layouts/community/ortho_4x12/jotix/keymap.c @@ -4,14 +4,17 @@ enum layers { _QWERTY, _LOWER, _RAISE, + _GAME, + _NUMPAD, + _MOUSE, + _ADJUST, }; -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) - -static bool is_ctl_pressed; -static bool is_esc_pressed; -static bool is_bspc_pressed; +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define GAME TG(_GAME) +#define NUMPAD TG(_NUMPAD) +#define MOUSE TG(_MOUSE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -50,12 +53,61 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP,KC_END // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), + +[_GAME] = LAYOUT_ortho_4x12 ( +// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_UP, _______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH,KC_LEFT,KC_DOWN,KC_RGHT +// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ +), + +[_NUMPAD] = LAYOUT_ortho_4x12 ( +// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ + NUMPAD ,_______,_______,_______,_______,_______,_______,KC_P7, KC_P8, KC_P9, KC_PMNS,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,KC_P4, KC_P5, KC_P6, KC_PPLS,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,KC_P1, KC_P2, KC_P3, KC_PSLS,KC_PENT, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,KC_P0, KC_PDOT,KC_PAST,_______ +// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ +), + +[_MOUSE] = LAYOUT_ortho_4x12 ( +// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ + MOUSE, KC_BTN1,KC_MS_U,KC_BTN2,KC_WH_U,_______,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,KC_MS_L,KC_MS_D,KC_MS_R,KC_WH_D,_______,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ +), + +[_ADJUST] = LAYOUT_ortho_4x12 ( +// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ + _______,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,GAME ,_______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,NUMPAD, MOUSE, _______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ +), }; layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); #ifdef JOTANCK_LEDS - writePin(JOTANCK_LED1, (get_highest_layer(state) == _LOWER)); - writePin(JOTANCK_LED2, (get_highest_layer(state) == _RAISE)); + writePin(JOTANCK_LED1, (get_highest_layer(state) == _MOUSE)); + writePin(JOTANCK_LED2, (get_highest_layer(state) == _NUMPAD)); #endif return state; } @@ -67,24 +119,3 @@ bool led_update_user(led_t led_state) { } return true; } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_LCTL: - is_ctl_pressed = record->event.pressed; - break; - case KC_ESC: - is_esc_pressed = record->event.pressed; - break; - case KC_BSPC: - is_bspc_pressed = record->event.pressed; - break; - }; - return true; -} - -void matrix_scan_user(void) { - if (is_ctl_pressed && is_esc_pressed && is_bspc_pressed) { - reset_keyboard(); - } -} diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h index 5d7ccd257f..0b218502ba 100644 --- a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_4x12/peej/keymap.c b/layouts/community/ortho_4x12/peej/keymap.c index 1e2874ac99..d78f03da41 100644 --- a/layouts/community/ortho_4x12/peej/keymap.c +++ b/layouts/community/ortho_4x12/peej/keymap.c @@ -56,7 +56,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { writePinLow(LED_RED); writePinLow(LED_GREEN); - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _FUNCTION: writePinHigh(LED_RED); break; diff --git a/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h index 927567fe4b..f94af8118f 100644 --- a/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h b/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h index 42e0385169..e0ac4b1493 100644 --- a/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h +++ b/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c +++ b/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/planck_mit/manna-harbour_miryoku/config.h b/layouts/community/planck_mit/manna-harbour_miryoku/config.h index df24fbba0f..b9dea9ede3 100644 --- a/layouts/community/planck_mit/manna-harbour_miryoku/config.h +++ b/layouts/community/planck_mit/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c b/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c +++ b/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/split_3x5_3/bbaserdem/config.h b/layouts/community/split_3x5_3/bbaserdem/config.h new file mode 100644 index 0000000000..6bb3515b9e --- /dev/null +++ b/layouts/community/split_3x5_3/bbaserdem/config.h @@ -0,0 +1,35 @@ + +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// Split definition; use the following to flash; +// pro-micro: avrdude-split-left/right +// elite-c: dfu-split-left/right +#define EE_HANDS + +#ifdef KEYBOARD_crkbd_rev1 + // Corne overrides +# ifdef RGBLED_NUM +# undef RGBLED_NUM +# endif +# ifdef DRIVER_LED_TOTAL +# undef DRIVER_LED_TOTAL +# endif +# define RGBLED_NUM 48 +# define DRIVER_LED_TOTAL RGBLED_NUM +#endif // KEYBOARD_crkbd_rev1 diff --git a/layouts/community/split_3x5_3/bbaserdem/keymap.c b/layouts/community/split_3x5_3/bbaserdem/keymap.c new file mode 100644 index 0000000000..f39a81082e --- /dev/null +++ b/layouts/community/split_3x5_3/bbaserdem/keymap.c @@ -0,0 +1,117 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "bbaserdem.h" + +/* D layout + * ┌───┬───┬───┬───┬───┐        ┌───┬───┬───┬───┬───┐ + * │' "│, <│. >│ P │ Y │        │ F │ G │ C │ R │ L │ + * ├───┼───┼───┼───┼───┤        ├───┼───┼───┼───┼───┤ + * │ A │ O │ E │ U │ I │        │ D │ H │ T │ N │ S │ + * ├───┼───┼───┼───┼───┤        ├───┼───┼───┼───┼───┤ + * │; :│ Q │ J │ K │ X │        │ B │ M │ W │ V │ Z │ + * └───┴───┴───┼───┼───┼───┐ ┌───┼───┼───┼───┴───┴───┘ + *            │Del│Tab│Spc│ │Ent│Esc│Bsp│ + *            └───┴───┴───┘ └───┴───┴───┘ + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x5_3_wrapper( + _BL1_5_,_BR1_5_, + _BL2_5_,_BR2_5_, + _BL3_5_,_BR3_5_, + _BL4_3_,_BR4_3_ + ), + [_CHAR] = LAYOUT_split_3x5_3_wrapper( + _CL1_5_,_CR1_5_, + _CL2_5_,_CR2_5_, + _CL3_5_,_CR3_5_, + _CL4_3_,_CR4_3_ + ), + [_GAME] = LAYOUT_split_3x5_3_wrapper( + _GA1_5_,___5___, + _GA2_5_,___5___, + _GA3_5_,___5___, + _GA4_3_,___3___ + ), + [_MEDI] = LAYOUT_split_3x5_3_wrapper( + ___5___,_ME1_5_, + ___5___,_ME2_5_, + ___5___,_ME3_5_, + ___3___,_ME4_3_ + ), + [_NAVI] = LAYOUT_split_3x5_3_wrapper( + ___5___,_NA1_5_, + ___5___,_NA2_5_, + ___5___,_NA3_5_, + ___3___,_NA4_3_ + ), + [_SYMB] = LAYOUT_split_3x5_3_wrapper( + ___5___,_SY1_5_, + ___5___,_SY2_5_, + ___5___,_SY3_5_, + ___3___,_SY4_3_ + ), + [_NUMB] = LAYOUT_split_3x5_3_wrapper( + _NU1_5_,___5___, + _NU2_5_,___5___, + _NU3_5_,___5___, + _NU4_3_,___3___ + ), + [_FUNC] = LAYOUT_split_3x5_3_wrapper( + _FU1_5_,___5___, + _FU2_5_,___5___, + _FU3_5_,___5___, + _FU4_3_,___3___ + ), + [_MOUS] = LAYOUT_split_3x5_3_wrapper( + _MO1_5_,___5___, + _MO2_5_,___5___, + _MO3_5_,___5___, + _MO4_3_,___3___ + ), + [_MUSI] = LAYOUT_split_3x5_3_wrapper( + _MU_10_, + _MU_10_, + _MU_10_, + _MUL_3_,_MUR_3_ + ) +}; + +// RGB Matrix configuration +#ifdef RGB_MATRIX_ENABLE + +// crkbd +#ifdef KEYBOARD_crkbd_rev1 +/* This is left-right for crkbd indicator light + * ┌──┬──┬──┬──┬──┐      ┌──┬──┬──┬──┬──┐ + * │23│18│17│10│09│      │33│34│41│42│47│ + * ├02┼──┼01┼──┼00┤      ├24┼──┼25┼──┼26┤ + * │22│19│16│11│08│     │32│35│40│43│46│ + * ├03┼──┼04┼──┼05┤      ├29┼──┼28┼──┼27┤ + * │21│20│15│12│07│     │31│36│39│44│45│ + * └──┴──┴──┼──┼──┼──┐┌──┼──┼──┼──┴──┴──┘ + *          │14│13│06││30│37│38│ + *          └──┴──┴──┘└──┴──┴──┘ + */ + +// End of differentiations +#endif // KEYBOARD_crkbd_rev1 + +// End of code for the RGB_MATRIX setup +#endif // RGB_MATRIX_ENABLE diff --git a/layouts/community/split_3x5_3/bbaserdem/readme.md b/layouts/community/split_3x5_3/bbaserdem/readme.md new file mode 100644 index 0000000000..30cacd85ea --- /dev/null +++ b/layouts/community/split_3x5_3/bbaserdem/readme.md @@ -0,0 +1,18 @@ +This folder contains my [split\_3x5\_3](../../../default/split_3x5_3) board layouts +Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info. + +# Crkbd + +Using a no 6th column crkbd (rev 2.1 choc) as a mobile keyboard. + +This version uses ProMicro as controllers; can't have OLED and RGB at the same time. + +## Build + +QMK cli commands no longer works with Archlinux (2021 Sep.) on my PC for flashing promicro. +In the past; I used to flash Pro Micro explicitly using the following line, for referance. + +``` +sudo avrdude -p atmgea34u4 -P "$(ls /dev/ttyACM*)" -c avr109 -D -U flash:w:.hex +``` + diff --git a/layouts/community/split_3x5_3/bbaserdem/rules.mk b/layouts/community/split_3x5_3/bbaserdem/rules.mk new file mode 100644 index 0000000000..047629b401 --- /dev/null +++ b/layouts/community/split_3x5_3/bbaserdem/rules.mk @@ -0,0 +1,22 @@ +# Copyright 2021 Batuhan Başerdem +# @bbaserdem +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Corne keyboard +ifneq (,$(findstring crkbd/rev1,$(KEYBOARD))) + RGBLIGHT_ENABLE = no + RGB_MATRIX_ENABLE = yes + OLED_ENABLE = no +endif diff --git a/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h b/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h index b34f6ad18d..3f55144b41 100644 --- a/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h +++ b/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c b/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c +++ b/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/split_3x6_3/bbaserdem/chconf.h b/layouts/community/split_3x6_3/bbaserdem/chconf.h new file mode 100644 index 0000000000..4c6d15441f --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/chconf.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Code pertaining the ARM crkbd version +#ifdef KEYBOARD_crkbd_rev1 +# define CH_CFG_ST_RESOLUTION 16 +# define CH_CFG_ST_FREQUENCY 10000 +# include_next "chconf.h" +#endif // KEYBOARD_crkbd_rev1 diff --git a/layouts/community/split_3x6_3/bbaserdem/config.h b/layouts/community/split_3x6_3/bbaserdem/config.h new file mode 100644 index 0000000000..adf707d1ba --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/config.h @@ -0,0 +1,77 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once +// Split definition; use the following to flash; +// pro-micro: avrdude-split-left/right +// elite-c: dfu-split-left/right + +// Code pertaining to Corne ARM; from Waffle's keymap +#ifdef KEYBOARD_crkbd_rev1 + // Use EE_HANDS to determine handedness +# define EE_HANDS + + // Rebrand the PCB +# undef PRODUCT +# define PRODUCT Protorne Keyboard +# undef MANUFACTURER +# define MANUFACTURER Waffles + + // Remove OLED definitions? +# undef USE_I2C +# undef SSD1306OLED + + // Audio output on pin A5 (actualy will be output on B1 using keymap init) +# ifdef AUDIO_ENABLE +# define AUDIO_PIN A5 +# define MUSIC_MAP +# endif + + // Set serial pin as D3 for sure +# undef SOFT_SERIAL_PIN +# define SOFT_SERIAL_PIN D3 +# define SERIAL_USART_SPEED 921600 +# define SERIAL_USART_DRIVER SD1 +# define SERIAL_USART_TX_PAL_MODE 7 + + // Things to make RGB matrix work on the waffle board +# undef RGBLED_NUM +# define RGBLED_NUM 54 +# undef RGB_DI_PIN +# define RGB_DI_PIN B5 +# ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 +# define RGB_MATRIX_SPLIT { 27, 27 } +# endif +# define WS2812_PWM_DRIVER PWMD3 +# define WS2812_PWM_CHANNEL 3 +# define WS2812_PWM_PAL_MODE 2 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 +# define WS2812_DMA_CHANNEL 3 + + // OLED related code +# ifdef OLED_ENABLE +# define OLED_UPDATE_INTERVAL 100 +# endif + + // Encoder definitons +# define ENCODERS_PAD_A { B2 } +# define ENCODERS_PAD_B { B6 } +# define ENCODER_RESOLUTIONS { 4 } +# define ENCODERS_PAD_A_RIGHT { B2 } +# define ENCODERS_PAD_B_RIGHT { B6 } +# define ENCODER_RESOLUTIONS_RIGHT { 2 } +#endif diff --git a/layouts/community/split_3x6_3/bbaserdem/halconf.h b/layouts/community/split_3x6_3/bbaserdem/halconf.h new file mode 100644 index 0000000000..f3978c4175 --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/halconf.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 KEYBOARD_crkbd_rev1 + // #define HAL_USE_DAC TRUE +# define HAL_USE_PWM TRUE +# define HAL_USE_SERIAL TRUE +# include_next +#endif diff --git a/layouts/community/split_3x6_3/bbaserdem/keymap.c b/layouts/community/split_3x6_3/bbaserdem/keymap.c new file mode 100644 index 0000000000..589b8eda0c --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/keymap.c @@ -0,0 +1,191 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "bbaserdem.h" + +#ifdef KEYBOARD_crkbd_rev1 +# include "bb-oled-extra.h" +#endif // KEYBOARD_crkbd_rev1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x6_3_wrapper( + BB_ENC0,_BL1_5_,_BR1_5_,BB_ENC1, + _BL2_1_,_BL2_5_,_BR2_5_,_BR2_1_, + _BL3_1_,_BL3_5_,_BR3_5_,_BR3_1_, + _BL4_3_,_BR4_3_ + ), + [_CHAR] = LAYOUT_split_3x6_3_wrapper( + _______,_CL1_5_,_CR1_5_,_______, + XXXXXXX,_CL2_5_,_CR2_5_,XXXXXXX, + XXXXXXX,_CL3_5_,_CR3_5_,XXXXXXX, + _CL4_3_,_CR4_3_ + ), + [_GAME] = LAYOUT_split_3x6_3_wrapper( + _______,_GA1_5_,___6___, + _GA2_1_,_GA2_5_,___6___, + _GA3_1_,_GA3_5_,___6___, + _GA4_3_,___3___ + ), + [_MEDI] = LAYOUT_split_3x6_3_wrapper( + ___6___,_ME1_5_,_______, + ___6___,_ME2_5_,xxx1xxx, + ___6___,_ME3_5_,xxx1xxx, + ___3___,_ME4_3_ + ), + [_NAVI] = LAYOUT_split_3x6_3_wrapper( + ___6___,_NA1_5_,_______, + ___6___,_NA2_5_,xxx1xxx, + ___6___,_NA3_5_,xxx1xxx, + ___3___,_NA4_3_ + ), + [_SYMB] = LAYOUT_split_3x6_3_wrapper( + ___6___,_SY1_5_,_______, + ___6___,_SY2_5_,xxx1xxx, + ___6___,_SY3_5_,xxx1xxx, + ___3___,_SY4_3_ + ), + [_NUMB] = LAYOUT_split_3x6_3_wrapper( + _______,_NU1_5_,___6___, + xxx1xxx,_NU2_5_,___6___, + xxx1xxx,_NU3_5_,___6___, + _NU4_3_,___3___ + ), + [_FUNC] = LAYOUT_split_3x6_3_wrapper( + _______,_FU1_5_,___6___, + xxx1xxx,_FU2_5_,___6___, + xxx1xxx,_FU3_5_,___6___, + _FU4_3_,___3___ + ), + [_MOUS] = LAYOUT_split_3x6_3_wrapper( + _______,_MO1_5_,___6___, + xxx1xxx,_MO2_5_,___6___, + xxx1xxx,_MO3_5_,___6___, + _MO4_3_,___3___ + ), + [_MUSI] = LAYOUT_split_3x6_3_wrapper( + _MU_12_, + _MU_12_, + _MU_12_, + _MUL_3_,_MUR_3_ + ) +}; + +// crkbd +#ifdef KEYBOARD_crkbd_rev1 +#ifdef AUDIO_ENABLE +const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_split_3x6_3( + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 0, 0, 0, 0, 0, 0 +); +#endif // AUDIO_ENABLE +void keyboard_pre_init_keymap(void) { +# ifdef AUDIO_ENABLE + //thank you to @sigprof for this + // Set audio pins to analog mode + palSetLineMode(A5, PAL_MODE_INPUT_ANALOG); + palSetLineMode(B1, PAL_MODE_INPUT_ANALOG); +# endif // AUDIO_ENABLE +# ifdef RGB_MATRIX_ENABLE + // Led locations are different on protorne; need to be fixed + g_led_config = (led_config_t) { { + // Logical Layout + // 0 1 2 3 4 5 COLS + // -LEFT ROWS + // 16 17 18 19 20 21 0 + // 15 14 13 12 11 10 1 + // 04 05 06 07 08 09 2 + // 03 02 01 3 + // -Right + // 21 20 19 18 17 16 4 + // 10 11 12 13 14 15 5 + // 09 08 07 06 05 04 6 + // 01 02 03 7 + { 15, 16, 17, 18, 19, 20}, + { 14, 13, 12, 11, 10, 9 }, + { 3, 4, 5, 6, 7, 8 }, + { NO_LED, NO_LED, NO_LED, 2, 1, 0 }, + { 47, 46, 45, 44, 43, 42 }, + { 36, 37, 38, 39, 40, 41 }, + { 35, 34, 33, 32, 31, 30 }, + { NO_LED, NO_LED, NO_LED, 27, 28, 29 } + }, { + // Physical Layout + // LEFT RIGHT + // 16 17 18 19 20 21 16 17 18 19 20 21 + // 24 23 22 24 23 22 + // 15 14 13 12 11 10 15 14 13 12 11 10 + // 25 27 + // 04 05 06 07 08 09 04 05 06 07 08 09 + // 26 27 25 26 + // 03 02 01 03 02 01 + { 95, 63 }, { 80, 58 }, { 60, 55 }, + { 0, 41 }, { 16, 42 }, { 33, 37 }, { 50, 35 }, { 68, 37 }, { 85, 39 }, + { 85, 21 }, { 68, 19 }, { 50, 13 }, { 33, 20 }, { 16, 24 }, { 0, 24 }, + { 0, 7 }, { 16, 7 }, { 33, 3 }, { 50, 0 }, { 68, 2 }, { 85, 4 }, + { 85, 16 }, { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, + { 164, 55 }, { 144, 58 }, { 129, 63 }, + { 139, 39 }, { 156, 37 }, { 174, 35 }, { 191, 37 }, { 208, 42 }, { 224, 41 }, + { 224, 24 }, { 208, 24 }, { 191, 20 }, { 174, 13 }, { 156, 19 }, { 139, 21 }, + { 139, 4 }, { 156, 2 }, { 174, 0 }, { 191, 3 }, { 208, 7 }, { 224, 7 }, + { 208, 20 }, { 174, 13 }, { 139, 16 }, { 139, 52 }, { 174, 48 }, { 208, 38 } + }, { + // (x---)8 stands for indicator + // (-x--)4 stands for per-key led + // (--x-)2 stands for underglow led + // (---1)1 stands for modifier key + 12, 12, 12, + 4, 4, 5, 4, 4, 4, + 4, 5, 5, 5, 5, 4, + 4, 4, 4, 4, 4, 4, + 10, 10, 10, 10, 10, 10, + 12, 12, 12, + 4, 4, 4, 5, 4, 4, + 4, 5, 5, 5, 5, 4, + 4, 4, 4, 4, 4, 4, + 10, 10, 10, 10, 10, 10 + } }; +# endif // RGB_MATRIX_ENABLE +} + +// Enable OPAMP1 as A5 → B1 follower +#ifdef AUDIO_ENABLE +void keyboard_post_init_keymap(void) { + OPAMP3->CSR = OPAMP3_CSR_VMSEL_1 | OPAMP3_CSR_VMSEL_0 | OPAMP3_CSR_VPSEL_0 | OPAMP3_CSR_OPAMP3EN; +} +#endif // AUDIO_ENABLE + +#ifdef OLED_ENABLE +// Flip the display on the right half +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_left()) { + return OLED_ROTATION_180; + } + return rotation; +} + +bool oled_task_keymap(void) { + if (is_keyboard_left()) { + render_status_left(0, 0); + } else { + render_status_right(0, 0); + } + return false; +} +#endif // OLED_ENABLE +#endif // KEYBOARD_crkbd_rev1 diff --git a/layouts/community/split_3x6_3/bbaserdem/mcuconf.h b/layouts/community/split_3x6_3/bbaserdem/mcuconf.h new file mode 100644 index 0000000000..bde80b316f --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 KEYBOARD_crkbd_rev1 +# include_next +# undef STM32_PWM_USE_TIM3 +# define STM32_PWM_USE_TIM3 TRUE +# undef STM32_SERIAL_USE_USART1 +# define STM32_SERIAL_USE_USART1 TRUE +#endif diff --git a/layouts/community/split_3x6_3/bbaserdem/readme.md b/layouts/community/split_3x6_3/bbaserdem/readme.md new file mode 100644 index 0000000000..c3dea2882f --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/readme.md @@ -0,0 +1,15 @@ +This folder contains my [split\_3x6\_3](../../../default/split_3x6_3) board layouts +Check out the [user readme](../../../../users/bbaserdem/readme.md) for more info. + +# Crkbd + +Using [this](https://github.com/ItsWaffIe/waffle_corne) Proton-C compatible PCB. + +Applying the similar keymap to [@waffle](https://github.com/ItsWaffIe/waffle_corne); +using their `crkbd:rev1:arm` build. + +## Build + +Build commands; + +* For ARM: `CFLAGS="-Wno-error=deprecated" qmk flash -kb crkdb/rev1 -km bbaserdem -bl dfu-util-split-{left,right}` diff --git a/layouts/community/split_3x6_3/bbaserdem/rules.mk b/layouts/community/split_3x6_3/bbaserdem/rules.mk new file mode 100644 index 0000000000..09619936da --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/rules.mk @@ -0,0 +1,47 @@ +# Copyright 2021 Batuhan Başerdem +# @bbaserdem +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Corne keyboard; with ARM +ifneq (,$(findstring crkbd/rev1,$(KEYBOARD))) + # Proton C conversion + MCU = STM32F303 + CTPC = yes + # BOARD = QMK_PROTON_C + # BOOTLOADER = stm32-dfu + # My usual features + AUDIO_ENABLE = yes + BACKLIGHT_ENABLE = no + ENCODER_ENABLE = yes + RGB_MATRIX_ENABLE = yes + OLED_ENABLE = yes + # Features that take otherwise too much space + WPM_ENABLE = yes + NKRO_ENABLE = yes + # Config + SERIAL_DRIVER = usart + WS2812_DRIVER = pwm + AUDIO_DRIVER = dac_basic + SPLIT_KEYBOARD = yes + # These are from waffle + DEBUG_MATRIX_SCAN_RATE_ENABLE = no # output matrix scan rate in qmk console/qmk toolbox + QUANTUM_LIB_SRC += i2c_master.c #drivers/chibios/i2cmaster.h needs patch - see lines 27/28 + VIA_ENABLE = no + # COMMAND_ENABLE = no + # CONSOLE_ENABLE = no + # BOOTMAGIC_ENABLE = lite + # LTO_ENABLE = yes + # PIMORONI_TRACKBALL = no +endif diff --git a/layouts/community/split_3x6_3/bbaserdem/ssd1306.c b/layouts/community/split_3x6_3/bbaserdem/ssd1306.c new file mode 100644 index 0000000000..4983248555 --- /dev/null +++ b/layouts/community/split_3x6_3/bbaserdem/ssd1306.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ diff --git a/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h b/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h index 4ce96c7600..7e0e13047f 100644 --- a/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h +++ b/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c b/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c index 7c5717a0fe..dbab7f9820 100644 --- a/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c +++ b/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c @@ -1,5 +1,4 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/layouts/default/65_ansi/default_65_ansi/keymap.c b/layouts/default/65_ansi/default_65_ansi/keymap.c index 3ef02da07d..e206bd7851 100644 --- a/layouts/default/65_ansi/default_65_ansi/keymap.c +++ b/layouts/default/65_ansi/default_65_ansi/keymap.c @@ -1,9 +1,13 @@ +// 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] = { + /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * │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│ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ @@ -11,14 +15,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ - * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│ ← │ ↓ │ → │ + * │Ctrl│GUI │Alt │ │Alt│ Fn│Ctl│ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ */ [0] = LAYOUT_65_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_BSPC, KC_HOME, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, 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( + 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_INS, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/layouts/default/65_ansi_blocker/default_65_ansi_blocker/keymap.c b/layouts/default/65_ansi_blocker/default_65_ansi_blocker/keymap.c index 7f39d19d95..7036e7295f 100644 --- a/layouts/default/65_ansi_blocker/default_65_ansi_blocker/keymap.c +++ b/layouts/default/65_ansi_blocker/default_65_ansi_blocker/keymap.c @@ -1,9 +1,13 @@ +// Copyright 2019-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * │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│ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ @@ -11,14 +15,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │Ctrl│GUI │Alt │ │ Alt│Ctrl│ │ ← │ ↓ │ → │ + * │Ctrl│GUI │Alt │ │ Alt│ Fn│ │ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ [0] = LAYOUT_65_ansi_blocker( - KC_GRV, KC_1, KC_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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) + 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_INS, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/layouts/default/65_ansi_blocker_split_bs/default_65_ansi_blocker_split_bs/keymap.c b/layouts/default/65_ansi_blocker_split_bs/default_65_ansi_blocker_split_bs/keymap.c index 6fb5425b50..6bca761830 100644 --- a/layouts/default/65_ansi_blocker_split_bs/default_65_ansi_blocker_split_bs/keymap.c +++ b/layouts/default/65_ansi_blocker_split_bs/default_65_ansi_blocker_split_bs/keymap.c @@ -1,9 +1,13 @@ +// 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] = { + /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Hom│ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Hom│ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ @@ -11,14 +15,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │Ctrl│GUI │Alt │ │ Alt│Ctrl│ │ ← │ ↓ │ → │ + * │Ctrl│GUI │Alt │ │ Alt│ Fn│ │ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ [0] = LAYOUT_65_ansi_blocker_split_bs( - KC_GRV, KC_1, KC_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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) + 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│Del│Del│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│Pause│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_65_ansi_blocker_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_SLCK, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/layouts/default/65_ansi_blocker_tsangan/default_65_ansi_blocker_tsangan/keymap.c b/layouts/default/65_ansi_blocker_tsangan/default_65_ansi_blocker_tsangan/keymap.c index 68b1f7b914..f899242ed4 100644 --- a/layouts/default/65_ansi_blocker_tsangan/default_65_ansi_blocker_tsangan/keymap.c +++ b/layouts/default/65_ansi_blocker_tsangan/default_65_ansi_blocker_tsangan/keymap.c @@ -1,9 +1,13 @@ +// 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] = { + /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * │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│ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ @@ -11,14 +15,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ - * │Ctrl │GUI│Alt │ │ Alt│ │ ← │ ↓ │ → │ + * │Ctrl │GUI│Alt │ │ Fn│ │ ← │ ↓ │ → │ * └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ */ [0] = LAYOUT_65_ansi_blocker_tsangan( - KC_GRV, KC_1, KC_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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT - ) + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, 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_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_INS, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/layouts/default/65_ansi_blocker_tsangan/readme.md b/layouts/default/65_ansi_blocker_tsangan/readme.md index 879742fee8..963914784e 100644 --- a/layouts/default/65_ansi_blocker_tsangan/readme.md +++ b/layouts/default/65_ansi_blocker_tsangan/readme.md @@ -1,6 +1,5 @@ # 65_ansi_blocker_tsangan LAYOUT_65_ansi_blocker_tsangan - + This is a Tsangan-inspired 65% ANSI layout with a blocker next to the arrows and 1.5u-1u-1.5u-7u-1.5u bottom row. - \ No newline at end of file diff --git a/layouts/default/65_ansi_blocker_tsangan_split_bs/default_65_ansi_blocker_tsangan_split_bs/keymap.c b/layouts/default/65_ansi_blocker_tsangan_split_bs/default_65_ansi_blocker_tsangan_split_bs/keymap.c new file mode 100644 index 0000000000..446d2c72ab --- /dev/null +++ b/layouts/default/65_ansi_blocker_tsangan_split_bs/default_65_ansi_blocker_tsangan_split_bs/keymap.c @@ -0,0 +1,50 @@ +// Copyright 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 │ - │ = │Bsp│Bsp│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 │ │ Fn│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + */ + [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_BSPC, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_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_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Del│Del│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│Pause│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ + * └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + */ + [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_SLCK, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/layouts/default/65_ansi_blocker_tsangan_split_bs/info.json b/layouts/default/65_ansi_blocker_tsangan_split_bs/info.json new file mode 100644 index 0000000000..6826b1f6ea --- /dev/null +++ b/layouts/default/65_ansi_blocker_tsangan_split_bs/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "65% ANSI Tsangan layout with blocker and split Backspace", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/layouts/default/65_ansi_blocker_tsangan_split_bs/layout.json b/layouts/default/65_ansi_blocker_tsangan_split_bs/layout.json new file mode 100644 index 0000000000..f2f92557e5 --- /dev/null +++ b/layouts/default/65_ansi_blocker_tsangan_split_bs/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","","","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},"",""], +[{w:2.25},"","","","","","","","","","","",{w:1.75},"","",""], +[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"",{x:0.5},"","",""] diff --git a/layouts/default/65_ansi_blocker_tsangan_split_bs/readme.md b/layouts/default/65_ansi_blocker_tsangan_split_bs/readme.md new file mode 100644 index 0000000000..3b43d0a7f1 --- /dev/null +++ b/layouts/default/65_ansi_blocker_tsangan_split_bs/readme.md @@ -0,0 +1,6 @@ +# 65_ansi_blocker_tsangan_split_bs + + LAYOUT_65_ansi_blocker_tsangan_split_bs + +This is a Tsangan-inspired 65% ANSI layout with a blocker next to the arrows, a split Backspace, and 1.5u-1u-1.5u-7u-1.5u bottom row. + diff --git a/layouts/default/65_ansi_split_bs/default_65_ansi_split_bs/keymap.c b/layouts/default/65_ansi_split_bs/default_65_ansi_split_bs/keymap.c index 15e374e0c6..be974060e7 100644 --- a/layouts/default/65_ansi_split_bs/default_65_ansi_split_bs/keymap.c +++ b/layouts/default/65_ansi_split_bs/default_65_ansi_split_bs/keymap.c @@ -1,9 +1,13 @@ +// 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] = { + /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = |Bsp|Bsp|Hom│ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = |Bsp|Bsp|Hom│ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ @@ -11,14 +15,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ - * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│ ← │ ↓ │ → │ + * │Ctrl│GUI │Alt │ │Alt│ Fn│Ctl│ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ */ [0] = LAYOUT_65_ansi_split_bs( - KC_GRV, KC_1, KC_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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_LSFT, KC_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 - ) + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Del│Del│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│Pause│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ + [1] = LAYOUT_65_ansi_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_SLCK, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/layouts/default/65_iso/default_65_iso/keymap.c b/layouts/default/65_iso/default_65_iso/keymap.c index 76a27df862..833945bebf 100644 --- a/layouts/default/65_iso/default_65_iso/keymap.c +++ b/layouts/default/65_iso/default_65_iso/keymap.c @@ -1,9 +1,13 @@ +// Copyright 2019-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * │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│ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤ @@ -11,14 +15,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ - * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│ ← │ ↓ │ → │ + * │Ctrl│GUI │Alt │ │Alt│ Fn│Ctl│ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ */ [0] = LAYOUT_65_iso( - KC_GRV, KC_1, KC_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_ESC, KC_1, KC_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_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Delete│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │Pau│ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │ │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ + [1] = LAYOUT_65_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_INS, _______, _______, _______, _______, KC_PSCR, KC_SLCK, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/layouts/default/65_iso_blocker/default_65_iso_blocker/keymap.c b/layouts/default/65_iso_blocker/default_65_iso_blocker/keymap.c index f1d5ac4686..9e1f99afaa 100644 --- a/layouts/default/65_iso_blocker/default_65_iso_blocker/keymap.c +++ b/layouts/default/65_iso_blocker/default_65_iso_blocker/keymap.c @@ -1,9 +1,13 @@ +// Copyright 2019-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│ + * │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│ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤ @@ -11,14 +15,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │Ctrl│GUI │Alt │ │ Alt│Ctrl│ │ ← │ ↓ │ → │ + * │Ctrl│GUI │Alt │ │ Alt│ Fn│ │ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ [0] = LAYOUT_65_iso_blocker( - KC_GRV, KC_1, KC_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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) + 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│ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │Pau│ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │ │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [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_INS, _______, _______, _______, _______, KC_PSCR, KC_SLCK, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/layouts/default/65_iso_blocker_split_bs/default_65_iso_blocker_split_bs/keymap.c b/layouts/default/65_iso_blocker_split_bs/default_65_iso_blocker_split_bs/keymap.c index f497553fe2..a816c3746a 100644 --- a/layouts/default/65_iso_blocker_split_bs/default_65_iso_blocker_split_bs/keymap.c +++ b/layouts/default/65_iso_blocker_split_bs/default_65_iso_blocker_split_bs/keymap.c @@ -1,9 +1,13 @@ +// 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] = { + /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Hom│ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Hom│ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │PgU│ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤ @@ -11,14 +15,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │Ctrl│GUI │Alt │ │ Alt│Ctrl│ │ ← │ ↓ │ → │ + * │Ctrl│GUI │Alt │ │ Alt│ Fn│ │ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ [0] = LAYOUT_65_iso_blocker_split_bs( - KC_GRV, KC_1, KC_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_ESC, KC_1, KC_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_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) + 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│Del│Del│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │Pau│ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │ │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_65_iso_blocker_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_SLCK, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/layouts/default/65_iso_blocker_tsangan/default_65_iso_blocker_tsangan/keymap.c b/layouts/default/65_iso_blocker_tsangan/default_65_iso_blocker_tsangan/keymap.c new file mode 100644 index 0000000000..7a0197df19 --- /dev/null +++ b/layouts/default/65_iso_blocker_tsangan/default_65_iso_blocker_tsangan/keymap.c @@ -0,0 +1,50 @@ +// Copyright 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│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │PgD│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ + * │Ctrl │GUI│Alt │ │ Fn│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + */ + [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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Delete│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │Pau│ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │ │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ + * └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + */ + [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_INS, _______, _______, _______, _______, KC_PSCR, KC_SLCK, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/layouts/default/65_iso_blocker_tsangan/info.json b/layouts/default/65_iso_blocker_tsangan/info.json new file mode 100644 index 0000000000..bdeea87a1e --- /dev/null +++ b/layouts/default/65_iso_blocker_tsangan/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "65% ISO Tsangan layout with blocker", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/layouts/default/65_iso_blocker_tsangan/layout.json b/layouts/default/65_iso_blocker_tsangan/layout.json new file mode 100644 index 0000000000..8b43ffdcc5 --- /dev/null +++ b/layouts/default/65_iso_blocker_tsangan/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","",{w:2},"",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",""], +[{w:1.75},"","","","","","","","","","","","","",{x:1.25},""], +[{w:1.25},"","","","","","","","","","","","",{w:1.75},"","",""], +[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"",{x:0.5},"","",""] diff --git a/layouts/default/65_iso_blocker_tsangan/readme.md b/layouts/default/65_iso_blocker_tsangan/readme.md new file mode 100644 index 0000000000..b38d346e94 --- /dev/null +++ b/layouts/default/65_iso_blocker_tsangan/readme.md @@ -0,0 +1,5 @@ +# 65_iso_blocker_tsangan + + LAYOUT_65_iso_blocker_tsangan + +This is a Tsangan-inspired 65% ISO layout with a blocker next to the arrows and 1.5u-1u-1.5u-7u-1.5u bottom row. diff --git a/layouts/default/65_iso_blocker_tsangan_split_bs/default_65_iso_blocker_tsangan_split_bs/keymap.c b/layouts/default/65_iso_blocker_tsangan_split_bs/default_65_iso_blocker_tsangan_split_bs/keymap.c new file mode 100644 index 0000000000..c5b5dad8a1 --- /dev/null +++ b/layouts/default/65_iso_blocker_tsangan_split_bs/default_65_iso_blocker_tsangan_split_bs/keymap.c @@ -0,0 +1,50 @@ +// Copyright 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 │ - │ = │Bsp│Bsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │PgD│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ + * │Ctrl │GUI│Alt │ │ Fn│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_65_iso_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_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_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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Del│Del│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │Pau│ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │ │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ + * └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_65_iso_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_SLCK, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/layouts/default/65_iso_blocker_tsangan_split_bs/info.json b/layouts/default/65_iso_blocker_tsangan_split_bs/info.json new file mode 100644 index 0000000000..8d51acd5fa --- /dev/null +++ b/layouts/default/65_iso_blocker_tsangan_split_bs/info.json @@ -0,0 +1,83 @@ +{ + "keyboard_name": "65% ISO Tsangan layout with blocker and split Backspace", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/layouts/default/65_iso_blocker_tsangan_split_bs/layout.json b/layouts/default/65_iso_blocker_tsangan_split_bs/layout.json new file mode 100644 index 0000000000..2e7c05dc5a --- /dev/null +++ b/layouts/default/65_iso_blocker_tsangan_split_bs/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},"","","","","","","","","","","","","",{x:1.25},""], +[{w:1.25},"","","","","","","","","","","","",{w:1.75},"","",""], +[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"",{x:0.5},"","",""] diff --git a/layouts/default/65_iso_blocker_tsangan_split_bs/readme.md b/layouts/default/65_iso_blocker_tsangan_split_bs/readme.md new file mode 100644 index 0000000000..c01c5a003e --- /dev/null +++ b/layouts/default/65_iso_blocker_tsangan_split_bs/readme.md @@ -0,0 +1,5 @@ +# 65_iso_blocker_tsangan_split_bs + + LAYOUT_65_iso_blocker_tsangan_split_bs + +This is a Tsangan-inspired 65% ISO layout with a blocker next to the arrows, a split Backspace, and 1.5u-1u-1.5u-7u-1.5u bottom row. diff --git a/layouts/default/65_iso_split_bs/default_65_iso_split_bs/keymap.c b/layouts/default/65_iso_split_bs/default_65_iso_split_bs/keymap.c index 65293bd58f..70c91a43b2 100644 --- a/layouts/default/65_iso_split_bs/default_65_iso_split_bs/keymap.c +++ b/layouts/default/65_iso_split_bs/default_65_iso_split_bs/keymap.c @@ -1,9 +1,13 @@ +// Copyright 2019-2022 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = |Bsp|Bsp|Hom│ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Hom│ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │PgU│ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤ @@ -11,14 +15,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ - * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│ ← │ ↓ │ → │ + * │Ctrl│GUI │Alt │ │Alt│ Fn│Ctl│ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ */ [0] = LAYOUT_65_iso_split_bs( - KC_GRV, KC_1, KC_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_ESC, KC_1, KC_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_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Del│Del│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │Pau│ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │ │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ + [1] = LAYOUT_65_iso_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_SLCK, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + }; diff --git a/layouts/default/readme.md b/layouts/default/readme.md index f414282e80..0d2182e671 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -261,6 +261,21 @@ LAYOUT_65_ansi_blocker_tsangan └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` +``` +LAYOUT_65_ansi_blocker_tsangan_split_bs +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ +``` + ``` LAYOUT_65_ansi_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ @@ -284,9 +299,9 @@ LAYOUT_65_iso │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` @@ -299,9 +314,9 @@ LAYOUT_65_iso_blocker │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` @@ -314,13 +329,43 @@ LAYOUT_65_iso_blocker_split_bs │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` +``` +LAYOUT_65_iso_blocker_tsangan +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_65_iso_blocker_tsangan_split_bs +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ +``` + ``` LAYOUT_65_iso_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ @@ -329,9 +374,9 @@ LAYOUT_65_iso_split_bs │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` @@ -452,6 +497,60 @@ LAYOUT_tkl_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +``` +LAYOUT_tkl_ansi_split_bs_rshift +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_ansi_tsangan +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_ansi_tsangan_split_bs_rshift +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +``` + ``` LAYOUT_tkl_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ @@ -470,6 +569,60 @@ LAYOUT_tkl_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +``` +LAYOUT_tkl_iso_split_bs_rshift +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_iso_tsangan +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_iso_tsangan_split_bs_rshift +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +``` + ``` LAYOUT_tkl_f13_ansi ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ diff --git a/layouts/default/tkl_ansi/readme.md b/layouts/default/tkl_ansi/readme.md index cd4197ef4e..71844eacab 100644 --- a/layouts/default/tkl_ansi/readme.md +++ b/layouts/default/tkl_ansi/readme.md @@ -1,3 +1,5 @@ # tkl_ansi LAYOUT_tkl_ansi + +A standard ANSI TKL layout. diff --git a/layouts/default/tkl_ansi_split_bs_rshift/default_tkl_ansi_split_bs_rshift/keymap.c b/layouts/default/tkl_ansi_split_bs_rshift/default_tkl_ansi_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..17dae9adab --- /dev/null +++ b/layouts/default/tkl_ansi_split_bs_rshift/default_tkl_ansi_split_bs_rshift/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2022 QMK / James Young (@noroadsleft) +// 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 │ - │ = │Bsp│Bsp│ │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│Sft│ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_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_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_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_ansi_split_bs_rshift/info.json b/layouts/default/tkl_ansi_split_bs_rshift/info.json new file mode 100644 index 0000000000..90c0a7e53a --- /dev/null +++ b/layouts/default/tkl_ansi_split_bs_rshift/info.json @@ -0,0 +1,105 @@ +{ + "keyboard_name": "Tenkeyless ANSI layout with split Backspace and split Right Shift", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_ansi_split_bs_rshift": { + "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.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_ansi_split_bs_rshift/layout.json b/layouts/default/tkl_ansi_split_bs_rshift/layout.json new file mode 100644 index 0000000000..41efd9789d --- /dev/null +++ b/layouts/default/tkl_ansi_split_bs_rshift/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},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:1.75},"","",{x:1.25},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_ansi_split_bs_rshift/readme.md b/layouts/default/tkl_ansi_split_bs_rshift/readme.md new file mode 100644 index 0000000000..0d5f126240 --- /dev/null +++ b/layouts/default/tkl_ansi_split_bs_rshift/readme.md @@ -0,0 +1,5 @@ +# tkl_ansi_split_bs_rshift + + LAYOUT_tkl_ansi_split_bs_rshift + +A standard ANSI TKL layout with split Backspace and split Right Shift. diff --git a/layouts/default/tkl_ansi_tsangan/default_tkl_ansi_tsangan/keymap.c b/layouts/default/tkl_ansi_tsangan/default_tkl_ansi_tsangan/keymap.c new file mode 100644 index 0000000000..7e41360702 --- /dev/null +++ b/layouts/default/tkl_ansi_tsangan/default_tkl_ansi_tsangan/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2022 QMK / James Young (@noroadsleft) +// 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│App│ Ctrl│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + [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, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_ansi_tsangan/info.json b/layouts/default/tkl_ansi_tsangan/info.json new file mode 100644 index 0000000000..7a1239c280 --- /dev/null +++ b/layouts/default/tkl_ansi_tsangan/info.json @@ -0,0 +1,102 @@ +{ + "keyboard_name": "Tenkeyless ANSI layout with Tsangan Bottom Row", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_ansi_tsangan": { + "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, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_ansi_tsangan/layout.json b/layouts/default/tkl_ansi_tsangan/layout.json new file mode 100644 index 0000000000..97f2d2fcba --- /dev/null +++ b/layouts/default/tkl_ansi_tsangan/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:1.25},""], +[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"","",{w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_ansi_tsangan/readme.md b/layouts/default/tkl_ansi_tsangan/readme.md new file mode 100644 index 0000000000..fcbc256972 --- /dev/null +++ b/layouts/default/tkl_ansi_tsangan/readme.md @@ -0,0 +1,5 @@ +# tkl_ansi_tsangan + + LAYOUT_tkl_ansi_tsangan + +Tenkeyless ANSI layout with Tsangan Bottom Row. diff --git a/layouts/default/tkl_ansi_tsangan_split_bs_rshift/default_tkl_ansi_tsangan_split_bs_rshift/keymap.c b/layouts/default/tkl_ansi_tsangan_split_bs_rshift/default_tkl_ansi_tsangan_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..4f25530da7 --- /dev/null +++ b/layouts/default/tkl_ansi_tsangan_split_bs_rshift/default_tkl_ansi_tsangan_split_bs_rshift/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2022 QMK / James Young (@noroadsleft) +// 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 │ - │ = │Bsp│Bsp│ │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│Sft│ │ ↑ │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │Ctrl │GUI│Alt │ │ Alt│App│ Ctrl│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_ansi_tsangan_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_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_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_ansi_tsangan_split_bs_rshift/info.json b/layouts/default/tkl_ansi_tsangan_split_bs_rshift/info.json new file mode 100644 index 0000000000..9068a4692c --- /dev/null +++ b/layouts/default/tkl_ansi_tsangan_split_bs_rshift/info.json @@ -0,0 +1,104 @@ +{ + "keyboard_name": "Tenkeyless ANSI layout with split Backspace, split Right Shift, and Tsangan Bottom Row", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "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.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_ansi_tsangan_split_bs_rshift/layout.json b/layouts/default/tkl_ansi_tsangan_split_bs_rshift/layout.json new file mode 100644 index 0000000000..d29ae38fe2 --- /dev/null +++ b/layouts/default/tkl_ansi_tsangan_split_bs_rshift/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},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:1.75},"","",{x:1.25},""], +[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"","",{w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_ansi_tsangan_split_bs_rshift/readme.md b/layouts/default/tkl_ansi_tsangan_split_bs_rshift/readme.md new file mode 100644 index 0000000000..8194ac3829 --- /dev/null +++ b/layouts/default/tkl_ansi_tsangan_split_bs_rshift/readme.md @@ -0,0 +1,5 @@ +# tkl_ansi_tsangan_split_bs_rshift + + LAYOUT_tkl_ansi_tsangan_split_bs_rshift + +Tenkeyless ANSI layout with split Backspace, split Right Shift, and Tsangan Bottom Row. diff --git a/layouts/default/tkl_iso/readme.md b/layouts/default/tkl_iso/readme.md index 27281687cd..b7d954a9fb 100644 --- a/layouts/default/tkl_iso/readme.md +++ b/layouts/default/tkl_iso/readme.md @@ -1,3 +1,5 @@ # tkl_iso LAYOUT_tkl_iso + +A standard ISO TKL layout. diff --git a/layouts/default/tkl_iso_split_bs_rshift/default_tkl_iso_split_bs_rshift/keymap.c b/layouts/default/tkl_iso_split_bs_rshift/default_tkl_iso_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..992f7d9a2e --- /dev/null +++ b/layouts/default/tkl_iso_split_bs_rshift/default_tkl_iso_split_bs_rshift/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2022 QMK / James Young (@noroadsleft) +// 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 │ - │ = │Bsp│Bsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│Sft│ │ ↑ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_iso_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_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_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, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_iso_split_bs_rshift/info.json b/layouts/default/tkl_iso_split_bs_rshift/info.json new file mode 100644 index 0000000000..4f0edaff2f --- /dev/null +++ b/layouts/default/tkl_iso_split_bs_rshift/info.json @@ -0,0 +1,106 @@ +{ + "keyboard_name": "Tenkeyless ISO layout with split Backspace and split Right Shift", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_iso_split_bs_rshift": { + "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":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_iso_split_bs_rshift/layout.json b/layouts/default/tkl_iso_split_bs_rshift/layout.json new file mode 100644 index 0000000000..dd96902f73 --- /dev/null +++ b/layouts/default/tkl_iso_split_bs_rshift/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:1.25},"","","","","","","","","","","","",{w:1.75},"","",{x:1.25},""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_iso_split_bs_rshift/readme.md b/layouts/default/tkl_iso_split_bs_rshift/readme.md new file mode 100644 index 0000000000..e8cae42a02 --- /dev/null +++ b/layouts/default/tkl_iso_split_bs_rshift/readme.md @@ -0,0 +1,5 @@ +# tkl_iso_split_bs_rshift + + LAYOUT_tkl_iso_split_bs_rshift + +A standard ISO TKL layout with split Backspace and split Right Shift. diff --git a/layouts/default/tkl_iso_tsangan/default_tkl_iso_tsangan/keymap.c b/layouts/default/tkl_iso_tsangan/default_tkl_iso_tsangan/keymap.c new file mode 100644 index 0000000000..202110046a --- /dev/null +++ b/layouts/default/tkl_iso_tsangan/default_tkl_iso_tsangan/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2022 QMK / James Young (@noroadsleft) +// 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│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │Ctrl │GUI│Alt │ │ Alt│App│ Ctrl│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_iso_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_iso_tsangan/info.json b/layouts/default/tkl_iso_tsangan/info.json new file mode 100644 index 0000000000..8dd5e9f71e --- /dev/null +++ b/layouts/default/tkl_iso_tsangan/info.json @@ -0,0 +1,103 @@ +{ + "keyboard_name": "Tenkeyless ISO layout with Tsangan Bottom Row", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_iso_tsangan": { + "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, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_iso_tsangan/layout.json b/layouts/default/tkl_iso_tsangan/layout.json new file mode 100644 index 0000000000..4c69641ab9 --- /dev/null +++ b/layouts/default/tkl_iso_tsangan/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{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:1.25},"","","","","","","","","","","","",{w:2.75},"",{x:1.25},""], +[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"","",{w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_iso_tsangan/readme.md b/layouts/default/tkl_iso_tsangan/readme.md new file mode 100644 index 0000000000..a9f380dcef --- /dev/null +++ b/layouts/default/tkl_iso_tsangan/readme.md @@ -0,0 +1,5 @@ +# tkl_iso_tsangan + + LAYOUT_tkl_iso_tsangan + +Tenkeyless ISO layout with Tsangan Bottom Row. diff --git a/layouts/default/tkl_iso_tsangan_split_bs_rshift/default_tkl_iso_tsangan_split_bs_rshift/keymap.c b/layouts/default/tkl_iso_tsangan_split_bs_rshift/default_tkl_iso_tsangan_split_bs_rshift/keymap.c new file mode 100644 index 0000000000..b5635bc3b7 --- /dev/null +++ b/layouts/default/tkl_iso_tsangan_split_bs_rshift/default_tkl_iso_tsangan_split_bs_rshift/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2022 QMK / James Young (@noroadsleft) +// 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 │ - │ = │Bsp│Bsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│Sft│ │ ↑ │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │Ctrl │GUI│Alt │ │ Alt│App│ Ctrl│ │ ← │ ↓ │ → │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_iso_tsangan_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_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_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, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_iso_tsangan_split_bs_rshift/info.json b/layouts/default/tkl_iso_tsangan_split_bs_rshift/info.json new file mode 100644 index 0000000000..1a9abeb159 --- /dev/null +++ b/layouts/default/tkl_iso_tsangan_split_bs_rshift/info.json @@ -0,0 +1,105 @@ +{ + "keyboard_name": "Tenkeyless ISO layout with split Backspace, split Right Shift, and Tsangan Bottom Row", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "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":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_iso_tsangan_split_bs_rshift/layout.json b/layouts/default/tkl_iso_tsangan_split_bs_rshift/layout.json new file mode 100644 index 0000000000..4ee61a45cc --- /dev/null +++ b/layouts/default/tkl_iso_tsangan_split_bs_rshift/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:1.25},"","","","","","","","","","","","",{w:1.75},"","",{x:1.25},""], +[{w:1.5},"","",{w:1.5},"",{w:7},"",{w:1.5},"","",{w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_iso_tsangan_split_bs_rshift/readme.md b/layouts/default/tkl_iso_tsangan_split_bs_rshift/readme.md new file mode 100644 index 0000000000..2c7f680ec1 --- /dev/null +++ b/layouts/default/tkl_iso_tsangan_split_bs_rshift/readme.md @@ -0,0 +1,5 @@ +# tkl_iso_tsangan_split_bs_rshift + + LAYOUT_tkl_iso_tsangan_split_bs_rshift + +Tenkeyless ISO layout with split Backspace, split Right Shift, and Tsangan Bottom Row. diff --git a/lib/chibios b/lib/chibios index f836d24b06..257302333c 160000 --- a/lib/chibios +++ b/lib/chibios @@ -1 +1 @@ -Subproject commit f836d24b06d7265696a33d1cea010bd6a931791d +Subproject commit 257302333c31f1f710800c2b97acf3550de043e1 diff --git a/lib/fnv/Makefile b/lib/fnv/Makefile deleted file mode 100644 index c0673ded40..0000000000 --- a/lib/fnv/Makefile +++ /dev/null @@ -1,304 +0,0 @@ -#!/bin/make -# -# hash - makefile for FNV hash tools -# -# @(#) $Revision: 5.2 $ -# @(#) $Id: Makefile,v 5.2 2012/03/21 01:42:15 chongo Exp $ -# @(#) $Source: /usr/local/src/cmd/fnv/RCS/Makefile,v $ -# -# See: -# http://www.isthe.com/chongo/tech/comp/fnv/index.html -# -# for the most up to date copy of this code and the FNV hash home page. -# -# Please do not copyright this code. This code is in the public domain. -# -# LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO -# EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR -# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF -# USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -# PERFORMANCE OF THIS SOFTWARE. -# -# By: -# chongo /\oo/\ -# http://www.isthe.com/chongo/ -# -# Share and Enjoy! :-) - -# make tools -# -SHELL= /bin/sh -CFLAGS= -O3 -g3 -#CFLAGS= -O2 -g3 -#CC= cc -AR= ar -TAR= tar -EGREP= egrep -GZIP_BIN= gzip -INSTALL= install - -# If your system needs ranlib use: -# RANLIB= ranlib -# otherwise use: -# RANLIB= : -# -#RANLIB= ranlib -RANLIB= : - -# where to install things -# -DESTBIN= /usr/local/bin -DESTLIB= /usr/local/lib -DESTINC= /usr/local/include - -# what to build -# -SRC= hash_32.c hash_32a.c hash_64.c hash_64a.c \ - fnv32.c fnv64.c \ - have_ulong64.c test_fnv.c -NO64BIT_SRC= no64bit_fnv64.c no64bit_hash_64.c \ - no64bit_hash_64a.c no64bit_test_fnv.c -HSRC= fnv.h \ - longlong.h -ALL= ${SRC} ${HSRC} \ - README Makefile -PROGS= fnv032 fnv064 fnv132 fnv164 fnv1a32 fnv1a64 -OBSOLETE_PROGS= fnv0_32 fnv0_64 fnv1_32 fnv1_64 fnv1a_32 fnv1a_64 -NO64BIT_PROGS= no64bit_fnv064 no64bit_fnv164 no64bit_fnv1a64 -LIBS= libfnv.a -LIBOBJ= hash_32.o hash_64.o hash_32a.o hash_64a.o test_fnv.o -NO64BIT_OBJ= no64bit_fnv64.o no64bit_hash_64.o \ - no64bit_hash_64a.o no64bit_test_fnv.o -OTHEROBJ= fnv32.o fnv64.o -TARGETS= ${LIBOBJ} ${LIBS} ${PROGS} - -# default rule -# -all: ${TARGETS} - -# things to build -# -hash_32.o: hash_32.c longlong.h fnv.h - ${CC} ${CFLAGS} hash_32.c -c - -hash_64.o: hash_64.c longlong.h fnv.h - ${CC} ${CFLAGS} hash_64.c -c - -hash_32a.o: hash_32a.c longlong.h fnv.h - ${CC} ${CFLAGS} hash_32a.c -c - -hash_64a.o: hash_64a.c longlong.h fnv.h - ${CC} ${CFLAGS} hash_64a.c -c - -test_fnv.o: test_fnv.c longlong.h fnv.h - ${CC} ${CFLAGS} test_fnv.c -c - -fnv32.o: fnv32.c longlong.h fnv.h - ${CC} ${CFLAGS} fnv32.c -c - -fnv032: fnv32.o libfnv.a - ${CC} fnv32.o libfnv.a -o fnv032 - -fnv64.o: fnv64.c longlong.h fnv.h - ${CC} ${CFLAGS} fnv64.c -c - -fnv064: fnv64.o libfnv.a - ${CC} fnv64.o libfnv.a -o fnv064 - -libfnv.a: ${LIBOBJ} - rm -f $@ - ${AR} rv $@ ${LIBOBJ} - ${RANLIB} $@ - -fnv132: fnv032 - -rm -f $@ - -cp -f $? $@ - -fnv1a32: fnv032 - -rm -f $@ - -cp -f $? $@ - -fnv164: fnv064 - -rm -f $@ - -cp -f $? $@ - -fnv1a64: fnv064 - -rm -f $@ - -cp -f $? $@ - -longlong.h: have_ulong64.c Makefile - -@rm -f have_ulong64 have_ulong64.o ll_tmp longlong.h - @echo 'forming longlong.h' - @echo '/*' > longlong.h - @echo ' * DO NOT EDIT -- generated by the Makefile' >> longlong.h - @echo ' */' >> longlong.h - @echo '' >> longlong.h - @echo '#if !defined(__LONGLONG_H__)' >> longlong.h - @echo '#define __LONGLONG_H__' >> longlong.h - @echo '' >> longlong.h - @echo '/* do we have/want to use a long long type? */' >> longlong.h - -@rm -f have_ulong64.o have_ulong64 - -@${CC} ${CFLAGS} have_ulong64.c -c 2>/dev/null; true - -@${CC} ${CFLAGS} have_ulong64.o -o have_ulong64 2>/dev/null; true - -@${SHELL} -c "./have_ulong64 > ll_tmp 2>/dev/null" \ - >/dev/null 2>&1; true - -@if [ -s ll_tmp ]; then \ - cat ll_tmp >> longlong.h; \ - else \ - echo '#undef HAVE_64BIT_LONG_LONG /* no */' >> longlong.h; \ - fi - @echo '' >> longlong.h - @echo '/*' >> longlong.h - @echo ' * NO64BIT_LONG_LONG undef HAVE_64BIT_LONG_LONG' >> longlong.h - @echo ' */' >> longlong.h - @echo '#if defined(NO64BIT_LONG_LONG)' >> longlong.h - @echo '#undef HAVE_64BIT_LONG_LONG' >> longlong.h - @echo '#endif /* NO64BIT_LONG_LONG */' >> longlong.h - @echo '' >> longlong.h - @echo '#endif /* !__LONGLONG_H__ */' >> longlong.h - -@rm -f have_ulong64 have_ulong64.o ll_tmp - @echo 'longlong.h formed' - -# utilities -# -install: all - -@if [ -d "${DESTBIN}" ]; then \ - echo " mkdir -p ${DESTBIN}"; \ - mkdir -p ${DESTBIN}; \ - fi - -@if [ -d "${DESTLIB}" ]; then \ - echo " mkdir -p ${DESTLIB}"; \ - mkdir -p ${DESTLIB}; \ - fi - -@if [ -d "${DESTINC}" ]; then \ - echo " mkdir -p ${DESTINC}"; \ - mkdir -p ${DESTINC}; \ - fi - ${INSTALL} -m 0755 ${PROGS} ${DESTBIN} - ${INSTALL} -m 0644 ${LIBS} ${DESTLIB} - ${RANLIB} ${DESTLIB}/libfnv.a - ${INSTALL} -m 0644 ${HSRC} ${DESTINC} - @# remove osolete programs - for i in ${OBSOLETE_PROGS}; do \ - if [ -f "${DESTBIN}/$$i" ]; then \ - echo "rm -f ${DESTBIN}/$$i"; \ - rm -f "${DESTBIN}/$$i"; \ - fi; \ - done - -clean: - -rm -f have_ulong64 have_ulong64.o ll_tmp ll_tmp2 longlong.h - -rm -f ${LIBOBJ} - -rm -f ${OTHEROBJ} - -clobber: clean - -rm -f ${TARGETS} - -rm -f ${OBSOLETE_PROGS} lltmp lltmp2 ll_tmp - -rm -f ${NO64BIT_SRC} - -rm -f ${NO64BIT_OBJ} - -rm -f ${NO64BIT_PROGS} - -rm -f vector.c - -check: ${PROGS} - @echo -n "FNV-0 32 bit tests: " - @./fnv032 -t 1 -v - @echo -n "FNV-1 32 bit tests: " - @./fnv132 -t 1 -v - @echo -n "FNV-1a 32 bit tests: " - @./fnv1a32 -t 1 -v - @echo -n "FNV-0 64 bit tests: " - @./fnv064 -t 1 -v - @echo -n "FNV-1 64 bit tests: " - @./fnv164 -t 1 -v - @echo -n "FNV-1a 64 bit tests: " - @./fnv1a64 -t 1 -v - -############################### -# generate test vector source # -############################### - -no64bit_fnv64.c: fnv64.c - -rm -f $@ - -cp -f $? $@ - -no64bit_hash_64.c: hash_64.c - -rm -f $@ - -cp -f $? $@ - -no64bit_hash_64a.c: hash_64a.c - -rm -f $@ - -cp -f $? $@ - -no64bit_test_fnv.c: test_fnv.c - -rm -f $@ - -cp -f $? $@ - -no64bit_fnv64.o: no64bit_fnv64.c longlong.h fnv.h - ${CC} ${CFLAGS} -DNO64BIT_LONG_LONG no64bit_fnv64.c -c - -no64bit_hash_64.o: no64bit_hash_64.c longlong.h fnv.h - ${CC} ${CFLAGS} -DNO64BIT_LONG_LONG no64bit_hash_64.c -c - -no64bit_hash_64a.o: no64bit_hash_64a.c longlong.h fnv.h - ${CC} ${CFLAGS} -DNO64BIT_LONG_LONG no64bit_hash_64a.c -c - -no64bit_test_fnv.o: no64bit_test_fnv.c longlong.h fnv.h - ${CC} ${CFLAGS} -DNO64BIT_LONG_LONG no64bit_test_fnv.c -c - -no64bit_fnv064: no64bit_fnv64.o no64bit_hash_64.o \ - no64bit_hash_64a.o no64bit_test_fnv.o - ${CC} ${CFLAGS} no64bit_fnv64.o no64bit_hash_64.o \ - no64bit_hash_64a.o no64bit_test_fnv.o -o $@ - -no64bit_fnv164: no64bit_fnv064 - -rm -f $@ - -cp -f $? $@ - -no64bit_fnv1a64: no64bit_fnv064 - -rm -f $@ - -cp -f $? $@ - -vector.c: ${PROGS} ${NO64BIT_PROGS} - -rm -f $@ - echo '/* start of output generated by make $@ */' >> $@ - echo '' >> $@ - #@ - echo '/* FNV-0 32 bit test vectors */' >> $@ - ./fnv032 -t 0 >> $@ - echo '' >> $@ - #@ - echo '/* FNV-1 32 bit test vectors */' >> $@ - ./fnv132 -t 0 >> $@ - echo '' >> $@ - #@ - echo '/* FNV-1a 32 bit test vectors */' >> $@ - ./fnv1a32 -t 0 >> $@ - echo '' >> $@ - #@ - echo '/* FNV-0 64 bit test vectors */' >> $@ - echo '#if defined(HAVE_64BIT_LONG_LONG)' >> $@ - ./fnv064 -t 0 >> $@ - echo '#else /* HAVE_64BIT_LONG_LONG */' >> $@ - ./no64bit_fnv064 -t 0 >> $@ - echo '#endif /* HAVE_64BIT_LONG_LONG */' >> $@ - echo '' >> $@ - #@ - echo '/* FNV-1 64 bit test vectors */' >> $@ - echo '#if defined(HAVE_64BIT_LONG_LONG)' >> $@ - ./fnv164 -t 0 >> $@ - echo '#else /* HAVE_64BIT_LONG_LONG */' >> $@ - ./no64bit_fnv164 -t 0 >> $@ - echo '#endif /* HAVE_64BIT_LONG_LONG */' >> $@ - echo '' >> $@ - #@ - echo '/* FNV-1a 64 bit test vectors */' >> $@ - echo '#if defined(HAVE_64BIT_LONG_LONG)' >> $@ - ./fnv1a64 -t 0 >> $@ - echo '#else /* HAVE_64BIT_LONG_LONG */' >> $@ - ./no64bit_fnv1a64 -t 0 >> $@ - echo '#endif /* HAVE_64BIT_LONG_LONG */' >> $@ - echo '' >> $@ - #@ - echo '/* end of output generated by make $@ */' >> $@ diff --git a/lib/fnv/README b/lib/fnv/README deleted file mode 100644 index 60aa9aaf61..0000000000 --- a/lib/fnv/README +++ /dev/null @@ -1,158 +0,0 @@ -#=====================# -# Fowler/Noll/Vo hash # -#=====================# - -The basis of this hash algorithm was taken from an idea sent -as reviewer comments to the IEEE POSIX P1003.2 committee by: - - Phong Vo (http://www.research.att.com/info/kpv) - Glenn Fowler (http://www.research.att.com/~gsf/) - -In a subsequent ballot round: - - Landon Curt Noll (http://www.isthe.com/chongo) - -improved on their algorithm. Some people tried this hash -and found that it worked rather well. In an EMail message -to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - -FNV hashes are designed to be fast while maintaining a low -collision rate. The FNV speed allows one to quickly hash lots -of data while maintaining a reasonable collision rate. See: - - http://www.isthe.com/chongo/tech/comp/fnv/index.html - -for more details as well as other forms of the FNV hash. -Comments, questions, bug fixes and suggestions welcome at -the address given in the above URL. - - -#==================# -# FNV hash utility # -#==================# - -Two hash utilities (32 bit and 64 bit) are provided: - - fnv032 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - fnv132 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - fnv1a32 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - - fnv064 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - fnv164 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - fnv1a64 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - - -b bcnt mask off all but the lower bcnt bits (default: 32) - -m multiple hashes, one per line for each arg - -s hash arg as a string (ignoring terminating NUL bytes) - -t code 0 ==> generate test vectors, 1 ==> test FNV hash - -v verbose mode, print arg after hash (implies -m) - arg string (if -s was given) or filename (default stdin) - -The fnv032, fnv064 implement the historic FNV-0 hash. -The fnv132, fnv164 implement the recommended FNV-1 hash. -The fnv1a32, fnv1a64 implement the recommended FNV-1a hash. - -This is the original historic FNV algorithm with a 0 offset basis. -It is recommended that FNV-1, with a non-0 offset basis be used instead. - -To test FNV hashes, try: - - fnv032 -t 1 -v - fnv132 -t 1 -v - fnv1a32 -t 1 -v - - fnv064 -t 1 -v - fnv164 -t 1 -v - fnv1a64 -t 1 -v - -If you are compiling, try: - - make check - - -#==================# -# FNV hash library # -#==================# - -The libfnv.a library implements both a 32 bit and a 64 bit FNV hash -on collections of bytes, a NUL terminated strings or on an open file -descriptor. - -Here is the 32 bit FNV 1 hash: - - Fnv32_t fnv_32_buf(void *buf, int len, Fnv32_t hval); /* byte buf */ - Fnv32_t fnv_32_str(char *string, Fnv32_t hval); /* string */ - -Here is the 32 bit FNV 1a hash: - - Fnv32_t fnv_32a_buf(void *buf, int len, Fnv32_t hval); /* byte buf */ - Fnv32_t fnv_32a_str(char *string, Fnv32_t hval); /* string */ - -Here is the 64 bit FNV 1 hash: - - Fnv64_t fnv_64_buf(void *buf, int len, Fnv64_t hval); /* byte buf */ - Fnv64_t fnv_64_str(char *string, Fnv64_t hval); /* string */ - -Here is the 64 bit FNV 1a hash: - - Fnv64_t fnv_64a_buf(void *buf, int len, Fnv64_t hval); /* byte buf */ - Fnv64_t fnv_64a_str(char *string, Fnv64_t hval); /* string */ - -On the first call to a hash function, one must supply the initial basis -that is appropriate for the hash in question: - - FNV-0: (not recommended) - - FNV0_32_INIT /* 32 bit FNV-0 initial basis */ - FNV0_64_INIT /* 64 bit FNV-0 initial basis */ - - FNV-1: - - FNV1_32_INIT /* 32 bit FNV-1 initial basis */ - FNV1_64_INIT /* 64 bit FNV-1 initial basis */ - - FNV-1a: - - FNV1A_32_INIT /* 32 bit FNV-1a initial basis */ - FNV1A_64_INIT /* 64 bit FNV-1a initial basis */ - -For example to perform a 64 bit FNV-1 hash: - - #include "fnv.h" - - Fnv64_t hash_val; - - hash_val = fnv_64_str("a string", FNV1_64_INIT); - hash_val = fnv_64_str("more string", hash_val); - -produces the same final hash value as: - - hash_val = fnv_64_str("a stringmore string", FNV1_64_INIT); - -NOTE: If one used 'FNV0_64_INIT' instead of 'FNV1_64_INIT' one would get the - historic FNV-0 hash instead recommended FNV-1 hash. - -To perform a 32 bit FNV-1 hash: - - #include "fnv.h" - - Fnv32_t hash_val; - - hash_val = fnv_32_buf(buf, length_of_buf, FNV1_32_INIT); - hash_val = fnv_32_str("more data", hash_val); - -To perform a 64 bit FNV-1a hash: - - #include "fnv.h" - - Fnv64_t hash_val; - - hash_val = fnv_64a_buf(buf, length_of_buf, FNV1_64_INIT); - hash_val = fnv_64a_str("more data", hash_val); - -=-= - -chongo /\oo/\ -http://www.isthe.com/chongo - -Share and Enjoy! diff --git a/lib/fnv/fnv.h b/lib/fnv/fnv.h deleted file mode 100644 index 2083a4aa23..0000000000 --- a/lib/fnv/fnv.h +++ /dev/null @@ -1,249 +0,0 @@ -/* - * fnv - Fowler/Noll/Vo- hash code - * - * @(#) $Revision: 5.4 $ - * @(#) $Id: fnv.h,v 5.4 2009/07/30 22:49:13 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/fnv/RCS/fnv.h,v $ - * - *** - * - * Fowler/Noll/Vo- hash - * - * The basis of this hash algorithm was taken from an idea sent - * as reviewer comments to the IEEE POSIX P1003.2 committee by: - * - * Phong Vo (http://www.research.att.com/info/kpv/) - * Glenn Fowler (http://www.research.att.com/~gsf/) - * - * In a subsequent ballot round: - * - * Landon Curt Noll (http://www.isthe.com/chongo/) - * - * improved on their algorithm. Some people tried this hash - * and found that it worked rather well. In an EMail message - * to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - * - * FNV hashes are designed to be fast while maintaining a low - * collision rate. The FNV speed allows one to quickly hash lots - * of data while maintaining a reasonable collision rate. See: - * - * http://www.isthe.com/chongo/tech/comp/fnv/index.html - * - * for more details as well as other forms of the FNV hash. - * - *** - * - * NOTE: The FNV-0 historic hash is not recommended. One should use - * the FNV-1 hash instead. - * - * To use the 32 bit FNV-0 historic hash, pass FNV0_32_INIT as the - * Fnv32_t hashval argument to fnv_32_buf() or fnv_32_str(). - * - * To use the 64 bit FNV-0 historic hash, pass FNV0_64_INIT as the - * Fnv64_t hashval argument to fnv_64_buf() or fnv_64_str(). - * - * To use the recommended 32 bit FNV-1 hash, pass FNV1_32_INIT as the - * Fnv32_t hashval argument to fnv_32_buf() or fnv_32_str(). - * - * To use the recommended 64 bit FNV-1 hash, pass FNV1_64_INIT as the - * Fnv64_t hashval argument to fnv_64_buf() or fnv_64_str(). - * - * To use the recommended 32 bit FNV-1a hash, pass FNV1_32A_INIT as the - * Fnv32_t hashval argument to fnv_32a_buf() or fnv_32a_str(). - * - * To use the recommended 64 bit FNV-1a hash, pass FNV1A_64_INIT as the - * Fnv64_t hashval argument to fnv_64a_buf() or fnv_64a_str(). - * - *** - * - * Please do not copyright this code. This code is in the public domain. - * - * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO - * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * By: - * chongo /\oo/\ - * http://www.isthe.com/chongo/ - * - * Share and Enjoy! :-) - */ - -#if !defined(__FNV_H__) -#define __FNV_H__ - -#include - -#define FNV_VERSION "5.0.2" /* @(#) FNV Version */ - - -/* - * 32 bit FNV-0 hash type - */ -typedef u_int32_t Fnv32_t; - - -/* - * 32 bit FNV-0 zero initial basis - * - * This historic hash is not recommended. One should use - * the FNV-1 hash and initial basis instead. - */ -#define FNV0_32_INIT ((Fnv32_t)0) - - -/* - * 32 bit FNV-1 and FNV-1a non-zero initial basis - * - * The FNV-1 initial basis is the FNV-0 hash of the following 32 octets: - * - * chongo /\../\ - * - * NOTE: The \'s above are not back-slashing escape characters. - * They are literal ASCII backslash 0x5c characters. - * - * NOTE: The FNV-1a initial basis is the same value as FNV-1 by definition. - */ -#define FNV1_32_INIT ((Fnv32_t)0x811c9dc5) -#define FNV1_32A_INIT FNV1_32_INIT - - -/* - * determine how 64 bit unsigned values are represented - */ -#include "longlong.h" - - -/* - * 64 bit FNV-0 hash - */ -#if defined(HAVE_64BIT_LONG_LONG) -typedef u_int64_t Fnv64_t; -#else /* HAVE_64BIT_LONG_LONG */ -typedef struct { - u_int32_t w32[2]; /* w32[0] is low order, w32[1] is high order word */ -} Fnv64_t; -#endif /* HAVE_64BIT_LONG_LONG */ - - -/* - * 64 bit FNV-0 zero initial basis - * - * This historic hash is not recommended. One should use - * the FNV-1 hash and initial basis instead. - */ -#if defined(HAVE_64BIT_LONG_LONG) -#define FNV0_64_INIT ((Fnv64_t)0) -#else /* HAVE_64BIT_LONG_LONG */ -extern const Fnv64_t fnv0_64_init; -#define FNV0_64_INIT (fnv0_64_init) -#endif /* HAVE_64BIT_LONG_LONG */ - - -/* - * 64 bit FNV-1 non-zero initial basis - * - * The FNV-1 initial basis is the FNV-0 hash of the following 32 octets: - * - * chongo /\../\ - * - * NOTE: The \'s above are not back-slashing escape characters. - * They are literal ASCII backslash 0x5c characters. - * - * NOTE: The FNV-1a initial basis is the same value as FNV-1 by definition. - */ -#if defined(HAVE_64BIT_LONG_LONG) -#define FNV1_64_INIT ((Fnv64_t)0xcbf29ce484222325ULL) -#define FNV1A_64_INIT FNV1_64_INIT -#else /* HAVE_64BIT_LONG_LONG */ -extern const fnv1_64_init; -extern const Fnv64_t fnv1a_64_init; -#define FNV1_64_INIT (fnv1_64_init) -#define FNV1A_64_INIT (fnv1a_64_init) -#endif /* HAVE_64BIT_LONG_LONG */ - - -/* - * hash types - */ -enum fnv_type { - FNV_NONE = 0, /* invalid FNV hash type */ - FNV0_32 = 1, /* FNV-0 32 bit hash */ - FNV1_32 = 2, /* FNV-1 32 bit hash */ - FNV1a_32 = 3, /* FNV-1a 32 bit hash */ - FNV0_64 = 4, /* FNV-0 64 bit hash */ - FNV1_64 = 5, /* FNV-1 64 bit hash */ - FNV1a_64 = 6, /* FNV-1a 64 bit hash */ -}; - - -/* - * these test vectors are used as part o the FNV test suite - */ -struct test_vector { - void *buf; /* start of test vector buffer */ - int len; /* length of test vector */ -}; -struct fnv0_32_test_vector { - struct test_vector *test; /* test vector buffer to hash */ - Fnv32_t fnv0_32; /* expected FNV-0 32 bit hash value */ -}; -struct fnv1_32_test_vector { - struct test_vector *test; /* test vector buffer to hash */ - Fnv32_t fnv1_32; /* expected FNV-1 32 bit hash value */ -}; -struct fnv1a_32_test_vector { - struct test_vector *test; /* test vector buffer to hash */ - Fnv32_t fnv1a_32; /* expected FNV-1a 32 bit hash value */ -}; -struct fnv0_64_test_vector { - struct test_vector *test; /* test vector buffer to hash */ - Fnv64_t fnv0_64; /* expected FNV-0 64 bit hash value */ -}; -struct fnv1_64_test_vector { - struct test_vector *test; /* test vector buffer to hash */ - Fnv64_t fnv1_64; /* expected FNV-1 64 bit hash value */ -}; -struct fnv1a_64_test_vector { - struct test_vector *test; /* test vector buffer to hash */ - Fnv64_t fnv1a_64; /* expected FNV-1a 64 bit hash value */ -}; - - -/* - * external functions - */ -/* hash_32.c */ -extern Fnv32_t fnv_32_buf(void *buf, size_t len, Fnv32_t hashval); -extern Fnv32_t fnv_32_str(char *buf, Fnv32_t hashval); - -/* hash_32a.c */ -extern Fnv32_t fnv_32a_buf(void *buf, size_t len, Fnv32_t hashval); -extern Fnv32_t fnv_32a_str(char *buf, Fnv32_t hashval); - -/* hash_64.c */ -extern Fnv64_t fnv_64_buf(void *buf, size_t len, Fnv64_t hashval); -extern Fnv64_t fnv_64_str(char *buf, Fnv64_t hashval); - -/* hash_64a.c */ -extern Fnv64_t fnv_64a_buf(void *buf, size_t len, Fnv64_t hashval); -extern Fnv64_t fnv_64a_str(char *buf, Fnv64_t hashval); - -/* test_fnv.c */ -extern struct test_vector fnv_test_str[]; -extern struct fnv0_32_test_vector fnv0_32_vector[]; -extern struct fnv1_32_test_vector fnv1_32_vector[]; -extern struct fnv1a_32_test_vector fnv1a_32_vector[]; -extern struct fnv0_64_test_vector fnv0_64_vector[]; -extern struct fnv1_64_test_vector fnv1_64_vector[]; -extern struct fnv1a_64_test_vector fnv1a_64_vector[]; -extern void unknown_hash_type(char *prog, enum fnv_type type, int code); -extern void print_fnv32(Fnv32_t hval, Fnv32_t mask, int verbose, char *arg); -extern void print_fnv64(Fnv64_t hval, Fnv64_t mask, int verbose, char *arg); - - -#endif /* __FNV_H__ */ diff --git a/lib/fnv/fnv32.c b/lib/fnv/fnv32.c deleted file mode 100644 index 58c61f03fc..0000000000 --- a/lib/fnv/fnv32.c +++ /dev/null @@ -1,467 +0,0 @@ -/* - * fnv32 - 32 bit Fowler/Noll/Vo hash of a buffer or string - * - * @(#) $Revision: 5.5 $ - * @(#) $Id: fnv32.c,v 5.5 2012/03/21 01:38:12 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/fnv/RCS/fnv32.c,v $ - * - *** - * - * Fowler/Noll/Vo hash - * - * The basis of this hash algorithm was taken from an idea sent - * as reviewer comments to the IEEE POSIX P1003.2 committee by: - * - * Phong Vo (http://www.research.att.com/info/kpv/) - * Glenn Fowler (http://www.research.att.com/~gsf/) - * - * In a subsequent ballot round: - * - * Landon Curt Noll (http://www.isthe.com/chongo/) - * - * improved on their algorithm. Some people tried this hash - * and found that it worked rather well. In an EMail message - * to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - * - * FNV hashes are designed to be fast while maintaining a low - * collision rate. The FNV speed allows one to quickly hash lots - * of data while maintaining a reasonable collision rate. See: - * - * http://www.isthe.com/chongo/tech/comp/fnv/index.html - * - * for more details as well as other forms of the FNV hash. - * - *** - * - * Please do not copyright this code. This code is in the public domain. - * - * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO - * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * By: - * chongo /\oo/\ - * http://www.isthe.com/chongo/ - * - * Share and Enjoy! :-) - */ - -#include -#include -#include -#include -#include -#include -#include -#include "longlong.h" -#include "fnv.h" - -#define WIDTH 32 /* bit width of hash */ - -#define BUF_SIZE (32*1024) /* number of bytes to hash at a time */ - -static char *usage = -"usage: %s [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...]\n" -"\n" -"\t-b bcnt\tmask off all but the lower bcnt bits (default 32)\n" -"\t-m\tmultiple hashes, one per line for each arg\n" -"\t-s\thash arg as a string (ignoring terminating NUL bytes)\n" -"\t-t code\t test hash code: (0 ==> generate test vectors\n" -"\t\t\t\t 1 ==> validate against FNV test vectors)\n" -"\t-v\tverbose mode, print arg after hash (implies -m)\n" -"\targ\tstring (if -s was given) or filename (default stdin)\n" -"\n" -"\tNOTE: Programs that begin with fnv0 implement the FNV-0 hash.\n" -"\t The FNV-0 hash is historic FNV algorithm that is now deprecated.\n" -"\n" -"\tSee http://www.isthe.com/chongo/tech/comp/fnv/index.html for more info.\n" -"\n" -"\t@(#) FNV Version: %s\n"; -static char *program; /* our name */ - - -/* - * test_fnv32 - test the FNV32 hash - * - * given: - * hash_type type of FNV hash to test - * init_hval initial hash value - * mask lower bit mask - * v_flag 1 => print test failure info on stderr - * code 0 ==> generate FNV test vectors - * 1 ==> validate against FNV test vectors - * - * returns: 0 ==> OK, else test vector failure number - */ -static int -test_fnv32(enum fnv_type hash_type, Fnv32_t init_hval, - Fnv32_t mask, int v_flag, int code) -{ - struct test_vector *t; /* FNV test vestor */ - Fnv32_t hval; /* current hash value */ - int tstnum; /* test vector that failed, starting at 1 */ - - /* - * print preamble if generating test vectors - */ - if (code == 0) { - switch (hash_type) { - case FNV0_32: - printf("struct fnv0_32_test_vector fnv0_32_vector[] = {\n"); - break; - case FNV1_32: - printf("struct fnv1_32_test_vector fnv1_32_vector[] = {\n"); - break; - case FNV1a_32: - printf("struct fnv1a_32_test_vector fnv1a_32_vector[] = {\n"); - break; - default: - unknown_hash_type(program, hash_type, 12); /* exit(12) */ - /*NOTREACHED*/ - } - } - - /* - * loop thru all test vectors - */ - for (t = fnv_test_str, tstnum = 1; t->buf != NULL; ++t, ++tstnum) { - - /* - * compute the FNV hash - */ - hval = init_hval; - switch (hash_type) { - case FNV0_32: - case FNV1_32: - hval = fnv_32_buf(t->buf, t->len, hval); - break; - case FNV1a_32: - hval = fnv_32a_buf(t->buf, t->len, hval); - break; - default: - unknown_hash_type(program, hash_type, 13); /* exit(13) */ - /*NOTREACHED*/ - } - - /* - * print the vector - */ - switch (code) { - case 0: /* generate the test vector */ - printf(" { &fnv_test_str[%d], (Fnv32_t) 0x%08lxUL },\n", - tstnum-1, hval & mask); - break; - case 1: /* validate against test vector */ - switch (hash_type) { - case FNV0_32: - if ((hval&mask) != (fnv0_32_vector[tstnum-1].fnv0_32 & mask)) { - if (v_flag) { - fprintf(stderr, "%s: failed fnv0_32 test # %d\n", - program, tstnum); - fprintf(stderr, "%s: test # 1 is 1st test\n", program); - fprintf(stderr, - "%s: expected 0x%08lx != generated: 0x%08lx\n", - program, (hval&mask), - (fnv0_32_vector[tstnum-1].fnv0_32 & mask)); - } - return tstnum; - } - break; - case FNV1_32: - if ((hval&mask) != (fnv1_32_vector[tstnum-1].fnv1_32 & mask)) { - if (v_flag) { - fprintf(stderr, "%s: failed fnv1_32 test # %d\n", - program, tstnum); - fprintf(stderr, "%s: test # 1 is 1st test\n", program); - fprintf(stderr, - "%s: expected 0x%08lx != generated: 0x%08lx\n", - program, (hval&mask), - (fnv1_32_vector[tstnum-1].fnv1_32 & mask)); - } - return tstnum; - } - break; - case FNV1a_32: - if ((hval&mask) != (fnv1a_32_vector[tstnum-1].fnv1a_32 &mask)) { - if (v_flag) { - fprintf(stderr, "%s: failed fnv1a_32 test # %d\n", - program, tstnum); - fprintf(stderr, "%s: test # 1 is 1st test\n", program); - fprintf(stderr, - "%s: expected 0x%08lx != generated: 0x%08lx\n", - program, (hval&mask), - (fnv1a_32_vector[tstnum-1].fnv1a_32 & mask)); - } - return tstnum; - } - break; - } - break; - default: - fprintf(stderr, "%s: -m %d not implemented yet\n", program, code); - exit(14); - } - } - - /* - * print completion if generating test vectors - */ - if (code == 0) { - printf(" { NULL, 0 }\n"); - printf("};\n"); - } - - /* - * no failures, return code 0 ==> all OK - */ - return 0; -} - - -/* - * main - the main function - * - * See the above usage for details. - */ -int -main(int argc, char *argv[]) -{ - char buf[BUF_SIZE+1]; /* read buffer */ - int readcnt; /* number of characters written */ - Fnv32_t hval; /* current hash value */ - int s_flag = 0; /* 1 => -s was given, hash args as strings */ - int m_flag = 0; /* 1 => print multiple hashes, one per arg */ - int v_flag = 0; /* 1 => verbose hash print */ - int b_flag = WIDTH; /* -b flag value */ - int t_flag = -1; /* FNV test vector code (0=>print, 1=>test) */ - enum fnv_type hash_type = FNV_NONE; /* type of FNV hash to perform */ - Fnv32_t bmask; /* mask to apply to output */ - extern char *optarg; /* option argument */ - extern int optind; /* argv index of the next arg */ - int fd; /* open file to process */ - char *p; - int i; - - /* - * parse args - */ - program = argv[0]; - while ((i = getopt(argc, argv, "b:mst:v")) != -1) { - switch (i) { - case 'b': /* bcnt bit mask count */ - b_flag = atoi(optarg); - break; - case 'm': /* print multiple hashes, one per arg */ - m_flag = 1; - break; - case 's': /* hash args as strings */ - s_flag = 1; - break; - case 't': /* FNV test vector code */ - t_flag = atoi(optarg); - if (t_flag < 0 || t_flag > 1) { - fprintf(stderr, "%s: -t code must be 0 or 1\n", program); - fprintf(stderr, usage, program, FNV_VERSION); - exit(1); - } - m_flag = 1; - break; - case 'v': /* verbose hash print */ - m_flag = 1; - v_flag = 1; - break; - default: - fprintf(stderr, usage, program, FNV_VERSION); - exit(1); - } - } - /* -t code incompatible with -b, -m and args */ - if (t_flag >= 0) { - if (b_flag != WIDTH) { - fprintf(stderr, "%s: -t code incompatible with -b\n", program); - exit(2); - } - if (s_flag != 0) { - fprintf(stderr, "%s: -t code incompatible with -s\n", program); - exit(3); - } - if (optind < argc) { - fprintf(stderr, "%s: -t code incompatible args\n", program); - exit(4); - } - } - /* -s requires at least 1 arg */ - if (s_flag && optind >= argc) { - fprintf(stderr, usage, program, FNV_VERSION); - exit(5); - } - /* limit -b values */ - if (b_flag < 0 || b_flag > WIDTH) { - fprintf(stderr, "%s: -b bcnt: %d must be >= 0 and < %d\n", - program, b_flag, WIDTH); - exit(6); - } - if (b_flag == WIDTH) { - bmask = (Fnv32_t)0xffffffff; - } else { - bmask = (Fnv32_t)((1 << b_flag) - 1); - } - - /* - * start with the initial basis depending on the hash type - */ - p = strrchr(program, '/'); - if (p == NULL) { - p = program; - } else { - ++p; - } - if (strcmp(p, "fnv032") == 0) { - /* using non-recommended FNV-0 and zero initial basis */ - hval = FNV0_32_INIT; - hash_type = FNV0_32; - } else if (strcmp(p, "fnv132") == 0) { - /* using FNV-1 and non-zero initial basis */ - hval = FNV1_32_INIT; - hash_type = FNV1_32; - } else if (strcmp(p, "fnv1a32") == 0) { - /* start with the FNV-1a initial basis */ - hval = FNV1_32A_INIT; - hash_type = FNV1a_32; - } else { - fprintf(stderr, "%s: unknown program name, unknown hash type\n", - program); - exit(7); - } - - /* - * FNV test vector processing, if needed - */ - if (t_flag >= 0) { - int code; /* test vector that failed, starting at 1 */ - - /* - * perform all tests - */ - code = test_fnv32(hash_type, hval, bmask, v_flag, t_flag); - - /* - * evaluate the tests - */ - if (code == 0) { - if (v_flag) { - printf("passed\n"); - } - exit(0); - } else { - printf("failed vector (1 is 1st test): %d\n", code); - exit(8); - } - } - - /* - * string hashing - */ - if (s_flag) { - - /* hash any other strings */ - for (i=optind; i < argc; ++i) { - switch (hash_type) { - case FNV0_32: - case FNV1_32: - hval = fnv_32_str(argv[i], hval); - break; - case FNV1a_32: - hval = fnv_32a_str(argv[i], hval); - break; - default: - unknown_hash_type(program, hash_type, 9); /* exit(9) */ - /*NOTREACHED*/ - } - if (m_flag) { - print_fnv32(hval, bmask, v_flag, argv[i]); - } - } - - - /* - * file hashing - */ - } else { - - /* - * case: process only stdin - */ - if (optind >= argc) { - - /* case: process only stdin */ - while ((readcnt = read(0, buf, BUF_SIZE)) > 0) { - switch (hash_type) { - case FNV0_32: - case FNV1_32: - hval = fnv_32_buf(buf, readcnt, hval); - break; - case FNV1a_32: - hval = fnv_32a_buf(buf, readcnt, hval); - break; - default: - unknown_hash_type(program, hash_type, 10); /* exit(10) */ - /*NOTREACHED*/ - } - } - if (m_flag) { - print_fnv32(hval, bmask, v_flag, "(stdin)"); - } - - } else { - - /* - * process any other files - */ - for (i=optind; i < argc; ++i) { - - /* open the file */ - fd = open(argv[i], O_RDONLY); - if (fd < 0) { - fprintf(stderr, "%s: unable to open file: %s\n", - program, argv[i]); - exit(4); - } - - /* hash the file */ - while ((readcnt = read(fd, buf, BUF_SIZE)) > 0) { - switch (hash_type) { - case FNV0_32: - case FNV1_32: - hval = fnv_32_buf(buf, readcnt, hval); - break; - case FNV1a_32: - hval = fnv_32a_buf(buf, readcnt, hval); - break; - default: - unknown_hash_type(program, hash_type, 11);/* exit(11) */ - /*NOTREACHED*/ - } - } - - /* finish processing the file */ - if (m_flag) { - print_fnv32(hval, bmask, v_flag, argv[i]); - } - close(fd); - } - } - } - - /* - * report hash and exit - */ - if (!m_flag) { - print_fnv32(hval, bmask, v_flag, ""); - } - return 0; /* exit(0); */ -} diff --git a/lib/fnv/fnv64.c b/lib/fnv/fnv64.c deleted file mode 100644 index 0662d4d657..0000000000 --- a/lib/fnv/fnv64.c +++ /dev/null @@ -1,591 +0,0 @@ -/* - * fnv_64 - 64 bit Fowler/Noll/Vo hash of a buffer or string - * - * @(#) $Revision: 5.5 $ - * @(#) $Id: fnv64.c,v 5.5 2012/03/21 01:38:12 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/fnv/RCS/fnv64.c,v $ - * - *** - * - * Fowler/Noll/Vo hash - * - * The basis of this hash algorithm was taken from an idea sent - * as reviewer comments to the IEEE POSIX P1003.2 committee by: - * - * Phong Vo (http://www.research.att.com/info/kpv/) - * Glenn Fowler (http://www.research.att.com/~gsf/) - * - * In a subsequent ballot round: - * - * Landon Curt Noll (http://www.isthe.com/chongo/) - * - * improved on their algorithm. Some people tried this hash - * and found that it worked rather well. In an EMail message - * to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - * - * FNV hashes are designed to be fast while maintaining a low - * collision rate. The FNV speed allows one to quickly hash lots - * of data while maintaining a reasonable collision rate. See: - * - * http://www.isthe.com/chongo/tech/comp/fnv/index.html - * - * for more details as well as other forms of the FNV hash. - * - *** - * - * Please do not copyright this code. This code is in the public domain. - * - * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO - * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * By: - * chongo /\oo/\ - * http://www.isthe.com/chongo/ - * - * Share and Enjoy! :-) - */ - -#include -#include -#include -#include -#include -#include -#include -#include "longlong.h" -#include "fnv.h" - -#define WIDTH 64 /* bit width of hash */ - -#define BUF_SIZE (32*1024) /* number of bytes to hash at a time */ - -static char *usage = -"usage: %s [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...]\n" -"\n" -"\t-b bcnt\tmask off all but the lower bcnt bits (default 64)\n" -"\t-m\tmultiple hashes, one per line for each arg\n" -"\t-s\thash arg as a string (ignoring terminating NUL bytes)\n" -"\t-t code\t test hash code: (0 ==> generate test vectors\n" -"\t\t\t\t 1 ==> validate against FNV test vectors)\n" -"\t-v\tverbose mode, print arg after hash (implies -m)\n" -"\targ\tstring (if -s was given) or filename (default stdin)\n" -"\n" -"\tNOTE: Programs that begin with fnv0 implement the FNV-0 hash.\n" -"\t The FNV-0 hash is historic FNV algorithm that is now deprecated.\n" -"\n" -"\tSee http://www.isthe.com/chongo/tech/comp/fnv/index.html for more info.\n" -"\n" -"\t@(#) FNV Version: %s\n"; -static char *program; /* our name */ - - -/* - * test_fnv64 - test the FNV64 hash - * - * given: - * hash_type type of FNV hash to test - * init_hval initial hash value - * mask lower bit mask - * v_flag 1 => print test failure info on stderr - * code 0 ==> generate FNV test vectors - * 1 ==> validate against FNV test vectors - * - * returns: 0 ==> OK, else test vector failure number - */ -static int -test_fnv64(enum fnv_type hash_type, Fnv64_t init_hval, - Fnv64_t mask, int v_flag, int code) -{ - struct test_vector *t; /* FNV test vestor */ - Fnv64_t hval; /* current hash value */ - int tstnum; /* test vector that failed, starting at 1 */ - - /* - * print preamble if generating test vectors - */ - if (code == 0) { - switch (hash_type) { - case FNV0_64: - printf("struct fnv0_64_test_vector fnv0_64_vector[] = {\n"); - break; - case FNV1_64: - printf("struct fnv1_64_test_vector fnv1_64_vector[] = {\n"); - break; - case FNV1a_64: - printf("struct fnv1a_64_test_vector fnv1a_64_vector[] = {\n"); - break; - default: - unknown_hash_type(program, hash_type, 12); /* exit(12) */ - /*NOTREACHED*/ - } - } - - /* - * loop thru all test vectors - */ - for (t = fnv_test_str, tstnum = 1; t->buf != NULL; ++t, ++tstnum) { - - /* - * compute the FNV hash - */ - hval = init_hval; - switch (hash_type) { - case FNV0_64: - case FNV1_64: - hval = fnv_64_buf(t->buf, t->len, hval); - break; - case FNV1a_64: - hval = fnv_64a_buf(t->buf, t->len, hval); - break; - default: - unknown_hash_type(program, hash_type, 13); /* exit(13) */ - /*NOTREACHED*/ - } - - /* - * print the vector - */ -#if defined(HAVE_64BIT_LONG_LONG) - /* - * HAVE_64BIT_LONG_LONG testing - */ - switch (code) { - case 0: /* generate the test vector */ - printf(" { &fnv_test_str[%d], (Fnv64_t) 0x%016llxULL },\n", - tstnum-1, hval & mask); - break; - - case 1: /* validate against test vector */ - switch (hash_type) { - case FNV0_64: - if ((hval&mask) != (fnv0_64_vector[tstnum-1].fnv0_64 & mask)) { - if (v_flag) { - fprintf(stderr, "%s: failed fnv0_64 test # %d\n", - program, tstnum); - fprintf(stderr, "%s: test # 1 is 1st test\n", program); - fprintf(stderr, - "%s: expected 0x%016llx != generated: 0x%016llx\n", - program, - (hval&mask), - (fnv0_64_vector[tstnum-1].fnv0_64 & mask)); - } - return tstnum; - } - break; - case FNV1_64: - if ((hval&mask) != (fnv1_64_vector[tstnum-1].fnv1_64 & mask)) { - if (v_flag) { - fprintf(stderr, "%s: failed fnv1_64 test # %d\n", - program, tstnum); - fprintf(stderr, "%s: test # 1 is 1st test\n", program); - fprintf(stderr, - "%s: expected 0x%016llx != generated: 0x%016llx\n", - program, - (hval&mask), - (fnv1_64_vector[tstnum-1].fnv1_64 & mask)); - } - return tstnum; - } - break; - case FNV1a_64: - if ((hval&mask) != (fnv1a_64_vector[tstnum-1].fnv1a_64 &mask)) { - if (v_flag) { - fprintf(stderr, "%s: failed fnv1a_64 test # %d\n", - program, tstnum); - fprintf(stderr, "%s: test # 1 is 1st test\n", program); - fprintf(stderr, - "%s: expected 0x%016llx != generated: 0x%016llx\n", - program, - (hval&mask), - (fnv1a_64_vector[tstnum-1].fnv1a_64 & mask)); - } - return tstnum; - } - break; - } - break; - - default: - fprintf(stderr, "%s: -m %d not implemented yet\n", program, code); - exit(14); - } -#else /* HAVE_64BIT_LONG_LONG */ - /* - * non HAVE_64BIT_LONG_LONG testing - */ - switch (code) { - case 0: /* generate the test vector */ - printf(" { &fnv_test_str[%d], " - "(Fnv64_t) {0x%08lxUL, 0x%08lxUL} },\n", - tstnum-1, - (hval.w32[0] & mask.w32[0]), - (hval.w32[1] & mask.w32[1])); - break; - - case 1: /* validate against test vector */ - switch (hash_type) { - case FNV0_64: - if (((hval.w32[0] & mask.w32[0]) != - (fnv0_64_vector[tstnum-1].fnv0_64.w32[0] & - mask.w32[0])) && - ((hval.w32[1] & mask.w32[1]) != - (fnv0_64_vector[tstnum-1].fnv0_64.w32[1] & - mask.w32[1]))) { - if (v_flag) { - fprintf(stderr, "%s: failed fnv0_64 test # %d\n", - program, tstnum); - fprintf(stderr, "%s: test # 1 is 1st test\n", program); - fprintf(stderr, - "%s: expected 0x%08llx%08llx != " - "generated: 0x%08llx%08llx\n", - program, - (hval.w32[0] & mask.w32[0]), - (hval.w32[1] & mask.w32[1]), - ((fnv0_64_vector[tstnum-1].fnv0_64.w32[0] & - mask.w32[0])), - ((fnv0_64_vector[tstnum-1].fnv0_64.w32[1] & - mask.w32[1]))); - } - return tstnum; - } - break; - case FNV1_64: - if (((hval.w32[0] & mask.w32[0]) != - (fnv1_64_vector[tstnum-1].fnv1_64.w32[0] & - mask.w32[0])) && - ((hval.w32[1] & mask.w32[1]) != - (fnv1_64_vector[tstnum-1].fnv1_64.w32[1] & - mask.w32[1]))) { - if (v_flag) { - fprintf(stderr, "%s: failed fnv1_64 test # %d\n", - program, tstnum); - fprintf(stderr, "%s: test # 1 is 1st test\n", program); - fprintf(stderr, - "%s: expected 0x%08llx%08llx != " - "generated: 0x%08llx%08llx\n", - program, - (hval.w32[0] & mask.w32[0]), - (hval.w32[1] & mask.w32[1]), - ((fnv1_64_vector[tstnum-1].fnv1_64.w32[0] & - mask.w32[0])), - ((fnv1_64_vector[tstnum-1].fnv1_64.w32[1] & - mask.w32[1]))); - } - return tstnum; - } - break; - case FNV1a_64: - if (((hval.w32[0] & mask.w32[0]) != - (fnv1a_64_vector[tstnum-1].fnv1a_64.w32[0] & - mask.w32[0])) && - ((hval.w32[1] & mask.w32[1]) != - (fnv1a_64_vector[tstnum-1].fnv1a_64.w32[1] & - mask.w32[1]))) { - if (v_flag) { - fprintf(stderr, "%s: failed fnv1a_64 test # %d\n", - program, tstnum); - fprintf(stderr, "%s: test # 1 is 1st test\n", program); - fprintf(stderr, - "%s: expected 0x%08llx%08llx != " - "generated: 0x%08llx%08llx\n", - program, - (hval.w32[0] & mask.w32[0]), - (hval.w32[1] & mask.w32[1]), - ((fnv1a_64_vector[tstnum-1].fnv1a_64.w32[0] & - mask.w32[0])), - ((fnv1a_64_vector[tstnum-1].fnv1a_64.w32[1] & - mask.w32[1]))); - } - return tstnum; - } - break; - } - break; - - default: - fprintf(stderr, "%s: -m %d not implemented yet\n", program, code); - exit(15); - } -#endif /* HAVE_64BIT_LONG_LONG */ - } - - /* - * print completion if generating test vectors - */ - if (code == 0) { -#if defined(HAVE_64BIT_LONG_LONG) - printf(" { NULL, (Fnv64_t) 0 }\n"); -#else /* HAVE_64BIT_LONG_LONG */ - printf(" { NULL, (Fnv64_t) {0,0} }\n"); -#endif /* HAVE_64BIT_LONG_LONG */ - printf("};\n"); - } - - /* - * no failures, return code 0 ==> all OK - */ - return 0; -} - - -/* - * main - the main function - * - * See the above usage for details. - */ -int -main(int argc, char *argv[]) -{ - char buf[BUF_SIZE+1]; /* read buffer */ - int readcnt; /* number of characters written */ - Fnv64_t hval; /* current hash value */ - int s_flag = 0; /* 1 => -s was given, hash args as strings */ - int m_flag = 0; /* 1 => print multiple hashes, one per arg */ - int v_flag = 0; /* 1 => verbose hash print */ - int b_flag = WIDTH; /* -b flag value */ - int t_flag = -1; /* FNV test vector code (0=>print, 1=>test) */ - enum fnv_type hash_type = FNV_NONE; /* type of FNV hash to perform */ - Fnv64_t bmask; /* mask to apply to output */ - extern char *optarg; /* option argument */ - extern int optind; /* argv index of the next arg */ - int fd; /* open file to process */ - char *p; - int i; - - /* - * parse args - */ - program = argv[0]; - while ((i = getopt(argc, argv, "b:mst:v")) != -1) { - switch (i) { - case 'b': /* bcnt bit mask count */ - b_flag = atoi(optarg); - break; - case 'm': /* print multiple hashes, one per arg */ - m_flag = 1; - break; - case 's': /* hash args as strings */ - s_flag = 1; - break; - case 't': /* FNV test vector code */ - t_flag = atoi(optarg); - if (t_flag < 0 || t_flag > 1) { - fprintf(stderr, "%s: -t code must be 0 or 1\n", program); - fprintf(stderr, usage, program, FNV_VERSION); - exit(1); - } - m_flag = 1; - break; - case 'v': /* verbose hash print */ - m_flag = 1; - v_flag = 1; - break; - default: - fprintf(stderr, usage, program, FNV_VERSION); - exit(1); - } - } - /* -t code incompatible with -b, -m and args */ - if (t_flag >= 0) { - if (b_flag != WIDTH) { - fprintf(stderr, "%s: -t code incompatible with -b\n", program); - exit(2); - } - if (s_flag != 0) { - fprintf(stderr, "%s: -t code incompatible with -s\n", program); - exit(3); - } - if (optind < argc) { - fprintf(stderr, "%s: -t code incompatible args\n", program); - exit(4); - } - } - /* -s requires at least 1 arg */ - if (s_flag && optind >= argc) { - fprintf(stderr, usage, program, FNV_VERSION); - exit(5); - } - /* limit -b values */ - if (b_flag < 0 || b_flag > WIDTH) { - fprintf(stderr, "%s: -b bcnt: %d must be >= 0 and < %d\n", - program, b_flag, WIDTH); - exit(6); - } -#if defined(HAVE_64BIT_LONG_LONG) - if (b_flag == WIDTH) { - bmask = (Fnv64_t)0xffffffffffffffffULL; - } else { - bmask = (Fnv64_t)((1ULL << b_flag) - 1ULL); - } -#else /* HAVE_64BIT_LONG_LONG */ - if (b_flag == WIDTH) { - bmask.w32[0] = 0xffffffffUL; - bmask.w32[1] = 0xffffffffUL; - } else if (b_flag >= WIDTH/2) { - bmask.w32[0] = 0xffffffffUL; - bmask.w32[1] = ((1UL << (b_flag-(WIDTH/2))) - 1UL); - } else { - bmask.w32[0] = ((1UL << b_flag) - 1UL); - bmask.w32[1] = 0UL; - } -#endif /* HAVE_64BIT_LONG_LONG */ - - /* - * start with the initial basis depending on the hash type - */ - p = strrchr(program, '/'); - if (p == NULL) { - p = program; - } else { - ++p; - } - if (strcmp(p, "fnv064") == 0 || strcmp(p, "no64bit_fnv064") == 0) { - /* using non-recommended FNV-0 and zero initial basis */ - hval = FNV0_64_INIT; - hash_type = FNV0_64; - } else if (strcmp(p, "fnv164") == 0 || strcmp(p, "no64bit_fnv164") == 0) { - /* using FNV-1 and non-zero initial basis */ - hval = FNV1_64_INIT; - hash_type = FNV1_64; - } else if (strcmp(p, "fnv1a64") == 0 || strcmp(p, "no64bit_fnv1a64") == 0) { - /* start with the FNV-1a initial basis */ - hval = FNV1A_64_INIT; - hash_type = FNV1a_64; - } else { - fprintf(stderr, "%s: unknown program name, unknown hash type\n", - program); - exit(7); - } - - /* - * FNV test vector processing, if needed - */ - if (t_flag >= 0) { - int code; /* test vector that failed, starting at 1 */ - - /* - * perform all tests - */ - code = test_fnv64(hash_type, hval, bmask, v_flag, t_flag); - - /* - * evaluate the tests - */ - if (code == 0) { - if (v_flag) { - printf("passed\n"); - } - exit(0); - } else { - printf("failed vector (1 is 1st test): %d\n", code); - exit(8); - } - } - - /* - * string hashing - */ - if (s_flag) { - - /* hash any other strings */ - for (i=optind; i < argc; ++i) { - switch (hash_type) { - case FNV0_64: - case FNV1_64: - hval = fnv_64_str(argv[i], hval); - break; - case FNV1a_64: - hval = fnv_64a_str(argv[i], hval); - break; - default: - unknown_hash_type(program, hash_type, 9); /* exit(9) */ - /*NOTREACHED*/ - } - if (m_flag) { - print_fnv64(hval, bmask, v_flag, argv[i]); - } - } - - - /* - * file hashing - */ - } else { - - /* - * case: process only stdin - */ - if (optind >= argc) { - - /* case: process only stdin */ - while ((readcnt = read(0, buf, BUF_SIZE)) > 0) { - switch (hash_type) { - case FNV0_64: - case FNV1_64: - hval = fnv_64_buf(buf, readcnt, hval); - break; - case FNV1a_64: - hval = fnv_64a_buf(buf, readcnt, hval); - break; - default: - unknown_hash_type(program, hash_type, 10); /* exit(10) */ - /*NOTREACHED*/ - } - } - if (m_flag) { - print_fnv64(hval, bmask, v_flag, "(stdin)"); - } - - } else { - - /* - * process any other files - */ - for (i=optind; i < argc; ++i) { - - /* open the file */ - fd = open(argv[i], O_RDONLY); - if (fd < 0) { - fprintf(stderr, "%s: unable to open file: %s\n", - program, argv[i]); - exit(4); - } - - /* hash the file */ - while ((readcnt = read(fd, buf, BUF_SIZE)) > 0) { - switch (hash_type) { - case FNV0_64: - case FNV1_64: - hval = fnv_64_buf(buf, readcnt, hval); - break; - case FNV1a_64: - hval = fnv_64a_buf(buf, readcnt, hval); - break; - default: - unknown_hash_type(program, hash_type, 11);/* exit(11) */ - /*NOTREACHED*/ - } - } - - /* finish processing the file */ - if (m_flag) { - print_fnv64(hval, bmask, v_flag, argv[i]); - } - close(fd); - } - } - } - - /* - * report hash and exit - */ - if (!m_flag) { - print_fnv64(hval, bmask, v_flag, ""); - } - return 0; /* exit(0); */ -} diff --git a/lib/fnv/hash_32.c b/lib/fnv/hash_32.c deleted file mode 100644 index 077170ff6d..0000000000 --- a/lib/fnv/hash_32.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * hash_32 - 32 bit Fowler/Noll/Vo hash code - * - * @(#) $Revision: 5.1 $ - * @(#) $Id: hash_32.c,v 5.1 2009/06/30 09:13:32 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/fnv/RCS/hash_32.c,v $ - * - *** - * - * Fowler/Noll/Vo hash - * - * The basis of this hash algorithm was taken from an idea sent - * as reviewer comments to the IEEE POSIX P1003.2 committee by: - * - * Phong Vo (http://www.research.att.com/info/kpv/) - * Glenn Fowler (http://www.research.att.com/~gsf/) - * - * In a subsequent ballot round: - * - * Landon Curt Noll (http://www.isthe.com/chongo/) - * - * improved on their algorithm. Some people tried this hash - * and found that it worked rather well. In an EMail message - * to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - * - * FNV hashes are designed to be fast while maintaining a low - * collision rate. The FNV speed allows one to quickly hash lots - * of data while maintaining a reasonable collision rate. See: - * - * http://www.isthe.com/chongo/tech/comp/fnv/index.html - * - * for more details as well as other forms of the FNV hash. - *** - * - * NOTE: The FNV-0 historic hash is not recommended. One should use - * the FNV-1 hash instead. - * - * To use the 32 bit FNV-0 historic hash, pass FNV0_32_INIT as the - * Fnv32_t hashval argument to fnv_32_buf() or fnv_32_str(). - * - * To use the recommended 32 bit FNV-1 hash, pass FNV1_32_INIT as the - * Fnv32_t hashval argument to fnv_32_buf() or fnv_32_str(). - * - *** - * - * Please do not copyright this code. This code is in the public domain. - * - * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO - * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * By: - * chongo /\oo/\ - * http://www.isthe.com/chongo/ - * - * Share and Enjoy! :-) - */ - -#include -#include "fnv.h" - - -/* - * 32 bit magic FNV-0 and FNV-1 prime - */ -#define FNV_32_PRIME ((Fnv32_t)0x01000193) - - -/* - * fnv_32_buf - perform a 32 bit Fowler/Noll/Vo hash on a buffer - * - * input: - * buf - start of buffer to hash - * len - length of buffer in octets - * hval - previous hash value or 0 if first call - * - * returns: - * 32 bit hash as a static hash type - * - * NOTE: To use the 32 bit FNV-0 historic hash, use FNV0_32_INIT as the hval - * argument on the first call to either fnv_32_buf() or fnv_32_str(). - * - * NOTE: To use the recommended 32 bit FNV-1 hash, use FNV1_32_INIT as the hval - * argument on the first call to either fnv_32_buf() or fnv_32_str(). - */ -Fnv32_t -fnv_32_buf(void *buf, size_t len, Fnv32_t hval) -{ - unsigned char *bp = (unsigned char *)buf; /* start of buffer */ - unsigned char *be = bp + len; /* beyond end of buffer */ - - /* - * FNV-1 hash each octet in the buffer - */ - while (bp < be) { - - /* multiply by the 32 bit FNV magic prime mod 2^32 */ -#if defined(NO_FNV_GCC_OPTIMIZATION) - hval *= FNV_32_PRIME; -#else - hval += (hval<<1) + (hval<<4) + (hval<<7) + (hval<<8) + (hval<<24); -#endif - - /* xor the bottom with the current octet */ - hval ^= (Fnv32_t)*bp++; - } - - /* return our new hash value */ - return hval; -} - - -/* - * fnv_32_str - perform a 32 bit Fowler/Noll/Vo hash on a string - * - * input: - * str - string to hash - * hval - previous hash value or 0 if first call - * - * returns: - * 32 bit hash as a static hash type - * - * NOTE: To use the 32 bit FNV-0 historic hash, use FNV0_32_INIT as the hval - * argument on the first call to either fnv_32_buf() or fnv_32_str(). - * - * NOTE: To use the recommended 32 bit FNV-1 hash, use FNV1_32_INIT as the hval - * argument on the first call to either fnv_32_buf() or fnv_32_str(). - */ -Fnv32_t -fnv_32_str(char *str, Fnv32_t hval) -{ - unsigned char *s = (unsigned char *)str; /* unsigned string */ - - /* - * FNV-1 hash each octet in the buffer - */ - while (*s) { - - /* multiply by the 32 bit FNV magic prime mod 2^32 */ -#if defined(NO_FNV_GCC_OPTIMIZATION) - hval *= FNV_32_PRIME; -#else - hval += (hval<<1) + (hval<<4) + (hval<<7) + (hval<<8) + (hval<<24); -#endif - - /* xor the bottom with the current octet */ - hval ^= (Fnv32_t)*s++; - } - - /* return our new hash value */ - return hval; -} diff --git a/lib/fnv/hash_32a.c b/lib/fnv/hash_32a.c deleted file mode 100644 index 8b10acf3e2..0000000000 --- a/lib/fnv/hash_32a.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * hash_32 - 32 bit Fowler/Noll/Vo FNV-1a hash code - * - * @(#) $Revision: 5.1 $ - * @(#) $Id: hash_32a.c,v 5.1 2009/06/30 09:13:32 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/fnv/RCS/hash_32a.c,v $ - * - *** - * - * Fowler/Noll/Vo hash - * - * The basis of this hash algorithm was taken from an idea sent - * as reviewer comments to the IEEE POSIX P1003.2 committee by: - * - * Phong Vo (http://www.research.att.com/info/kpv/) - * Glenn Fowler (http://www.research.att.com/~gsf/) - * - * In a subsequent ballot round: - * - * Landon Curt Noll (http://www.isthe.com/chongo/) - * - * improved on their algorithm. Some people tried this hash - * and found that it worked rather well. In an EMail message - * to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - * - * FNV hashes are designed to be fast while maintaining a low - * collision rate. The FNV speed allows one to quickly hash lots - * of data while maintaining a reasonable collision rate. See: - * - * http://www.isthe.com/chongo/tech/comp/fnv/index.html - * - * for more details as well as other forms of the FNV hash. - *** - * - * To use the recommended 32 bit FNV-1a hash, pass FNV1_32A_INIT as the - * Fnv32_t hashval argument to fnv_32a_buf() or fnv_32a_str(). - * - *** - * - * Please do not copyright this code. This code is in the public domain. - * - * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO - * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * By: - * chongo /\oo/\ - * http://www.isthe.com/chongo/ - * - * Share and Enjoy! :-) - */ - -#include -#include "fnv.h" - - -/* - * 32 bit magic FNV-1a prime - */ -#define FNV_32_PRIME ((Fnv32_t)0x01000193) - - -/* - * fnv_32a_buf - perform a 32 bit Fowler/Noll/Vo FNV-1a hash on a buffer - * - * input: - * buf - start of buffer to hash - * len - length of buffer in octets - * hval - previous hash value or 0 if first call - * - * returns: - * 32 bit hash as a static hash type - * - * NOTE: To use the recommended 32 bit FNV-1a hash, use FNV1_32A_INIT as the - * hval arg on the first call to either fnv_32a_buf() or fnv_32a_str(). - */ -Fnv32_t -fnv_32a_buf(void *buf, size_t len, Fnv32_t hval) -{ - unsigned char *bp = (unsigned char *)buf; /* start of buffer */ - unsigned char *be = bp + len; /* beyond end of buffer */ - - /* - * FNV-1a hash each octet in the buffer - */ - while (bp < be) { - - /* xor the bottom with the current octet */ - hval ^= (Fnv32_t)*bp++; - - /* multiply by the 32 bit FNV magic prime mod 2^32 */ -#if defined(NO_FNV_GCC_OPTIMIZATION) - hval *= FNV_32_PRIME; -#else - hval += (hval<<1) + (hval<<4) + (hval<<7) + (hval<<8) + (hval<<24); -#endif - } - - /* return our new hash value */ - return hval; -} - - -/* - * fnv_32a_str - perform a 32 bit Fowler/Noll/Vo FNV-1a hash on a string - * - * input: - * str - string to hash - * hval - previous hash value or 0 if first call - * - * returns: - * 32 bit hash as a static hash type - * - * NOTE: To use the recommended 32 bit FNV-1a hash, use FNV1_32A_INIT as the - * hval arg on the first call to either fnv_32a_buf() or fnv_32a_str(). - */ -Fnv32_t -fnv_32a_str(char *str, Fnv32_t hval) -{ - unsigned char *s = (unsigned char *)str; /* unsigned string */ - - /* - * FNV-1a hash each octet in the buffer - */ - while (*s) { - - /* xor the bottom with the current octet */ - hval ^= (Fnv32_t)*s++; - - /* multiply by the 32 bit FNV magic prime mod 2^32 */ -#if defined(NO_FNV_GCC_OPTIMIZATION) - hval *= FNV_32_PRIME; -#else - hval += (hval<<1) + (hval<<4) + (hval<<7) + (hval<<8) + (hval<<24); -#endif - } - - /* return our new hash value */ - return hval; -} diff --git a/lib/fnv/hash_64.c b/lib/fnv/hash_64.c deleted file mode 100644 index 4338605dca..0000000000 --- a/lib/fnv/hash_64.c +++ /dev/null @@ -1,312 +0,0 @@ -/* - * hash_64 - 64 bit Fowler/Noll/Vo-0 hash code - * - * @(#) $Revision: 5.1 $ - * @(#) $Id: hash_64.c,v 5.1 2009/06/30 09:01:38 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/fnv/RCS/hash_64.c,v $ - * - *** - * - * Fowler/Noll/Vo hash - * - * The basis of this hash algorithm was taken from an idea sent - * as reviewer comments to the IEEE POSIX P1003.2 committee by: - * - * Phong Vo (http://www.research.att.com/info/kpv/) - * Glenn Fowler (http://www.research.att.com/~gsf/) - * - * In a subsequent ballot round: - * - * Landon Curt Noll (http://www.isthe.com/chongo/) - * - * improved on their algorithm. Some people tried this hash - * and found that it worked rather well. In an EMail message - * to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - * - * FNV hashes are designed to be fast while maintaining a low - * collision rate. The FNV speed allows one to quickly hash lots - * of data while maintaining a reasonable collision rate. See: - * - * http://www.isthe.com/chongo/tech/comp/fnv/index.html - * - * for more details as well as other forms of the FNV hash. - * - *** - * - * NOTE: The FNV-0 historic hash is not recommended. One should use - * the FNV-1 hash instead. - * - * To use the 64 bit FNV-0 historic hash, pass FNV0_64_INIT as the - * Fnv64_t hashval argument to fnv_64_buf() or fnv_64_str(). - * - * To use the recommended 64 bit FNV-1 hash, pass FNV1_64_INIT as the - * Fnv64_t hashval argument to fnv_64_buf() or fnv_64_str(). - * - *** - * - * Please do not copyright this code. This code is in the public domain. - * - * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO - * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * By: - * chongo /\oo/\ - * http://www.isthe.com/chongo/ - * - * Share and Enjoy! :-) - */ - -#include -#include "fnv.h" - - -/* - * FNV-0 defines the initial basis to be zero - */ -#if !defined(HAVE_64BIT_LONG_LONG) -const Fnv64_t fnv0_64_init = { 0UL, 0UL }; -#endif /* ! HAVE_64BIT_LONG_LONG */ - - -/* - * FNV-1 defines the initial basis to be non-zero - */ -#if !defined(HAVE_64BIT_LONG_LONG) -const Fnv64_t fnv1_64_init = { 0x84222325UL, 0xcbf29ce4UL }; -#endif /* ! HAVE_64BIT_LONG_LONG */ - - -/* - * 64 bit magic FNV-0 and FNV-1 prime - */ -#if defined(HAVE_64BIT_LONG_LONG) -#define FNV_64_PRIME ((Fnv64_t)0x100000001b3ULL) -#else /* HAVE_64BIT_LONG_LONG */ -#define FNV_64_PRIME_LOW ((unsigned long)0x1b3) /* lower bits of FNV prime */ -#define FNV_64_PRIME_SHIFT (8) /* top FNV prime shift above 2^32 */ -#endif /* HAVE_64BIT_LONG_LONG */ - - -/* - * fnv_64_buf - perform a 64 bit Fowler/Noll/Vo hash on a buffer - * - * input: - * buf - start of buffer to hash - * len - length of buffer in octets - * hval - previous hash value or 0 if first call - * - * returns: - * 64 bit hash as a static hash type - * - * NOTE: To use the 64 bit FNV-0 historic hash, use FNV0_64_INIT as the hval - * argument on the first call to either fnv_64_buf() or fnv_64_str(). - * - * NOTE: To use the recommended 64 bit FNV-1 hash, use FNV1_64_INIT as the hval - * argument on the first call to either fnv_64_buf() or fnv_64_str(). - */ -Fnv64_t -fnv_64_buf(void *buf, size_t len, Fnv64_t hval) -{ - unsigned char *bp = (unsigned char *)buf; /* start of buffer */ - unsigned char *be = bp + len; /* beyond end of buffer */ - -#if defined(HAVE_64BIT_LONG_LONG) - - /* - * FNV-1 hash each octet of the buffer - */ - while (bp < be) { - - /* multiply by the 64 bit FNV magic prime mod 2^64 */ -#if defined(NO_FNV_GCC_OPTIMIZATION) - hval *= FNV_64_PRIME; -#else /* NO_FNV_GCC_OPTIMIZATION */ - hval += (hval << 1) + (hval << 4) + (hval << 5) + - (hval << 7) + (hval << 8) + (hval << 40); -#endif /* NO_FNV_GCC_OPTIMIZATION */ - - /* xor the bottom with the current octet */ - hval ^= (Fnv64_t)*bp++; - } - -#else /* HAVE_64BIT_LONG_LONG */ - - unsigned long val[4]; /* hash value in base 2^16 */ - unsigned long tmp[4]; /* tmp 64 bit value */ - - /* - * Convert Fnv64_t hval into a base 2^16 array - */ - val[0] = hval.w32[0]; - val[1] = (val[0] >> 16); - val[0] &= 0xffff; - val[2] = hval.w32[1]; - val[3] = (val[2] >> 16); - val[2] &= 0xffff; - - /* - * FNV-1 hash each octet of the buffer - */ - while (bp < be) { - - /* - * multiply by the 64 bit FNV magic prime mod 2^64 - * - * Using 0x100000001b3 we have the following digits base 2^16: - * - * 0x0 0x100 0x0 0x1b3 - * - * which is the same as: - * - * 0x0 1<> 16); - val[0] = tmp[0] & 0xffff; - tmp[2] += (tmp[1] >> 16); - val[1] = tmp[1] & 0xffff; - val[3] = tmp[3] + (tmp[2] >> 16); - val[2] = tmp[2] & 0xffff; - /* - * Doing a val[3] &= 0xffff; is not really needed since it simply - * removes multiples of 2^64. We can discard these excess bits - * outside of the loop when we convert to Fnv64_t. - */ - - /* xor the bottom with the current octet */ - val[0] ^= (unsigned long)*bp++; - } - - /* - * Convert base 2^16 array back into an Fnv64_t - */ - hval.w32[1] = ((val[3]<<16) | val[2]); - hval.w32[0] = ((val[1]<<16) | val[0]); - -#endif /* HAVE_64BIT_LONG_LONG */ - - /* return our new hash value */ - return hval; -} - - -/* - * fnv_64_str - perform a 64 bit Fowler/Noll/Vo hash on a buffer - * - * input: - * buf - start of buffer to hash - * hval - previous hash value or 0 if first call - * - * returns: - * 64 bit hash as a static hash type - * - * NOTE: To use the 64 bit FNV-0 historic hash, use FNV0_64_INIT as the hval - * argument on the first call to either fnv_64_buf() or fnv_64_str(). - * - * NOTE: To use the recommended 64 bit FNV-1 hash, use FNV1_64_INIT as the hval - * argument on the first call to either fnv_64_buf() or fnv_64_str(). - */ -Fnv64_t -fnv_64_str(char *str, Fnv64_t hval) -{ - unsigned char *s = (unsigned char *)str; /* unsigned string */ - -#if defined(HAVE_64BIT_LONG_LONG) - - /* - * FNV-1 hash each octet of the string - */ - while (*s) { - - /* multiply by the 64 bit FNV magic prime mod 2^64 */ -#if defined(NO_FNV_GCC_OPTIMIZATION) - hval *= FNV_64_PRIME; -#else /* NO_FNV_GCC_OPTIMIZATION */ - hval += (hval << 1) + (hval << 4) + (hval << 5) + - (hval << 7) + (hval << 8) + (hval << 40); -#endif /* NO_FNV_GCC_OPTIMIZATION */ - - /* xor the bottom with the current octet */ - hval ^= (Fnv64_t)*s++; - } - -#else /* !HAVE_64BIT_LONG_LONG */ - - unsigned long val[4]; /* hash value in base 2^16 */ - unsigned long tmp[4]; /* tmp 64 bit value */ - - /* - * Convert Fnv64_t hval into a base 2^16 array - */ - val[0] = hval.w32[0]; - val[1] = (val[0] >> 16); - val[0] &= 0xffff; - val[2] = hval.w32[1]; - val[3] = (val[2] >> 16); - val[2] &= 0xffff; - - /* - * FNV-1 hash each octet of the string - */ - while (*s) { - - /* - * multiply by the 64 bit FNV magic prime mod 2^64 - * - * Using 1099511628211, we have the following digits base 2^16: - * - * 0x0 0x100 0x0 0x1b3 - * - * which is the same as: - * - * 0x0 1<> 16); - val[0] = tmp[0] & 0xffff; - tmp[2] += (tmp[1] >> 16); - val[1] = tmp[1] & 0xffff; - val[3] = tmp[3] + (tmp[2] >> 16); - val[2] = tmp[2] & 0xffff; - /* - * Doing a val[3] &= 0xffff; is not really needed since it simply - * removes multiples of 2^64. We can discard these excess bits - * outside of the loop when we convert to Fnv64_t. - */ - - /* xor the bottom with the current octet */ - val[0] ^= (unsigned long)(*s++); - } - - /* - * Convert base 2^16 array back into an Fnv64_t - */ - hval.w32[1] = ((val[3]<<16) | val[2]); - hval.w32[0] = ((val[1]<<16) | val[0]); - -#endif /* !HAVE_64BIT_LONG_LONG */ - - /* return our new hash value */ - return hval; -} diff --git a/lib/fnv/hash_64a.c b/lib/fnv/hash_64a.c deleted file mode 100644 index 6660f92ddf..0000000000 --- a/lib/fnv/hash_64a.c +++ /dev/null @@ -1,291 +0,0 @@ -/* - * hash_64 - 64 bit Fowler/Noll/Vo-0 FNV-1a hash code - * - * @(#) $Revision: 5.1 $ - * @(#) $Id: hash_64a.c,v 5.1 2009/06/30 09:01:38 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/fnv/RCS/hash_64a.c,v $ - * - *** - * - * Fowler/Noll/Vo hash - * - * The basis of this hash algorithm was taken from an idea sent - * as reviewer comments to the IEEE POSIX P1003.2 committee by: - * - * Phong Vo (http://www.research.att.com/info/kpv/) - * Glenn Fowler (http://www.research.att.com/~gsf/) - * - * In a subsequent ballot round: - * - * Landon Curt Noll (http://www.isthe.com/chongo/) - * - * improved on their algorithm. Some people tried this hash - * and found that it worked rather well. In an EMail message - * to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - * - * FNV hashes are designed to be fast while maintaining a low - * collision rate. The FNV speed allows one to quickly hash lots - * of data while maintaining a reasonable collision rate. See: - * - * http://www.isthe.com/chongo/tech/comp/fnv/index.html - * - * for more details as well as other forms of the FNV hash. - * - *** - * - * To use the recommended 64 bit FNV-1a hash, pass FNV1A_64_INIT as the - * Fnv64_t hashval argument to fnv_64a_buf() or fnv_64a_str(). - * - *** - * - * Please do not copyright this code. This code is in the public domain. - * - * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO - * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * By: - * chongo /\oo/\ - * http://www.isthe.com/chongo/ - * - * Share and Enjoy! :-) - */ - -#include -#include "fnv.h" - - -/* - * FNV-1a defines the initial basis to be non-zero - */ -#if !defined(HAVE_64BIT_LONG_LONG) -const Fnv64_t fnv1a_64_init = { 0x84222325, 0xcbf29ce4 }; -#endif /* ! HAVE_64BIT_LONG_LONG */ - - -/* - * 64 bit magic FNV-1a prime - */ -#if defined(HAVE_64BIT_LONG_LONG) -#define FNV_64_PRIME ((Fnv64_t)0x100000001b3ULL) -#else /* HAVE_64BIT_LONG_LONG */ -#define FNV_64_PRIME_LOW ((unsigned long)0x1b3) /* lower bits of FNV prime */ -#define FNV_64_PRIME_SHIFT (8) /* top FNV prime shift above 2^32 */ -#endif /* HAVE_64BIT_LONG_LONG */ - - -/* - * fnv_64a_buf - perform a 64 bit Fowler/Noll/Vo FNV-1a hash on a buffer - * - * input: - * buf - start of buffer to hash - * len - length of buffer in octets - * hval - previous hash value or 0 if first call - * - * returns: - * 64 bit hash as a static hash type - * - * NOTE: To use the recommended 64 bit FNV-1a hash, use FNV1A_64_INIT as the - * hval arg on the first call to either fnv_64a_buf() or fnv_64a_str(). - */ -Fnv64_t -fnv_64a_buf(void *buf, size_t len, Fnv64_t hval) -{ - unsigned char *bp = (unsigned char *)buf; /* start of buffer */ - unsigned char *be = bp + len; /* beyond end of buffer */ - -#if defined(HAVE_64BIT_LONG_LONG) - /* - * FNV-1a hash each octet of the buffer - */ - while (bp < be) { - - /* xor the bottom with the current octet */ - hval ^= (Fnv64_t)*bp++; - - /* multiply by the 64 bit FNV magic prime mod 2^64 */ -#if defined(NO_FNV_GCC_OPTIMIZATION) - hval *= FNV_64_PRIME; -#else /* NO_FNV_GCC_OPTIMIZATION */ - hval += (hval << 1) + (hval << 4) + (hval << 5) + - (hval << 7) + (hval << 8) + (hval << 40); -#endif /* NO_FNV_GCC_OPTIMIZATION */ - } - -#else /* HAVE_64BIT_LONG_LONG */ - - unsigned long val[4]; /* hash value in base 2^16 */ - unsigned long tmp[4]; /* tmp 64 bit value */ - - /* - * Convert Fnv64_t hval into a base 2^16 array - */ - val[0] = hval.w32[0]; - val[1] = (val[0] >> 16); - val[0] &= 0xffff; - val[2] = hval.w32[1]; - val[3] = (val[2] >> 16); - val[2] &= 0xffff; - - /* - * FNV-1a hash each octet of the buffer - */ - while (bp < be) { - - /* xor the bottom with the current octet */ - val[0] ^= (unsigned long)*bp++; - - /* - * multiply by the 64 bit FNV magic prime mod 2^64 - * - * Using 0x100000001b3 we have the following digits base 2^16: - * - * 0x0 0x100 0x0 0x1b3 - * - * which is the same as: - * - * 0x0 1<> 16); - val[0] = tmp[0] & 0xffff; - tmp[2] += (tmp[1] >> 16); - val[1] = tmp[1] & 0xffff; - val[3] = tmp[3] + (tmp[2] >> 16); - val[2] = tmp[2] & 0xffff; - /* - * Doing a val[3] &= 0xffff; is not really needed since it simply - * removes multiples of 2^64. We can discard these excess bits - * outside of the loop when we convert to Fnv64_t. - */ - } - - /* - * Convert base 2^16 array back into an Fnv64_t - */ - hval.w32[1] = ((val[3]<<16) | val[2]); - hval.w32[0] = ((val[1]<<16) | val[0]); - -#endif /* HAVE_64BIT_LONG_LONG */ - - /* return our new hash value */ - return hval; -} - - -/* - * fnv_64a_str - perform a 64 bit Fowler/Noll/Vo FNV-1a hash on a buffer - * - * input: - * buf - start of buffer to hash - * hval - previous hash value or 0 if first call - * - * returns: - * 64 bit hash as a static hash type - * - * NOTE: To use the recommended 64 bit FNV-1a hash, use FNV1A_64_INIT as the - * hval arg on the first call to either fnv_64a_buf() or fnv_64a_str(). - */ -Fnv64_t -fnv_64a_str(char *str, Fnv64_t hval) -{ - unsigned char *s = (unsigned char *)str; /* unsigned string */ - -#if defined(HAVE_64BIT_LONG_LONG) - - /* - * FNV-1a hash each octet of the string - */ - while (*s) { - - /* xor the bottom with the current octet */ - hval ^= (Fnv64_t)*s++; - - /* multiply by the 64 bit FNV magic prime mod 2^64 */ -#if defined(NO_FNV_GCC_OPTIMIZATION) - hval *= FNV_64_PRIME; -#else /* NO_FNV_GCC_OPTIMIZATION */ - hval += (hval << 1) + (hval << 4) + (hval << 5) + - (hval << 7) + (hval << 8) + (hval << 40); -#endif /* NO_FNV_GCC_OPTIMIZATION */ - } - -#else /* !HAVE_64BIT_LONG_LONG */ - - unsigned long val[4]; /* hash value in base 2^16 */ - unsigned long tmp[4]; /* tmp 64 bit value */ - - /* - * Convert Fnv64_t hval into a base 2^16 array - */ - val[0] = hval.w32[0]; - val[1] = (val[0] >> 16); - val[0] &= 0xffff; - val[2] = hval.w32[1]; - val[3] = (val[2] >> 16); - val[2] &= 0xffff; - - /* - * FNV-1a hash each octet of the string - */ - while (*s) { - - /* xor the bottom with the current octet */ - - /* - * multiply by the 64 bit FNV magic prime mod 2^64 - * - * Using 1099511628211, we have the following digits base 2^16: - * - * 0x0 0x100 0x0 0x1b3 - * - * which is the same as: - * - * 0x0 1<> 16); - val[0] = tmp[0] & 0xffff; - tmp[2] += (tmp[1] >> 16); - val[1] = tmp[1] & 0xffff; - val[3] = tmp[3] + (tmp[2] >> 16); - val[2] = tmp[2] & 0xffff; - /* - * Doing a val[3] &= 0xffff; is not really needed since it simply - * removes multiples of 2^64. We can discard these excess bits - * outside of the loop when we convert to Fnv64_t. - */ - val[0] ^= (unsigned long)(*s++); - } - - /* - * Convert base 2^16 array back into an Fnv64_t - */ - hval.w32[1] = ((val[3]<<16) | val[2]); - hval.w32[0] = ((val[1]<<16) | val[0]); - -#endif /* !HAVE_64BIT_LONG_LONG */ - - /* return our new hash value */ - return hval; -} diff --git a/lib/fnv/have_ulong64.c b/lib/fnv/have_ulong64.c deleted file mode 100644 index 5c06262388..0000000000 --- a/lib/fnv/have_ulong64.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * have_ulong64 - Determine if we have a 64 bit unsigned long long - * - * usage: - * have_ulong64 > longlong.h - * - * Not all systems have a 'long long type' so this may not compile on - * your system. - * - * This prog outputs the define: - * - * HAVE_64BIT_LONG_LONG - * defined ==> we have a 64 bit unsigned long long - * undefined ==> we must simulate a 64 bit unsigned long long - */ -/* - * - * Please do not copyright this code. This code is in the public domain. - * - * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO - * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * By: - * chongo /\oo/\ - * http://www.isthe.com/chongo/ - * - * Share and Enjoy! :-) - */ - -/* - * have the compiler try its hand with unsigned and signed long longs - */ -#if ! defined(NO64BIT_LONG_LONG) -unsigned long long val = 1099511628211ULL; -#endif /* NO64BIT_LONG_LONG */ - -int -main(void) -{ - /* - * ensure that the length of long long val is what we expect - */ -#if defined(NO64BIT_LONG_LONG) - printf("#undef HAVE_64BIT_LONG_LONG\t/* no */\n"); -#else /* NO64BIT_LONG_LONG */ - if (val == 1099511628211ULL && sizeof(val) == 8) { - printf("#define HAVE_64BIT_LONG_LONG\t/* yes */\n"); - } -#endif /* NO64BIT_LONG_LONG */ - - /* exit(0); */ - return 0; -} diff --git a/lib/fnv/longlong.h b/lib/fnv/longlong.h deleted file mode 100644 index c8cfe48f29..0000000000 --- a/lib/fnv/longlong.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * DO NOT EDIT -- generated by the Makefile - */ - -#if !defined(__LONGLONG_H__) -#define __LONGLONG_H__ - -/* do we have/want to use a long long type? */ -#define HAVE_64BIT_LONG_LONG /* yes */ - -/* - * NO64BIT_LONG_LONG undef HAVE_64BIT_LONG_LONG - */ -#if defined(NO64BIT_LONG_LONG) -#undef HAVE_64BIT_LONG_LONG -#endif /* NO64BIT_LONG_LONG */ - -#endif /* !__LONGLONG_H__ */ diff --git a/lib/fnv/qmk_fnv_type_validation.c b/lib/fnv/qmk_fnv_type_validation.c deleted file mode 100644 index e8576617ba..0000000000 --- a/lib/fnv/qmk_fnv_type_validation.c +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include "fnv.h" - -// This library was originally sourced from: -// http://www.isthe.com/chongo/tech/comp/fnv/index.html -// -// Version at the time of retrieval on 2022-06-26: v5.0.3 - -_Static_assert(sizeof(long long) == 8, "long long should be 64 bits"); -_Static_assert(sizeof(unsigned long long) == 8, "unsigned long long should be 64 bits"); - -_Static_assert(sizeof(Fnv32_t) == 4, "Fnv32_t should be 32 bits"); -_Static_assert(sizeof(Fnv64_t) == 8, "Fnv64_t should be 64 bits"); diff --git a/lib/fnv/test_fnv.c b/lib/fnv/test_fnv.c deleted file mode 100644 index efec3dec1d..0000000000 --- a/lib/fnv/test_fnv.c +++ /dev/null @@ -1,2237 +0,0 @@ -/* - * test_fnv - FNV test suite - * - * @(#) $Revision: 5.3 $ - * @(#) $Id: test_fnv.c,v 5.3 2009/06/30 11:50:41 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/fnv/RCS/test_fnv.c,v $ - * - *** - * - * Fowler/Noll/Vo hash - * - * The basis of this hash algorithm was taken from an idea sent - * as reviewer comments to the IEEE POSIX P1003.2 committee by: - * - * Phong Vo (http://www.research.att.com/info/kpv/) - * Glenn Fowler (http://www.research.att.com/~gsf/) - * - * In a subsequent ballot round: - * - * Landon Curt Noll (http://www.isthe.com/chongo/) - * - * improved on their algorithm. Some people tried this hash - * and found that it worked rather well. In an EMail message - * to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - * - * FNV hashes are designed to be fast while maintaining a low - * collision rate. The FNV speed allows one to quickly hash lots - * of data while maintaining a reasonable collision rate. See: - * - * http://www.isthe.com/chongo/tech/comp/fnv/index.html - * - * for more details as well as other forms of the FNV hash. - * - *** - * - * Please do not copyright this code. This code is in the public domain. - * - * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO - * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * By: - * chongo /\oo/\ - * http://www.isthe.com/chongo/ - * - * Share and Enjoy! :-) - */ - -#include -#include "longlong.h" -#include "fnv.h" - -#define LEN(x) (sizeof(x)-1) -/* TEST macro does not include trailing NUL byte in the test vector */ -#define TEST(x) {x, LEN(x)} -/* TEST0 macro includes the trailing NUL byte in the test vector */ -#define TEST0(x) {x, sizeof(x)} -/* REPEAT500 - repeat a string 500 times */ -#define R500(x) R100(x)R100(x)R100(x)R100(x)R100(x) -#define R100(x) R10(x)R10(x)R10(x)R10(x)R10(x)R10(x)R10(x)R10(x)R10(x)R10(x) -#define R10(x) x x x x x x x x x x - -/* - * FNV test vectors - * - * NOTE: A NULL pointer marks beyond the end of the test vectors. - * - * NOTE: The order of the fnv_test_str[] test vectors is 1-to-1 with: - * - * struct fnv0_32_test_vector fnv0_32_vector[]; - * struct fnv1_32_test_vector fnv1_32_vector[]; - * struct fnv1a_32_test_vector fnv1a_32_vector[]; - * struct fnv0_64_test_vector fnv0_64_vector[]; - * struct fnv1_64_test_vector fnv1_64_vector[]; - * struct fnv1a_64_test_vector fnv1a_64_vector[]; - * - * IMPORTANT NOTE: - * - * If you change the fnv_test_str[] array, you need - * to also change ALL of the above fnv*_vector arrays!!! - * - * To rebuild, try: - * - * make vector.c - * - * and then fold the results into the source file. - * Of course, you better make sure that the vaules - * produced by the above command are valid, otherwise - * you will be testing against invalid vectors! - */ -struct test_vector fnv_test_str[] = { - TEST(""), - TEST("a"), - TEST("b"), - TEST("c"), - TEST("d"), - TEST("e"), - TEST("f"), - TEST("fo"), - TEST("foo"), - TEST("foob"), - TEST("fooba"), - TEST("foobar"), - TEST0(""), - TEST0("a"), - TEST0("b"), - TEST0("c"), - TEST0("d"), - TEST0("e"), - TEST0("f"), - TEST0("fo"), - TEST0("foo"), - TEST0("foob"), - TEST0("fooba"), - TEST0("foobar"), - TEST("ch"), - TEST("cho"), - TEST("chon"), - TEST("chong"), - TEST("chongo"), - TEST("chongo "), - TEST("chongo w"), - TEST("chongo wa"), - TEST("chongo was"), - TEST("chongo was "), - TEST("chongo was h"), - TEST("chongo was he"), - TEST("chongo was her"), - TEST("chongo was here"), - TEST("chongo was here!"), - TEST("chongo was here!\n"), - TEST0("ch"), - TEST0("cho"), - TEST0("chon"), - TEST0("chong"), - TEST0("chongo"), - TEST0("chongo "), - TEST0("chongo w"), - TEST0("chongo wa"), - TEST0("chongo was"), - TEST0("chongo was "), - TEST0("chongo was h"), - TEST0("chongo was he"), - TEST0("chongo was her"), - TEST0("chongo was here"), - TEST0("chongo was here!"), - TEST0("chongo was here!\n"), - TEST("cu"), - TEST("cur"), - TEST("curd"), - TEST("curds"), - TEST("curds "), - TEST("curds a"), - TEST("curds an"), - TEST("curds and"), - TEST("curds and "), - TEST("curds and w"), - TEST("curds and wh"), - TEST("curds and whe"), - TEST("curds and whey"), - TEST("curds and whey\n"), - TEST0("cu"), - TEST0("cur"), - TEST0("curd"), - TEST0("curds"), - TEST0("curds "), - TEST0("curds a"), - TEST0("curds an"), - TEST0("curds and"), - TEST0("curds and "), - TEST0("curds and w"), - TEST0("curds and wh"), - TEST0("curds and whe"), - TEST0("curds and whey"), - TEST0("curds and whey\n"), - TEST("hi"), TEST0("hi"), - TEST("hello"), TEST0("hello"), - TEST("\xff\x00\x00\x01"), TEST("\x01\x00\x00\xff"), - TEST("\xff\x00\x00\x02"), TEST("\x02\x00\x00\xff"), - TEST("\xff\x00\x00\x03"), TEST("\x03\x00\x00\xff"), - TEST("\xff\x00\x00\x04"), TEST("\x04\x00\x00\xff"), - TEST("\x40\x51\x4e\x44"), TEST("\x44\x4e\x51\x40"), - TEST("\x40\x51\x4e\x4a"), TEST("\x4a\x4e\x51\x40"), - TEST("\x40\x51\x4e\x54"), TEST("\x54\x4e\x51\x40"), - TEST("127.0.0.1"), TEST0("127.0.0.1"), - TEST("127.0.0.2"), TEST0("127.0.0.2"), - TEST("127.0.0.3"), TEST0("127.0.0.3"), - TEST("64.81.78.68"), TEST0("64.81.78.68"), - TEST("64.81.78.74"), TEST0("64.81.78.74"), - TEST("64.81.78.84"), TEST0("64.81.78.84"), - TEST("feedface"), TEST0("feedface"), - TEST("feedfacedaffdeed"), TEST0("feedfacedaffdeed"), - TEST("feedfacedeadbeef"), TEST0("feedfacedeadbeef"), - TEST("line 1\nline 2\nline 3"), - TEST("chongo /\\../\\"), - TEST0("chongo /\\../\\"), - TEST("chongo (Landon Curt Noll) /\\../\\"), - TEST0("chongo (Landon Curt Noll) /\\../\\"), - TEST("http://antwrp.gsfc.nasa.gov/apod/astropix.html"), - TEST("http://en.wikipedia.org/wiki/Fowler_Noll_Vo_hash"), - TEST("http://epod.usra.edu/"), - TEST("http://exoplanet.eu/"), - TEST("http://hvo.wr.usgs.gov/cam3/"), - TEST("http://hvo.wr.usgs.gov/cams/HMcam/"), - TEST("http://hvo.wr.usgs.gov/kilauea/update/deformation.html"), - TEST("http://hvo.wr.usgs.gov/kilauea/update/images.html"), - TEST("http://hvo.wr.usgs.gov/kilauea/update/maps.html"), - TEST("http://hvo.wr.usgs.gov/volcanowatch/current_issue.html"), - TEST("http://neo.jpl.nasa.gov/risk/"), - TEST("http://norvig.com/21-days.html"), - TEST("http://primes.utm.edu/curios/home.php"), - TEST("http://slashdot.org/"), - TEST("http://tux.wr.usgs.gov/Maps/155.25-19.5.html"), - TEST("http://volcano.wr.usgs.gov/kilaueastatus.php"), - TEST("http://www.avo.alaska.edu/activity/Redoubt.php"), - TEST("http://www.dilbert.com/fast/"), - TEST("http://www.fourmilab.ch/gravitation/orbits/"), - TEST("http://www.fpoa.net/"), - TEST("http://www.ioccc.org/index.html"), - TEST("http://www.isthe.com/cgi-bin/number.cgi"), - TEST("http://www.isthe.com/chongo/bio.html"), - TEST("http://www.isthe.com/chongo/index.html"), - TEST("http://www.isthe.com/chongo/src/calc/lucas-calc"), - TEST("http://www.isthe.com/chongo/tech/astro/venus2004.html"), - TEST("http://www.isthe.com/chongo/tech/astro/vita.html"), - TEST("http://www.isthe.com/chongo/tech/comp/c/expert.html"), - TEST("http://www.isthe.com/chongo/tech/comp/calc/index.html"), - TEST("http://www.isthe.com/chongo/tech/comp/fnv/index.html"), - TEST("http://www.isthe.com/chongo/tech/math/number/howhigh.html"), - TEST("http://www.isthe.com/chongo/tech/math/number/number.html"), - TEST("http://www.isthe.com/chongo/tech/math/prime/mersenne.html"), - TEST("http://www.isthe.com/chongo/tech/math/prime/mersenne.html#largest"), - TEST("http://www.lavarnd.org/cgi-bin/corpspeak.cgi"), - TEST("http://www.lavarnd.org/cgi-bin/haiku.cgi"), - TEST("http://www.lavarnd.org/cgi-bin/rand-none.cgi"), - TEST("http://www.lavarnd.org/cgi-bin/randdist.cgi"), - TEST("http://www.lavarnd.org/index.html"), - TEST("http://www.lavarnd.org/what/nist-test.html"), - TEST("http://www.macosxhints.com/"), - TEST("http://www.mellis.com/"), - TEST("http://www.nature.nps.gov/air/webcams/parks/havoso2alert/havoalert.cfm"), - TEST("http://www.nature.nps.gov/air/webcams/parks/havoso2alert/timelines_24.cfm"), - TEST("http://www.paulnoll.com/"), - TEST("http://www.pepysdiary.com/"), - TEST("http://www.sciencenews.org/index/home/activity/view"), - TEST("http://www.skyandtelescope.com/"), - TEST("http://www.sput.nl/~rob/sirius.html"), - TEST("http://www.systemexperts.com/"), - TEST("http://www.tq-international.com/phpBB3/index.php"), - TEST("http://www.travelquesttours.com/index.htm"), - TEST("http://www.wunderground.com/global/stations/89606.html"), - TEST(R10("21701")), - TEST(R10("M21701")), - TEST(R10("2^21701-1")), - TEST(R10("\x54\xc5")), - TEST(R10("\xc5\x54")), - TEST(R10("23209")), - TEST(R10("M23209")), - TEST(R10("2^23209-1")), - TEST(R10("\x5a\xa9")), - TEST(R10("\xa9\x5a")), - TEST(R10("391581216093")), - TEST(R10("391581*2^216093-1")), - TEST(R10("\x05\xf9\x9d\x03\x4c\x81")), - TEST(R10("FEDCBA9876543210")), - TEST(R10("\xfe\xdc\xba\x98\x76\x54\x32\x10")), - TEST(R10("EFCDAB8967452301")), - TEST(R10("\xef\xcd\xab\x89\x67\x45\x23\x01")), - TEST(R10("0123456789ABCDEF")), - TEST(R10("\x01\x23\x45\x67\x89\xab\xcd\xef")), - TEST(R10("1032547698BADCFE")), - TEST(R10("\x10\x32\x54\x76\x98\xba\xdc\xfe")), - TEST(R500("\x00")), - TEST(R500("\x07")), - TEST(R500("~")), - TEST(R500("\x7f")), - {NULL, 0} /* MUST BE LAST */ -}; - - -/* - * insert the contents of vector.c below - * - * make vector.c - * :r vector.c - */ -/* start of output generated by make vector.c */ - -/* FNV-0 32 bit test vectors */ -struct fnv0_32_test_vector fnv0_32_vector[] = { - { &fnv_test_str[0], (Fnv32_t) 0x00000000UL }, - { &fnv_test_str[1], (Fnv32_t) 0x00000061UL }, - { &fnv_test_str[2], (Fnv32_t) 0x00000062UL }, - { &fnv_test_str[3], (Fnv32_t) 0x00000063UL }, - { &fnv_test_str[4], (Fnv32_t) 0x00000064UL }, - { &fnv_test_str[5], (Fnv32_t) 0x00000065UL }, - { &fnv_test_str[6], (Fnv32_t) 0x00000066UL }, - { &fnv_test_str[7], (Fnv32_t) 0x6600a0fdUL }, - { &fnv_test_str[8], (Fnv32_t) 0x8ffd6e28UL }, - { &fnv_test_str[9], (Fnv32_t) 0xd3f4689aUL }, - { &fnv_test_str[10], (Fnv32_t) 0x43c0aa0fUL }, - { &fnv_test_str[11], (Fnv32_t) 0xb74bb5efUL }, - { &fnv_test_str[12], (Fnv32_t) 0x00000000UL }, - { &fnv_test_str[13], (Fnv32_t) 0x610098b3UL }, - { &fnv_test_str[14], (Fnv32_t) 0x62009a46UL }, - { &fnv_test_str[15], (Fnv32_t) 0x63009bd9UL }, - { &fnv_test_str[16], (Fnv32_t) 0x64009d6cUL }, - { &fnv_test_str[17], (Fnv32_t) 0x65009effUL }, - { &fnv_test_str[18], (Fnv32_t) 0x6600a092UL }, - { &fnv_test_str[19], (Fnv32_t) 0x8ffd6e47UL }, - { &fnv_test_str[20], (Fnv32_t) 0xd3f468f8UL }, - { &fnv_test_str[21], (Fnv32_t) 0x43c0aa6eUL }, - { &fnv_test_str[22], (Fnv32_t) 0xb74bb59dUL }, - { &fnv_test_str[23], (Fnv32_t) 0x7b2f673dUL }, - { &fnv_test_str[24], (Fnv32_t) 0x63009bb1UL }, - { &fnv_test_str[25], (Fnv32_t) 0x8af517ccUL }, - { &fnv_test_str[26], (Fnv32_t) 0x8bd4764aUL }, - { &fnv_test_str[27], (Fnv32_t) 0x69763619UL }, - { &fnv_test_str[28], (Fnv32_t) 0x1e172934UL }, - { &fnv_test_str[29], (Fnv32_t) 0x9275dcfcUL }, - { &fnv_test_str[30], (Fnv32_t) 0x8b8ae0c3UL }, - { &fnv_test_str[31], (Fnv32_t) 0x6e9fd298UL }, - { &fnv_test_str[32], (Fnv32_t) 0xbd98853bUL }, - { &fnv_test_str[33], (Fnv32_t) 0xb219bbc1UL }, - { &fnv_test_str[34], (Fnv32_t) 0x1f8290bbUL }, - { &fnv_test_str[35], (Fnv32_t) 0x5589d604UL }, - { &fnv_test_str[36], (Fnv32_t) 0xabfbe83eUL }, - { &fnv_test_str[37], (Fnv32_t) 0xfb8e99ffUL }, - { &fnv_test_str[38], (Fnv32_t) 0x007c6c4cUL }, - { &fnv_test_str[39], (Fnv32_t) 0x0fde7baeUL }, - { &fnv_test_str[40], (Fnv32_t) 0x8af517a3UL }, - { &fnv_test_str[41], (Fnv32_t) 0x8bd47624UL }, - { &fnv_test_str[42], (Fnv32_t) 0x6976367eUL }, - { &fnv_test_str[43], (Fnv32_t) 0x1e17295bUL }, - { &fnv_test_str[44], (Fnv32_t) 0x9275dcdcUL }, - { &fnv_test_str[45], (Fnv32_t) 0x8b8ae0b4UL }, - { &fnv_test_str[46], (Fnv32_t) 0x6e9fd2f9UL }, - { &fnv_test_str[47], (Fnv32_t) 0xbd988548UL }, - { &fnv_test_str[48], (Fnv32_t) 0xb219bbe1UL }, - { &fnv_test_str[49], (Fnv32_t) 0x1f8290d3UL }, - { &fnv_test_str[50], (Fnv32_t) 0x5589d661UL }, - { &fnv_test_str[51], (Fnv32_t) 0xabfbe84cUL }, - { &fnv_test_str[52], (Fnv32_t) 0xfb8e999aUL }, - { &fnv_test_str[53], (Fnv32_t) 0x007c6c6dUL }, - { &fnv_test_str[54], (Fnv32_t) 0x0fde7ba4UL }, - { &fnv_test_str[55], (Fnv32_t) 0xa93cb2eaUL }, - { &fnv_test_str[56], (Fnv32_t) 0x63009bacUL }, - { &fnv_test_str[57], (Fnv32_t) 0x85f50fb6UL }, - { &fnv_test_str[58], (Fnv32_t) 0x96c7bbe6UL }, - { &fnv_test_str[59], (Fnv32_t) 0x426ccb61UL }, - { &fnv_test_str[60], (Fnv32_t) 0xf2442993UL }, - { &fnv_test_str[61], (Fnv32_t) 0xf44d7208UL }, - { &fnv_test_str[62], (Fnv32_t) 0x9dea82f6UL }, - { &fnv_test_str[63], (Fnv32_t) 0x8e2c2926UL }, - { &fnv_test_str[64], (Fnv32_t) 0xf584c6f2UL }, - { &fnv_test_str[65], (Fnv32_t) 0x72052e81UL }, - { &fnv_test_str[66], (Fnv32_t) 0xff28357bUL }, - { &fnv_test_str[67], (Fnv32_t) 0x274c30c4UL }, - { &fnv_test_str[68], (Fnv32_t) 0xa0f0c4f5UL }, - { &fnv_test_str[69], (Fnv32_t) 0x50060da5UL }, - { &fnv_test_str[70], (Fnv32_t) 0x85f50fc4UL }, - { &fnv_test_str[71], (Fnv32_t) 0x96c7bb82UL }, - { &fnv_test_str[72], (Fnv32_t) 0x426ccb12UL }, - { &fnv_test_str[73], (Fnv32_t) 0xf24429b3UL }, - { &fnv_test_str[74], (Fnv32_t) 0xf44d7269UL }, - { &fnv_test_str[75], (Fnv32_t) 0x9dea8298UL }, - { &fnv_test_str[76], (Fnv32_t) 0x8e2c2942UL }, - { &fnv_test_str[77], (Fnv32_t) 0xf584c6d2UL }, - { &fnv_test_str[78], (Fnv32_t) 0x72052ef6UL }, - { &fnv_test_str[79], (Fnv32_t) 0xff283513UL }, - { &fnv_test_str[80], (Fnv32_t) 0x274c30a1UL }, - { &fnv_test_str[81], (Fnv32_t) 0xa0f0c48cUL }, - { &fnv_test_str[82], (Fnv32_t) 0x50060dafUL }, - { &fnv_test_str[83], (Fnv32_t) 0x9e877abfUL }, - { &fnv_test_str[84], (Fnv32_t) 0x6800a3d1UL }, - { &fnv_test_str[85], (Fnv32_t) 0x8a01e203UL }, - { &fnv_test_str[86], (Fnv32_t) 0xec6d6be8UL }, - { &fnv_test_str[87], (Fnv32_t) 0x1840de38UL }, - { &fnv_test_str[88], (Fnv32_t) 0xa7cc97b4UL }, - { &fnv_test_str[89], (Fnv32_t) 0x3ee6b3b4UL }, - { &fnv_test_str[90], (Fnv32_t) 0xa7cc97b7UL }, - { &fnv_test_str[91], (Fnv32_t) 0x7dcd6669UL }, - { &fnv_test_str[92], (Fnv32_t) 0xa7cc97b6UL }, - { &fnv_test_str[93], (Fnv32_t) 0xbcb4191eUL }, - { &fnv_test_str[94], (Fnv32_t) 0xa7cc97b1UL }, - { &fnv_test_str[95], (Fnv32_t) 0xfb9acdd3UL }, - { &fnv_test_str[96], (Fnv32_t) 0x89380433UL }, - { &fnv_test_str[97], (Fnv32_t) 0x8acd2855UL }, - { &fnv_test_str[98], (Fnv32_t) 0x8938043dUL }, - { &fnv_test_str[99], (Fnv32_t) 0xcaeed493UL }, - { &fnv_test_str[100], (Fnv32_t) 0x89380423UL }, - { &fnv_test_str[101], (Fnv32_t) 0x59382a25UL }, - { &fnv_test_str[102], (Fnv32_t) 0x567f75d7UL }, - { &fnv_test_str[103], (Fnv32_t) 0x01a68175UL }, - { &fnv_test_str[104], (Fnv32_t) 0x567f75d4UL }, - { &fnv_test_str[105], (Fnv32_t) 0xfea67cbcUL }, - { &fnv_test_str[106], (Fnv32_t) 0x567f75d5UL }, - { &fnv_test_str[107], (Fnv32_t) 0xffa67e4fUL }, - { &fnv_test_str[108], (Fnv32_t) 0xd131b668UL }, - { &fnv_test_str[109], (Fnv32_t) 0xb94225b8UL }, - { &fnv_test_str[110], (Fnv32_t) 0xd231b7d7UL }, - { &fnv_test_str[111], (Fnv32_t) 0xbb446775UL }, - { &fnv_test_str[112], (Fnv32_t) 0xdf31cc6eUL }, - { &fnv_test_str[113], (Fnv32_t) 0xc964d12aUL }, - { &fnv_test_str[114], (Fnv32_t) 0x23af8f9fUL }, - { &fnv_test_str[115], (Fnv32_t) 0xcc5f174dUL }, - { &fnv_test_str[116], (Fnv32_t) 0x96b29b8cUL }, - { &fnv_test_str[117], (Fnv32_t) 0xc72add64UL }, - { &fnv_test_str[118], (Fnv32_t) 0x528fb7efUL }, - { &fnv_test_str[119], (Fnv32_t) 0xe73e8d3dUL }, - { &fnv_test_str[120], (Fnv32_t) 0x876386feUL }, - { &fnv_test_str[121], (Fnv32_t) 0x811c9dc5UL }, - { &fnv_test_str[122], (Fnv32_t) 0x050c5d1fUL }, - { &fnv_test_str[123], (Fnv32_t) 0x14bf7238UL }, - { &fnv_test_str[124], (Fnv32_t) 0xe160ce28UL }, - { &fnv_test_str[125], (Fnv32_t) 0x89dc5a75UL }, - { &fnv_test_str[126], (Fnv32_t) 0xd89b69a0UL }, - { &fnv_test_str[127], (Fnv32_t) 0x94471a88UL }, - { &fnv_test_str[128], (Fnv32_t) 0xe78db65fUL }, - { &fnv_test_str[129], (Fnv32_t) 0x0c3009a2UL }, - { &fnv_test_str[130], (Fnv32_t) 0x122dff03UL }, - { &fnv_test_str[131], (Fnv32_t) 0xb4cd8875UL }, - { &fnv_test_str[132], (Fnv32_t) 0xf4dba725UL }, - { &fnv_test_str[133], (Fnv32_t) 0x41a16560UL }, - { &fnv_test_str[134], (Fnv32_t) 0x9c0f941fUL }, - { &fnv_test_str[135], (Fnv32_t) 0x451a5348UL }, - { &fnv_test_str[136], (Fnv32_t) 0x3f1d1d89UL }, - { &fnv_test_str[137], (Fnv32_t) 0x1b91b57aUL }, - { &fnv_test_str[138], (Fnv32_t) 0x3e99b577UL }, - { &fnv_test_str[139], (Fnv32_t) 0x4c9de07aUL }, - { &fnv_test_str[140], (Fnv32_t) 0x1ddf7572UL }, - { &fnv_test_str[141], (Fnv32_t) 0x64e81976UL }, - { &fnv_test_str[142], (Fnv32_t) 0x1106a888UL }, - { &fnv_test_str[143], (Fnv32_t) 0xa498d8e5UL }, - { &fnv_test_str[144], (Fnv32_t) 0x3c03d2e3UL }, - { &fnv_test_str[145], (Fnv32_t) 0x26568b28UL }, - { &fnv_test_str[146], (Fnv32_t) 0x70d7fb42UL }, - { &fnv_test_str[147], (Fnv32_t) 0xd3ae1d22UL }, - { &fnv_test_str[148], (Fnv32_t) 0xac8ea5f4UL }, - { &fnv_test_str[149], (Fnv32_t) 0x4d0abd60UL }, - { &fnv_test_str[150], (Fnv32_t) 0x48f5e086UL }, - { &fnv_test_str[151], (Fnv32_t) 0xa8f6241bUL }, - { &fnv_test_str[152], (Fnv32_t) 0x572f864fUL }, - { &fnv_test_str[153], (Fnv32_t) 0xa5340803UL }, - { &fnv_test_str[154], (Fnv32_t) 0x22881aa8UL }, - { &fnv_test_str[155], (Fnv32_t) 0xc2e2f5a2UL }, - { &fnv_test_str[156], (Fnv32_t) 0xebf5aec7UL }, - { &fnv_test_str[157], (Fnv32_t) 0x3cdbfb85UL }, - { &fnv_test_str[158], (Fnv32_t) 0xbb859704UL }, - { &fnv_test_str[159], (Fnv32_t) 0xc956fe11UL }, - { &fnv_test_str[160], (Fnv32_t) 0x8f11a7c9UL }, - { &fnv_test_str[161], (Fnv32_t) 0x36c48ecfUL }, - { &fnv_test_str[162], (Fnv32_t) 0x24bfa27eUL }, - { &fnv_test_str[163], (Fnv32_t) 0xf2596ad1UL }, - { &fnv_test_str[164], (Fnv32_t) 0xf14a9b45UL }, - { &fnv_test_str[165], (Fnv32_t) 0x7d45835aUL }, - { &fnv_test_str[166], (Fnv32_t) 0x6e49334dUL }, - { &fnv_test_str[167], (Fnv32_t) 0x71767337UL }, - { &fnv_test_str[168], (Fnv32_t) 0x858a1a8aUL }, - { &fnv_test_str[169], (Fnv32_t) 0x16e75ac2UL }, - { &fnv_test_str[170], (Fnv32_t) 0x409f99dfUL }, - { &fnv_test_str[171], (Fnv32_t) 0x6d6652ddUL }, - { &fnv_test_str[172], (Fnv32_t) 0x2761a9ffUL }, - { &fnv_test_str[173], (Fnv32_t) 0x41f0d616UL }, - { &fnv_test_str[174], (Fnv32_t) 0x0e2d0d0fUL }, - { &fnv_test_str[175], (Fnv32_t) 0x06adc8fdUL }, - { &fnv_test_str[176], (Fnv32_t) 0x60e0d4b9UL }, - { &fnv_test_str[177], (Fnv32_t) 0x5ddc79d3UL }, - { &fnv_test_str[178], (Fnv32_t) 0x1e6d0b46UL }, - { &fnv_test_str[179], (Fnv32_t) 0x1d1514d8UL }, - { &fnv_test_str[180], (Fnv32_t) 0xb1903a4eUL }, - { &fnv_test_str[181], (Fnv32_t) 0x8200c318UL }, - { &fnv_test_str[182], (Fnv32_t) 0x15e22888UL }, - { &fnv_test_str[183], (Fnv32_t) 0x57591760UL }, - { &fnv_test_str[184], (Fnv32_t) 0x02462efcUL }, - { &fnv_test_str[185], (Fnv32_t) 0x7651ec44UL }, - { &fnv_test_str[186], (Fnv32_t) 0x7c24e9d4UL }, - { &fnv_test_str[187], (Fnv32_t) 0x1952a034UL }, - { &fnv_test_str[188], (Fnv32_t) 0xd4c46864UL }, - { &fnv_test_str[189], (Fnv32_t) 0xcb57cde0UL }, - { &fnv_test_str[190], (Fnv32_t) 0x71136a70UL }, - { &fnv_test_str[191], (Fnv32_t) 0x0618fb40UL }, - { &fnv_test_str[192], (Fnv32_t) 0x69a24fc0UL }, - { &fnv_test_str[193], (Fnv32_t) 0x6a9be510UL }, - { &fnv_test_str[194], (Fnv32_t) 0xe0477040UL }, - { &fnv_test_str[195], (Fnv32_t) 0x85aa94b0UL }, - { &fnv_test_str[196], (Fnv32_t) 0xc6d76240UL }, - { &fnv_test_str[197], (Fnv32_t) 0xa9f09e40UL }, - { &fnv_test_str[198], (Fnv32_t) 0xa0291540UL }, - { &fnv_test_str[199], (Fnv32_t) 0x00000000UL }, - { &fnv_test_str[200], (Fnv32_t) 0x2e672aa4UL }, - { &fnv_test_str[201], (Fnv32_t) 0x84b1aa48UL }, - { &fnv_test_str[202], (Fnv32_t) 0xfc24ba24UL }, - { NULL, 0 } -}; - -/* FNV-1 32 bit test vectors */ -struct fnv1_32_test_vector fnv1_32_vector[] = { - { &fnv_test_str[0], (Fnv32_t) 0x811c9dc5UL }, - { &fnv_test_str[1], (Fnv32_t) 0x050c5d7eUL }, - { &fnv_test_str[2], (Fnv32_t) 0x050c5d7dUL }, - { &fnv_test_str[3], (Fnv32_t) 0x050c5d7cUL }, - { &fnv_test_str[4], (Fnv32_t) 0x050c5d7bUL }, - { &fnv_test_str[5], (Fnv32_t) 0x050c5d7aUL }, - { &fnv_test_str[6], (Fnv32_t) 0x050c5d79UL }, - { &fnv_test_str[7], (Fnv32_t) 0x6b772514UL }, - { &fnv_test_str[8], (Fnv32_t) 0x408f5e13UL }, - { &fnv_test_str[9], (Fnv32_t) 0xb4b1178bUL }, - { &fnv_test_str[10], (Fnv32_t) 0xfdc80fb0UL }, - { &fnv_test_str[11], (Fnv32_t) 0x31f0b262UL }, - { &fnv_test_str[12], (Fnv32_t) 0x050c5d1fUL }, - { &fnv_test_str[13], (Fnv32_t) 0x70772d5aUL }, - { &fnv_test_str[14], (Fnv32_t) 0x6f772bc7UL }, - { &fnv_test_str[15], (Fnv32_t) 0x6e772a34UL }, - { &fnv_test_str[16], (Fnv32_t) 0x6d7728a1UL }, - { &fnv_test_str[17], (Fnv32_t) 0x6c77270eUL }, - { &fnv_test_str[18], (Fnv32_t) 0x6b77257bUL }, - { &fnv_test_str[19], (Fnv32_t) 0x408f5e7cUL }, - { &fnv_test_str[20], (Fnv32_t) 0xb4b117e9UL }, - { &fnv_test_str[21], (Fnv32_t) 0xfdc80fd1UL }, - { &fnv_test_str[22], (Fnv32_t) 0x31f0b210UL }, - { &fnv_test_str[23], (Fnv32_t) 0xffe8d046UL }, - { &fnv_test_str[24], (Fnv32_t) 0x6e772a5cUL }, - { &fnv_test_str[25], (Fnv32_t) 0x4197aebbUL }, - { &fnv_test_str[26], (Fnv32_t) 0xfcc8100fUL }, - { &fnv_test_str[27], (Fnv32_t) 0xfdf147faUL }, - { &fnv_test_str[28], (Fnv32_t) 0xbcd44ee1UL }, - { &fnv_test_str[29], (Fnv32_t) 0x23382c13UL }, - { &fnv_test_str[30], (Fnv32_t) 0x846d619eUL }, - { &fnv_test_str[31], (Fnv32_t) 0x1630abdbUL }, - { &fnv_test_str[32], (Fnv32_t) 0xc99e89b2UL }, - { &fnv_test_str[33], (Fnv32_t) 0x1692c316UL }, - { &fnv_test_str[34], (Fnv32_t) 0x9f091bcaUL }, - { &fnv_test_str[35], (Fnv32_t) 0x2556be9bUL }, - { &fnv_test_str[36], (Fnv32_t) 0x628e0e73UL }, - { &fnv_test_str[37], (Fnv32_t) 0x98a0bf6cUL }, - { &fnv_test_str[38], (Fnv32_t) 0xb10d5725UL }, - { &fnv_test_str[39], (Fnv32_t) 0xdd002f35UL }, - { &fnv_test_str[40], (Fnv32_t) 0x4197aed4UL }, - { &fnv_test_str[41], (Fnv32_t) 0xfcc81061UL }, - { &fnv_test_str[42], (Fnv32_t) 0xfdf1479dUL }, - { &fnv_test_str[43], (Fnv32_t) 0xbcd44e8eUL }, - { &fnv_test_str[44], (Fnv32_t) 0x23382c33UL }, - { &fnv_test_str[45], (Fnv32_t) 0x846d61e9UL }, - { &fnv_test_str[46], (Fnv32_t) 0x1630abbaUL }, - { &fnv_test_str[47], (Fnv32_t) 0xc99e89c1UL }, - { &fnv_test_str[48], (Fnv32_t) 0x1692c336UL }, - { &fnv_test_str[49], (Fnv32_t) 0x9f091ba2UL }, - { &fnv_test_str[50], (Fnv32_t) 0x2556befeUL }, - { &fnv_test_str[51], (Fnv32_t) 0x628e0e01UL }, - { &fnv_test_str[52], (Fnv32_t) 0x98a0bf09UL }, - { &fnv_test_str[53], (Fnv32_t) 0xb10d5704UL }, - { &fnv_test_str[54], (Fnv32_t) 0xdd002f3fUL }, - { &fnv_test_str[55], (Fnv32_t) 0x1c4a506fUL }, - { &fnv_test_str[56], (Fnv32_t) 0x6e772a41UL }, - { &fnv_test_str[57], (Fnv32_t) 0x26978421UL }, - { &fnv_test_str[58], (Fnv32_t) 0xe184ff97UL }, - { &fnv_test_str[59], (Fnv32_t) 0x9b5e5ac6UL }, - { &fnv_test_str[60], (Fnv32_t) 0x5b88e592UL }, - { &fnv_test_str[61], (Fnv32_t) 0xaa8164b7UL }, - { &fnv_test_str[62], (Fnv32_t) 0x20b18c7bUL }, - { &fnv_test_str[63], (Fnv32_t) 0xf28025c5UL }, - { &fnv_test_str[64], (Fnv32_t) 0x84bb753fUL }, - { &fnv_test_str[65], (Fnv32_t) 0x3219925aUL }, - { &fnv_test_str[66], (Fnv32_t) 0x384163c6UL }, - { &fnv_test_str[67], (Fnv32_t) 0x54f010d7UL }, - { &fnv_test_str[68], (Fnv32_t) 0x8cea820cUL }, - { &fnv_test_str[69], (Fnv32_t) 0xe12ab8eeUL }, - { &fnv_test_str[70], (Fnv32_t) 0x26978453UL }, - { &fnv_test_str[71], (Fnv32_t) 0xe184fff3UL }, - { &fnv_test_str[72], (Fnv32_t) 0x9b5e5ab5UL }, - { &fnv_test_str[73], (Fnv32_t) 0x5b88e5b2UL }, - { &fnv_test_str[74], (Fnv32_t) 0xaa8164d6UL }, - { &fnv_test_str[75], (Fnv32_t) 0x20b18c15UL }, - { &fnv_test_str[76], (Fnv32_t) 0xf28025a1UL }, - { &fnv_test_str[77], (Fnv32_t) 0x84bb751fUL }, - { &fnv_test_str[78], (Fnv32_t) 0x3219922dUL }, - { &fnv_test_str[79], (Fnv32_t) 0x384163aeUL }, - { &fnv_test_str[80], (Fnv32_t) 0x54f010b2UL }, - { &fnv_test_str[81], (Fnv32_t) 0x8cea8275UL }, - { &fnv_test_str[82], (Fnv32_t) 0xe12ab8e4UL }, - { &fnv_test_str[83], (Fnv32_t) 0x64411eaaUL }, - { &fnv_test_str[84], (Fnv32_t) 0x6977223cUL }, - { &fnv_test_str[85], (Fnv32_t) 0x428ae474UL }, - { &fnv_test_str[86], (Fnv32_t) 0xb6fa7167UL }, - { &fnv_test_str[87], (Fnv32_t) 0x73408525UL }, - { &fnv_test_str[88], (Fnv32_t) 0xb78320a1UL }, - { &fnv_test_str[89], (Fnv32_t) 0x0caf4135UL }, - { &fnv_test_str[90], (Fnv32_t) 0xb78320a2UL }, - { &fnv_test_str[91], (Fnv32_t) 0xcdc88e80UL }, - { &fnv_test_str[92], (Fnv32_t) 0xb78320a3UL }, - { &fnv_test_str[93], (Fnv32_t) 0x8ee1dbcbUL }, - { &fnv_test_str[94], (Fnv32_t) 0xb78320a4UL }, - { &fnv_test_str[95], (Fnv32_t) 0x4ffb2716UL }, - { &fnv_test_str[96], (Fnv32_t) 0x860632aaUL }, - { &fnv_test_str[97], (Fnv32_t) 0xcc2c5c64UL }, - { &fnv_test_str[98], (Fnv32_t) 0x860632a4UL }, - { &fnv_test_str[99], (Fnv32_t) 0x2a7ec4a6UL }, - { &fnv_test_str[100], (Fnv32_t) 0x860632baUL }, - { &fnv_test_str[101], (Fnv32_t) 0xfefe8e14UL }, - { &fnv_test_str[102], (Fnv32_t) 0x0a3cffd8UL }, - { &fnv_test_str[103], (Fnv32_t) 0xf606c108UL }, - { &fnv_test_str[104], (Fnv32_t) 0x0a3cffdbUL }, - { &fnv_test_str[105], (Fnv32_t) 0xf906c5c1UL }, - { &fnv_test_str[106], (Fnv32_t) 0x0a3cffdaUL }, - { &fnv_test_str[107], (Fnv32_t) 0xf806c42eUL }, - { &fnv_test_str[108], (Fnv32_t) 0xc07167d7UL }, - { &fnv_test_str[109], (Fnv32_t) 0xc9867775UL }, - { &fnv_test_str[110], (Fnv32_t) 0xbf716668UL }, - { &fnv_test_str[111], (Fnv32_t) 0xc78435b8UL }, - { &fnv_test_str[112], (Fnv32_t) 0xc6717155UL }, - { &fnv_test_str[113], (Fnv32_t) 0xb99568cfUL }, - { &fnv_test_str[114], (Fnv32_t) 0x7662e0d6UL }, - { &fnv_test_str[115], (Fnv32_t) 0x33a7f0e2UL }, - { &fnv_test_str[116], (Fnv32_t) 0xc2732f95UL }, - { &fnv_test_str[117], (Fnv32_t) 0xb053e78fUL }, - { &fnv_test_str[118], (Fnv32_t) 0x3a19c02aUL }, - { &fnv_test_str[119], (Fnv32_t) 0xa089821eUL }, - { &fnv_test_str[120], (Fnv32_t) 0x31ae8f83UL }, - { &fnv_test_str[121], (Fnv32_t) 0x995fa9c4UL }, - { &fnv_test_str[122], (Fnv32_t) 0x35983f8cUL }, - { &fnv_test_str[123], (Fnv32_t) 0x5036a251UL }, - { &fnv_test_str[124], (Fnv32_t) 0x97018583UL }, - { &fnv_test_str[125], (Fnv32_t) 0xb4448d60UL }, - { &fnv_test_str[126], (Fnv32_t) 0x025dfe59UL }, - { &fnv_test_str[127], (Fnv32_t) 0xc5eab3afUL }, - { &fnv_test_str[128], (Fnv32_t) 0x7d21ba1eUL }, - { &fnv_test_str[129], (Fnv32_t) 0x7704cddbUL }, - { &fnv_test_str[130], (Fnv32_t) 0xd0071bfeUL }, - { &fnv_test_str[131], (Fnv32_t) 0x0ff3774cUL }, - { &fnv_test_str[132], (Fnv32_t) 0xb0fea0eaUL }, - { &fnv_test_str[133], (Fnv32_t) 0x58177303UL }, - { &fnv_test_str[134], (Fnv32_t) 0x4f599cdaUL }, - { &fnv_test_str[135], (Fnv32_t) 0x3e590a47UL }, - { &fnv_test_str[136], (Fnv32_t) 0x965595f8UL }, - { &fnv_test_str[137], (Fnv32_t) 0xc37f178dUL }, - { &fnv_test_str[138], (Fnv32_t) 0x9711dd26UL }, - { &fnv_test_str[139], (Fnv32_t) 0x23c99b7fUL }, - { &fnv_test_str[140], (Fnv32_t) 0x6e568b17UL }, - { &fnv_test_str[141], (Fnv32_t) 0x43f0245bUL }, - { &fnv_test_str[142], (Fnv32_t) 0xbcb7a001UL }, - { &fnv_test_str[143], (Fnv32_t) 0x12e6dffeUL }, - { &fnv_test_str[144], (Fnv32_t) 0x0792f2d6UL }, - { &fnv_test_str[145], (Fnv32_t) 0xb966936bUL }, - { &fnv_test_str[146], (Fnv32_t) 0x46439ac5UL }, - { &fnv_test_str[147], (Fnv32_t) 0x728d49afUL }, - { &fnv_test_str[148], (Fnv32_t) 0xd33745c9UL }, - { &fnv_test_str[149], (Fnv32_t) 0xbc382a57UL }, - { &fnv_test_str[150], (Fnv32_t) 0x4bda1d31UL }, - { &fnv_test_str[151], (Fnv32_t) 0xce35ccaeUL }, - { &fnv_test_str[152], (Fnv32_t) 0x3b6eed94UL }, - { &fnv_test_str[153], (Fnv32_t) 0x445c9c58UL }, - { &fnv_test_str[154], (Fnv32_t) 0x3db8bf9dUL }, - { &fnv_test_str[155], (Fnv32_t) 0x2dee116dUL }, - { &fnv_test_str[156], (Fnv32_t) 0xc18738daUL }, - { &fnv_test_str[157], (Fnv32_t) 0x5b156176UL }, - { &fnv_test_str[158], (Fnv32_t) 0x2aa7d593UL }, - { &fnv_test_str[159], (Fnv32_t) 0xb2409658UL }, - { &fnv_test_str[160], (Fnv32_t) 0xe1489528UL }, - { &fnv_test_str[161], (Fnv32_t) 0xfe1ee07eUL }, - { &fnv_test_str[162], (Fnv32_t) 0xe8842315UL }, - { &fnv_test_str[163], (Fnv32_t) 0x3a6a63a2UL }, - { &fnv_test_str[164], (Fnv32_t) 0x06d2c18cUL }, - { &fnv_test_str[165], (Fnv32_t) 0xf8ef7225UL }, - { &fnv_test_str[166], (Fnv32_t) 0x843d3300UL }, - { &fnv_test_str[167], (Fnv32_t) 0xbb24f7aeUL }, - { &fnv_test_str[168], (Fnv32_t) 0x878c0ec9UL }, - { &fnv_test_str[169], (Fnv32_t) 0xb557810fUL }, - { &fnv_test_str[170], (Fnv32_t) 0x57423246UL }, - { &fnv_test_str[171], (Fnv32_t) 0x87f7505eUL }, - { &fnv_test_str[172], (Fnv32_t) 0xbb809f20UL }, - { &fnv_test_str[173], (Fnv32_t) 0x8932abb5UL }, - { &fnv_test_str[174], (Fnv32_t) 0x0a9b3aa0UL }, - { &fnv_test_str[175], (Fnv32_t) 0xb8682a24UL }, - { &fnv_test_str[176], (Fnv32_t) 0xa7ac1c56UL }, - { &fnv_test_str[177], (Fnv32_t) 0x11409252UL }, - { &fnv_test_str[178], (Fnv32_t) 0xa987f517UL }, - { &fnv_test_str[179], (Fnv32_t) 0xf309e7edUL }, - { &fnv_test_str[180], (Fnv32_t) 0xc9e8f417UL }, - { &fnv_test_str[181], (Fnv32_t) 0x7f447bddUL }, - { &fnv_test_str[182], (Fnv32_t) 0xb929adc5UL }, - { &fnv_test_str[183], (Fnv32_t) 0x57022879UL }, - { &fnv_test_str[184], (Fnv32_t) 0xdcfd2c49UL }, - { &fnv_test_str[185], (Fnv32_t) 0x6edafff5UL }, - { &fnv_test_str[186], (Fnv32_t) 0xf04fb1f1UL }, - { &fnv_test_str[187], (Fnv32_t) 0xfb7de8b9UL }, - { &fnv_test_str[188], (Fnv32_t) 0xc5f1d7e9UL }, - { &fnv_test_str[189], (Fnv32_t) 0x32c1f439UL }, - { &fnv_test_str[190], (Fnv32_t) 0x7fd3eb7dUL }, - { &fnv_test_str[191], (Fnv32_t) 0x81597da5UL }, - { &fnv_test_str[192], (Fnv32_t) 0x05eb7a25UL }, - { &fnv_test_str[193], (Fnv32_t) 0x9c0fa1b5UL }, - { &fnv_test_str[194], (Fnv32_t) 0x53ccb1c5UL }, - { &fnv_test_str[195], (Fnv32_t) 0xfabece15UL }, - { &fnv_test_str[196], (Fnv32_t) 0x4ad745a5UL }, - { &fnv_test_str[197], (Fnv32_t) 0xe5bdc495UL }, - { &fnv_test_str[198], (Fnv32_t) 0x23b3c0a5UL }, - { &fnv_test_str[199], (Fnv32_t) 0xfa823dd5UL }, - { &fnv_test_str[200], (Fnv32_t) 0x0c6c58b9UL }, - { &fnv_test_str[201], (Fnv32_t) 0xe2dbccd5UL }, - { &fnv_test_str[202], (Fnv32_t) 0xdb7f50f9UL }, - { NULL, 0 } -}; - -/* FNV-1a 32 bit test vectors */ -struct fnv1a_32_test_vector fnv1a_32_vector[] = { - { &fnv_test_str[0], (Fnv32_t) 0x811c9dc5UL }, - { &fnv_test_str[1], (Fnv32_t) 0xe40c292cUL }, - { &fnv_test_str[2], (Fnv32_t) 0xe70c2de5UL }, - { &fnv_test_str[3], (Fnv32_t) 0xe60c2c52UL }, - { &fnv_test_str[4], (Fnv32_t) 0xe10c2473UL }, - { &fnv_test_str[5], (Fnv32_t) 0xe00c22e0UL }, - { &fnv_test_str[6], (Fnv32_t) 0xe30c2799UL }, - { &fnv_test_str[7], (Fnv32_t) 0x6222e842UL }, - { &fnv_test_str[8], (Fnv32_t) 0xa9f37ed7UL }, - { &fnv_test_str[9], (Fnv32_t) 0x3f5076efUL }, - { &fnv_test_str[10], (Fnv32_t) 0x39aaa18aUL }, - { &fnv_test_str[11], (Fnv32_t) 0xbf9cf968UL }, - { &fnv_test_str[12], (Fnv32_t) 0x050c5d1fUL }, - { &fnv_test_str[13], (Fnv32_t) 0x2b24d044UL }, - { &fnv_test_str[14], (Fnv32_t) 0x9d2c3f7fUL }, - { &fnv_test_str[15], (Fnv32_t) 0x7729c516UL }, - { &fnv_test_str[16], (Fnv32_t) 0xb91d6109UL }, - { &fnv_test_str[17], (Fnv32_t) 0x931ae6a0UL }, - { &fnv_test_str[18], (Fnv32_t) 0x052255dbUL }, - { &fnv_test_str[19], (Fnv32_t) 0xbef39fe6UL }, - { &fnv_test_str[20], (Fnv32_t) 0x6150ac75UL }, - { &fnv_test_str[21], (Fnv32_t) 0x9aab3a3dUL }, - { &fnv_test_str[22], (Fnv32_t) 0x519c4c3eUL }, - { &fnv_test_str[23], (Fnv32_t) 0x0c1c9eb8UL }, - { &fnv_test_str[24], (Fnv32_t) 0x5f299f4eUL }, - { &fnv_test_str[25], (Fnv32_t) 0xef8580f3UL }, - { &fnv_test_str[26], (Fnv32_t) 0xac297727UL }, - { &fnv_test_str[27], (Fnv32_t) 0x4546b9c0UL }, - { &fnv_test_str[28], (Fnv32_t) 0xbd564e7dUL }, - { &fnv_test_str[29], (Fnv32_t) 0x6bdd5c67UL }, - { &fnv_test_str[30], (Fnv32_t) 0xdd77ed30UL }, - { &fnv_test_str[31], (Fnv32_t) 0xf4ca9683UL }, - { &fnv_test_str[32], (Fnv32_t) 0x4aeb9bd0UL }, - { &fnv_test_str[33], (Fnv32_t) 0xe0e67ad0UL }, - { &fnv_test_str[34], (Fnv32_t) 0xc2d32fa8UL }, - { &fnv_test_str[35], (Fnv32_t) 0x7f743fb7UL }, - { &fnv_test_str[36], (Fnv32_t) 0x6900631fUL }, - { &fnv_test_str[37], (Fnv32_t) 0xc59c990eUL }, - { &fnv_test_str[38], (Fnv32_t) 0x448524fdUL }, - { &fnv_test_str[39], (Fnv32_t) 0xd49930d5UL }, - { &fnv_test_str[40], (Fnv32_t) 0x1c85c7caUL }, - { &fnv_test_str[41], (Fnv32_t) 0x0229fe89UL }, - { &fnv_test_str[42], (Fnv32_t) 0x2c469265UL }, - { &fnv_test_str[43], (Fnv32_t) 0xce566940UL }, - { &fnv_test_str[44], (Fnv32_t) 0x8bdd8ec7UL }, - { &fnv_test_str[45], (Fnv32_t) 0x34787625UL }, - { &fnv_test_str[46], (Fnv32_t) 0xd3ca6290UL }, - { &fnv_test_str[47], (Fnv32_t) 0xddeaf039UL }, - { &fnv_test_str[48], (Fnv32_t) 0xc0e64870UL }, - { &fnv_test_str[49], (Fnv32_t) 0xdad35570UL }, - { &fnv_test_str[50], (Fnv32_t) 0x5a740578UL }, - { &fnv_test_str[51], (Fnv32_t) 0x5b004d15UL }, - { &fnv_test_str[52], (Fnv32_t) 0x6a9c09cdUL }, - { &fnv_test_str[53], (Fnv32_t) 0x2384f10aUL }, - { &fnv_test_str[54], (Fnv32_t) 0xda993a47UL }, - { &fnv_test_str[55], (Fnv32_t) 0x8227df4fUL }, - { &fnv_test_str[56], (Fnv32_t) 0x4c298165UL }, - { &fnv_test_str[57], (Fnv32_t) 0xfc563735UL }, - { &fnv_test_str[58], (Fnv32_t) 0x8cb91483UL }, - { &fnv_test_str[59], (Fnv32_t) 0x775bf5d0UL }, - { &fnv_test_str[60], (Fnv32_t) 0xd5c428d0UL }, - { &fnv_test_str[61], (Fnv32_t) 0x34cc0ea3UL }, - { &fnv_test_str[62], (Fnv32_t) 0xea3b4cb7UL }, - { &fnv_test_str[63], (Fnv32_t) 0x8e59f029UL }, - { &fnv_test_str[64], (Fnv32_t) 0x2094de2bUL }, - { &fnv_test_str[65], (Fnv32_t) 0xa65a0ad4UL }, - { &fnv_test_str[66], (Fnv32_t) 0x9bbee5f4UL }, - { &fnv_test_str[67], (Fnv32_t) 0xbe836343UL }, - { &fnv_test_str[68], (Fnv32_t) 0x22d5344eUL }, - { &fnv_test_str[69], (Fnv32_t) 0x19a1470cUL }, - { &fnv_test_str[70], (Fnv32_t) 0x4a56b1ffUL }, - { &fnv_test_str[71], (Fnv32_t) 0x70b8e86fUL }, - { &fnv_test_str[72], (Fnv32_t) 0x0a5b4a39UL }, - { &fnv_test_str[73], (Fnv32_t) 0xb5c3f670UL }, - { &fnv_test_str[74], (Fnv32_t) 0x53cc3f70UL }, - { &fnv_test_str[75], (Fnv32_t) 0xc03b0a99UL }, - { &fnv_test_str[76], (Fnv32_t) 0x7259c415UL }, - { &fnv_test_str[77], (Fnv32_t) 0x4095108bUL }, - { &fnv_test_str[78], (Fnv32_t) 0x7559bdb1UL }, - { &fnv_test_str[79], (Fnv32_t) 0xb3bf0bbcUL }, - { &fnv_test_str[80], (Fnv32_t) 0x2183ff1cUL }, - { &fnv_test_str[81], (Fnv32_t) 0x2bd54279UL }, - { &fnv_test_str[82], (Fnv32_t) 0x23a156caUL }, - { &fnv_test_str[83], (Fnv32_t) 0x64e2d7e4UL }, - { &fnv_test_str[84], (Fnv32_t) 0x683af69aUL }, - { &fnv_test_str[85], (Fnv32_t) 0xaed2346eUL }, - { &fnv_test_str[86], (Fnv32_t) 0x4f9f2cabUL }, - { &fnv_test_str[87], (Fnv32_t) 0x02935131UL }, - { &fnv_test_str[88], (Fnv32_t) 0xc48fb86dUL }, - { &fnv_test_str[89], (Fnv32_t) 0x2269f369UL }, - { &fnv_test_str[90], (Fnv32_t) 0xc18fb3b4UL }, - { &fnv_test_str[91], (Fnv32_t) 0x50ef1236UL }, - { &fnv_test_str[92], (Fnv32_t) 0xc28fb547UL }, - { &fnv_test_str[93], (Fnv32_t) 0x96c3bf47UL }, - { &fnv_test_str[94], (Fnv32_t) 0xbf8fb08eUL }, - { &fnv_test_str[95], (Fnv32_t) 0xf3e4d49cUL }, - { &fnv_test_str[96], (Fnv32_t) 0x32179058UL }, - { &fnv_test_str[97], (Fnv32_t) 0x280bfee6UL }, - { &fnv_test_str[98], (Fnv32_t) 0x30178d32UL }, - { &fnv_test_str[99], (Fnv32_t) 0x21addaf8UL }, - { &fnv_test_str[100], (Fnv32_t) 0x4217a988UL }, - { &fnv_test_str[101], (Fnv32_t) 0x772633d6UL }, - { &fnv_test_str[102], (Fnv32_t) 0x08a3d11eUL }, - { &fnv_test_str[103], (Fnv32_t) 0xb7e2323aUL }, - { &fnv_test_str[104], (Fnv32_t) 0x07a3cf8bUL }, - { &fnv_test_str[105], (Fnv32_t) 0x91dfb7d1UL }, - { &fnv_test_str[106], (Fnv32_t) 0x06a3cdf8UL }, - { &fnv_test_str[107], (Fnv32_t) 0x6bdd3d68UL }, - { &fnv_test_str[108], (Fnv32_t) 0x1d5636a7UL }, - { &fnv_test_str[109], (Fnv32_t) 0xd5b808e5UL }, - { &fnv_test_str[110], (Fnv32_t) 0x1353e852UL }, - { &fnv_test_str[111], (Fnv32_t) 0xbf16b916UL }, - { &fnv_test_str[112], (Fnv32_t) 0xa55b89edUL }, - { &fnv_test_str[113], (Fnv32_t) 0x3c1a2017UL }, - { &fnv_test_str[114], (Fnv32_t) 0x0588b13cUL }, - { &fnv_test_str[115], (Fnv32_t) 0xf22f0174UL }, - { &fnv_test_str[116], (Fnv32_t) 0xe83641e1UL }, - { &fnv_test_str[117], (Fnv32_t) 0x6e69b533UL }, - { &fnv_test_str[118], (Fnv32_t) 0xf1760448UL }, - { &fnv_test_str[119], (Fnv32_t) 0x64c8bd58UL }, - { &fnv_test_str[120], (Fnv32_t) 0x97b4ea23UL }, - { &fnv_test_str[121], (Fnv32_t) 0x9a4e92e6UL }, - { &fnv_test_str[122], (Fnv32_t) 0xcfb14012UL }, - { &fnv_test_str[123], (Fnv32_t) 0xf01b2511UL }, - { &fnv_test_str[124], (Fnv32_t) 0x0bbb59c3UL }, - { &fnv_test_str[125], (Fnv32_t) 0xce524afaUL }, - { &fnv_test_str[126], (Fnv32_t) 0xdd16ef45UL }, - { &fnv_test_str[127], (Fnv32_t) 0x60648bb3UL }, - { &fnv_test_str[128], (Fnv32_t) 0x7fa4bcfcUL }, - { &fnv_test_str[129], (Fnv32_t) 0x5053ae17UL }, - { &fnv_test_str[130], (Fnv32_t) 0xc9302890UL }, - { &fnv_test_str[131], (Fnv32_t) 0x956ded32UL }, - { &fnv_test_str[132], (Fnv32_t) 0x9136db84UL }, - { &fnv_test_str[133], (Fnv32_t) 0xdf9d3323UL }, - { &fnv_test_str[134], (Fnv32_t) 0x32bb6cd0UL }, - { &fnv_test_str[135], (Fnv32_t) 0xc8f8385bUL }, - { &fnv_test_str[136], (Fnv32_t) 0xeb08bfbaUL }, - { &fnv_test_str[137], (Fnv32_t) 0x62cc8e3dUL }, - { &fnv_test_str[138], (Fnv32_t) 0xc3e20f5cUL }, - { &fnv_test_str[139], (Fnv32_t) 0x39e97f17UL }, - { &fnv_test_str[140], (Fnv32_t) 0x7837b203UL }, - { &fnv_test_str[141], (Fnv32_t) 0x319e877bUL }, - { &fnv_test_str[142], (Fnv32_t) 0xd3e63f89UL }, - { &fnv_test_str[143], (Fnv32_t) 0x29b50b38UL }, - { &fnv_test_str[144], (Fnv32_t) 0x5ed678b8UL }, - { &fnv_test_str[145], (Fnv32_t) 0xb0d5b793UL }, - { &fnv_test_str[146], (Fnv32_t) 0x52450be5UL }, - { &fnv_test_str[147], (Fnv32_t) 0xfa72d767UL }, - { &fnv_test_str[148], (Fnv32_t) 0x95066709UL }, - { &fnv_test_str[149], (Fnv32_t) 0x7f52e123UL }, - { &fnv_test_str[150], (Fnv32_t) 0x76966481UL }, - { &fnv_test_str[151], (Fnv32_t) 0x063258b0UL }, - { &fnv_test_str[152], (Fnv32_t) 0x2ded6e8aUL }, - { &fnv_test_str[153], (Fnv32_t) 0xb07d7c52UL }, - { &fnv_test_str[154], (Fnv32_t) 0xd0c71b71UL }, - { &fnv_test_str[155], (Fnv32_t) 0xf684f1bdUL }, - { &fnv_test_str[156], (Fnv32_t) 0x868ecfa8UL }, - { &fnv_test_str[157], (Fnv32_t) 0xf794f684UL }, - { &fnv_test_str[158], (Fnv32_t) 0xd19701c3UL }, - { &fnv_test_str[159], (Fnv32_t) 0x346e171eUL }, - { &fnv_test_str[160], (Fnv32_t) 0x91f8f676UL }, - { &fnv_test_str[161], (Fnv32_t) 0x0bf58848UL }, - { &fnv_test_str[162], (Fnv32_t) 0x6317b6d1UL }, - { &fnv_test_str[163], (Fnv32_t) 0xafad4c54UL }, - { &fnv_test_str[164], (Fnv32_t) 0x0f25681eUL }, - { &fnv_test_str[165], (Fnv32_t) 0x91b18d49UL }, - { &fnv_test_str[166], (Fnv32_t) 0x7d61c12eUL }, - { &fnv_test_str[167], (Fnv32_t) 0x5147d25cUL }, - { &fnv_test_str[168], (Fnv32_t) 0x9a8b6805UL }, - { &fnv_test_str[169], (Fnv32_t) 0x4cd2a447UL }, - { &fnv_test_str[170], (Fnv32_t) 0x1e549b14UL }, - { &fnv_test_str[171], (Fnv32_t) 0x2fe1b574UL }, - { &fnv_test_str[172], (Fnv32_t) 0xcf0cd31eUL }, - { &fnv_test_str[173], (Fnv32_t) 0x6c471669UL }, - { &fnv_test_str[174], (Fnv32_t) 0x0e5eef1eUL }, - { &fnv_test_str[175], (Fnv32_t) 0x2bed3602UL }, - { &fnv_test_str[176], (Fnv32_t) 0xb26249e0UL }, - { &fnv_test_str[177], (Fnv32_t) 0x2c9b86a4UL }, - { &fnv_test_str[178], (Fnv32_t) 0xe415e2bbUL }, - { &fnv_test_str[179], (Fnv32_t) 0x18a98d1dUL }, - { &fnv_test_str[180], (Fnv32_t) 0xb7df8b7bUL }, - { &fnv_test_str[181], (Fnv32_t) 0x241e9075UL }, - { &fnv_test_str[182], (Fnv32_t) 0x063f70ddUL }, - { &fnv_test_str[183], (Fnv32_t) 0x0295aed9UL }, - { &fnv_test_str[184], (Fnv32_t) 0x56a7f781UL }, - { &fnv_test_str[185], (Fnv32_t) 0x253bc645UL }, - { &fnv_test_str[186], (Fnv32_t) 0x46610921UL }, - { &fnv_test_str[187], (Fnv32_t) 0x7c1577f9UL }, - { &fnv_test_str[188], (Fnv32_t) 0x512b2851UL }, - { &fnv_test_str[189], (Fnv32_t) 0x76823999UL }, - { &fnv_test_str[190], (Fnv32_t) 0xc0586935UL }, - { &fnv_test_str[191], (Fnv32_t) 0xf3415c85UL }, - { &fnv_test_str[192], (Fnv32_t) 0x0ae4ff65UL }, - { &fnv_test_str[193], (Fnv32_t) 0x58b79725UL }, - { &fnv_test_str[194], (Fnv32_t) 0xdea43aa5UL }, - { &fnv_test_str[195], (Fnv32_t) 0x2bb3be35UL }, - { &fnv_test_str[196], (Fnv32_t) 0xea777a45UL }, - { &fnv_test_str[197], (Fnv32_t) 0x8f21c305UL }, - { &fnv_test_str[198], (Fnv32_t) 0x5c9d0865UL }, - { &fnv_test_str[199], (Fnv32_t) 0xfa823dd5UL }, - { &fnv_test_str[200], (Fnv32_t) 0x21a27271UL }, - { &fnv_test_str[201], (Fnv32_t) 0x83c5c6d5UL }, - { &fnv_test_str[202], (Fnv32_t) 0x813b0881UL }, - { NULL, 0 } -}; - -/* FNV-0 64 bit test vectors */ -#if defined(HAVE_64BIT_LONG_LONG) -struct fnv0_64_test_vector fnv0_64_vector[] = { - { &fnv_test_str[0], (Fnv64_t) 0x0000000000000000ULL }, - { &fnv_test_str[1], (Fnv64_t) 0x0000000000000061ULL }, - { &fnv_test_str[2], (Fnv64_t) 0x0000000000000062ULL }, - { &fnv_test_str[3], (Fnv64_t) 0x0000000000000063ULL }, - { &fnv_test_str[4], (Fnv64_t) 0x0000000000000064ULL }, - { &fnv_test_str[5], (Fnv64_t) 0x0000000000000065ULL }, - { &fnv_test_str[6], (Fnv64_t) 0x0000000000000066ULL }, - { &fnv_test_str[7], (Fnv64_t) 0x000066000000ad3dULL }, - { &fnv_test_str[8], (Fnv64_t) 0x015a8f0001265ec8ULL }, - { &fnv_test_str[9], (Fnv64_t) 0x733fc501f4330dbaULL }, - { &fnv_test_str[10], (Fnv64_t) 0x08697c51f2c0536fULL }, - { &fnv_test_str[11], (Fnv64_t) 0x0b91ae3f7ccdc5efULL }, - { &fnv_test_str[12], (Fnv64_t) 0x0000000000000000ULL }, - { &fnv_test_str[13], (Fnv64_t) 0x000061000000a4d3ULL }, - { &fnv_test_str[14], (Fnv64_t) 0x000062000000a686ULL }, - { &fnv_test_str[15], (Fnv64_t) 0x000063000000a839ULL }, - { &fnv_test_str[16], (Fnv64_t) 0x000064000000a9ecULL }, - { &fnv_test_str[17], (Fnv64_t) 0x000065000000ab9fULL }, - { &fnv_test_str[18], (Fnv64_t) 0x000066000000ad52ULL }, - { &fnv_test_str[19], (Fnv64_t) 0x015a8f0001265ea7ULL }, - { &fnv_test_str[20], (Fnv64_t) 0x733fc501f4330dd8ULL }, - { &fnv_test_str[21], (Fnv64_t) 0x08697c51f2c0530eULL }, - { &fnv_test_str[22], (Fnv64_t) 0x0b91ae3f7ccdc59dULL }, - { &fnv_test_str[23], (Fnv64_t) 0x765104e111a7551dULL }, - { &fnv_test_str[24], (Fnv64_t) 0x000063000000a851ULL }, - { &fnv_test_str[25], (Fnv64_t) 0x01508a00011e01ccULL }, - { &fnv_test_str[26], (Fnv64_t) 0x59dc4a01e5fd0dcaULL }, - { &fnv_test_str[27], (Fnv64_t) 0xae5f8b39ccfe6e59ULL }, - { &fnv_test_str[28], (Fnv64_t) 0x4ac7ec3754558154ULL }, - { &fnv_test_str[29], (Fnv64_t) 0x6737b6044d4ac19cULL }, - { &fnv_test_str[30], (Fnv64_t) 0xae6be54f5606fc63ULL }, - { &fnv_test_str[31], (Fnv64_t) 0x685308cf2ddedc58ULL }, - { &fnv_test_str[32], (Fnv64_t) 0x23f4500af1b069fbULL }, - { &fnv_test_str[33], (Fnv64_t) 0xc88dfd98aec415a1ULL }, - { &fnv_test_str[34], (Fnv64_t) 0x8d5b8b70f730c0fbULL }, - { &fnv_test_str[35], (Fnv64_t) 0x634eebf407d7eae4ULL }, - { &fnv_test_str[36], (Fnv64_t) 0x9705d3a953e4211eULL }, - { &fnv_test_str[37], (Fnv64_t) 0x8307c6b98ca4459fULL }, - { &fnv_test_str[38], (Fnv64_t) 0x4a7c4c49fb224d0cULL }, - { &fnv_test_str[39], (Fnv64_t) 0xb382adb5bb48eb6eULL }, - { &fnv_test_str[40], (Fnv64_t) 0x01508a00011e01a3ULL }, - { &fnv_test_str[41], (Fnv64_t) 0x59dc4a01e5fd0da4ULL }, - { &fnv_test_str[42], (Fnv64_t) 0xae5f8b39ccfe6e3eULL }, - { &fnv_test_str[43], (Fnv64_t) 0x4ac7ec375455813bULL }, - { &fnv_test_str[44], (Fnv64_t) 0x6737b6044d4ac1bcULL }, - { &fnv_test_str[45], (Fnv64_t) 0xae6be54f5606fc14ULL }, - { &fnv_test_str[46], (Fnv64_t) 0x685308cf2ddedc39ULL }, - { &fnv_test_str[47], (Fnv64_t) 0x23f4500af1b06988ULL }, - { &fnv_test_str[48], (Fnv64_t) 0xc88dfd98aec41581ULL }, - { &fnv_test_str[49], (Fnv64_t) 0x8d5b8b70f730c093ULL }, - { &fnv_test_str[50], (Fnv64_t) 0x634eebf407d7ea81ULL }, - { &fnv_test_str[51], (Fnv64_t) 0x9705d3a953e4216cULL }, - { &fnv_test_str[52], (Fnv64_t) 0x8307c6b98ca445faULL }, - { &fnv_test_str[53], (Fnv64_t) 0x4a7c4c49fb224d2dULL }, - { &fnv_test_str[54], (Fnv64_t) 0xb382adb5bb48eb64ULL }, - { &fnv_test_str[55], (Fnv64_t) 0x4ff899cd3ce80beaULL }, - { &fnv_test_str[56], (Fnv64_t) 0x000063000000a84cULL }, - { &fnv_test_str[57], (Fnv64_t) 0x01508500011df956ULL }, - { &fnv_test_str[58], (Fnv64_t) 0x59cb5501e5eead46ULL }, - { &fnv_test_str[59], (Fnv64_t) 0x832eb839b4906d81ULL }, - { &fnv_test_str[60], (Fnv64_t) 0x78d08b0dd16a1213ULL }, - { &fnv_test_str[61], (Fnv64_t) 0xb46e5b7ad73cb628ULL }, - { &fnv_test_str[62], (Fnv64_t) 0xd43b99bbbc298596ULL }, - { &fnv_test_str[63], (Fnv64_t) 0xcacbd000ba8dfd86ULL }, - { &fnv_test_str[64], (Fnv64_t) 0x264ff73cff45ca92ULL }, - { &fnv_test_str[65], (Fnv64_t) 0x5fabaea5c3973661ULL }, - { &fnv_test_str[66], (Fnv64_t) 0x27f024ab59f166bbULL }, - { &fnv_test_str[67], (Fnv64_t) 0xce750a29d5318fa4ULL }, - { &fnv_test_str[68], (Fnv64_t) 0x026fe915433713d5ULL }, - { &fnv_test_str[69], (Fnv64_t) 0x5b3ce4213696b2e5ULL }, - { &fnv_test_str[70], (Fnv64_t) 0x01508500011df924ULL }, - { &fnv_test_str[71], (Fnv64_t) 0x59cb5501e5eead22ULL }, - { &fnv_test_str[72], (Fnv64_t) 0x832eb839b4906df2ULL }, - { &fnv_test_str[73], (Fnv64_t) 0x78d08b0dd16a1233ULL }, - { &fnv_test_str[74], (Fnv64_t) 0xb46e5b7ad73cb649ULL }, - { &fnv_test_str[75], (Fnv64_t) 0xd43b99bbbc2985f8ULL }, - { &fnv_test_str[76], (Fnv64_t) 0xcacbd000ba8dfde2ULL }, - { &fnv_test_str[77], (Fnv64_t) 0x264ff73cff45cab2ULL }, - { &fnv_test_str[78], (Fnv64_t) 0x5fabaea5c3973616ULL }, - { &fnv_test_str[79], (Fnv64_t) 0x27f024ab59f166d3ULL }, - { &fnv_test_str[80], (Fnv64_t) 0xce750a29d5318fc1ULL }, - { &fnv_test_str[81], (Fnv64_t) 0x026fe915433713acULL }, - { &fnv_test_str[82], (Fnv64_t) 0x5b3ce4213696b2efULL }, - { &fnv_test_str[83], (Fnv64_t) 0x9f2a896fc211fb1fULL }, - { &fnv_test_str[84], (Fnv64_t) 0x000068000000b0d1ULL }, - { &fnv_test_str[85], (Fnv64_t) 0x01618900012c7323ULL }, - { &fnv_test_str[86], (Fnv64_t) 0x3fa86e63bc7d03c8ULL }, - { &fnv_test_str[87], (Fnv64_t) 0xa8375b79486d6cd8ULL }, - { &fnv_test_str[88], (Fnv64_t) 0xa0d18504e316ac54ULL }, - { &fnv_test_str[89], (Fnv64_t) 0x08a97b0004e7fe54ULL }, - { &fnv_test_str[90], (Fnv64_t) 0xa0d18504e316ac57ULL }, - { &fnv_test_str[91], (Fnv64_t) 0x1152f60009cffda9ULL }, - { &fnv_test_str[92], (Fnv64_t) 0xa0d18504e316ac56ULL }, - { &fnv_test_str[93], (Fnv64_t) 0x19fc71000eb7fcfeULL }, - { &fnv_test_str[94], (Fnv64_t) 0xa0d18504e316ac51ULL }, - { &fnv_test_str[95], (Fnv64_t) 0x22a5ec00139ffa53ULL }, - { &fnv_test_str[96], (Fnv64_t) 0x29bed00139779a33ULL }, - { &fnv_test_str[97], (Fnv64_t) 0x4dbc81014e3c19f5ULL }, - { &fnv_test_str[98], (Fnv64_t) 0x29bed00139779a3dULL }, - { &fnv_test_str[99], (Fnv64_t) 0x81a72b016b9f7573ULL }, - { &fnv_test_str[100], (Fnv64_t) 0x29bed00139779a23ULL }, - { &fnv_test_str[101], (Fnv64_t) 0xd85411019cbbce45ULL }, - { &fnv_test_str[102], (Fnv64_t) 0xf548616b8621d657ULL }, - { &fnv_test_str[103], (Fnv64_t) 0xebd3e0b4eb7f35d5ULL }, - { &fnv_test_str[104], (Fnv64_t) 0xf548616b8621d654ULL }, - { &fnv_test_str[105], (Fnv64_t) 0xebd3ddb4eb7f30bcULL }, - { &fnv_test_str[106], (Fnv64_t) 0xf548616b8621d655ULL }, - { &fnv_test_str[107], (Fnv64_t) 0xebd3deb4eb7f326fULL }, - { &fnv_test_str[108], (Fnv64_t) 0x581cb60340ab0968ULL }, - { &fnv_test_str[109], (Fnv64_t) 0x63d2af86e2a0fbb8ULL }, - { &fnv_test_str[110], (Fnv64_t) 0x581cb70340ab0b37ULL }, - { &fnv_test_str[111], (Fnv64_t) 0x63d63186e2a40e75ULL }, - { &fnv_test_str[112], (Fnv64_t) 0x581cc40340ab212eULL }, - { &fnv_test_str[113], (Fnv64_t) 0x64023f86e2c9612aULL }, - { &fnv_test_str[114], (Fnv64_t) 0xdbda6a26c33c909fULL }, - { &fnv_test_str[115], (Fnv64_t) 0xd0b2feddbfe9be2dULL }, - { &fnv_test_str[116], (Fnv64_t) 0x9c9eae3f5d037decULL }, - { &fnv_test_str[117], (Fnv64_t) 0x252001ab0ceef804ULL }, - { &fnv_test_str[118], (Fnv64_t) 0x4456a56f9e05cfefULL }, - { &fnv_test_str[119], (Fnv64_t) 0x250b0ba983e0531dULL }, - { &fnv_test_str[120], (Fnv64_t) 0x52b007213b27b33eULL }, - { &fnv_test_str[121], (Fnv64_t) 0xcbf29ce484222325ULL }, - { &fnv_test_str[122], (Fnv64_t) 0xaf63bd4c8601b7dfULL }, - { &fnv_test_str[123], (Fnv64_t) 0x128599ccddae09f8ULL }, - { &fnv_test_str[124], (Fnv64_t) 0x270e4f1caebaf068ULL }, - { &fnv_test_str[125], (Fnv64_t) 0x01517d497446a395ULL }, - { &fnv_test_str[126], (Fnv64_t) 0x9af5a29a89450b40ULL }, - { &fnv_test_str[127], (Fnv64_t) 0xb502f6c063ba72e8ULL }, - { &fnv_test_str[128], (Fnv64_t) 0xacf41561498ca7dfULL }, - { &fnv_test_str[129], (Fnv64_t) 0x6be8c2423a351542ULL }, - { &fnv_test_str[130], (Fnv64_t) 0xd04f1f6da96ce4a3ULL }, - { &fnv_test_str[131], (Fnv64_t) 0x69eb9a8f282c7235ULL }, - { &fnv_test_str[132], (Fnv64_t) 0x6a7e5a418f77cfc5ULL }, - { &fnv_test_str[133], (Fnv64_t) 0xbcaf568ddc2ecba0ULL }, - { &fnv_test_str[134], (Fnv64_t) 0xb03b5cc4c38f8b1fULL }, - { &fnv_test_str[135], (Fnv64_t) 0xf89a9f51432db828ULL }, - { &fnv_test_str[136], (Fnv64_t) 0x549e856be6103429ULL }, - { &fnv_test_str[137], (Fnv64_t) 0x3cf50d224d29377aULL }, - { &fnv_test_str[138], (Fnv64_t) 0xdb762df418c10c37ULL }, - { &fnv_test_str[139], (Fnv64_t) 0xfeeb4226b0e9a6baULL }, - { &fnv_test_str[140], (Fnv64_t) 0x7004a4cd9310c052ULL }, - { &fnv_test_str[141], (Fnv64_t) 0xd1c727d7f5329276ULL }, - { &fnv_test_str[142], (Fnv64_t) 0xbe313796596ce908ULL }, - { &fnv_test_str[143], (Fnv64_t) 0x768f67ede090fcc5ULL }, - { &fnv_test_str[144], (Fnv64_t) 0xa81563cc9db9bfc3ULL }, - { &fnv_test_str[145], (Fnv64_t) 0x47194043c55197a8ULL }, - { &fnv_test_str[146], (Fnv64_t) 0xc99d81864aebab02ULL }, - { &fnv_test_str[147], (Fnv64_t) 0xcc1f161b235ea4a2ULL }, - { &fnv_test_str[148], (Fnv64_t) 0xaadab0c420ecd434ULL }, - { &fnv_test_str[149], (Fnv64_t) 0x6b3c034d6f44d740ULL }, - { &fnv_test_str[150], (Fnv64_t) 0x73a45e850602cbc6ULL }, - { &fnv_test_str[151], (Fnv64_t) 0x72360f04f0cd227bULL }, - { &fnv_test_str[152], (Fnv64_t) 0xa9ca80be384a778fULL }, - { &fnv_test_str[153], (Fnv64_t) 0xd4085e66906889e3ULL }, - { &fnv_test_str[154], (Fnv64_t) 0x93aa8b2748efdbc8ULL }, - { &fnv_test_str[155], (Fnv64_t) 0x6f8cd678407436a2ULL }, - { &fnv_test_str[156], (Fnv64_t) 0xf39a43d4dc8be4c7ULL }, - { &fnv_test_str[157], (Fnv64_t) 0xd7f5cec91125d245ULL }, - { &fnv_test_str[158], (Fnv64_t) 0x691d7b73be18adc4ULL }, - { &fnv_test_str[159], (Fnv64_t) 0xf4361e01caf6b691ULL }, - { &fnv_test_str[160], (Fnv64_t) 0xde7d8264f64be089ULL }, - { &fnv_test_str[161], (Fnv64_t) 0xa34ff43e5545c06fULL }, - { &fnv_test_str[162], (Fnv64_t) 0x181f0b8e908a2bdeULL }, - { &fnv_test_str[163], (Fnv64_t) 0x28a965b78ddbc071ULL }, - { &fnv_test_str[164], (Fnv64_t) 0xead9cea0e3cc6ae5ULL }, - { &fnv_test_str[165], (Fnv64_t) 0x0b6743153b43ebbaULL }, - { &fnv_test_str[166], (Fnv64_t) 0xa7aa3f012c74528dULL }, - { &fnv_test_str[167], (Fnv64_t) 0x2d5d8ad7f9dffeb7ULL }, - { &fnv_test_str[168], (Fnv64_t) 0x00750fb6e19624eaULL }, - { &fnv_test_str[169], (Fnv64_t) 0x01c125a4e6c76c82ULL }, - { &fnv_test_str[170], (Fnv64_t) 0x3fde3afac0722f1fULL }, - { &fnv_test_str[171], (Fnv64_t) 0xd7c3eaf4abaa379dULL }, - { &fnv_test_str[172], (Fnv64_t) 0xd2217e1c923c9f3fULL }, - { &fnv_test_str[173], (Fnv64_t) 0x82d0a2e3b725caf6ULL }, - { &fnv_test_str[174], (Fnv64_t) 0x0a10bee8eeb72e4fULL }, - { &fnv_test_str[175], (Fnv64_t) 0xc530e8723e72c6fdULL }, - { &fnv_test_str[176], (Fnv64_t) 0xd8d34dcd2e7bad99ULL }, - { &fnv_test_str[177], (Fnv64_t) 0xecf77466e9a2baf3ULL }, - { &fnv_test_str[178], (Fnv64_t) 0xde3d2ddb043b9666ULL }, - { &fnv_test_str[179], (Fnv64_t) 0xd1cc824e1a8157d8ULL }, - { &fnv_test_str[180], (Fnv64_t) 0x7d5c68ecbc90512eULL }, - { &fnv_test_str[181], (Fnv64_t) 0x2f7c691b1d7c76d8ULL }, - { &fnv_test_str[182], (Fnv64_t) 0x5d88c2bad3a46bc8ULL }, - { &fnv_test_str[183], (Fnv64_t) 0xdf107320276647a0ULL }, - { &fnv_test_str[184], (Fnv64_t) 0x0f78f22e7e70e9bcULL }, - { &fnv_test_str[185], (Fnv64_t) 0x8c67be5c80f67d04ULL }, - { &fnv_test_str[186], (Fnv64_t) 0x07c1adfa4d019194ULL }, - { &fnv_test_str[187], (Fnv64_t) 0xce1312420c5b1af4ULL }, - { &fnv_test_str[188], (Fnv64_t) 0x043a41b2dc53ab24ULL }, - { &fnv_test_str[189], (Fnv64_t) 0x0b038eebf7340860ULL }, - { &fnv_test_str[190], (Fnv64_t) 0x1bcd837353fb69b0ULL }, - { &fnv_test_str[191], (Fnv64_t) 0x46f992fc59eff180ULL }, - { &fnv_test_str[192], (Fnv64_t) 0x497678ee29ae79c0ULL }, - { &fnv_test_str[193], (Fnv64_t) 0xb10a62280ddd4450ULL }, - { &fnv_test_str[194], (Fnv64_t) 0x35eb228db4d68140ULL }, - { &fnv_test_str[195], (Fnv64_t) 0x8b350e86d9470870ULL }, - { &fnv_test_str[196], (Fnv64_t) 0x4e1fbdb2812e9540ULL }, - { &fnv_test_str[197], (Fnv64_t) 0x051e080df69a0600ULL }, - { &fnv_test_str[198], (Fnv64_t) 0x45e1e8ae54dadb40ULL }, - { &fnv_test_str[199], (Fnv64_t) 0x0000000000000000ULL }, - { &fnv_test_str[200], (Fnv64_t) 0xcd73806290557064ULL }, - { &fnv_test_str[201], (Fnv64_t) 0x2613a37bbe0317c8ULL }, - { &fnv_test_str[202], (Fnv64_t) 0x1480e21fcf2ae5e4ULL }, - { NULL, (Fnv64_t) 0 } -}; -#else /* HAVE_64BIT_LONG_LONG */ -struct fnv0_64_test_vector fnv0_64_vector[] = { - { &fnv_test_str[0], (Fnv64_t) {0x00000000UL, 0x00000000UL} }, - { &fnv_test_str[1], (Fnv64_t) {0x00000061UL, 0x00000000UL} }, - { &fnv_test_str[2], (Fnv64_t) {0x00000062UL, 0x00000000UL} }, - { &fnv_test_str[3], (Fnv64_t) {0x00000063UL, 0x00000000UL} }, - { &fnv_test_str[4], (Fnv64_t) {0x00000064UL, 0x00000000UL} }, - { &fnv_test_str[5], (Fnv64_t) {0x00000065UL, 0x00000000UL} }, - { &fnv_test_str[6], (Fnv64_t) {0x00000066UL, 0x00000000UL} }, - { &fnv_test_str[7], (Fnv64_t) {0x0000ad3dUL, 0x00006600UL} }, - { &fnv_test_str[8], (Fnv64_t) {0x01265ec8UL, 0x015a8f00UL} }, - { &fnv_test_str[9], (Fnv64_t) {0xf4330dbaUL, 0x733fc501UL} }, - { &fnv_test_str[10], (Fnv64_t) {0xf2c0536fUL, 0x08697c51UL} }, - { &fnv_test_str[11], (Fnv64_t) {0x7ccdc5efUL, 0x0b91ae3fUL} }, - { &fnv_test_str[12], (Fnv64_t) {0x00000000UL, 0x00000000UL} }, - { &fnv_test_str[13], (Fnv64_t) {0x0000a4d3UL, 0x00006100UL} }, - { &fnv_test_str[14], (Fnv64_t) {0x0000a686UL, 0x00006200UL} }, - { &fnv_test_str[15], (Fnv64_t) {0x0000a839UL, 0x00006300UL} }, - { &fnv_test_str[16], (Fnv64_t) {0x0000a9ecUL, 0x00006400UL} }, - { &fnv_test_str[17], (Fnv64_t) {0x0000ab9fUL, 0x00006500UL} }, - { &fnv_test_str[18], (Fnv64_t) {0x0000ad52UL, 0x00006600UL} }, - { &fnv_test_str[19], (Fnv64_t) {0x01265ea7UL, 0x015a8f00UL} }, - { &fnv_test_str[20], (Fnv64_t) {0xf4330dd8UL, 0x733fc501UL} }, - { &fnv_test_str[21], (Fnv64_t) {0xf2c0530eUL, 0x08697c51UL} }, - { &fnv_test_str[22], (Fnv64_t) {0x7ccdc59dUL, 0x0b91ae3fUL} }, - { &fnv_test_str[23], (Fnv64_t) {0x11a7551dUL, 0x765104e1UL} }, - { &fnv_test_str[24], (Fnv64_t) {0x0000a851UL, 0x00006300UL} }, - { &fnv_test_str[25], (Fnv64_t) {0x011e01ccUL, 0x01508a00UL} }, - { &fnv_test_str[26], (Fnv64_t) {0xe5fd0dcaUL, 0x59dc4a01UL} }, - { &fnv_test_str[27], (Fnv64_t) {0xccfe6e59UL, 0xae5f8b39UL} }, - { &fnv_test_str[28], (Fnv64_t) {0x54558154UL, 0x4ac7ec37UL} }, - { &fnv_test_str[29], (Fnv64_t) {0x4d4ac19cUL, 0x6737b604UL} }, - { &fnv_test_str[30], (Fnv64_t) {0x5606fc63UL, 0xae6be54fUL} }, - { &fnv_test_str[31], (Fnv64_t) {0x2ddedc58UL, 0x685308cfUL} }, - { &fnv_test_str[32], (Fnv64_t) {0xf1b069fbUL, 0x23f4500aUL} }, - { &fnv_test_str[33], (Fnv64_t) {0xaec415a1UL, 0xc88dfd98UL} }, - { &fnv_test_str[34], (Fnv64_t) {0xf730c0fbUL, 0x8d5b8b70UL} }, - { &fnv_test_str[35], (Fnv64_t) {0x07d7eae4UL, 0x634eebf4UL} }, - { &fnv_test_str[36], (Fnv64_t) {0x53e4211eUL, 0x9705d3a9UL} }, - { &fnv_test_str[37], (Fnv64_t) {0x8ca4459fUL, 0x8307c6b9UL} }, - { &fnv_test_str[38], (Fnv64_t) {0xfb224d0cUL, 0x4a7c4c49UL} }, - { &fnv_test_str[39], (Fnv64_t) {0xbb48eb6eUL, 0xb382adb5UL} }, - { &fnv_test_str[40], (Fnv64_t) {0x011e01a3UL, 0x01508a00UL} }, - { &fnv_test_str[41], (Fnv64_t) {0xe5fd0da4UL, 0x59dc4a01UL} }, - { &fnv_test_str[42], (Fnv64_t) {0xccfe6e3eUL, 0xae5f8b39UL} }, - { &fnv_test_str[43], (Fnv64_t) {0x5455813bUL, 0x4ac7ec37UL} }, - { &fnv_test_str[44], (Fnv64_t) {0x4d4ac1bcUL, 0x6737b604UL} }, - { &fnv_test_str[45], (Fnv64_t) {0x5606fc14UL, 0xae6be54fUL} }, - { &fnv_test_str[46], (Fnv64_t) {0x2ddedc39UL, 0x685308cfUL} }, - { &fnv_test_str[47], (Fnv64_t) {0xf1b06988UL, 0x23f4500aUL} }, - { &fnv_test_str[48], (Fnv64_t) {0xaec41581UL, 0xc88dfd98UL} }, - { &fnv_test_str[49], (Fnv64_t) {0xf730c093UL, 0x8d5b8b70UL} }, - { &fnv_test_str[50], (Fnv64_t) {0x07d7ea81UL, 0x634eebf4UL} }, - { &fnv_test_str[51], (Fnv64_t) {0x53e4216cUL, 0x9705d3a9UL} }, - { &fnv_test_str[52], (Fnv64_t) {0x8ca445faUL, 0x8307c6b9UL} }, - { &fnv_test_str[53], (Fnv64_t) {0xfb224d2dUL, 0x4a7c4c49UL} }, - { &fnv_test_str[54], (Fnv64_t) {0xbb48eb64UL, 0xb382adb5UL} }, - { &fnv_test_str[55], (Fnv64_t) {0x3ce80beaUL, 0x4ff899cdUL} }, - { &fnv_test_str[56], (Fnv64_t) {0x0000a84cUL, 0x00006300UL} }, - { &fnv_test_str[57], (Fnv64_t) {0x011df956UL, 0x01508500UL} }, - { &fnv_test_str[58], (Fnv64_t) {0xe5eead46UL, 0x59cb5501UL} }, - { &fnv_test_str[59], (Fnv64_t) {0xb4906d81UL, 0x832eb839UL} }, - { &fnv_test_str[60], (Fnv64_t) {0xd16a1213UL, 0x78d08b0dUL} }, - { &fnv_test_str[61], (Fnv64_t) {0xd73cb628UL, 0xb46e5b7aUL} }, - { &fnv_test_str[62], (Fnv64_t) {0xbc298596UL, 0xd43b99bbUL} }, - { &fnv_test_str[63], (Fnv64_t) {0xba8dfd86UL, 0xcacbd000UL} }, - { &fnv_test_str[64], (Fnv64_t) {0xff45ca92UL, 0x264ff73cUL} }, - { &fnv_test_str[65], (Fnv64_t) {0xc3973661UL, 0x5fabaea5UL} }, - { &fnv_test_str[66], (Fnv64_t) {0x59f166bbUL, 0x27f024abUL} }, - { &fnv_test_str[67], (Fnv64_t) {0xd5318fa4UL, 0xce750a29UL} }, - { &fnv_test_str[68], (Fnv64_t) {0x433713d5UL, 0x026fe915UL} }, - { &fnv_test_str[69], (Fnv64_t) {0x3696b2e5UL, 0x5b3ce421UL} }, - { &fnv_test_str[70], (Fnv64_t) {0x011df924UL, 0x01508500UL} }, - { &fnv_test_str[71], (Fnv64_t) {0xe5eead22UL, 0x59cb5501UL} }, - { &fnv_test_str[72], (Fnv64_t) {0xb4906df2UL, 0x832eb839UL} }, - { &fnv_test_str[73], (Fnv64_t) {0xd16a1233UL, 0x78d08b0dUL} }, - { &fnv_test_str[74], (Fnv64_t) {0xd73cb649UL, 0xb46e5b7aUL} }, - { &fnv_test_str[75], (Fnv64_t) {0xbc2985f8UL, 0xd43b99bbUL} }, - { &fnv_test_str[76], (Fnv64_t) {0xba8dfde2UL, 0xcacbd000UL} }, - { &fnv_test_str[77], (Fnv64_t) {0xff45cab2UL, 0x264ff73cUL} }, - { &fnv_test_str[78], (Fnv64_t) {0xc3973616UL, 0x5fabaea5UL} }, - { &fnv_test_str[79], (Fnv64_t) {0x59f166d3UL, 0x27f024abUL} }, - { &fnv_test_str[80], (Fnv64_t) {0xd5318fc1UL, 0xce750a29UL} }, - { &fnv_test_str[81], (Fnv64_t) {0x433713acUL, 0x026fe915UL} }, - { &fnv_test_str[82], (Fnv64_t) {0x3696b2efUL, 0x5b3ce421UL} }, - { &fnv_test_str[83], (Fnv64_t) {0xc211fb1fUL, 0x9f2a896fUL} }, - { &fnv_test_str[84], (Fnv64_t) {0x0000b0d1UL, 0x00006800UL} }, - { &fnv_test_str[85], (Fnv64_t) {0x012c7323UL, 0x01618900UL} }, - { &fnv_test_str[86], (Fnv64_t) {0xbc7d03c8UL, 0x3fa86e63UL} }, - { &fnv_test_str[87], (Fnv64_t) {0x486d6cd8UL, 0xa8375b79UL} }, - { &fnv_test_str[88], (Fnv64_t) {0xe316ac54UL, 0xa0d18504UL} }, - { &fnv_test_str[89], (Fnv64_t) {0x04e7fe54UL, 0x08a97b00UL} }, - { &fnv_test_str[90], (Fnv64_t) {0xe316ac57UL, 0xa0d18504UL} }, - { &fnv_test_str[91], (Fnv64_t) {0x09cffda9UL, 0x1152f600UL} }, - { &fnv_test_str[92], (Fnv64_t) {0xe316ac56UL, 0xa0d18504UL} }, - { &fnv_test_str[93], (Fnv64_t) {0x0eb7fcfeUL, 0x19fc7100UL} }, - { &fnv_test_str[94], (Fnv64_t) {0xe316ac51UL, 0xa0d18504UL} }, - { &fnv_test_str[95], (Fnv64_t) {0x139ffa53UL, 0x22a5ec00UL} }, - { &fnv_test_str[96], (Fnv64_t) {0x39779a33UL, 0x29bed001UL} }, - { &fnv_test_str[97], (Fnv64_t) {0x4e3c19f5UL, 0x4dbc8101UL} }, - { &fnv_test_str[98], (Fnv64_t) {0x39779a3dUL, 0x29bed001UL} }, - { &fnv_test_str[99], (Fnv64_t) {0x6b9f7573UL, 0x81a72b01UL} }, - { &fnv_test_str[100], (Fnv64_t) {0x39779a23UL, 0x29bed001UL} }, - { &fnv_test_str[101], (Fnv64_t) {0x9cbbce45UL, 0xd8541101UL} }, - { &fnv_test_str[102], (Fnv64_t) {0x8621d657UL, 0xf548616bUL} }, - { &fnv_test_str[103], (Fnv64_t) {0xeb7f35d5UL, 0xebd3e0b4UL} }, - { &fnv_test_str[104], (Fnv64_t) {0x8621d654UL, 0xf548616bUL} }, - { &fnv_test_str[105], (Fnv64_t) {0xeb7f30bcUL, 0xebd3ddb4UL} }, - { &fnv_test_str[106], (Fnv64_t) {0x8621d655UL, 0xf548616bUL} }, - { &fnv_test_str[107], (Fnv64_t) {0xeb7f326fUL, 0xebd3deb4UL} }, - { &fnv_test_str[108], (Fnv64_t) {0x40ab0968UL, 0x581cb603UL} }, - { &fnv_test_str[109], (Fnv64_t) {0xe2a0fbb8UL, 0x63d2af86UL} }, - { &fnv_test_str[110], (Fnv64_t) {0x40ab0b37UL, 0x581cb703UL} }, - { &fnv_test_str[111], (Fnv64_t) {0xe2a40e75UL, 0x63d63186UL} }, - { &fnv_test_str[112], (Fnv64_t) {0x40ab212eUL, 0x581cc403UL} }, - { &fnv_test_str[113], (Fnv64_t) {0xe2c9612aUL, 0x64023f86UL} }, - { &fnv_test_str[114], (Fnv64_t) {0xc33c909fUL, 0xdbda6a26UL} }, - { &fnv_test_str[115], (Fnv64_t) {0xbfe9be2dUL, 0xd0b2feddUL} }, - { &fnv_test_str[116], (Fnv64_t) {0x5d037decUL, 0x9c9eae3fUL} }, - { &fnv_test_str[117], (Fnv64_t) {0x0ceef804UL, 0x252001abUL} }, - { &fnv_test_str[118], (Fnv64_t) {0x9e05cfefUL, 0x4456a56fUL} }, - { &fnv_test_str[119], (Fnv64_t) {0x83e0531dUL, 0x250b0ba9UL} }, - { &fnv_test_str[120], (Fnv64_t) {0x3b27b33eUL, 0x52b00721UL} }, - { &fnv_test_str[121], (Fnv64_t) {0x84222325UL, 0xcbf29ce4UL} }, - { &fnv_test_str[122], (Fnv64_t) {0x8601b7dfUL, 0xaf63bd4cUL} }, - { &fnv_test_str[123], (Fnv64_t) {0xddae09f8UL, 0x128599ccUL} }, - { &fnv_test_str[124], (Fnv64_t) {0xaebaf068UL, 0x270e4f1cUL} }, - { &fnv_test_str[125], (Fnv64_t) {0x7446a395UL, 0x01517d49UL} }, - { &fnv_test_str[126], (Fnv64_t) {0x89450b40UL, 0x9af5a29aUL} }, - { &fnv_test_str[127], (Fnv64_t) {0x63ba72e8UL, 0xb502f6c0UL} }, - { &fnv_test_str[128], (Fnv64_t) {0x498ca7dfUL, 0xacf41561UL} }, - { &fnv_test_str[129], (Fnv64_t) {0x3a351542UL, 0x6be8c242UL} }, - { &fnv_test_str[130], (Fnv64_t) {0xa96ce4a3UL, 0xd04f1f6dUL} }, - { &fnv_test_str[131], (Fnv64_t) {0x282c7235UL, 0x69eb9a8fUL} }, - { &fnv_test_str[132], (Fnv64_t) {0x8f77cfc5UL, 0x6a7e5a41UL} }, - { &fnv_test_str[133], (Fnv64_t) {0xdc2ecba0UL, 0xbcaf568dUL} }, - { &fnv_test_str[134], (Fnv64_t) {0xc38f8b1fUL, 0xb03b5cc4UL} }, - { &fnv_test_str[135], (Fnv64_t) {0x432db828UL, 0xf89a9f51UL} }, - { &fnv_test_str[136], (Fnv64_t) {0xe6103429UL, 0x549e856bUL} }, - { &fnv_test_str[137], (Fnv64_t) {0x4d29377aUL, 0x3cf50d22UL} }, - { &fnv_test_str[138], (Fnv64_t) {0x18c10c37UL, 0xdb762df4UL} }, - { &fnv_test_str[139], (Fnv64_t) {0xb0e9a6baUL, 0xfeeb4226UL} }, - { &fnv_test_str[140], (Fnv64_t) {0x9310c052UL, 0x7004a4cdUL} }, - { &fnv_test_str[141], (Fnv64_t) {0xf5329276UL, 0xd1c727d7UL} }, - { &fnv_test_str[142], (Fnv64_t) {0x596ce908UL, 0xbe313796UL} }, - { &fnv_test_str[143], (Fnv64_t) {0xe090fcc5UL, 0x768f67edUL} }, - { &fnv_test_str[144], (Fnv64_t) {0x9db9bfc3UL, 0xa81563ccUL} }, - { &fnv_test_str[145], (Fnv64_t) {0xc55197a8UL, 0x47194043UL} }, - { &fnv_test_str[146], (Fnv64_t) {0x4aebab02UL, 0xc99d8186UL} }, - { &fnv_test_str[147], (Fnv64_t) {0x235ea4a2UL, 0xcc1f161bUL} }, - { &fnv_test_str[148], (Fnv64_t) {0x20ecd434UL, 0xaadab0c4UL} }, - { &fnv_test_str[149], (Fnv64_t) {0x6f44d740UL, 0x6b3c034dUL} }, - { &fnv_test_str[150], (Fnv64_t) {0x0602cbc6UL, 0x73a45e85UL} }, - { &fnv_test_str[151], (Fnv64_t) {0xf0cd227bUL, 0x72360f04UL} }, - { &fnv_test_str[152], (Fnv64_t) {0x384a778fUL, 0xa9ca80beUL} }, - { &fnv_test_str[153], (Fnv64_t) {0x906889e3UL, 0xd4085e66UL} }, - { &fnv_test_str[154], (Fnv64_t) {0x48efdbc8UL, 0x93aa8b27UL} }, - { &fnv_test_str[155], (Fnv64_t) {0x407436a2UL, 0x6f8cd678UL} }, - { &fnv_test_str[156], (Fnv64_t) {0xdc8be4c7UL, 0xf39a43d4UL} }, - { &fnv_test_str[157], (Fnv64_t) {0x1125d245UL, 0xd7f5cec9UL} }, - { &fnv_test_str[158], (Fnv64_t) {0xbe18adc4UL, 0x691d7b73UL} }, - { &fnv_test_str[159], (Fnv64_t) {0xcaf6b691UL, 0xf4361e01UL} }, - { &fnv_test_str[160], (Fnv64_t) {0xf64be089UL, 0xde7d8264UL} }, - { &fnv_test_str[161], (Fnv64_t) {0x5545c06fUL, 0xa34ff43eUL} }, - { &fnv_test_str[162], (Fnv64_t) {0x908a2bdeUL, 0x181f0b8eUL} }, - { &fnv_test_str[163], (Fnv64_t) {0x8ddbc071UL, 0x28a965b7UL} }, - { &fnv_test_str[164], (Fnv64_t) {0xe3cc6ae5UL, 0xead9cea0UL} }, - { &fnv_test_str[165], (Fnv64_t) {0x3b43ebbaUL, 0x0b674315UL} }, - { &fnv_test_str[166], (Fnv64_t) {0x2c74528dUL, 0xa7aa3f01UL} }, - { &fnv_test_str[167], (Fnv64_t) {0xf9dffeb7UL, 0x2d5d8ad7UL} }, - { &fnv_test_str[168], (Fnv64_t) {0xe19624eaUL, 0x00750fb6UL} }, - { &fnv_test_str[169], (Fnv64_t) {0xe6c76c82UL, 0x01c125a4UL} }, - { &fnv_test_str[170], (Fnv64_t) {0xc0722f1fUL, 0x3fde3afaUL} }, - { &fnv_test_str[171], (Fnv64_t) {0xabaa379dUL, 0xd7c3eaf4UL} }, - { &fnv_test_str[172], (Fnv64_t) {0x923c9f3fUL, 0xd2217e1cUL} }, - { &fnv_test_str[173], (Fnv64_t) {0xb725caf6UL, 0x82d0a2e3UL} }, - { &fnv_test_str[174], (Fnv64_t) {0xeeb72e4fUL, 0x0a10bee8UL} }, - { &fnv_test_str[175], (Fnv64_t) {0x3e72c6fdUL, 0xc530e872UL} }, - { &fnv_test_str[176], (Fnv64_t) {0x2e7bad99UL, 0xd8d34dcdUL} }, - { &fnv_test_str[177], (Fnv64_t) {0xe9a2baf3UL, 0xecf77466UL} }, - { &fnv_test_str[178], (Fnv64_t) {0x043b9666UL, 0xde3d2ddbUL} }, - { &fnv_test_str[179], (Fnv64_t) {0x1a8157d8UL, 0xd1cc824eUL} }, - { &fnv_test_str[180], (Fnv64_t) {0xbc90512eUL, 0x7d5c68ecUL} }, - { &fnv_test_str[181], (Fnv64_t) {0x1d7c76d8UL, 0x2f7c691bUL} }, - { &fnv_test_str[182], (Fnv64_t) {0xd3a46bc8UL, 0x5d88c2baUL} }, - { &fnv_test_str[183], (Fnv64_t) {0x276647a0UL, 0xdf107320UL} }, - { &fnv_test_str[184], (Fnv64_t) {0x7e70e9bcUL, 0x0f78f22eUL} }, - { &fnv_test_str[185], (Fnv64_t) {0x80f67d04UL, 0x8c67be5cUL} }, - { &fnv_test_str[186], (Fnv64_t) {0x4d019194UL, 0x07c1adfaUL} }, - { &fnv_test_str[187], (Fnv64_t) {0x0c5b1af4UL, 0xce131242UL} }, - { &fnv_test_str[188], (Fnv64_t) {0xdc53ab24UL, 0x043a41b2UL} }, - { &fnv_test_str[189], (Fnv64_t) {0xf7340860UL, 0x0b038eebUL} }, - { &fnv_test_str[190], (Fnv64_t) {0x53fb69b0UL, 0x1bcd8373UL} }, - { &fnv_test_str[191], (Fnv64_t) {0x59eff180UL, 0x46f992fcUL} }, - { &fnv_test_str[192], (Fnv64_t) {0x29ae79c0UL, 0x497678eeUL} }, - { &fnv_test_str[193], (Fnv64_t) {0x0ddd4450UL, 0xb10a6228UL} }, - { &fnv_test_str[194], (Fnv64_t) {0xb4d68140UL, 0x35eb228dUL} }, - { &fnv_test_str[195], (Fnv64_t) {0xd9470870UL, 0x8b350e86UL} }, - { &fnv_test_str[196], (Fnv64_t) {0x812e9540UL, 0x4e1fbdb2UL} }, - { &fnv_test_str[197], (Fnv64_t) {0xf69a0600UL, 0x051e080dUL} }, - { &fnv_test_str[198], (Fnv64_t) {0x54dadb40UL, 0x45e1e8aeUL} }, - { &fnv_test_str[199], (Fnv64_t) {0x00000000UL, 0x00000000UL} }, - { &fnv_test_str[200], (Fnv64_t) {0x90557064UL, 0xcd738062UL} }, - { &fnv_test_str[201], (Fnv64_t) {0xbe0317c8UL, 0x2613a37bUL} }, - { &fnv_test_str[202], (Fnv64_t) {0xcf2ae5e4UL, 0x1480e21fUL} }, - { NULL, (Fnv64_t) {0,0} } -}; -#endif /* HAVE_64BIT_LONG_LONG */ - -/* FNV-1 64 bit test vectors */ -#if defined(HAVE_64BIT_LONG_LONG) -struct fnv1_64_test_vector fnv1_64_vector[] = { - { &fnv_test_str[0], (Fnv64_t) 0xcbf29ce484222325ULL }, - { &fnv_test_str[1], (Fnv64_t) 0xaf63bd4c8601b7beULL }, - { &fnv_test_str[2], (Fnv64_t) 0xaf63bd4c8601b7bdULL }, - { &fnv_test_str[3], (Fnv64_t) 0xaf63bd4c8601b7bcULL }, - { &fnv_test_str[4], (Fnv64_t) 0xaf63bd4c8601b7bbULL }, - { &fnv_test_str[5], (Fnv64_t) 0xaf63bd4c8601b7baULL }, - { &fnv_test_str[6], (Fnv64_t) 0xaf63bd4c8601b7b9ULL }, - { &fnv_test_str[7], (Fnv64_t) 0x08326207b4eb2f34ULL }, - { &fnv_test_str[8], (Fnv64_t) 0xd8cbc7186ba13533ULL }, - { &fnv_test_str[9], (Fnv64_t) 0x0378817ee2ed65cbULL }, - { &fnv_test_str[10], (Fnv64_t) 0xd329d59b9963f790ULL }, - { &fnv_test_str[11], (Fnv64_t) 0x340d8765a4dda9c2ULL }, - { &fnv_test_str[12], (Fnv64_t) 0xaf63bd4c8601b7dfULL }, - { &fnv_test_str[13], (Fnv64_t) 0x08326707b4eb37daULL }, - { &fnv_test_str[14], (Fnv64_t) 0x08326607b4eb3627ULL }, - { &fnv_test_str[15], (Fnv64_t) 0x08326507b4eb3474ULL }, - { &fnv_test_str[16], (Fnv64_t) 0x08326407b4eb32c1ULL }, - { &fnv_test_str[17], (Fnv64_t) 0x08326307b4eb310eULL }, - { &fnv_test_str[18], (Fnv64_t) 0x08326207b4eb2f5bULL }, - { &fnv_test_str[19], (Fnv64_t) 0xd8cbc7186ba1355cULL }, - { &fnv_test_str[20], (Fnv64_t) 0x0378817ee2ed65a9ULL }, - { &fnv_test_str[21], (Fnv64_t) 0xd329d59b9963f7f1ULL }, - { &fnv_test_str[22], (Fnv64_t) 0x340d8765a4dda9b0ULL }, - { &fnv_test_str[23], (Fnv64_t) 0x50a6d3b724a774a6ULL }, - { &fnv_test_str[24], (Fnv64_t) 0x08326507b4eb341cULL }, - { &fnv_test_str[25], (Fnv64_t) 0xd8d5c8186ba98bfbULL }, - { &fnv_test_str[26], (Fnv64_t) 0x1ccefc7ef118dbefULL }, - { &fnv_test_str[27], (Fnv64_t) 0x0c92fab3ad3db77aULL }, - { &fnv_test_str[28], (Fnv64_t) 0x9b77794f5fdec421ULL }, - { &fnv_test_str[29], (Fnv64_t) 0x0ac742dfe7874433ULL }, - { &fnv_test_str[30], (Fnv64_t) 0xd7dad5766ad8e2deULL }, - { &fnv_test_str[31], (Fnv64_t) 0xa1bb96378e897f5bULL }, - { &fnv_test_str[32], (Fnv64_t) 0x5b3f9b6733a367d2ULL }, - { &fnv_test_str[33], (Fnv64_t) 0xb07ce25cbea969f6ULL }, - { &fnv_test_str[34], (Fnv64_t) 0x8d9e9997f9df0d6aULL }, - { &fnv_test_str[35], (Fnv64_t) 0x838c673d9603cb7bULL }, - { &fnv_test_str[36], (Fnv64_t) 0x8b5ee8a5e872c273ULL }, - { &fnv_test_str[37], (Fnv64_t) 0x4507c4e9fb00690cULL }, - { &fnv_test_str[38], (Fnv64_t) 0x4c9ca59581b27f45ULL }, - { &fnv_test_str[39], (Fnv64_t) 0xe0aca20b624e4235ULL }, - { &fnv_test_str[40], (Fnv64_t) 0xd8d5c8186ba98b94ULL }, - { &fnv_test_str[41], (Fnv64_t) 0x1ccefc7ef118db81ULL }, - { &fnv_test_str[42], (Fnv64_t) 0x0c92fab3ad3db71dULL }, - { &fnv_test_str[43], (Fnv64_t) 0x9b77794f5fdec44eULL }, - { &fnv_test_str[44], (Fnv64_t) 0x0ac742dfe7874413ULL }, - { &fnv_test_str[45], (Fnv64_t) 0xd7dad5766ad8e2a9ULL }, - { &fnv_test_str[46], (Fnv64_t) 0xa1bb96378e897f3aULL }, - { &fnv_test_str[47], (Fnv64_t) 0x5b3f9b6733a367a1ULL }, - { &fnv_test_str[48], (Fnv64_t) 0xb07ce25cbea969d6ULL }, - { &fnv_test_str[49], (Fnv64_t) 0x8d9e9997f9df0d02ULL }, - { &fnv_test_str[50], (Fnv64_t) 0x838c673d9603cb1eULL }, - { &fnv_test_str[51], (Fnv64_t) 0x8b5ee8a5e872c201ULL }, - { &fnv_test_str[52], (Fnv64_t) 0x4507c4e9fb006969ULL }, - { &fnv_test_str[53], (Fnv64_t) 0x4c9ca59581b27f64ULL }, - { &fnv_test_str[54], (Fnv64_t) 0xe0aca20b624e423fULL }, - { &fnv_test_str[55], (Fnv64_t) 0x13998e580afa800fULL }, - { &fnv_test_str[56], (Fnv64_t) 0x08326507b4eb3401ULL }, - { &fnv_test_str[57], (Fnv64_t) 0xd8d5ad186ba95dc1ULL }, - { &fnv_test_str[58], (Fnv64_t) 0x1c72e17ef0ca4e97ULL }, - { &fnv_test_str[59], (Fnv64_t) 0x2183c1b327c38ae6ULL }, - { &fnv_test_str[60], (Fnv64_t) 0xb66d096c914504f2ULL }, - { &fnv_test_str[61], (Fnv64_t) 0x404bf57ad8476757ULL }, - { &fnv_test_str[62], (Fnv64_t) 0x887976bd815498bbULL }, - { &fnv_test_str[63], (Fnv64_t) 0x3afd7f02c2bf85a5ULL }, - { &fnv_test_str[64], (Fnv64_t) 0xfc4476b0eb70177fULL }, - { &fnv_test_str[65], (Fnv64_t) 0x186d2da00f77ecbaULL }, - { &fnv_test_str[66], (Fnv64_t) 0xf97140fa48c74066ULL }, - { &fnv_test_str[67], (Fnv64_t) 0xa2b1cf49aa926d37ULL }, - { &fnv_test_str[68], (Fnv64_t) 0x0690712cd6cf940cULL }, - { &fnv_test_str[69], (Fnv64_t) 0xf7045b3102b8906eULL }, - { &fnv_test_str[70], (Fnv64_t) 0xd8d5ad186ba95db3ULL }, - { &fnv_test_str[71], (Fnv64_t) 0x1c72e17ef0ca4ef3ULL }, - { &fnv_test_str[72], (Fnv64_t) 0x2183c1b327c38a95ULL }, - { &fnv_test_str[73], (Fnv64_t) 0xb66d096c914504d2ULL }, - { &fnv_test_str[74], (Fnv64_t) 0x404bf57ad8476736ULL }, - { &fnv_test_str[75], (Fnv64_t) 0x887976bd815498d5ULL }, - { &fnv_test_str[76], (Fnv64_t) 0x3afd7f02c2bf85c1ULL }, - { &fnv_test_str[77], (Fnv64_t) 0xfc4476b0eb70175fULL }, - { &fnv_test_str[78], (Fnv64_t) 0x186d2da00f77eccdULL }, - { &fnv_test_str[79], (Fnv64_t) 0xf97140fa48c7400eULL }, - { &fnv_test_str[80], (Fnv64_t) 0xa2b1cf49aa926d52ULL }, - { &fnv_test_str[81], (Fnv64_t) 0x0690712cd6cf9475ULL }, - { &fnv_test_str[82], (Fnv64_t) 0xf7045b3102b89064ULL }, - { &fnv_test_str[83], (Fnv64_t) 0x74f762479f9d6aeaULL }, - { &fnv_test_str[84], (Fnv64_t) 0x08326007b4eb2b9cULL }, - { &fnv_test_str[85], (Fnv64_t) 0xd8c4c9186b9b1a14ULL }, - { &fnv_test_str[86], (Fnv64_t) 0x7b495389bdbdd4c7ULL }, - { &fnv_test_str[87], (Fnv64_t) 0x3b6dba0d69908e25ULL }, - { &fnv_test_str[88], (Fnv64_t) 0xd6b2b17bf4b71261ULL }, - { &fnv_test_str[89], (Fnv64_t) 0x447bfb7f98e615b5ULL }, - { &fnv_test_str[90], (Fnv64_t) 0xd6b2b17bf4b71262ULL }, - { &fnv_test_str[91], (Fnv64_t) 0x3bd2807f93fe1660ULL }, - { &fnv_test_str[92], (Fnv64_t) 0xd6b2b17bf4b71263ULL }, - { &fnv_test_str[93], (Fnv64_t) 0x3329057f8f16170bULL }, - { &fnv_test_str[94], (Fnv64_t) 0xd6b2b17bf4b71264ULL }, - { &fnv_test_str[95], (Fnv64_t) 0x2a7f8a7f8a2e19b6ULL }, - { &fnv_test_str[96], (Fnv64_t) 0x23d3767e64b2f98aULL }, - { &fnv_test_str[97], (Fnv64_t) 0xff768d7e4f9d86a4ULL }, - { &fnv_test_str[98], (Fnv64_t) 0x23d3767e64b2f984ULL }, - { &fnv_test_str[99], (Fnv64_t) 0xccd1837e334e4aa6ULL }, - { &fnv_test_str[100], (Fnv64_t) 0x23d3767e64b2f99aULL }, - { &fnv_test_str[101], (Fnv64_t) 0x7691fd7e028f6754ULL }, - { &fnv_test_str[102], (Fnv64_t) 0x34ad3b1041204318ULL }, - { &fnv_test_str[103], (Fnv64_t) 0xa29e749ea9d201c8ULL }, - { &fnv_test_str[104], (Fnv64_t) 0x34ad3b104120431bULL }, - { &fnv_test_str[105], (Fnv64_t) 0xa29e779ea9d206e1ULL }, - { &fnv_test_str[106], (Fnv64_t) 0x34ad3b104120431aULL }, - { &fnv_test_str[107], (Fnv64_t) 0xa29e769ea9d2052eULL }, - { &fnv_test_str[108], (Fnv64_t) 0x02a17ebca4aa3497ULL }, - { &fnv_test_str[109], (Fnv64_t) 0x229ef18bcd375c95ULL }, - { &fnv_test_str[110], (Fnv64_t) 0x02a17dbca4aa32c8ULL }, - { &fnv_test_str[111], (Fnv64_t) 0x229b6f8bcd3449d8ULL }, - { &fnv_test_str[112], (Fnv64_t) 0x02a184bca4aa3ed5ULL }, - { &fnv_test_str[113], (Fnv64_t) 0x22b3618bcd48c3efULL }, - { &fnv_test_str[114], (Fnv64_t) 0x5c2c346706186f36ULL }, - { &fnv_test_str[115], (Fnv64_t) 0xb78c410f5b84f8c2ULL }, - { &fnv_test_str[116], (Fnv64_t) 0xed9478212b267395ULL }, - { &fnv_test_str[117], (Fnv64_t) 0xd9bbb55c5256662fULL }, - { &fnv_test_str[118], (Fnv64_t) 0x8c54f0203249438aULL }, - { &fnv_test_str[119], (Fnv64_t) 0xbd9790b5727dc37eULL }, - { &fnv_test_str[120], (Fnv64_t) 0xa64e5f36c9e2b0e3ULL }, - { &fnv_test_str[121], (Fnv64_t) 0x8fd0680da3088a04ULL }, - { &fnv_test_str[122], (Fnv64_t) 0x67aad32c078284ccULL }, - { &fnv_test_str[123], (Fnv64_t) 0xb37d55d81c57b331ULL }, - { &fnv_test_str[124], (Fnv64_t) 0x55ac0f3829057c43ULL }, - { &fnv_test_str[125], (Fnv64_t) 0xcb27f4b8e1b6cc20ULL }, - { &fnv_test_str[126], (Fnv64_t) 0x26caf88bcbef2d19ULL }, - { &fnv_test_str[127], (Fnv64_t) 0x8e6e063b97e61b8fULL }, - { &fnv_test_str[128], (Fnv64_t) 0xb42750f7f3b7c37eULL }, - { &fnv_test_str[129], (Fnv64_t) 0xf3c6ba64cf7ca99bULL }, - { &fnv_test_str[130], (Fnv64_t) 0xebfb69b427ea80feULL }, - { &fnv_test_str[131], (Fnv64_t) 0x39b50c3ed970f46cULL }, - { &fnv_test_str[132], (Fnv64_t) 0x5b9b177aa3eb3e8aULL }, - { &fnv_test_str[133], (Fnv64_t) 0x6510063ecf4ec903ULL }, - { &fnv_test_str[134], (Fnv64_t) 0x2b3bbd2c00797c7aULL }, - { &fnv_test_str[135], (Fnv64_t) 0xf1d6204ff5cb4aa7ULL }, - { &fnv_test_str[136], (Fnv64_t) 0x4836e27ccf099f38ULL }, - { &fnv_test_str[137], (Fnv64_t) 0x82efbb0dd073b44dULL }, - { &fnv_test_str[138], (Fnv64_t) 0x4a80c282ffd7d4c6ULL }, - { &fnv_test_str[139], (Fnv64_t) 0x305d1a9c9ee43bdfULL }, - { &fnv_test_str[140], (Fnv64_t) 0x15c366948ffc6997ULL }, - { &fnv_test_str[141], (Fnv64_t) 0x80153ae218916e7bULL }, - { &fnv_test_str[142], (Fnv64_t) 0xfa23e2bdf9e2a9e1ULL }, - { &fnv_test_str[143], (Fnv64_t) 0xd47e8d8a2333c6deULL }, - { &fnv_test_str[144], (Fnv64_t) 0x7e128095f688b056ULL }, - { &fnv_test_str[145], (Fnv64_t) 0x2f5356890efcedabULL }, - { &fnv_test_str[146], (Fnv64_t) 0x95c2b383014f55c5ULL }, - { &fnv_test_str[147], (Fnv64_t) 0x4727a5339ce6070fULL }, - { &fnv_test_str[148], (Fnv64_t) 0xb0555ecd575108e9ULL }, - { &fnv_test_str[149], (Fnv64_t) 0x48d785770bb4af37ULL }, - { &fnv_test_str[150], (Fnv64_t) 0x09d4701c12af02b1ULL }, - { &fnv_test_str[151], (Fnv64_t) 0x79f031e78f3cf62eULL }, - { &fnv_test_str[152], (Fnv64_t) 0x52a1ee85db1b5a94ULL }, - { &fnv_test_str[153], (Fnv64_t) 0x6bd95b2eb37fa6b8ULL }, - { &fnv_test_str[154], (Fnv64_t) 0x74971b7077aef85dULL }, - { &fnv_test_str[155], (Fnv64_t) 0xb4e4fae2ffcc1aadULL }, - { &fnv_test_str[156], (Fnv64_t) 0x2bd48bd898b8f63aULL }, - { &fnv_test_str[157], (Fnv64_t) 0xe9966ac1556257f6ULL }, - { &fnv_test_str[158], (Fnv64_t) 0x92a3d1cd078ba293ULL }, - { &fnv_test_str[159], (Fnv64_t) 0xf81175a482e20ab8ULL }, - { &fnv_test_str[160], (Fnv64_t) 0x5bbb3de722e73048ULL }, - { &fnv_test_str[161], (Fnv64_t) 0x6b4f363492b9f2beULL }, - { &fnv_test_str[162], (Fnv64_t) 0xc2d559df73d59875ULL }, - { &fnv_test_str[163], (Fnv64_t) 0xf75f62284bc7a8c2ULL }, - { &fnv_test_str[164], (Fnv64_t) 0xda8dd8e116a9f1ccULL }, - { &fnv_test_str[165], (Fnv64_t) 0xbdc1e6ab76057885ULL }, - { &fnv_test_str[166], (Fnv64_t) 0xfec6a4238a1224a0ULL }, - { &fnv_test_str[167], (Fnv64_t) 0xc03f40f3223e290eULL }, - { &fnv_test_str[168], (Fnv64_t) 0x1ed21673466ffda9ULL }, - { &fnv_test_str[169], (Fnv64_t) 0xdf70f906bb0dd2afULL }, - { &fnv_test_str[170], (Fnv64_t) 0xf3dcda369f2af666ULL }, - { &fnv_test_str[171], (Fnv64_t) 0x9ebb11573cdcebdeULL }, - { &fnv_test_str[172], (Fnv64_t) 0x81c72d9077fedca0ULL }, - { &fnv_test_str[173], (Fnv64_t) 0x0ec074a31be5fb15ULL }, - { &fnv_test_str[174], (Fnv64_t) 0x2a8b3280b6c48f20ULL }, - { &fnv_test_str[175], (Fnv64_t) 0xfd31777513309344ULL }, - { &fnv_test_str[176], (Fnv64_t) 0x194534a86ad006b6ULL }, - { &fnv_test_str[177], (Fnv64_t) 0x3be6fdf46e0cfe12ULL }, - { &fnv_test_str[178], (Fnv64_t) 0x017cc137a07eb057ULL }, - { &fnv_test_str[179], (Fnv64_t) 0x9428fc6e7d26b54dULL }, - { &fnv_test_str[180], (Fnv64_t) 0x9aaa2e3603ef8ad7ULL }, - { &fnv_test_str[181], (Fnv64_t) 0x82c6d3f3a0ccdf7dULL }, - { &fnv_test_str[182], (Fnv64_t) 0xc86eeea00cf09b65ULL }, - { &fnv_test_str[183], (Fnv64_t) 0x705f8189dbb58299ULL }, - { &fnv_test_str[184], (Fnv64_t) 0x415a7f554391ca69ULL }, - { &fnv_test_str[185], (Fnv64_t) 0xcfe3d49fa2bdc555ULL }, - { &fnv_test_str[186], (Fnv64_t) 0xf0f9c56039b25191ULL }, - { &fnv_test_str[187], (Fnv64_t) 0x7075cb6abd1d32d9ULL }, - { &fnv_test_str[188], (Fnv64_t) 0x43c94e2c8b277509ULL }, - { &fnv_test_str[189], (Fnv64_t) 0x3cbfd4e4ea670359ULL }, - { &fnv_test_str[190], (Fnv64_t) 0xc05887810f4d019dULL }, - { &fnv_test_str[191], (Fnv64_t) 0x14468ff93ac22dc5ULL }, - { &fnv_test_str[192], (Fnv64_t) 0xebed699589d99c05ULL }, - { &fnv_test_str[193], (Fnv64_t) 0x6d99f6df321ca5d5ULL }, - { &fnv_test_str[194], (Fnv64_t) 0x0cd410d08c36d625ULL }, - { &fnv_test_str[195], (Fnv64_t) 0xef1b2a2c86831d35ULL }, - { &fnv_test_str[196], (Fnv64_t) 0x3b349c4d69ee5f05ULL }, - { &fnv_test_str[197], (Fnv64_t) 0x55248ce88f45f035ULL }, - { &fnv_test_str[198], (Fnv64_t) 0xaa69ca6a18a4c885ULL }, - { &fnv_test_str[199], (Fnv64_t) 0x1fe3fce62bd816b5ULL }, - { &fnv_test_str[200], (Fnv64_t) 0x0289a488a8df69d9ULL }, - { &fnv_test_str[201], (Fnv64_t) 0x15e96e1613df98b5ULL }, - { &fnv_test_str[202], (Fnv64_t) 0xe6be57375ad89b99ULL }, - { NULL, (Fnv64_t) 0 } -}; -#else /* HAVE_64BIT_LONG_LONG */ -struct fnv1_64_test_vector fnv1_64_vector[] = { - { &fnv_test_str[0], (Fnv64_t) {0x84222325UL, 0xcbf29ce4UL} }, - { &fnv_test_str[1], (Fnv64_t) {0x8601b7beUL, 0xaf63bd4cUL} }, - { &fnv_test_str[2], (Fnv64_t) {0x8601b7bdUL, 0xaf63bd4cUL} }, - { &fnv_test_str[3], (Fnv64_t) {0x8601b7bcUL, 0xaf63bd4cUL} }, - { &fnv_test_str[4], (Fnv64_t) {0x8601b7bbUL, 0xaf63bd4cUL} }, - { &fnv_test_str[5], (Fnv64_t) {0x8601b7baUL, 0xaf63bd4cUL} }, - { &fnv_test_str[6], (Fnv64_t) {0x8601b7b9UL, 0xaf63bd4cUL} }, - { &fnv_test_str[7], (Fnv64_t) {0xb4eb2f34UL, 0x08326207UL} }, - { &fnv_test_str[8], (Fnv64_t) {0x6ba13533UL, 0xd8cbc718UL} }, - { &fnv_test_str[9], (Fnv64_t) {0xe2ed65cbUL, 0x0378817eUL} }, - { &fnv_test_str[10], (Fnv64_t) {0x9963f790UL, 0xd329d59bUL} }, - { &fnv_test_str[11], (Fnv64_t) {0xa4dda9c2UL, 0x340d8765UL} }, - { &fnv_test_str[12], (Fnv64_t) {0x8601b7dfUL, 0xaf63bd4cUL} }, - { &fnv_test_str[13], (Fnv64_t) {0xb4eb37daUL, 0x08326707UL} }, - { &fnv_test_str[14], (Fnv64_t) {0xb4eb3627UL, 0x08326607UL} }, - { &fnv_test_str[15], (Fnv64_t) {0xb4eb3474UL, 0x08326507UL} }, - { &fnv_test_str[16], (Fnv64_t) {0xb4eb32c1UL, 0x08326407UL} }, - { &fnv_test_str[17], (Fnv64_t) {0xb4eb310eUL, 0x08326307UL} }, - { &fnv_test_str[18], (Fnv64_t) {0xb4eb2f5bUL, 0x08326207UL} }, - { &fnv_test_str[19], (Fnv64_t) {0x6ba1355cUL, 0xd8cbc718UL} }, - { &fnv_test_str[20], (Fnv64_t) {0xe2ed65a9UL, 0x0378817eUL} }, - { &fnv_test_str[21], (Fnv64_t) {0x9963f7f1UL, 0xd329d59bUL} }, - { &fnv_test_str[22], (Fnv64_t) {0xa4dda9b0UL, 0x340d8765UL} }, - { &fnv_test_str[23], (Fnv64_t) {0x24a774a6UL, 0x50a6d3b7UL} }, - { &fnv_test_str[24], (Fnv64_t) {0xb4eb341cUL, 0x08326507UL} }, - { &fnv_test_str[25], (Fnv64_t) {0x6ba98bfbUL, 0xd8d5c818UL} }, - { &fnv_test_str[26], (Fnv64_t) {0xf118dbefUL, 0x1ccefc7eUL} }, - { &fnv_test_str[27], (Fnv64_t) {0xad3db77aUL, 0x0c92fab3UL} }, - { &fnv_test_str[28], (Fnv64_t) {0x5fdec421UL, 0x9b77794fUL} }, - { &fnv_test_str[29], (Fnv64_t) {0xe7874433UL, 0x0ac742dfUL} }, - { &fnv_test_str[30], (Fnv64_t) {0x6ad8e2deUL, 0xd7dad576UL} }, - { &fnv_test_str[31], (Fnv64_t) {0x8e897f5bUL, 0xa1bb9637UL} }, - { &fnv_test_str[32], (Fnv64_t) {0x33a367d2UL, 0x5b3f9b67UL} }, - { &fnv_test_str[33], (Fnv64_t) {0xbea969f6UL, 0xb07ce25cUL} }, - { &fnv_test_str[34], (Fnv64_t) {0xf9df0d6aUL, 0x8d9e9997UL} }, - { &fnv_test_str[35], (Fnv64_t) {0x9603cb7bUL, 0x838c673dUL} }, - { &fnv_test_str[36], (Fnv64_t) {0xe872c273UL, 0x8b5ee8a5UL} }, - { &fnv_test_str[37], (Fnv64_t) {0xfb00690cUL, 0x4507c4e9UL} }, - { &fnv_test_str[38], (Fnv64_t) {0x81b27f45UL, 0x4c9ca595UL} }, - { &fnv_test_str[39], (Fnv64_t) {0x624e4235UL, 0xe0aca20bUL} }, - { &fnv_test_str[40], (Fnv64_t) {0x6ba98b94UL, 0xd8d5c818UL} }, - { &fnv_test_str[41], (Fnv64_t) {0xf118db81UL, 0x1ccefc7eUL} }, - { &fnv_test_str[42], (Fnv64_t) {0xad3db71dUL, 0x0c92fab3UL} }, - { &fnv_test_str[43], (Fnv64_t) {0x5fdec44eUL, 0x9b77794fUL} }, - { &fnv_test_str[44], (Fnv64_t) {0xe7874413UL, 0x0ac742dfUL} }, - { &fnv_test_str[45], (Fnv64_t) {0x6ad8e2a9UL, 0xd7dad576UL} }, - { &fnv_test_str[46], (Fnv64_t) {0x8e897f3aUL, 0xa1bb9637UL} }, - { &fnv_test_str[47], (Fnv64_t) {0x33a367a1UL, 0x5b3f9b67UL} }, - { &fnv_test_str[48], (Fnv64_t) {0xbea969d6UL, 0xb07ce25cUL} }, - { &fnv_test_str[49], (Fnv64_t) {0xf9df0d02UL, 0x8d9e9997UL} }, - { &fnv_test_str[50], (Fnv64_t) {0x9603cb1eUL, 0x838c673dUL} }, - { &fnv_test_str[51], (Fnv64_t) {0xe872c201UL, 0x8b5ee8a5UL} }, - { &fnv_test_str[52], (Fnv64_t) {0xfb006969UL, 0x4507c4e9UL} }, - { &fnv_test_str[53], (Fnv64_t) {0x81b27f64UL, 0x4c9ca595UL} }, - { &fnv_test_str[54], (Fnv64_t) {0x624e423fUL, 0xe0aca20bUL} }, - { &fnv_test_str[55], (Fnv64_t) {0x0afa800fUL, 0x13998e58UL} }, - { &fnv_test_str[56], (Fnv64_t) {0xb4eb3401UL, 0x08326507UL} }, - { &fnv_test_str[57], (Fnv64_t) {0x6ba95dc1UL, 0xd8d5ad18UL} }, - { &fnv_test_str[58], (Fnv64_t) {0xf0ca4e97UL, 0x1c72e17eUL} }, - { &fnv_test_str[59], (Fnv64_t) {0x27c38ae6UL, 0x2183c1b3UL} }, - { &fnv_test_str[60], (Fnv64_t) {0x914504f2UL, 0xb66d096cUL} }, - { &fnv_test_str[61], (Fnv64_t) {0xd8476757UL, 0x404bf57aUL} }, - { &fnv_test_str[62], (Fnv64_t) {0x815498bbUL, 0x887976bdUL} }, - { &fnv_test_str[63], (Fnv64_t) {0xc2bf85a5UL, 0x3afd7f02UL} }, - { &fnv_test_str[64], (Fnv64_t) {0xeb70177fUL, 0xfc4476b0UL} }, - { &fnv_test_str[65], (Fnv64_t) {0x0f77ecbaUL, 0x186d2da0UL} }, - { &fnv_test_str[66], (Fnv64_t) {0x48c74066UL, 0xf97140faUL} }, - { &fnv_test_str[67], (Fnv64_t) {0xaa926d37UL, 0xa2b1cf49UL} }, - { &fnv_test_str[68], (Fnv64_t) {0xd6cf940cUL, 0x0690712cUL} }, - { &fnv_test_str[69], (Fnv64_t) {0x02b8906eUL, 0xf7045b31UL} }, - { &fnv_test_str[70], (Fnv64_t) {0x6ba95db3UL, 0xd8d5ad18UL} }, - { &fnv_test_str[71], (Fnv64_t) {0xf0ca4ef3UL, 0x1c72e17eUL} }, - { &fnv_test_str[72], (Fnv64_t) {0x27c38a95UL, 0x2183c1b3UL} }, - { &fnv_test_str[73], (Fnv64_t) {0x914504d2UL, 0xb66d096cUL} }, - { &fnv_test_str[74], (Fnv64_t) {0xd8476736UL, 0x404bf57aUL} }, - { &fnv_test_str[75], (Fnv64_t) {0x815498d5UL, 0x887976bdUL} }, - { &fnv_test_str[76], (Fnv64_t) {0xc2bf85c1UL, 0x3afd7f02UL} }, - { &fnv_test_str[77], (Fnv64_t) {0xeb70175fUL, 0xfc4476b0UL} }, - { &fnv_test_str[78], (Fnv64_t) {0x0f77eccdUL, 0x186d2da0UL} }, - { &fnv_test_str[79], (Fnv64_t) {0x48c7400eUL, 0xf97140faUL} }, - { &fnv_test_str[80], (Fnv64_t) {0xaa926d52UL, 0xa2b1cf49UL} }, - { &fnv_test_str[81], (Fnv64_t) {0xd6cf9475UL, 0x0690712cUL} }, - { &fnv_test_str[82], (Fnv64_t) {0x02b89064UL, 0xf7045b31UL} }, - { &fnv_test_str[83], (Fnv64_t) {0x9f9d6aeaUL, 0x74f76247UL} }, - { &fnv_test_str[84], (Fnv64_t) {0xb4eb2b9cUL, 0x08326007UL} }, - { &fnv_test_str[85], (Fnv64_t) {0x6b9b1a14UL, 0xd8c4c918UL} }, - { &fnv_test_str[86], (Fnv64_t) {0xbdbdd4c7UL, 0x7b495389UL} }, - { &fnv_test_str[87], (Fnv64_t) {0x69908e25UL, 0x3b6dba0dUL} }, - { &fnv_test_str[88], (Fnv64_t) {0xf4b71261UL, 0xd6b2b17bUL} }, - { &fnv_test_str[89], (Fnv64_t) {0x98e615b5UL, 0x447bfb7fUL} }, - { &fnv_test_str[90], (Fnv64_t) {0xf4b71262UL, 0xd6b2b17bUL} }, - { &fnv_test_str[91], (Fnv64_t) {0x93fe1660UL, 0x3bd2807fUL} }, - { &fnv_test_str[92], (Fnv64_t) {0xf4b71263UL, 0xd6b2b17bUL} }, - { &fnv_test_str[93], (Fnv64_t) {0x8f16170bUL, 0x3329057fUL} }, - { &fnv_test_str[94], (Fnv64_t) {0xf4b71264UL, 0xd6b2b17bUL} }, - { &fnv_test_str[95], (Fnv64_t) {0x8a2e19b6UL, 0x2a7f8a7fUL} }, - { &fnv_test_str[96], (Fnv64_t) {0x64b2f98aUL, 0x23d3767eUL} }, - { &fnv_test_str[97], (Fnv64_t) {0x4f9d86a4UL, 0xff768d7eUL} }, - { &fnv_test_str[98], (Fnv64_t) {0x64b2f984UL, 0x23d3767eUL} }, - { &fnv_test_str[99], (Fnv64_t) {0x334e4aa6UL, 0xccd1837eUL} }, - { &fnv_test_str[100], (Fnv64_t) {0x64b2f99aUL, 0x23d3767eUL} }, - { &fnv_test_str[101], (Fnv64_t) {0x028f6754UL, 0x7691fd7eUL} }, - { &fnv_test_str[102], (Fnv64_t) {0x41204318UL, 0x34ad3b10UL} }, - { &fnv_test_str[103], (Fnv64_t) {0xa9d201c8UL, 0xa29e749eUL} }, - { &fnv_test_str[104], (Fnv64_t) {0x4120431bUL, 0x34ad3b10UL} }, - { &fnv_test_str[105], (Fnv64_t) {0xa9d206e1UL, 0xa29e779eUL} }, - { &fnv_test_str[106], (Fnv64_t) {0x4120431aUL, 0x34ad3b10UL} }, - { &fnv_test_str[107], (Fnv64_t) {0xa9d2052eUL, 0xa29e769eUL} }, - { &fnv_test_str[108], (Fnv64_t) {0xa4aa3497UL, 0x02a17ebcUL} }, - { &fnv_test_str[109], (Fnv64_t) {0xcd375c95UL, 0x229ef18bUL} }, - { &fnv_test_str[110], (Fnv64_t) {0xa4aa32c8UL, 0x02a17dbcUL} }, - { &fnv_test_str[111], (Fnv64_t) {0xcd3449d8UL, 0x229b6f8bUL} }, - { &fnv_test_str[112], (Fnv64_t) {0xa4aa3ed5UL, 0x02a184bcUL} }, - { &fnv_test_str[113], (Fnv64_t) {0xcd48c3efUL, 0x22b3618bUL} }, - { &fnv_test_str[114], (Fnv64_t) {0x06186f36UL, 0x5c2c3467UL} }, - { &fnv_test_str[115], (Fnv64_t) {0x5b84f8c2UL, 0xb78c410fUL} }, - { &fnv_test_str[116], (Fnv64_t) {0x2b267395UL, 0xed947821UL} }, - { &fnv_test_str[117], (Fnv64_t) {0x5256662fUL, 0xd9bbb55cUL} }, - { &fnv_test_str[118], (Fnv64_t) {0x3249438aUL, 0x8c54f020UL} }, - { &fnv_test_str[119], (Fnv64_t) {0x727dc37eUL, 0xbd9790b5UL} }, - { &fnv_test_str[120], (Fnv64_t) {0xc9e2b0e3UL, 0xa64e5f36UL} }, - { &fnv_test_str[121], (Fnv64_t) {0xa3088a04UL, 0x8fd0680dUL} }, - { &fnv_test_str[122], (Fnv64_t) {0x078284ccUL, 0x67aad32cUL} }, - { &fnv_test_str[123], (Fnv64_t) {0x1c57b331UL, 0xb37d55d8UL} }, - { &fnv_test_str[124], (Fnv64_t) {0x29057c43UL, 0x55ac0f38UL} }, - { &fnv_test_str[125], (Fnv64_t) {0xe1b6cc20UL, 0xcb27f4b8UL} }, - { &fnv_test_str[126], (Fnv64_t) {0xcbef2d19UL, 0x26caf88bUL} }, - { &fnv_test_str[127], (Fnv64_t) {0x97e61b8fUL, 0x8e6e063bUL} }, - { &fnv_test_str[128], (Fnv64_t) {0xf3b7c37eUL, 0xb42750f7UL} }, - { &fnv_test_str[129], (Fnv64_t) {0xcf7ca99bUL, 0xf3c6ba64UL} }, - { &fnv_test_str[130], (Fnv64_t) {0x27ea80feUL, 0xebfb69b4UL} }, - { &fnv_test_str[131], (Fnv64_t) {0xd970f46cUL, 0x39b50c3eUL} }, - { &fnv_test_str[132], (Fnv64_t) {0xa3eb3e8aUL, 0x5b9b177aUL} }, - { &fnv_test_str[133], (Fnv64_t) {0xcf4ec903UL, 0x6510063eUL} }, - { &fnv_test_str[134], (Fnv64_t) {0x00797c7aUL, 0x2b3bbd2cUL} }, - { &fnv_test_str[135], (Fnv64_t) {0xf5cb4aa7UL, 0xf1d6204fUL} }, - { &fnv_test_str[136], (Fnv64_t) {0xcf099f38UL, 0x4836e27cUL} }, - { &fnv_test_str[137], (Fnv64_t) {0xd073b44dUL, 0x82efbb0dUL} }, - { &fnv_test_str[138], (Fnv64_t) {0xffd7d4c6UL, 0x4a80c282UL} }, - { &fnv_test_str[139], (Fnv64_t) {0x9ee43bdfUL, 0x305d1a9cUL} }, - { &fnv_test_str[140], (Fnv64_t) {0x8ffc6997UL, 0x15c36694UL} }, - { &fnv_test_str[141], (Fnv64_t) {0x18916e7bUL, 0x80153ae2UL} }, - { &fnv_test_str[142], (Fnv64_t) {0xf9e2a9e1UL, 0xfa23e2bdUL} }, - { &fnv_test_str[143], (Fnv64_t) {0x2333c6deUL, 0xd47e8d8aUL} }, - { &fnv_test_str[144], (Fnv64_t) {0xf688b056UL, 0x7e128095UL} }, - { &fnv_test_str[145], (Fnv64_t) {0x0efcedabUL, 0x2f535689UL} }, - { &fnv_test_str[146], (Fnv64_t) {0x014f55c5UL, 0x95c2b383UL} }, - { &fnv_test_str[147], (Fnv64_t) {0x9ce6070fUL, 0x4727a533UL} }, - { &fnv_test_str[148], (Fnv64_t) {0x575108e9UL, 0xb0555ecdUL} }, - { &fnv_test_str[149], (Fnv64_t) {0x0bb4af37UL, 0x48d78577UL} }, - { &fnv_test_str[150], (Fnv64_t) {0x12af02b1UL, 0x09d4701cUL} }, - { &fnv_test_str[151], (Fnv64_t) {0x8f3cf62eUL, 0x79f031e7UL} }, - { &fnv_test_str[152], (Fnv64_t) {0xdb1b5a94UL, 0x52a1ee85UL} }, - { &fnv_test_str[153], (Fnv64_t) {0xb37fa6b8UL, 0x6bd95b2eUL} }, - { &fnv_test_str[154], (Fnv64_t) {0x77aef85dUL, 0x74971b70UL} }, - { &fnv_test_str[155], (Fnv64_t) {0xffcc1aadUL, 0xb4e4fae2UL} }, - { &fnv_test_str[156], (Fnv64_t) {0x98b8f63aUL, 0x2bd48bd8UL} }, - { &fnv_test_str[157], (Fnv64_t) {0x556257f6UL, 0xe9966ac1UL} }, - { &fnv_test_str[158], (Fnv64_t) {0x078ba293UL, 0x92a3d1cdUL} }, - { &fnv_test_str[159], (Fnv64_t) {0x82e20ab8UL, 0xf81175a4UL} }, - { &fnv_test_str[160], (Fnv64_t) {0x22e73048UL, 0x5bbb3de7UL} }, - { &fnv_test_str[161], (Fnv64_t) {0x92b9f2beUL, 0x6b4f3634UL} }, - { &fnv_test_str[162], (Fnv64_t) {0x73d59875UL, 0xc2d559dfUL} }, - { &fnv_test_str[163], (Fnv64_t) {0x4bc7a8c2UL, 0xf75f6228UL} }, - { &fnv_test_str[164], (Fnv64_t) {0x16a9f1ccUL, 0xda8dd8e1UL} }, - { &fnv_test_str[165], (Fnv64_t) {0x76057885UL, 0xbdc1e6abUL} }, - { &fnv_test_str[166], (Fnv64_t) {0x8a1224a0UL, 0xfec6a423UL} }, - { &fnv_test_str[167], (Fnv64_t) {0x223e290eUL, 0xc03f40f3UL} }, - { &fnv_test_str[168], (Fnv64_t) {0x466ffda9UL, 0x1ed21673UL} }, - { &fnv_test_str[169], (Fnv64_t) {0xbb0dd2afUL, 0xdf70f906UL} }, - { &fnv_test_str[170], (Fnv64_t) {0x9f2af666UL, 0xf3dcda36UL} }, - { &fnv_test_str[171], (Fnv64_t) {0x3cdcebdeUL, 0x9ebb1157UL} }, - { &fnv_test_str[172], (Fnv64_t) {0x77fedca0UL, 0x81c72d90UL} }, - { &fnv_test_str[173], (Fnv64_t) {0x1be5fb15UL, 0x0ec074a3UL} }, - { &fnv_test_str[174], (Fnv64_t) {0xb6c48f20UL, 0x2a8b3280UL} }, - { &fnv_test_str[175], (Fnv64_t) {0x13309344UL, 0xfd317775UL} }, - { &fnv_test_str[176], (Fnv64_t) {0x6ad006b6UL, 0x194534a8UL} }, - { &fnv_test_str[177], (Fnv64_t) {0x6e0cfe12UL, 0x3be6fdf4UL} }, - { &fnv_test_str[178], (Fnv64_t) {0xa07eb057UL, 0x017cc137UL} }, - { &fnv_test_str[179], (Fnv64_t) {0x7d26b54dUL, 0x9428fc6eUL} }, - { &fnv_test_str[180], (Fnv64_t) {0x03ef8ad7UL, 0x9aaa2e36UL} }, - { &fnv_test_str[181], (Fnv64_t) {0xa0ccdf7dUL, 0x82c6d3f3UL} }, - { &fnv_test_str[182], (Fnv64_t) {0x0cf09b65UL, 0xc86eeea0UL} }, - { &fnv_test_str[183], (Fnv64_t) {0xdbb58299UL, 0x705f8189UL} }, - { &fnv_test_str[184], (Fnv64_t) {0x4391ca69UL, 0x415a7f55UL} }, - { &fnv_test_str[185], (Fnv64_t) {0xa2bdc555UL, 0xcfe3d49fUL} }, - { &fnv_test_str[186], (Fnv64_t) {0x39b25191UL, 0xf0f9c560UL} }, - { &fnv_test_str[187], (Fnv64_t) {0xbd1d32d9UL, 0x7075cb6aUL} }, - { &fnv_test_str[188], (Fnv64_t) {0x8b277509UL, 0x43c94e2cUL} }, - { &fnv_test_str[189], (Fnv64_t) {0xea670359UL, 0x3cbfd4e4UL} }, - { &fnv_test_str[190], (Fnv64_t) {0x0f4d019dUL, 0xc0588781UL} }, - { &fnv_test_str[191], (Fnv64_t) {0x3ac22dc5UL, 0x14468ff9UL} }, - { &fnv_test_str[192], (Fnv64_t) {0x89d99c05UL, 0xebed6995UL} }, - { &fnv_test_str[193], (Fnv64_t) {0x321ca5d5UL, 0x6d99f6dfUL} }, - { &fnv_test_str[194], (Fnv64_t) {0x8c36d625UL, 0x0cd410d0UL} }, - { &fnv_test_str[195], (Fnv64_t) {0x86831d35UL, 0xef1b2a2cUL} }, - { &fnv_test_str[196], (Fnv64_t) {0x69ee5f05UL, 0x3b349c4dUL} }, - { &fnv_test_str[197], (Fnv64_t) {0x8f45f035UL, 0x55248ce8UL} }, - { &fnv_test_str[198], (Fnv64_t) {0x18a4c885UL, 0xaa69ca6aUL} }, - { &fnv_test_str[199], (Fnv64_t) {0x2bd816b5UL, 0x1fe3fce6UL} }, - { &fnv_test_str[200], (Fnv64_t) {0xa8df69d9UL, 0x0289a488UL} }, - { &fnv_test_str[201], (Fnv64_t) {0x13df98b5UL, 0x15e96e16UL} }, - { &fnv_test_str[202], (Fnv64_t) {0x5ad89b99UL, 0xe6be5737UL} }, - { NULL, (Fnv64_t) {0,0} } -}; -#endif /* HAVE_64BIT_LONG_LONG */ - -/* FNV-1a 64 bit test vectors */ -#if defined(HAVE_64BIT_LONG_LONG) -struct fnv1a_64_test_vector fnv1a_64_vector[] = { - { &fnv_test_str[0], (Fnv64_t) 0xcbf29ce484222325ULL }, - { &fnv_test_str[1], (Fnv64_t) 0xaf63dc4c8601ec8cULL }, - { &fnv_test_str[2], (Fnv64_t) 0xaf63df4c8601f1a5ULL }, - { &fnv_test_str[3], (Fnv64_t) 0xaf63de4c8601eff2ULL }, - { &fnv_test_str[4], (Fnv64_t) 0xaf63d94c8601e773ULL }, - { &fnv_test_str[5], (Fnv64_t) 0xaf63d84c8601e5c0ULL }, - { &fnv_test_str[6], (Fnv64_t) 0xaf63db4c8601ead9ULL }, - { &fnv_test_str[7], (Fnv64_t) 0x08985907b541d342ULL }, - { &fnv_test_str[8], (Fnv64_t) 0xdcb27518fed9d577ULL }, - { &fnv_test_str[9], (Fnv64_t) 0xdd120e790c2512afULL }, - { &fnv_test_str[10], (Fnv64_t) 0xcac165afa2fef40aULL }, - { &fnv_test_str[11], (Fnv64_t) 0x85944171f73967e8ULL }, - { &fnv_test_str[12], (Fnv64_t) 0xaf63bd4c8601b7dfULL }, - { &fnv_test_str[13], (Fnv64_t) 0x089be207b544f1e4ULL }, - { &fnv_test_str[14], (Fnv64_t) 0x08a61407b54d9b5fULL }, - { &fnv_test_str[15], (Fnv64_t) 0x08a2ae07b54ab836ULL }, - { &fnv_test_str[16], (Fnv64_t) 0x0891b007b53c4869ULL }, - { &fnv_test_str[17], (Fnv64_t) 0x088e4a07b5396540ULL }, - { &fnv_test_str[18], (Fnv64_t) 0x08987c07b5420ebbULL }, - { &fnv_test_str[19], (Fnv64_t) 0xdcb28a18fed9f926ULL }, - { &fnv_test_str[20], (Fnv64_t) 0xdd1270790c25b935ULL }, - { &fnv_test_str[21], (Fnv64_t) 0xcac146afa2febf5dULL }, - { &fnv_test_str[22], (Fnv64_t) 0x8593d371f738acfeULL }, - { &fnv_test_str[23], (Fnv64_t) 0x34531ca7168b8f38ULL }, - { &fnv_test_str[24], (Fnv64_t) 0x08a25607b54a22aeULL }, - { &fnv_test_str[25], (Fnv64_t) 0xf5faf0190cf90df3ULL }, - { &fnv_test_str[26], (Fnv64_t) 0xf27397910b3221c7ULL }, - { &fnv_test_str[27], (Fnv64_t) 0x2c8c2b76062f22e0ULL }, - { &fnv_test_str[28], (Fnv64_t) 0xe150688c8217b8fdULL }, - { &fnv_test_str[29], (Fnv64_t) 0xf35a83c10e4f1f87ULL }, - { &fnv_test_str[30], (Fnv64_t) 0xd1edd10b507344d0ULL }, - { &fnv_test_str[31], (Fnv64_t) 0x2a5ee739b3ddb8c3ULL }, - { &fnv_test_str[32], (Fnv64_t) 0xdcfb970ca1c0d310ULL }, - { &fnv_test_str[33], (Fnv64_t) 0x4054da76daa6da90ULL }, - { &fnv_test_str[34], (Fnv64_t) 0xf70a2ff589861368ULL }, - { &fnv_test_str[35], (Fnv64_t) 0x4c628b38aed25f17ULL }, - { &fnv_test_str[36], (Fnv64_t) 0x9dd1f6510f78189fULL }, - { &fnv_test_str[37], (Fnv64_t) 0xa3de85bd491270ceULL }, - { &fnv_test_str[38], (Fnv64_t) 0x858e2fa32a55e61dULL }, - { &fnv_test_str[39], (Fnv64_t) 0x46810940eff5f915ULL }, - { &fnv_test_str[40], (Fnv64_t) 0xf5fadd190cf8edaaULL }, - { &fnv_test_str[41], (Fnv64_t) 0xf273ed910b32b3e9ULL }, - { &fnv_test_str[42], (Fnv64_t) 0x2c8c5276062f6525ULL }, - { &fnv_test_str[43], (Fnv64_t) 0xe150b98c821842a0ULL }, - { &fnv_test_str[44], (Fnv64_t) 0xf35aa3c10e4f55e7ULL }, - { &fnv_test_str[45], (Fnv64_t) 0xd1ed680b50729265ULL }, - { &fnv_test_str[46], (Fnv64_t) 0x2a5f0639b3dded70ULL }, - { &fnv_test_str[47], (Fnv64_t) 0xdcfbaa0ca1c0f359ULL }, - { &fnv_test_str[48], (Fnv64_t) 0x4054ba76daa6a430ULL }, - { &fnv_test_str[49], (Fnv64_t) 0xf709c7f5898562b0ULL }, - { &fnv_test_str[50], (Fnv64_t) 0x4c62e638aed2f9b8ULL }, - { &fnv_test_str[51], (Fnv64_t) 0x9dd1a8510f779415ULL }, - { &fnv_test_str[52], (Fnv64_t) 0xa3de2abd4911d62dULL }, - { &fnv_test_str[53], (Fnv64_t) 0x858e0ea32a55ae0aULL }, - { &fnv_test_str[54], (Fnv64_t) 0x46810f40eff60347ULL }, - { &fnv_test_str[55], (Fnv64_t) 0xc33bce57bef63eafULL }, - { &fnv_test_str[56], (Fnv64_t) 0x08a24307b54a0265ULL }, - { &fnv_test_str[57], (Fnv64_t) 0xf5b9fd190cc18d15ULL }, - { &fnv_test_str[58], (Fnv64_t) 0x4c968290ace35703ULL }, - { &fnv_test_str[59], (Fnv64_t) 0x07174bd5c64d9350ULL }, - { &fnv_test_str[60], (Fnv64_t) 0x5a294c3ff5d18750ULL }, - { &fnv_test_str[61], (Fnv64_t) 0x05b3c1aeb308b843ULL }, - { &fnv_test_str[62], (Fnv64_t) 0xb92a48da37d0f477ULL }, - { &fnv_test_str[63], (Fnv64_t) 0x73cdddccd80ebc49ULL }, - { &fnv_test_str[64], (Fnv64_t) 0xd58c4c13210a266bULL }, - { &fnv_test_str[65], (Fnv64_t) 0xe78b6081243ec194ULL }, - { &fnv_test_str[66], (Fnv64_t) 0xb096f77096a39f34ULL }, - { &fnv_test_str[67], (Fnv64_t) 0xb425c54ff807b6a3ULL }, - { &fnv_test_str[68], (Fnv64_t) 0x23e520e2751bb46eULL }, - { &fnv_test_str[69], (Fnv64_t) 0x1a0b44ccfe1385ecULL }, - { &fnv_test_str[70], (Fnv64_t) 0xf5ba4b190cc2119fULL }, - { &fnv_test_str[71], (Fnv64_t) 0x4c962690ace2baafULL }, - { &fnv_test_str[72], (Fnv64_t) 0x0716ded5c64cda19ULL }, - { &fnv_test_str[73], (Fnv64_t) 0x5a292c3ff5d150f0ULL }, - { &fnv_test_str[74], (Fnv64_t) 0x05b3e0aeb308ecf0ULL }, - { &fnv_test_str[75], (Fnv64_t) 0xb92a5eda37d119d9ULL }, - { &fnv_test_str[76], (Fnv64_t) 0x73ce41ccd80f6635ULL }, - { &fnv_test_str[77], (Fnv64_t) 0xd58c2c132109f00bULL }, - { &fnv_test_str[78], (Fnv64_t) 0xe78baf81243f47d1ULL }, - { &fnv_test_str[79], (Fnv64_t) 0xb0968f7096a2ee7cULL }, - { &fnv_test_str[80], (Fnv64_t) 0xb425a84ff807855cULL }, - { &fnv_test_str[81], (Fnv64_t) 0x23e4e9e2751b56f9ULL }, - { &fnv_test_str[82], (Fnv64_t) 0x1a0b4eccfe1396eaULL }, - { &fnv_test_str[83], (Fnv64_t) 0x54abd453bb2c9004ULL }, - { &fnv_test_str[84], (Fnv64_t) 0x08ba5f07b55ec3daULL }, - { &fnv_test_str[85], (Fnv64_t) 0x337354193006cb6eULL }, - { &fnv_test_str[86], (Fnv64_t) 0xa430d84680aabd0bULL }, - { &fnv_test_str[87], (Fnv64_t) 0xa9bc8acca21f39b1ULL }, - { &fnv_test_str[88], (Fnv64_t) 0x6961196491cc682dULL }, - { &fnv_test_str[89], (Fnv64_t) 0xad2bb1774799dfe9ULL }, - { &fnv_test_str[90], (Fnv64_t) 0x6961166491cc6314ULL }, - { &fnv_test_str[91], (Fnv64_t) 0x8d1bb3904a3b1236ULL }, - { &fnv_test_str[92], (Fnv64_t) 0x6961176491cc64c7ULL }, - { &fnv_test_str[93], (Fnv64_t) 0xed205d87f40434c7ULL }, - { &fnv_test_str[94], (Fnv64_t) 0x6961146491cc5faeULL }, - { &fnv_test_str[95], (Fnv64_t) 0xcd3baf5e44f8ad9cULL }, - { &fnv_test_str[96], (Fnv64_t) 0xe3b36596127cd6d8ULL }, - { &fnv_test_str[97], (Fnv64_t) 0xf77f1072c8e8a646ULL }, - { &fnv_test_str[98], (Fnv64_t) 0xe3b36396127cd372ULL }, - { &fnv_test_str[99], (Fnv64_t) 0x6067dce9932ad458ULL }, - { &fnv_test_str[100], (Fnv64_t) 0xe3b37596127cf208ULL }, - { &fnv_test_str[101], (Fnv64_t) 0x4b7b10fa9fe83936ULL }, - { &fnv_test_str[102], (Fnv64_t) 0xaabafe7104d914beULL }, - { &fnv_test_str[103], (Fnv64_t) 0xf4d3180b3cde3edaULL }, - { &fnv_test_str[104], (Fnv64_t) 0xaabafd7104d9130bULL }, - { &fnv_test_str[105], (Fnv64_t) 0xf4cfb20b3cdb5bb1ULL }, - { &fnv_test_str[106], (Fnv64_t) 0xaabafc7104d91158ULL }, - { &fnv_test_str[107], (Fnv64_t) 0xf4cc4c0b3cd87888ULL }, - { &fnv_test_str[108], (Fnv64_t) 0xe729bac5d2a8d3a7ULL }, - { &fnv_test_str[109], (Fnv64_t) 0x74bc0524f4dfa4c5ULL }, - { &fnv_test_str[110], (Fnv64_t) 0xe72630c5d2a5b352ULL }, - { &fnv_test_str[111], (Fnv64_t) 0x6b983224ef8fb456ULL }, - { &fnv_test_str[112], (Fnv64_t) 0xe73042c5d2ae266dULL }, - { &fnv_test_str[113], (Fnv64_t) 0x8527e324fdeb4b37ULL }, - { &fnv_test_str[114], (Fnv64_t) 0x0a83c86fee952abcULL }, - { &fnv_test_str[115], (Fnv64_t) 0x7318523267779d74ULL }, - { &fnv_test_str[116], (Fnv64_t) 0x3e66d3d56b8caca1ULL }, - { &fnv_test_str[117], (Fnv64_t) 0x956694a5c0095593ULL }, - { &fnv_test_str[118], (Fnv64_t) 0xcac54572bb1a6fc8ULL }, - { &fnv_test_str[119], (Fnv64_t) 0xa7a4c9f3edebf0d8ULL }, - { &fnv_test_str[120], (Fnv64_t) 0x7829851fac17b143ULL }, - { &fnv_test_str[121], (Fnv64_t) 0x2c8f4c9af81bcf06ULL }, - { &fnv_test_str[122], (Fnv64_t) 0xd34e31539740c732ULL }, - { &fnv_test_str[123], (Fnv64_t) 0x3605a2ac253d2db1ULL }, - { &fnv_test_str[124], (Fnv64_t) 0x08c11b8346f4a3c3ULL }, - { &fnv_test_str[125], (Fnv64_t) 0x6be396289ce8a6daULL }, - { &fnv_test_str[126], (Fnv64_t) 0xd9b957fb7fe794c5ULL }, - { &fnv_test_str[127], (Fnv64_t) 0x05be33da04560a93ULL }, - { &fnv_test_str[128], (Fnv64_t) 0x0957f1577ba9747cULL }, - { &fnv_test_str[129], (Fnv64_t) 0xda2cc3acc24fba57ULL }, - { &fnv_test_str[130], (Fnv64_t) 0x74136f185b29e7f0ULL }, - { &fnv_test_str[131], (Fnv64_t) 0xb2f2b4590edb93b2ULL }, - { &fnv_test_str[132], (Fnv64_t) 0xb3608fce8b86ae04ULL }, - { &fnv_test_str[133], (Fnv64_t) 0x4a3a865079359063ULL }, - { &fnv_test_str[134], (Fnv64_t) 0x5b3a7ef496880a50ULL }, - { &fnv_test_str[135], (Fnv64_t) 0x48fae3163854c23bULL }, - { &fnv_test_str[136], (Fnv64_t) 0x07aaa640476e0b9aULL }, - { &fnv_test_str[137], (Fnv64_t) 0x2f653656383a687dULL }, - { &fnv_test_str[138], (Fnv64_t) 0xa1031f8e7599d79cULL }, - { &fnv_test_str[139], (Fnv64_t) 0xa31908178ff92477ULL }, - { &fnv_test_str[140], (Fnv64_t) 0x097edf3c14c3fb83ULL }, - { &fnv_test_str[141], (Fnv64_t) 0xb51ca83feaa0971bULL }, - { &fnv_test_str[142], (Fnv64_t) 0xdd3c0d96d784f2e9ULL }, - { &fnv_test_str[143], (Fnv64_t) 0x86cd26a9ea767d78ULL }, - { &fnv_test_str[144], (Fnv64_t) 0xe6b215ff54a30c18ULL }, - { &fnv_test_str[145], (Fnv64_t) 0xec5b06a1c5531093ULL }, - { &fnv_test_str[146], (Fnv64_t) 0x45665a929f9ec5e5ULL }, - { &fnv_test_str[147], (Fnv64_t) 0x8c7609b4a9f10907ULL }, - { &fnv_test_str[148], (Fnv64_t) 0x89aac3a491f0d729ULL }, - { &fnv_test_str[149], (Fnv64_t) 0x32ce6b26e0f4a403ULL }, - { &fnv_test_str[150], (Fnv64_t) 0x614ab44e02b53e01ULL }, - { &fnv_test_str[151], (Fnv64_t) 0xfa6472eb6eef3290ULL }, - { &fnv_test_str[152], (Fnv64_t) 0x9e5d75eb1948eb6aULL }, - { &fnv_test_str[153], (Fnv64_t) 0xb6d12ad4a8671852ULL }, - { &fnv_test_str[154], (Fnv64_t) 0x88826f56eba07af1ULL }, - { &fnv_test_str[155], (Fnv64_t) 0x44535bf2645bc0fdULL }, - { &fnv_test_str[156], (Fnv64_t) 0x169388ffc21e3728ULL }, - { &fnv_test_str[157], (Fnv64_t) 0xf68aac9e396d8224ULL }, - { &fnv_test_str[158], (Fnv64_t) 0x8e87d7e7472b3883ULL }, - { &fnv_test_str[159], (Fnv64_t) 0x295c26caa8b423deULL }, - { &fnv_test_str[160], (Fnv64_t) 0x322c814292e72176ULL }, - { &fnv_test_str[161], (Fnv64_t) 0x8a06550eb8af7268ULL }, - { &fnv_test_str[162], (Fnv64_t) 0xef86d60e661bcf71ULL }, - { &fnv_test_str[163], (Fnv64_t) 0x9e5426c87f30ee54ULL }, - { &fnv_test_str[164], (Fnv64_t) 0xf1ea8aa826fd047eULL }, - { &fnv_test_str[165], (Fnv64_t) 0x0babaf9a642cb769ULL }, - { &fnv_test_str[166], (Fnv64_t) 0x4b3341d4068d012eULL }, - { &fnv_test_str[167], (Fnv64_t) 0xd15605cbc30a335cULL }, - { &fnv_test_str[168], (Fnv64_t) 0x5b21060aed8412e5ULL }, - { &fnv_test_str[169], (Fnv64_t) 0x45e2cda1ce6f4227ULL }, - { &fnv_test_str[170], (Fnv64_t) 0x50ae3745033ad7d4ULL }, - { &fnv_test_str[171], (Fnv64_t) 0xaa4588ced46bf414ULL }, - { &fnv_test_str[172], (Fnv64_t) 0xc1b0056c4a95467eULL }, - { &fnv_test_str[173], (Fnv64_t) 0x56576a71de8b4089ULL }, - { &fnv_test_str[174], (Fnv64_t) 0xbf20965fa6dc927eULL }, - { &fnv_test_str[175], (Fnv64_t) 0x569f8383c2040882ULL }, - { &fnv_test_str[176], (Fnv64_t) 0xe1e772fba08feca0ULL }, - { &fnv_test_str[177], (Fnv64_t) 0x4ced94af97138ac4ULL }, - { &fnv_test_str[178], (Fnv64_t) 0xc4112ffb337a82fbULL }, - { &fnv_test_str[179], (Fnv64_t) 0xd64a4fd41de38b7dULL }, - { &fnv_test_str[180], (Fnv64_t) 0x4cfc32329edebcbbULL }, - { &fnv_test_str[181], (Fnv64_t) 0x0803564445050395ULL }, - { &fnv_test_str[182], (Fnv64_t) 0xaa1574ecf4642ffdULL }, - { &fnv_test_str[183], (Fnv64_t) 0x694bc4e54cc315f9ULL }, - { &fnv_test_str[184], (Fnv64_t) 0xa3d7cb273b011721ULL }, - { &fnv_test_str[185], (Fnv64_t) 0x577c2f8b6115bfa5ULL }, - { &fnv_test_str[186], (Fnv64_t) 0xb7ec8c1a769fb4c1ULL }, - { &fnv_test_str[187], (Fnv64_t) 0x5d5cfce63359ab19ULL }, - { &fnv_test_str[188], (Fnv64_t) 0x33b96c3cd65b5f71ULL }, - { &fnv_test_str[189], (Fnv64_t) 0xd845097780602bb9ULL }, - { &fnv_test_str[190], (Fnv64_t) 0x84d47645d02da3d5ULL }, - { &fnv_test_str[191], (Fnv64_t) 0x83544f33b58773a5ULL }, - { &fnv_test_str[192], (Fnv64_t) 0x9175cbb2160836c5ULL }, - { &fnv_test_str[193], (Fnv64_t) 0xc71b3bc175e72bc5ULL }, - { &fnv_test_str[194], (Fnv64_t) 0x636806ac222ec985ULL }, - { &fnv_test_str[195], (Fnv64_t) 0xb6ef0e6950f52ed5ULL }, - { &fnv_test_str[196], (Fnv64_t) 0xead3d8a0f3dfdaa5ULL }, - { &fnv_test_str[197], (Fnv64_t) 0x922908fe9a861ba5ULL }, - { &fnv_test_str[198], (Fnv64_t) 0x6d4821de275fd5c5ULL }, - { &fnv_test_str[199], (Fnv64_t) 0x1fe3fce62bd816b5ULL }, - { &fnv_test_str[200], (Fnv64_t) 0xc23e9fccd6f70591ULL }, - { &fnv_test_str[201], (Fnv64_t) 0xc1af12bdfe16b5b5ULL }, - { &fnv_test_str[202], (Fnv64_t) 0x39e9f18f2f85e221ULL }, - { NULL, (Fnv64_t) 0 } -}; -#else /* HAVE_64BIT_LONG_LONG */ -struct fnv1a_64_test_vector fnv1a_64_vector[] = { - { &fnv_test_str[0], (Fnv64_t) {0x84222325UL, 0xcbf29ce4UL} }, - { &fnv_test_str[1], (Fnv64_t) {0x8601ec8cUL, 0xaf63dc4cUL} }, - { &fnv_test_str[2], (Fnv64_t) {0x8601f1a5UL, 0xaf63df4cUL} }, - { &fnv_test_str[3], (Fnv64_t) {0x8601eff2UL, 0xaf63de4cUL} }, - { &fnv_test_str[4], (Fnv64_t) {0x8601e773UL, 0xaf63d94cUL} }, - { &fnv_test_str[5], (Fnv64_t) {0x8601e5c0UL, 0xaf63d84cUL} }, - { &fnv_test_str[6], (Fnv64_t) {0x8601ead9UL, 0xaf63db4cUL} }, - { &fnv_test_str[7], (Fnv64_t) {0xb541d342UL, 0x08985907UL} }, - { &fnv_test_str[8], (Fnv64_t) {0xfed9d577UL, 0xdcb27518UL} }, - { &fnv_test_str[9], (Fnv64_t) {0x0c2512afUL, 0xdd120e79UL} }, - { &fnv_test_str[10], (Fnv64_t) {0xa2fef40aUL, 0xcac165afUL} }, - { &fnv_test_str[11], (Fnv64_t) {0xf73967e8UL, 0x85944171UL} }, - { &fnv_test_str[12], (Fnv64_t) {0x8601b7dfUL, 0xaf63bd4cUL} }, - { &fnv_test_str[13], (Fnv64_t) {0xb544f1e4UL, 0x089be207UL} }, - { &fnv_test_str[14], (Fnv64_t) {0xb54d9b5fUL, 0x08a61407UL} }, - { &fnv_test_str[15], (Fnv64_t) {0xb54ab836UL, 0x08a2ae07UL} }, - { &fnv_test_str[16], (Fnv64_t) {0xb53c4869UL, 0x0891b007UL} }, - { &fnv_test_str[17], (Fnv64_t) {0xb5396540UL, 0x088e4a07UL} }, - { &fnv_test_str[18], (Fnv64_t) {0xb5420ebbUL, 0x08987c07UL} }, - { &fnv_test_str[19], (Fnv64_t) {0xfed9f926UL, 0xdcb28a18UL} }, - { &fnv_test_str[20], (Fnv64_t) {0x0c25b935UL, 0xdd127079UL} }, - { &fnv_test_str[21], (Fnv64_t) {0xa2febf5dUL, 0xcac146afUL} }, - { &fnv_test_str[22], (Fnv64_t) {0xf738acfeUL, 0x8593d371UL} }, - { &fnv_test_str[23], (Fnv64_t) {0x168b8f38UL, 0x34531ca7UL} }, - { &fnv_test_str[24], (Fnv64_t) {0xb54a22aeUL, 0x08a25607UL} }, - { &fnv_test_str[25], (Fnv64_t) {0x0cf90df3UL, 0xf5faf019UL} }, - { &fnv_test_str[26], (Fnv64_t) {0x0b3221c7UL, 0xf2739791UL} }, - { &fnv_test_str[27], (Fnv64_t) {0x062f22e0UL, 0x2c8c2b76UL} }, - { &fnv_test_str[28], (Fnv64_t) {0x8217b8fdUL, 0xe150688cUL} }, - { &fnv_test_str[29], (Fnv64_t) {0x0e4f1f87UL, 0xf35a83c1UL} }, - { &fnv_test_str[30], (Fnv64_t) {0x507344d0UL, 0xd1edd10bUL} }, - { &fnv_test_str[31], (Fnv64_t) {0xb3ddb8c3UL, 0x2a5ee739UL} }, - { &fnv_test_str[32], (Fnv64_t) {0xa1c0d310UL, 0xdcfb970cUL} }, - { &fnv_test_str[33], (Fnv64_t) {0xdaa6da90UL, 0x4054da76UL} }, - { &fnv_test_str[34], (Fnv64_t) {0x89861368UL, 0xf70a2ff5UL} }, - { &fnv_test_str[35], (Fnv64_t) {0xaed25f17UL, 0x4c628b38UL} }, - { &fnv_test_str[36], (Fnv64_t) {0x0f78189fUL, 0x9dd1f651UL} }, - { &fnv_test_str[37], (Fnv64_t) {0x491270ceUL, 0xa3de85bdUL} }, - { &fnv_test_str[38], (Fnv64_t) {0x2a55e61dUL, 0x858e2fa3UL} }, - { &fnv_test_str[39], (Fnv64_t) {0xeff5f915UL, 0x46810940UL} }, - { &fnv_test_str[40], (Fnv64_t) {0x0cf8edaaUL, 0xf5fadd19UL} }, - { &fnv_test_str[41], (Fnv64_t) {0x0b32b3e9UL, 0xf273ed91UL} }, - { &fnv_test_str[42], (Fnv64_t) {0x062f6525UL, 0x2c8c5276UL} }, - { &fnv_test_str[43], (Fnv64_t) {0x821842a0UL, 0xe150b98cUL} }, - { &fnv_test_str[44], (Fnv64_t) {0x0e4f55e7UL, 0xf35aa3c1UL} }, - { &fnv_test_str[45], (Fnv64_t) {0x50729265UL, 0xd1ed680bUL} }, - { &fnv_test_str[46], (Fnv64_t) {0xb3dded70UL, 0x2a5f0639UL} }, - { &fnv_test_str[47], (Fnv64_t) {0xa1c0f359UL, 0xdcfbaa0cUL} }, - { &fnv_test_str[48], (Fnv64_t) {0xdaa6a430UL, 0x4054ba76UL} }, - { &fnv_test_str[49], (Fnv64_t) {0x898562b0UL, 0xf709c7f5UL} }, - { &fnv_test_str[50], (Fnv64_t) {0xaed2f9b8UL, 0x4c62e638UL} }, - { &fnv_test_str[51], (Fnv64_t) {0x0f779415UL, 0x9dd1a851UL} }, - { &fnv_test_str[52], (Fnv64_t) {0x4911d62dUL, 0xa3de2abdUL} }, - { &fnv_test_str[53], (Fnv64_t) {0x2a55ae0aUL, 0x858e0ea3UL} }, - { &fnv_test_str[54], (Fnv64_t) {0xeff60347UL, 0x46810f40UL} }, - { &fnv_test_str[55], (Fnv64_t) {0xbef63eafUL, 0xc33bce57UL} }, - { &fnv_test_str[56], (Fnv64_t) {0xb54a0265UL, 0x08a24307UL} }, - { &fnv_test_str[57], (Fnv64_t) {0x0cc18d15UL, 0xf5b9fd19UL} }, - { &fnv_test_str[58], (Fnv64_t) {0xace35703UL, 0x4c968290UL} }, - { &fnv_test_str[59], (Fnv64_t) {0xc64d9350UL, 0x07174bd5UL} }, - { &fnv_test_str[60], (Fnv64_t) {0xf5d18750UL, 0x5a294c3fUL} }, - { &fnv_test_str[61], (Fnv64_t) {0xb308b843UL, 0x05b3c1aeUL} }, - { &fnv_test_str[62], (Fnv64_t) {0x37d0f477UL, 0xb92a48daUL} }, - { &fnv_test_str[63], (Fnv64_t) {0xd80ebc49UL, 0x73cdddccUL} }, - { &fnv_test_str[64], (Fnv64_t) {0x210a266bUL, 0xd58c4c13UL} }, - { &fnv_test_str[65], (Fnv64_t) {0x243ec194UL, 0xe78b6081UL} }, - { &fnv_test_str[66], (Fnv64_t) {0x96a39f34UL, 0xb096f770UL} }, - { &fnv_test_str[67], (Fnv64_t) {0xf807b6a3UL, 0xb425c54fUL} }, - { &fnv_test_str[68], (Fnv64_t) {0x751bb46eUL, 0x23e520e2UL} }, - { &fnv_test_str[69], (Fnv64_t) {0xfe1385ecUL, 0x1a0b44ccUL} }, - { &fnv_test_str[70], (Fnv64_t) {0x0cc2119fUL, 0xf5ba4b19UL} }, - { &fnv_test_str[71], (Fnv64_t) {0xace2baafUL, 0x4c962690UL} }, - { &fnv_test_str[72], (Fnv64_t) {0xc64cda19UL, 0x0716ded5UL} }, - { &fnv_test_str[73], (Fnv64_t) {0xf5d150f0UL, 0x5a292c3fUL} }, - { &fnv_test_str[74], (Fnv64_t) {0xb308ecf0UL, 0x05b3e0aeUL} }, - { &fnv_test_str[75], (Fnv64_t) {0x37d119d9UL, 0xb92a5edaUL} }, - { &fnv_test_str[76], (Fnv64_t) {0xd80f6635UL, 0x73ce41ccUL} }, - { &fnv_test_str[77], (Fnv64_t) {0x2109f00bUL, 0xd58c2c13UL} }, - { &fnv_test_str[78], (Fnv64_t) {0x243f47d1UL, 0xe78baf81UL} }, - { &fnv_test_str[79], (Fnv64_t) {0x96a2ee7cUL, 0xb0968f70UL} }, - { &fnv_test_str[80], (Fnv64_t) {0xf807855cUL, 0xb425a84fUL} }, - { &fnv_test_str[81], (Fnv64_t) {0x751b56f9UL, 0x23e4e9e2UL} }, - { &fnv_test_str[82], (Fnv64_t) {0xfe1396eaUL, 0x1a0b4eccUL} }, - { &fnv_test_str[83], (Fnv64_t) {0xbb2c9004UL, 0x54abd453UL} }, - { &fnv_test_str[84], (Fnv64_t) {0xb55ec3daUL, 0x08ba5f07UL} }, - { &fnv_test_str[85], (Fnv64_t) {0x3006cb6eUL, 0x33735419UL} }, - { &fnv_test_str[86], (Fnv64_t) {0x80aabd0bUL, 0xa430d846UL} }, - { &fnv_test_str[87], (Fnv64_t) {0xa21f39b1UL, 0xa9bc8accUL} }, - { &fnv_test_str[88], (Fnv64_t) {0x91cc682dUL, 0x69611964UL} }, - { &fnv_test_str[89], (Fnv64_t) {0x4799dfe9UL, 0xad2bb177UL} }, - { &fnv_test_str[90], (Fnv64_t) {0x91cc6314UL, 0x69611664UL} }, - { &fnv_test_str[91], (Fnv64_t) {0x4a3b1236UL, 0x8d1bb390UL} }, - { &fnv_test_str[92], (Fnv64_t) {0x91cc64c7UL, 0x69611764UL} }, - { &fnv_test_str[93], (Fnv64_t) {0xf40434c7UL, 0xed205d87UL} }, - { &fnv_test_str[94], (Fnv64_t) {0x91cc5faeUL, 0x69611464UL} }, - { &fnv_test_str[95], (Fnv64_t) {0x44f8ad9cUL, 0xcd3baf5eUL} }, - { &fnv_test_str[96], (Fnv64_t) {0x127cd6d8UL, 0xe3b36596UL} }, - { &fnv_test_str[97], (Fnv64_t) {0xc8e8a646UL, 0xf77f1072UL} }, - { &fnv_test_str[98], (Fnv64_t) {0x127cd372UL, 0xe3b36396UL} }, - { &fnv_test_str[99], (Fnv64_t) {0x932ad458UL, 0x6067dce9UL} }, - { &fnv_test_str[100], (Fnv64_t) {0x127cf208UL, 0xe3b37596UL} }, - { &fnv_test_str[101], (Fnv64_t) {0x9fe83936UL, 0x4b7b10faUL} }, - { &fnv_test_str[102], (Fnv64_t) {0x04d914beUL, 0xaabafe71UL} }, - { &fnv_test_str[103], (Fnv64_t) {0x3cde3edaUL, 0xf4d3180bUL} }, - { &fnv_test_str[104], (Fnv64_t) {0x04d9130bUL, 0xaabafd71UL} }, - { &fnv_test_str[105], (Fnv64_t) {0x3cdb5bb1UL, 0xf4cfb20bUL} }, - { &fnv_test_str[106], (Fnv64_t) {0x04d91158UL, 0xaabafc71UL} }, - { &fnv_test_str[107], (Fnv64_t) {0x3cd87888UL, 0xf4cc4c0bUL} }, - { &fnv_test_str[108], (Fnv64_t) {0xd2a8d3a7UL, 0xe729bac5UL} }, - { &fnv_test_str[109], (Fnv64_t) {0xf4dfa4c5UL, 0x74bc0524UL} }, - { &fnv_test_str[110], (Fnv64_t) {0xd2a5b352UL, 0xe72630c5UL} }, - { &fnv_test_str[111], (Fnv64_t) {0xef8fb456UL, 0x6b983224UL} }, - { &fnv_test_str[112], (Fnv64_t) {0xd2ae266dUL, 0xe73042c5UL} }, - { &fnv_test_str[113], (Fnv64_t) {0xfdeb4b37UL, 0x8527e324UL} }, - { &fnv_test_str[114], (Fnv64_t) {0xee952abcUL, 0x0a83c86fUL} }, - { &fnv_test_str[115], (Fnv64_t) {0x67779d74UL, 0x73185232UL} }, - { &fnv_test_str[116], (Fnv64_t) {0x6b8caca1UL, 0x3e66d3d5UL} }, - { &fnv_test_str[117], (Fnv64_t) {0xc0095593UL, 0x956694a5UL} }, - { &fnv_test_str[118], (Fnv64_t) {0xbb1a6fc8UL, 0xcac54572UL} }, - { &fnv_test_str[119], (Fnv64_t) {0xedebf0d8UL, 0xa7a4c9f3UL} }, - { &fnv_test_str[120], (Fnv64_t) {0xac17b143UL, 0x7829851fUL} }, - { &fnv_test_str[121], (Fnv64_t) {0xf81bcf06UL, 0x2c8f4c9aUL} }, - { &fnv_test_str[122], (Fnv64_t) {0x9740c732UL, 0xd34e3153UL} }, - { &fnv_test_str[123], (Fnv64_t) {0x253d2db1UL, 0x3605a2acUL} }, - { &fnv_test_str[124], (Fnv64_t) {0x46f4a3c3UL, 0x08c11b83UL} }, - { &fnv_test_str[125], (Fnv64_t) {0x9ce8a6daUL, 0x6be39628UL} }, - { &fnv_test_str[126], (Fnv64_t) {0x7fe794c5UL, 0xd9b957fbUL} }, - { &fnv_test_str[127], (Fnv64_t) {0x04560a93UL, 0x05be33daUL} }, - { &fnv_test_str[128], (Fnv64_t) {0x7ba9747cUL, 0x0957f157UL} }, - { &fnv_test_str[129], (Fnv64_t) {0xc24fba57UL, 0xda2cc3acUL} }, - { &fnv_test_str[130], (Fnv64_t) {0x5b29e7f0UL, 0x74136f18UL} }, - { &fnv_test_str[131], (Fnv64_t) {0x0edb93b2UL, 0xb2f2b459UL} }, - { &fnv_test_str[132], (Fnv64_t) {0x8b86ae04UL, 0xb3608fceUL} }, - { &fnv_test_str[133], (Fnv64_t) {0x79359063UL, 0x4a3a8650UL} }, - { &fnv_test_str[134], (Fnv64_t) {0x96880a50UL, 0x5b3a7ef4UL} }, - { &fnv_test_str[135], (Fnv64_t) {0x3854c23bUL, 0x48fae316UL} }, - { &fnv_test_str[136], (Fnv64_t) {0x476e0b9aUL, 0x07aaa640UL} }, - { &fnv_test_str[137], (Fnv64_t) {0x383a687dUL, 0x2f653656UL} }, - { &fnv_test_str[138], (Fnv64_t) {0x7599d79cUL, 0xa1031f8eUL} }, - { &fnv_test_str[139], (Fnv64_t) {0x8ff92477UL, 0xa3190817UL} }, - { &fnv_test_str[140], (Fnv64_t) {0x14c3fb83UL, 0x097edf3cUL} }, - { &fnv_test_str[141], (Fnv64_t) {0xeaa0971bUL, 0xb51ca83fUL} }, - { &fnv_test_str[142], (Fnv64_t) {0xd784f2e9UL, 0xdd3c0d96UL} }, - { &fnv_test_str[143], (Fnv64_t) {0xea767d78UL, 0x86cd26a9UL} }, - { &fnv_test_str[144], (Fnv64_t) {0x54a30c18UL, 0xe6b215ffUL} }, - { &fnv_test_str[145], (Fnv64_t) {0xc5531093UL, 0xec5b06a1UL} }, - { &fnv_test_str[146], (Fnv64_t) {0x9f9ec5e5UL, 0x45665a92UL} }, - { &fnv_test_str[147], (Fnv64_t) {0xa9f10907UL, 0x8c7609b4UL} }, - { &fnv_test_str[148], (Fnv64_t) {0x91f0d729UL, 0x89aac3a4UL} }, - { &fnv_test_str[149], (Fnv64_t) {0xe0f4a403UL, 0x32ce6b26UL} }, - { &fnv_test_str[150], (Fnv64_t) {0x02b53e01UL, 0x614ab44eUL} }, - { &fnv_test_str[151], (Fnv64_t) {0x6eef3290UL, 0xfa6472ebUL} }, - { &fnv_test_str[152], (Fnv64_t) {0x1948eb6aUL, 0x9e5d75ebUL} }, - { &fnv_test_str[153], (Fnv64_t) {0xa8671852UL, 0xb6d12ad4UL} }, - { &fnv_test_str[154], (Fnv64_t) {0xeba07af1UL, 0x88826f56UL} }, - { &fnv_test_str[155], (Fnv64_t) {0x645bc0fdUL, 0x44535bf2UL} }, - { &fnv_test_str[156], (Fnv64_t) {0xc21e3728UL, 0x169388ffUL} }, - { &fnv_test_str[157], (Fnv64_t) {0x396d8224UL, 0xf68aac9eUL} }, - { &fnv_test_str[158], (Fnv64_t) {0x472b3883UL, 0x8e87d7e7UL} }, - { &fnv_test_str[159], (Fnv64_t) {0xa8b423deUL, 0x295c26caUL} }, - { &fnv_test_str[160], (Fnv64_t) {0x92e72176UL, 0x322c8142UL} }, - { &fnv_test_str[161], (Fnv64_t) {0xb8af7268UL, 0x8a06550eUL} }, - { &fnv_test_str[162], (Fnv64_t) {0x661bcf71UL, 0xef86d60eUL} }, - { &fnv_test_str[163], (Fnv64_t) {0x7f30ee54UL, 0x9e5426c8UL} }, - { &fnv_test_str[164], (Fnv64_t) {0x26fd047eUL, 0xf1ea8aa8UL} }, - { &fnv_test_str[165], (Fnv64_t) {0x642cb769UL, 0x0babaf9aUL} }, - { &fnv_test_str[166], (Fnv64_t) {0x068d012eUL, 0x4b3341d4UL} }, - { &fnv_test_str[167], (Fnv64_t) {0xc30a335cUL, 0xd15605cbUL} }, - { &fnv_test_str[168], (Fnv64_t) {0xed8412e5UL, 0x5b21060aUL} }, - { &fnv_test_str[169], (Fnv64_t) {0xce6f4227UL, 0x45e2cda1UL} }, - { &fnv_test_str[170], (Fnv64_t) {0x033ad7d4UL, 0x50ae3745UL} }, - { &fnv_test_str[171], (Fnv64_t) {0xd46bf414UL, 0xaa4588ceUL} }, - { &fnv_test_str[172], (Fnv64_t) {0x4a95467eUL, 0xc1b0056cUL} }, - { &fnv_test_str[173], (Fnv64_t) {0xde8b4089UL, 0x56576a71UL} }, - { &fnv_test_str[174], (Fnv64_t) {0xa6dc927eUL, 0xbf20965fUL} }, - { &fnv_test_str[175], (Fnv64_t) {0xc2040882UL, 0x569f8383UL} }, - { &fnv_test_str[176], (Fnv64_t) {0xa08feca0UL, 0xe1e772fbUL} }, - { &fnv_test_str[177], (Fnv64_t) {0x97138ac4UL, 0x4ced94afUL} }, - { &fnv_test_str[178], (Fnv64_t) {0x337a82fbUL, 0xc4112ffbUL} }, - { &fnv_test_str[179], (Fnv64_t) {0x1de38b7dUL, 0xd64a4fd4UL} }, - { &fnv_test_str[180], (Fnv64_t) {0x9edebcbbUL, 0x4cfc3232UL} }, - { &fnv_test_str[181], (Fnv64_t) {0x45050395UL, 0x08035644UL} }, - { &fnv_test_str[182], (Fnv64_t) {0xf4642ffdUL, 0xaa1574ecUL} }, - { &fnv_test_str[183], (Fnv64_t) {0x4cc315f9UL, 0x694bc4e5UL} }, - { &fnv_test_str[184], (Fnv64_t) {0x3b011721UL, 0xa3d7cb27UL} }, - { &fnv_test_str[185], (Fnv64_t) {0x6115bfa5UL, 0x577c2f8bUL} }, - { &fnv_test_str[186], (Fnv64_t) {0x769fb4c1UL, 0xb7ec8c1aUL} }, - { &fnv_test_str[187], (Fnv64_t) {0x3359ab19UL, 0x5d5cfce6UL} }, - { &fnv_test_str[188], (Fnv64_t) {0xd65b5f71UL, 0x33b96c3cUL} }, - { &fnv_test_str[189], (Fnv64_t) {0x80602bb9UL, 0xd8450977UL} }, - { &fnv_test_str[190], (Fnv64_t) {0xd02da3d5UL, 0x84d47645UL} }, - { &fnv_test_str[191], (Fnv64_t) {0xb58773a5UL, 0x83544f33UL} }, - { &fnv_test_str[192], (Fnv64_t) {0x160836c5UL, 0x9175cbb2UL} }, - { &fnv_test_str[193], (Fnv64_t) {0x75e72bc5UL, 0xc71b3bc1UL} }, - { &fnv_test_str[194], (Fnv64_t) {0x222ec985UL, 0x636806acUL} }, - { &fnv_test_str[195], (Fnv64_t) {0x50f52ed5UL, 0xb6ef0e69UL} }, - { &fnv_test_str[196], (Fnv64_t) {0xf3dfdaa5UL, 0xead3d8a0UL} }, - { &fnv_test_str[197], (Fnv64_t) {0x9a861ba5UL, 0x922908feUL} }, - { &fnv_test_str[198], (Fnv64_t) {0x275fd5c5UL, 0x6d4821deUL} }, - { &fnv_test_str[199], (Fnv64_t) {0x2bd816b5UL, 0x1fe3fce6UL} }, - { &fnv_test_str[200], (Fnv64_t) {0xd6f70591UL, 0xc23e9fccUL} }, - { &fnv_test_str[201], (Fnv64_t) {0xfe16b5b5UL, 0xc1af12bdUL} }, - { &fnv_test_str[202], (Fnv64_t) {0x2f85e221UL, 0x39e9f18fUL} }, - { NULL, (Fnv64_t) {0,0} } -}; -#endif /* HAVE_64BIT_LONG_LONG */ - -/* end of output generated by make vector.c */ -/* - * insert the contents of vector.c above - */ - - -/* - * unknown_hash_type - report an unknown hash type error - * - * NOTE: Does not return. - */ -void -unknown_hash_type(char *prog, enum fnv_type type, int code) -{ - fprintf(stderr, "%s: unknown or unexpexted hash type: %d\n", prog, type); - exit(code); -} - - -/* - * print_fnv32 - print an FNV hash - * - * given: - * hval the hash value to print - * mask lower bit mask - * verbose 1 => print arg with hash - * arg string or filename arg - */ -void -print_fnv32(Fnv32_t hval, Fnv32_t mask, int verbose, char *arg) -{ - if (verbose) { - printf("0x%08lx %s\n", hval & mask, arg); - } else { - printf("0x%08lx\n", hval & mask); - } -} - - -/* - * print_fnv64 - print an FNV hash - * - * given: - * hval the hash value to print - * mask lower bit mask - * verbose 1 => print arg with hash - * arg string or filename arg - */ -void -print_fnv64(Fnv64_t hval, Fnv64_t mask, int verbose, char *arg) -{ -#if defined(HAVE_64BIT_LONG_LONG) - if (verbose) { - printf("0x%016llx %s\n", hval & mask, arg); - } else { - printf("0x%016llx\n", hval & mask); - } -#else - if (verbose) { - printf("0x%08lx%08lx %s\n", - hval.w32[1] & mask.w32[1], - hval.w32[0] & mask.w32[0], - arg); - } else { - printf("0x%08lx%08lx\n", - hval.w32[1] & mask.w32[1], - hval.w32[0] & mask.w32[0]); - } -#endif -} diff --git a/lib/lufa b/lib/lufa index 35cc3d92f5..19a5d533f0 160000 --- a/lib/lufa +++ b/lib/lufa @@ -1 +1 @@ -Subproject commit 35cc3d92f557bc8874ca602d2f22642d77cfe129 +Subproject commit 19a5d533f02a7b46eeadca99cc9699659cef7a60 diff --git a/lib/pico-sdk b/lib/pico-sdk deleted file mode 160000 index 07edde8e49..0000000000 --- a/lib/pico-sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 07edde8e49890d2172bbc272aacc119f999df063 diff --git a/lib/python/qmk/cli/doctor/macos.py b/lib/python/qmk/cli/doctor/macos.py index 5d088c9492..00fb272858 100644 --- a/lib/python/qmk/cli/doctor/macos.py +++ b/lib/python/qmk/cli/doctor/macos.py @@ -8,6 +8,6 @@ from .check import CheckStatus def os_test_macos(): """Run the Mac specific tests. """ - cli.log.info("Detected {fg_cyan}macOS %s (%s){fg_reset}.", platform.mac_ver()[0], 'Apple Silicon' if platform.processor() == 'arm' else 'Intel') + cli.log.info("Detected {fg_cyan}macOS %s{fg_reset}.", platform.mac_ver()[0]) return CheckStatus.OK diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py index 2898a9894c..1600ab8dd4 100755 --- a/lib/python/qmk/cli/doctor/main.py +++ b/lib/python/qmk/cli/doctor/main.py @@ -11,7 +11,7 @@ from milc.questions import yesno from qmk import submodules from qmk.constants import QMK_FIRMWARE, QMK_FIRMWARE_UPSTREAM from .check import CheckStatus, check_binaries, check_binary_versions, check_submodules -from qmk.git import git_check_repo, git_get_branch, git_get_tag, git_is_dirty, git_get_remotes, git_check_deviation +from qmk.git import git_check_repo, git_get_branch, git_get_tag, git_get_last_log_entry, git_get_common_ancestor, git_is_dirty, git_get_remotes, git_check_deviation from qmk.commands import in_virtualenv @@ -66,10 +66,32 @@ def git_tests(): if git_branch in ['master', 'develop'] and git_deviation: cli.log.warning('{fg_yellow}The local "%s" branch contains commits not found in the upstream branch.', git_branch) status = CheckStatus.WARNING + for branch in [git_branch, 'upstream/master', 'upstream/develop']: + cli.log.info('- Latest %s: %s', branch, git_get_last_log_entry(branch)) + for branch in ['upstream/master', 'upstream/develop']: + cli.log.info('- Common ancestor with %s: %s', branch, git_get_common_ancestor(branch, 'HEAD')) return status +def output_submodule_status(): + """Prints out information related to the submodule status. + """ + cli.log.info('Submodule status:') + sub_status = submodules.status() + for s in sub_status.keys(): + sub_info = sub_status[s] + if 'name' in sub_info: + sub_name = sub_info['name'] + sub_shorthash = sub_info['shorthash'] if 'shorthash' in sub_info else '' + sub_describe = sub_info['describe'] if 'describe' in sub_info else '' + sub_last_log_timestamp = sub_info['last_log_timestamp'] if 'last_log_timestamp' in sub_info else '' + if sub_last_log_timestamp != '': + cli.log.info(f'- {sub_name}: {sub_last_log_timestamp} -- {sub_describe} ({sub_shorthash})') + else: + cli.log.error(f'- {sub_name}: <<< missing or unknown >>>') + + @cli.argument('-y', '--yes', action='store_true', arg_only=True, help='Answer yes to all questions.') @cli.argument('-n', '--no', action='store_true', arg_only=True, help='Answer no to all questions.') @cli.subcommand('Basic QMK environment checks') @@ -129,6 +151,8 @@ def doctor(cli): elif sub_ok == CheckStatus.WARNING and status == CheckStatus.OK: status = CheckStatus.WARNING + output_submodule_status() + # Report a summary of our findings to the user if status == CheckStatus.OK: cli.log.info('{fg_green}QMK is ready to go') diff --git a/lib/python/qmk/cli/flash.py b/lib/python/qmk/cli/flash.py index ebe739c50e..216896b974 100644 --- a/lib/python/qmk/cli/flash.py +++ b/lib/python/qmk/cli/flash.py @@ -33,8 +33,6 @@ def print_bootloader_help(): cli.echo('\tdfu-split-right') cli.echo('\tdfu-util-split-left') cli.echo('\tdfu-util-split-right') - cli.echo('\tuf2-split-left') - cli.echo('\tuf2-split-right') cli.echo('For more info, visit https://docs.qmk.fm/#/flashing') diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 9d50368aba..893892c479 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -134,29 +134,6 @@ def generate_config_items(kb_info_json, config_h_lines): config_h_lines.append(f'#endif // {config_key}') -def generate_encoder_config(encoder_json, config_h_lines, postfix=''): - """Generate the config.h lines for encoders.""" - a_pads = [] - b_pads = [] - resolutions = [] - for encoder in encoder_json.get("rotary", []): - a_pads.append(encoder["pin_a"]) - b_pads.append(encoder["pin_b"]) - resolutions.append(str(encoder.get("resolution", 4))) - - config_h_lines.append(f'#ifndef ENCODERS_PAD_A{postfix}') - config_h_lines.append(f'# define ENCODERS_PAD_A{postfix} {{ { ", ".join(a_pads) } }}') - config_h_lines.append(f'#endif // ENCODERS_PAD_A{postfix}') - - config_h_lines.append(f'#ifndef ENCODERS_PAD_B{postfix}') - config_h_lines.append(f'# define ENCODERS_PAD_B{postfix} {{ { ", ".join(b_pads) } }}') - config_h_lines.append(f'#endif // ENCODERS_PAD_B{postfix}') - - config_h_lines.append(f'#ifndef ENCODER_RESOLUTIONS{postfix}') - config_h_lines.append(f'# define ENCODER_RESOLUTIONS{postfix} {{ { ", ".join(resolutions) } }}') - config_h_lines.append(f'#endif // ENCODER_RESOLUTIONS{postfix}') - - def generate_split_config(kb_info_json, config_h_lines): """Generate the config.h lines for split boards.""" if 'primary' in kb_info_json['split']: @@ -196,9 +173,6 @@ def generate_split_config(kb_info_json, config_h_lines): if 'right' in kb_info_json['split'].get('matrix_pins', {}): config_h_lines.append(matrix_pins(kb_info_json['split']['matrix_pins']['right'], '_RIGHT')) - if 'right' in kb_info_json['split'].get('encoder', {}): - generate_encoder_config(kb_info_json['split']['encoder']['right'], config_h_lines, '_RIGHT') - @cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @@ -224,9 +198,6 @@ def generate_config_h(cli): if 'matrix_pins' in kb_info_json: config_h_lines.append(matrix_pins(kb_info_json['matrix_pins'])) - if 'encoder' in kb_info_json: - generate_encoder_config(kb_info_json['encoder'], config_h_lines) - if 'split' in kb_info_json: generate_split_config(kb_info_json, config_h_lines) diff --git a/lib/python/qmk/cli/generate/info_json.py b/lib/python/qmk/cli/generate/info_json.py index 0dc80f10cc..284d1a8510 100755 --- a/lib/python/qmk/cli/generate/info_json.py +++ b/lib/python/qmk/cli/generate/info_json.py @@ -5,7 +5,7 @@ Compile an info.json for a particular keyboard and pretty-print it. import json from argcomplete.completers import FilesCompleter -from jsonschema import Draft202012Validator, RefResolver, validators +from jsonschema import Draft7Validator, RefResolver, validators from milc import cli from pathlib import Path @@ -18,7 +18,7 @@ from qmk.path import is_keyboard, normpath def pruning_validator(validator_class): - """Extends Draft202012Validator to remove properties that aren't specified in the schema. + """Extends Draft7Validator to remove properties that aren't specified in the schema. """ validate_properties = validator_class.VALIDATORS["properties"] @@ -37,10 +37,10 @@ def strip_info_json(kb_info_json): """Remove the API-only properties from the info.json. """ schema_store = compile_schema_store() - pruning_draft_validator = pruning_validator(Draft202012Validator) + pruning_draft_7_validator = pruning_validator(Draft7Validator) schema = schema_store['qmk.keyboard.v1'] resolver = RefResolver.from_schema(schema_store['qmk.keyboard.v1'], store=schema_store) - validator = pruning_draft_validator(schema, resolver=resolver).validate + validator = pruning_draft_7_validator(schema, resolver=resolver).validate return validator(kb_info_json) diff --git a/lib/python/qmk/cli/multibuild.py b/lib/python/qmk/cli/multibuild.py index dff8c88422..a1db669ca8 100755 --- a/lib/python/qmk/cli/multibuild.py +++ b/lib/python/qmk/cli/multibuild.py @@ -69,6 +69,7 @@ def multibuild(cli): all: {keyboard_safe}_binary {keyboard_safe}_binary: @rm -f "{QMK_FIRMWARE}/.build/failed.log.{keyboard_safe}" || true + @echo "Compiling QMK Firmware for target: '{keyboard_name}:{cli.args.keymap}'..." >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{cli.args.keymap}" REQUIRE_PLATFORM_KEY= COLOR=true SILENT=false {' '.join(cli.args.env)} \\ >>"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" 2>&1 \\ || cp "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" "{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}" diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py index be85a1dbff..a54d9058bc 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', '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', 'MK66FX1M0', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', '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' diff --git a/lib/python/qmk/git.py b/lib/python/qmk/git.py index 960184a0a2..5d09d816df 100644 --- a/lib/python/qmk/git.py +++ b/lib/python/qmk/git.py @@ -62,6 +62,25 @@ def git_get_tag(): return git_tag.stdout.strip() +def git_get_last_log_entry(branch_name): + """Retrieves the last log entry for the branch being worked on. + """ + git_lastlog = cli.run(['git', '--no-pager', 'log', '--pretty=format:%ad (%h) -- %s', '--date=iso', '-n1', branch_name]) + + if git_lastlog.returncode == 0 and git_lastlog.stdout: + return git_lastlog.stdout.strip() + + +def git_get_common_ancestor(branch_a, branch_b): + """Retrieves the common ancestor between for the two supplied branches. + """ + git_merge_base = cli.run(['git', 'merge-base', branch_a, branch_b]) + git_branchpoint_log = cli.run(['git', '--no-pager', 'log', '--pretty=format:%ad (%h) -- %s', '--date=iso', '-n1', git_merge_base.stdout.strip()]) + + if git_branchpoint_log.returncode == 0 and git_branchpoint_log.stdout: + return git_branchpoint_log.stdout.strip() + + def git_get_remotes(): """Returns the current remotes for a repo. """ @@ -111,9 +130,9 @@ def git_check_deviation(active_branch): def git_get_ignored_files(check_dir='.'): - """Return a list of files that would be captured by the current .gitignore + """Return a list of files that would be captured by the current .gitingore """ - invalid = cli.run(['git', 'ls-files', '-c', '-o', '-i', '--exclude-from=.gitignore', check_dir]) + invalid = cli.run(['git', 'ls-files', '-c', '-o', '-i', '--exclude-standard', check_dir]) if invalid.returncode != 0: return [] return invalid.stdout.strip().splitlines() diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index d308de9db8..340969f415 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -218,62 +218,6 @@ def _extract_audio(info_data, config_c): info_data['audio'] = {'pins': audio_pins} -def _extract_encoders_values(config_c, postfix=''): - """Common encoder extraction logic - """ - a_pad = config_c.get(f'ENCODERS_PAD_A{postfix}', '').replace(' ', '')[1:-1] - b_pad = config_c.get(f'ENCODERS_PAD_B{postfix}', '').replace(' ', '')[1:-1] - resolutions = config_c.get(f'ENCODER_RESOLUTIONS{postfix}', '').replace(' ', '')[1:-1] - - default_resolution = config_c.get('ENCODER_RESOLUTION', '4') - - if a_pad and b_pad: - a_pad = list(filter(None, a_pad.split(','))) - b_pad = list(filter(None, b_pad.split(','))) - resolutions = list(filter(None, resolutions.split(','))) - resolutions += [default_resolution] * (len(a_pad) - len(resolutions)) - - encoders = [] - for index in range(len(a_pad)): - encoders.append({'pin_a': a_pad[index], 'pin_b': b_pad[index], "resolution": int(resolutions[index])}) - - return encoders - - -def _extract_encoders(info_data, config_c): - """Populate data about encoder pins - """ - encoders = _extract_encoders_values(config_c) - if encoders: - if 'encoder' not in info_data: - info_data['encoder'] = {} - - if 'rotary' in info_data['encoder']: - _log_warning(info_data, 'Encoder config is specified in both config.h and info.json (encoder.rotary) (Value: %s), the config.h value wins.' % info_data['encoder']['rotary']) - - info_data['encoder']['rotary'] = encoders - - -def _extract_split_encoders(info_data, config_c): - """Populate data about split encoder pins - """ - encoders = _extract_encoders_values(config_c, '_RIGHT') - if encoders: - if 'split' not in info_data: - info_data['split'] = {} - - if 'encoder' not in info_data['split']: - info_data['split']['encoder'] = {} - - if 'right' not in info_data['split']['encoder']: - info_data['split']['encoder']['right'] = {} - - if 'rotary' in info_data['split']['encoder']['right']: - _log_warning(info_data, 'Encoder config is specified in both config.h and info.json (encoder.rotary) (Value: %s), the config.h value wins.' % info_data['split']['encoder']['right']['rotary']) - - info_data['split']['encoder']['right']['rotary'] = encoders - - def _extract_secure_unlock(info_data, config_c): """Populate data about the secure unlock sequence """ @@ -374,7 +318,7 @@ def _extract_split_right_pins(info_data, config_c): unused_pins = unused_pin_text.replace('{', '').replace('}', '').strip() if isinstance(unused_pin_text, str) else None direct_pins = config_c.get('DIRECT_PINS_RIGHT', '').replace(' ', '')[1:-1] - if row_pins and col_pins: + if row_pins or col_pins or direct_pins or unused_pins: if info_data.get('split', {}).get('matrix_pins', {}).get('right') in info_data: _log_warning(info_data, 'Right hand matrix data is specified in both info.json and config.h, the config.h values win.') @@ -387,37 +331,17 @@ def _extract_split_right_pins(info_data, config_c): if 'right' not in info_data['split']['matrix_pins']: info_data['split']['matrix_pins']['right'] = {} - info_data['split']['matrix_pins']['right'] = { - 'cols': _extract_pins(col_pins), - 'rows': _extract_pins(row_pins), - } + if col_pins: + info_data['split']['matrix_pins']['right']['cols'] = _extract_pins(col_pins) - if direct_pins: - if info_data.get('split', {}).get('matrix_pins', {}).get('right', {}): - _log_warning(info_data, 'Right hand matrix data is specified in both info.json and config.h, the config.h values win.') + if row_pins: + info_data['split']['matrix_pins']['right']['rows'] = _extract_pins(row_pins) - if 'split' not in info_data: - info_data['split'] = {} + if direct_pins: + info_data['split']['matrix_pins']['right']['direct'] = _extract_direct_matrix(direct_pins) - if 'matrix_pins' not in info_data['split']: - info_data['split']['matrix_pins'] = {} - - if 'right' not in info_data['split']['matrix_pins']: - info_data['split']['matrix_pins']['right'] = {} - - info_data['split']['matrix_pins']['right']['direct'] = _extract_direct_matrix(direct_pins) - - if unused_pins: - if 'split' not in info_data: - info_data['split'] = {} - - if 'matrix_pins' not in info_data['split']: - info_data['split']['matrix_pins'] = {} - - if 'right' not in info_data['split']['matrix_pins']: - info_data['split']['matrix_pins']['right'] = {} - - info_data['split']['matrix_pins']['right']['unused'] = _extract_pins(unused_pins) + if unused_pins: + info_data['split']['matrix_pins']['right']['unused'] = _extract_pins(unused_pins) def _extract_matrix_info(info_data, config_c): @@ -562,8 +486,6 @@ def _extract_config_h(info_data, config_c): _extract_split_main(info_data, config_c) _extract_split_transport(info_data, config_c) _extract_split_right_pins(info_data, config_c) - _extract_encoders(info_data, config_c) - _extract_split_encoders(info_data, config_c) _extract_device_version(info_data) return info_data diff --git a/lib/python/qmk/json_schema.py b/lib/python/qmk/json_schema.py index 01175146b5..682346113e 100644 --- a/lib/python/qmk/json_schema.py +++ b/lib/python/qmk/json_schema.py @@ -68,7 +68,11 @@ def create_validator(schema): schema_store = compile_schema_store() resolver = jsonschema.RefResolver.from_schema(schema_store[schema], store=schema_store) - return jsonschema.Draft202012Validator(schema_store[schema], resolver=resolver).validate + # TODO: Remove this after the jsonschema>=4 requirement had time to reach users + try: + return jsonschema.Draft202012Validator(schema_store[schema], resolver=resolver).validate + except AttributeError: + return jsonschema.Draft7Validator(schema_store[schema], resolver=resolver).validate def validate(data, schema): diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index ca5be0959b..f317f4d11e 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -12,7 +12,7 @@ from pygments.token import Token from pygments import lex import qmk.path -from qmk.keyboard import find_keyboard_from_dir, rules_mk +from qmk.keyboard import find_keyboard_from_dir, rules_mk, keyboard_folder from qmk.errors import CppError # The `keymap.c` template to use when a keyboard doesn't have its own @@ -357,7 +357,7 @@ def locate_keymap(keyboard, keymap): checked_dirs = '' keymap_path = '' - for dir in keyboard.split('/'): + for dir in keyboard_folder(keyboard).split('/'): if checked_dirs: checked_dirs = '/'.join((checked_dirs, dir)) else: diff --git a/lib/python/qmk/submodules.py b/lib/python/qmk/submodules.py index 6a272dae50..52efa602a0 100644 --- a/lib/python/qmk/submodules.py +++ b/lib/python/qmk/submodules.py @@ -11,7 +11,11 @@ def status(): { 'name': 'submodule_name', 'status': None/False/True, - 'githash': ' + 'githash': '' + 'shorthash': '' + 'describe': '' + 'last_log_message': 'log message' + 'last_log_timestamp': 'timestamp' } status is None when the submodule doesn't exist, False when it's out of date, and True when it's current @@ -36,6 +40,26 @@ def status(): else: raise ValueError('Unknown `git submodule status` sha-1 prefix character: "%s"' % status) + submodule_logs = cli.run(['git', 'submodule', '-q', 'foreach', 'git --no-pager log --pretty=format:"$sm_path%x01%h%x01%ad%x01%s%x0A" --date=iso -n1']) + for log_line in submodule_logs.stdout.split('\n'): + if not log_line: + continue + + r = log_line.split('\x01') + submodule = r[0] + submodules[submodule]['shorthash'] = r[1] if len(r) > 1 else '' + submodules[submodule]['last_log_timestamp'] = r[2] if len(r) > 2 else '' + submodules[submodule]['last_log_message'] = r[3] if len(r) > 3 else '' + + submodule_tags = cli.run(['git', 'submodule', '-q', 'foreach', '\'echo $sm_path `git describe --tags`\'']) + for log_line in submodule_tags.stdout.split('\n'): + if not log_line: + continue + + r = log_line.split() + submodule = r[0] + submodules[submodule]['describe'] = r[1] if len(r) > 1 else '' + return submodules diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index 2463543ef1..fde8b079a3 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -97,13 +97,15 @@ def test_list_keyboards(): def test_list_keymaps(): result = check_subcommand('list-keymaps', '-kb', 'handwired/pytest/basic') check_returncode(result) - assert 'default' and 'default_json' in result.stdout + assert 'default' in result.stdout + assert 'default_json' in result.stdout def test_list_keymaps_long(): result = check_subcommand('list-keymaps', '--keyboard', 'handwired/pytest/basic') check_returncode(result) - assert 'default' and 'default_json' in result.stdout + assert 'default' in result.stdout + assert 'default_json' in result.stdout def test_list_keymaps_community(): @@ -115,19 +117,22 @@ def test_list_keymaps_community(): def test_list_keymaps_kb_only(): result = check_subcommand('list-keymaps', '-kb', 'contra') check_returncode(result) - assert 'default' and 'via' in result.stdout + assert 'default' in result.stdout + assert 'via' in result.stdout def test_list_keymaps_vendor_kb(): result = check_subcommand('list-keymaps', '-kb', 'ai03/lunar') check_returncode(result) - assert 'default' and 'via' in result.stdout + assert 'default' in result.stdout + assert 'via' in result.stdout def test_list_keymaps_vendor_kb_rev(): result = check_subcommand('list-keymaps', '-kb', 'kbdfans/kbd67/mkiirgb/v2') check_returncode(result) - assert 'default' and 'via' in result.stdout + assert 'default' in result.stdout + assert 'via' in result.stdout def test_list_keymaps_no_keyboard_found(): diff --git a/lib/vusb b/lib/vusb index 819dbc1e5d..bdb53e4c04 160000 --- a/lib/vusb +++ b/lib/vusb @@ -1 +1 @@ -Subproject commit 819dbc1e5d5926b17e27e00ca6d3d2988adae04e +Subproject commit bdb53e4c043d089279d9891b68bea77614cb97ee diff --git a/platforms/arm_atsam/platform.mk b/platforms/arm_atsam/platform.mk index 9618838dc3..b49bf764d7 100644 --- a/platforms/arm_atsam/platform.mk +++ b/platforms/arm_atsam/platform.mk @@ -30,7 +30,7 @@ COMPILEFLAGS += -mthumb CFLAGS += $(COMPILEFLAGS) CXXFLAGS += $(COMPILEFLAGS) -CXXFLAGS += -fno-exceptions $(CXXSTANDARD) +CXXFLAGS += -fno-exceptions -std=c++11 LDFLAGS +=-Wl,--gc-sections LDFLAGS += -Wl,-Map="%OUT%%PROJ_NAME%.map" diff --git a/platforms/avr/drivers/i2c_master.c b/platforms/avr/drivers/i2c_master.c index 524494c99d..c1a7b5f72d 100644 --- a/platforms/avr/drivers/i2c_master.c +++ b/platforms/avr/drivers/i2c_master.c @@ -64,7 +64,7 @@ static i2c_status_t i2c_start_impl(uint8_t address, uint16_t timeout) { uint16_t timeout_timer = timer_read(); while (!(TWCR & (1 << TWINT))) { - if ((timeout != I2C_TIMEOUT_INFINITE) && (timer_elapsed(timeout_timer) > timeout)) { + if ((timeout != I2C_TIMEOUT_INFINITE) && ((timer_read() - timeout_timer) >= timeout)) { return I2C_STATUS_TIMEOUT; } } @@ -81,7 +81,7 @@ static i2c_status_t i2c_start_impl(uint8_t address, uint16_t timeout) { timeout_timer = timer_read(); while (!(TWCR & (1 << TWINT))) { - if ((timeout != I2C_TIMEOUT_INFINITE) && (timer_elapsed(timeout_timer) > timeout)) { + if ((timeout != I2C_TIMEOUT_INFINITE) && ((timer_read() - timeout_timer) >= timeout)) { return I2C_STATUS_TIMEOUT; } } @@ -102,7 +102,7 @@ i2c_status_t i2c_start(uint8_t address, uint16_t timeout) { i2c_status_t status; do { status = i2c_start_impl(address, time_slice); - } while ((status < 0) && ((timeout == I2C_TIMEOUT_INFINITE) || (timer_elapsed(timeout_timer) <= timeout))); + } while ((status < 0) && ((timeout == I2C_TIMEOUT_INFINITE) || (timer_elapsed(timeout_timer) < timeout))); return status; } @@ -114,7 +114,7 @@ i2c_status_t i2c_write(uint8_t data, uint16_t timeout) { uint16_t timeout_timer = timer_read(); while (!(TWCR & (1 << TWINT))) { - if ((timeout != I2C_TIMEOUT_INFINITE) && (timer_elapsed(timeout_timer) > timeout)) { + if ((timeout != I2C_TIMEOUT_INFINITE) && ((timer_read() - timeout_timer) >= timeout)) { return I2C_STATUS_TIMEOUT; } } @@ -132,7 +132,7 @@ int16_t i2c_read_ack(uint16_t timeout) { uint16_t timeout_timer = timer_read(); while (!(TWCR & (1 << TWINT))) { - if ((timeout != I2C_TIMEOUT_INFINITE) && (timer_elapsed(timeout_timer) > timeout)) { + if ((timeout != I2C_TIMEOUT_INFINITE) && ((timer_read() - timeout_timer) >= timeout)) { return I2C_STATUS_TIMEOUT; } } @@ -147,7 +147,7 @@ int16_t i2c_read_nack(uint16_t timeout) { uint16_t timeout_timer = timer_read(); while (!(TWCR & (1 << TWINT))) { - if ((timeout != I2C_TIMEOUT_INFINITE) && (timer_elapsed(timeout_timer) > timeout)) { + if ((timeout != I2C_TIMEOUT_INFINITE) && ((timer_read() - timeout_timer) >= timeout)) { return I2C_STATUS_TIMEOUT; } } diff --git a/platforms/avr/drivers/ps2/ps2_usart.c b/platforms/avr/drivers/ps2/ps2_usart.c index 581badac64..39ec930d4a 100644 --- a/platforms/avr/drivers/ps2/ps2_usart.c +++ b/platforms/avr/drivers/ps2/ps2_usart.c @@ -72,8 +72,8 @@ uint8_t ps2_error = PS2_ERR_NONE; static inline uint8_t pbuf_dequeue(void); static inline void pbuf_enqueue(uint8_t data); +static inline bool pbuf_has_data(void); static inline void pbuf_clear(void); -bool pbuf_has_data(void); void ps2_host_init(void) { idle(); // without this many USART errors occur when cable is disconnected @@ -212,7 +212,7 @@ static inline uint8_t pbuf_dequeue(void) { return val; } -bool pbuf_has_data(void) { +static inline bool pbuf_has_data(void) { uint8_t sreg = SREG; cli(); bool has_data = (pbuf_head != pbuf_tail); diff --git a/platforms/avr/platform.mk b/platforms/avr/platform.mk index b51a94c93a..978199b385 100644 --- a/platforms/avr/platform.mk +++ b/platforms/avr/platform.mk @@ -38,7 +38,7 @@ CFLAGS += -fno-inline-small-functions CFLAGS += -fno-strict-aliasing CXXFLAGS += $(COMPILEFLAGS) -CXXFLAGS += -fno-exceptions $(CXXSTANDARD) +CXXFLAGS += -fno-exceptions -std=c++11 LDFLAGS += -Wl,--gc-sections diff --git a/platforms/chibios/_pin_defs.h b/platforms/chibios/_pin_defs.h index 414c9e3d11..0d96e2fc3b 100644 --- a/platforms/chibios/_pin_defs.h +++ b/platforms/chibios/_pin_defs.h @@ -21,11 +21,6 @@ # include #endif -/* Include the vendor specific pin defs */ -#if __has_include_next("_pin_defs.h") -# include_next "_pin_defs.h" -#endif - #define A0 PAL_LINE(GPIOA, 0) #define A1 PAL_LINE(GPIOA, 1) #define A2 PAL_LINE(GPIOA, 2) diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/board/board.mk b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/board/board.mk deleted file mode 100644 index 911cc5a058..0000000000 --- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/board/board.mk +++ /dev/null @@ -1,9 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040/board.c - -# Required include directories -BOARDINC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040 - -# Shared variables -ALLCSRC += $(BOARDSRC) -ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h deleted file mode 100644 index b4363595d0..0000000000 --- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/board.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next "board.h" - -#undef BOARD_RP_PICO_RP2040 -#define BOARD_GENERIC_PROMICRO_RP2040 - -#undef BOARD_NAME -#define BOARD_NAME "Pro Micro RP2040" diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/chconf.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/chconf.h deleted file mode 100644 index d53f57edd9..0000000000 --- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/chconf.h +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define CH_CFG_SMP_MODE TRUE -#define CH_CFG_ST_RESOLUTION 32 -#define CH_CFG_ST_FREQUENCY 1000000 -#define CH_CFG_INTERVALS_SIZE 32 -#define CH_CFG_TIME_TYPES_SIZE 32 -#define CH_CFG_ST_TIMEDELTA 20 - -#include_next diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/config.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/config.h deleted file mode 100644 index 7fe9b654e1..0000000000 --- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/config.h +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/**====================== - ** I2C Driver - *========================**/ - -#if !defined(I2C_DRIVER) -# define I2C_DRIVER I2CD2 -#endif - -#if !defined(I2C1_SDA_PIN) -# define I2C1_SDA_PIN GP2 -#endif - -#if !defined(I2C1_SCL_PIN) -# define I2C1_SCL_PIN GP3 -#endif - -/**====================== - ** SPI Driver - *========================**/ - -#if !defined(SPI_DRIVER) -# define SPI_DRIVER SPID0 -#endif - -#if !defined(SPI_SCK_PIN) -# define SPI_SCK_PIN GP18 -#endif - -#if !defined(SPI_MISO_PIN) -# define SPI_MISO_PIN GP20 -#endif - -#if !defined(SPI_MOSI_PIN) -# define SPI_MOSI_PIN GP19 -#endif - -/**====================== - ** SERIAL Driver - *========================**/ - -#if !defined(SERIAL_USART_DRIVER) -# define SERIAL_USART_DRIVER SIOD0 -#endif - -#if !defined(SERIAL_USART_TX_PIN) && !defined(SOFT_SERIAL_PIN) -# define SERIAL_USART_TX_PIN GP0 -#endif - -#if !defined(SERIAL_USART_RX_PIN) -# define SERIAL_USART_RX_PIN GP1 -#endif - -/**====================== - ** Double-tap - *========================**/ - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h deleted file mode 100644 index 8348e5312f..0000000000 --- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2021 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 - -/* - * RP2040_MCUCONF drivers configuration. - * - * IRQ priorities: - * 3...0 Lowest...Highest. - * - * DMA priorities: - * 0...1 Lowest...Highest. - */ - -#define RP2040_MCUCONF - -/* - * HAL driver system settings. - */ -#define RP_NO_INIT FALSE -#define RP_CORE1_START FALSE -#define RP_CORE1_VECTORS_TABLE _vectors -#define RP_CORE1_ENTRY_POINT _crt0_c1_entry -#define RP_CORE1_STACK_END __c1_main_stack_end__ - -/* - * IRQ system settings. - */ -#define RP_IRQ_SYSTICK_PRIORITY 2 -#define RP_IRQ_TIMER_ALARM0_PRIORITY 2 -#define RP_IRQ_TIMER_ALARM1_PRIORITY 2 -#define RP_IRQ_TIMER_ALARM2_PRIORITY 2 -#define RP_IRQ_TIMER_ALARM3_PRIORITY 2 -#define RP_IRQ_UART0_PRIORITY 3 -#define RP_IRQ_UART1_PRIORITY 3 -#define RP_IRQ_SPI0_PRIORITY 2 -#define RP_IRQ_SPI1_PRIORITY 2 -#define RP_IRQ_USB0_PRIORITY 3 -#define RP_IRQ_I2C0_PRIORITY 2 -#define RP_IRQ_I2C1_PRIORITY 2 - -/* - * ADC driver system settings. - */ -#define RP_ADC_USE_ADC1 FALSE - -/* - * SIO driver system settings. - */ -#define RP_SIO_USE_UART0 TRUE -#define RP_SIO_USE_UART1 FALSE - -/* - * SPI driver system settings. - */ -#define RP_SPI_USE_SPI0 TRUE -#define RP_SPI_USE_SPI1 FALSE -#define RP_SPI_SPI0_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY -#define RP_SPI_SPI0_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY -#define RP_SPI_SPI1_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY -#define RP_SPI_SPI1_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY -#define RP_SPI_SPI0_DMA_PRIORITY 1 -#define RP_SPI_SPI1_DMA_PRIORITY 1 -#define RP_SPI_DMA_ERROR_HOOK(spip) - -/* - * I2C driver system settings. - */ -#define RP_I2C_USE_I2C0 FALSE -#define RP_I2C_USE_I2C1 TRUE -#define RP_I2C_BUSY_TIMEOUT 50 -#define RP_I2C_ADDRESS_MODE_10BIT FALSE - -/* - * USB driver system settings. - */ -#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/board/board.mk b/platforms/chibios/boards/GENERIC_RP_RP2040/board/board.mk deleted file mode 100644 index 911cc5a058..0000000000 --- a/platforms/chibios/boards/GENERIC_RP_RP2040/board/board.mk +++ /dev/null @@ -1,9 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040/board.c - -# Required include directories -BOARDINC = $(CHIBIOS)/os/hal/boards/RP_PICO_RP2040 - -# Shared variables -ALLCSRC += $(BOARDSRC) -ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h deleted file mode 100644 index 052050c944..0000000000 --- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/board.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include_next "board.h" - -#undef BOARD_RP_PICO_RP2040 -#define BOARD_GENERIC_RP2040 - -#undef BOARD_NAME -#define BOARD_NAME "Generic Raspberry Pi RP2040" diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/chconf.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/chconf.h deleted file mode 100644 index d53f57edd9..0000000000 --- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/chconf.h +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define CH_CFG_SMP_MODE TRUE -#define CH_CFG_ST_RESOLUTION 32 -#define CH_CFG_ST_FREQUENCY 1000000 -#define CH_CFG_INTERVALS_SIZE 32 -#define CH_CFG_TIME_TYPES_SIZE 32 -#define CH_CFG_ST_TIMEDELTA 20 - -#include_next diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h deleted file mode 100644 index 9d8dc61aac..0000000000 --- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2021 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 - -/* - * RP2040_MCUCONF drivers configuration. - * - * IRQ priorities: - * 3...0 Lowest...Highest. - * - * DMA priorities: - * 0...1 Lowest...Highest. - */ - -#define RP2040_MCUCONF - -/* - * HAL driver system settings. - */ -#define RP_NO_INIT FALSE -#define RP_CORE1_START FALSE -#define RP_CORE1_VECTORS_TABLE _vectors -#define RP_CORE1_ENTRY_POINT _crt0_c1_entry -#define RP_CORE1_STACK_END __c1_main_stack_end__ - -/* - * IRQ system settings. - */ -#define RP_IRQ_SYSTICK_PRIORITY 2 -#define RP_IRQ_TIMER_ALARM0_PRIORITY 2 -#define RP_IRQ_TIMER_ALARM1_PRIORITY 2 -#define RP_IRQ_TIMER_ALARM2_PRIORITY 2 -#define RP_IRQ_TIMER_ALARM3_PRIORITY 2 -#define RP_IRQ_UART0_PRIORITY 3 -#define RP_IRQ_UART1_PRIORITY 3 -#define RP_IRQ_SPI0_PRIORITY 2 -#define RP_IRQ_SPI1_PRIORITY 2 -#define RP_IRQ_USB0_PRIORITY 3 -#define RP_IRQ_I2C0_PRIORITY 2 -#define RP_IRQ_I2C1_PRIORITY 2 - -/* - * ADC driver system settings. - */ -#define RP_ADC_USE_ADC1 FALSE - -/* - * SIO driver system settings. - */ -#define RP_SIO_USE_UART0 FALSE -#define RP_SIO_USE_UART1 FALSE - -/* - * SPI driver system settings. - */ -#define RP_SPI_USE_SPI0 FALSE -#define RP_SPI_USE_SPI1 FALSE -#define RP_SPI_SPI0_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY -#define RP_SPI_SPI0_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY -#define RP_SPI_SPI1_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY -#define RP_SPI_SPI1_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY -#define RP_SPI_SPI0_DMA_PRIORITY 1 -#define RP_SPI_SPI1_DMA_PRIORITY 1 -#define RP_SPI_DMA_ERROR_HOOK(spip) - -/* - * I2C driver system settings. - */ -#define RP_I2C_USE_I2C0 FALSE -#define RP_I2C_USE_I2C1 FALSE -#define RP_I2C_BUSY_TIMEOUT 50 -#define RP_I2C_ADDRESS_MODE_10BIT FALSE - -/* - * USB driver system settings. - */ -#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 deleted file mode 100644 index 13a54036ef..0000000000 --- a/platforms/chibios/bootloaders/rp2040.c +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" -#include "hal.h" -#include "bootloader.h" -#include "pico/bootrom.h" - -#if !defined(RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED) -# define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK 0U -#else -# define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK (1U << RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED) -#endif - -__attribute__((weak)) void mcu_reset(void) { - NVIC_SystemReset(); -} -void bootloader_jump(void) { - reset_usb_boot(RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK, 0U); -} - -void enter_bootloader_mode_if_requested(void) {} - -#if defined(RP2040_BOOTLOADER_DOUBLE_TAP_RESET) -# if !defined(RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT) -# define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U -# endif - -// Needs to be located in a RAM section that is never initialized on boot to -// preserve its value on reset -static volatile uint32_t __attribute__((section(".ram0.bootloader_magic"))) magic_location; -const uint32_t magic_token = 0xCAFEB0BA; - -// We can not use the __early_init / enter_bootloader_mode_if_requested hook as -// we depend on an already initialized system with usable memory regions and -// populated function pointer tables to the optimized math functions in the -// bootrom. This function is called just prior to main. -void __late_init(void) { - // All clocks have to be enabled before jumping to the bootloader function, - // otherwise the bootrom will be stuck infinitely. - clocks_init(); - - if (magic_location != magic_token) { - magic_location = magic_token; - // ChibiOS is not initialized at this point, so sleeping is only - // possible via busy waiting. The internal timer peripheral is running - // at this point with a precision of 1us. - chSysPolledDelayX(MS2RTC(1 * MHZ, RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT)); - magic_location = 0; - return; - } - - magic_location = 0; - reset_usb_boot(RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK, 0U); -} - -#endif diff --git a/platforms/chibios/bootloaders/stm32_dfu.c b/platforms/chibios/bootloaders/stm32_dfu.c index 7b4ab86033..ff866bd2bc 100644 --- a/platforms/chibios/bootloaders/stm32_dfu.c +++ b/platforms/chibios/bootloaders/stm32_dfu.c @@ -38,7 +38,7 @@ extern uint32_t __ram0_end__; # endif # ifndef STM32_BOOTLOADER_DUAL_BANK_DELAY -# define STM32_BOOTLOADER_DUAL_BANK_DELAY 100 +# define STM32_BOOTLOADER_DUAL_BANK_DELAY 100000 # endif __attribute__((weak)) void bootloader_jump(void) { @@ -55,7 +55,7 @@ __attribute__((weak)) void bootloader_jump(void) { # endif // Wait for a while for the capacitor to charge - wait_ms(STM32_BOOTLOADER_DUAL_BANK_DELAY); + wait_ms(100); // Issue a system reset to get the ROM bootloader to execute, with BOOT0 high NVIC_SystemReset(); diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index 1571bd5cd3..a7098f2713 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -19,27 +19,6 @@ # define SPLIT_USB_DETECT // Force this on when dedicated pin is not used #endif -#if defined(MCU_RP) -# define CPU_CLOCK RP_CORE_CLK - -# define USE_GPIOV1 -# define PAL_OUTPUT_TYPE_OPENDRAIN _Static_assert(0, "RP2040 has no Open Drain GPIO configuration, setting this is not possible"); - -# define usb_lld_endpoint_fields - -# define I2C1_SCL_PAL_MODE (PAL_MODE_ALTERNATE_I2C | PAL_RP_PAD_SLEWFAST | PAL_RP_PAD_PUE | PAL_RP_PAD_DRIVE4) -# define I2C1_SDA_PAL_MODE I2C1_SCL_PAL_MODE - -# define USE_I2CV1_CONTRIB -# if !defined(I2C1_CLOCK_SPEED) -# define I2C1_CLOCK_SPEED 400000 -# endif - -# define SPI_SCK_PAL_MODE (PAL_MODE_ALTERNATE_SPI | PAL_RP_PAD_SLEWFAST | PAL_RP_PAD_DRIVE4) -# define SPI_MOSI_PAL_MODE SPI_SCK_PAL_MODE -# define SPI_MISO_PAL_MODE SPI_SCK_PAL_MODE -#endif - // STM32 compatibility #if defined(MCU_STM32) # define CPU_CLOCK STM32_SYSCLK diff --git a/platforms/chibios/drivers/serial.c b/platforms/chibios/drivers/serial.c index 3fae5cd3a4..0cff057d1d 100644 --- a/platforms/chibios/drivers/serial.c +++ b/platforms/chibios/drivers/serial.c @@ -87,7 +87,10 @@ static THD_FUNCTION(Thread1, arg) { chRegSetThreadName("blinker"); while (true) { palWaitLineTimeout(SOFT_SERIAL_PIN, TIME_INFINITE); + + split_shared_memory_lock(); interrupt_handler(NULL); + split_shared_memory_unlock(); } } @@ -152,7 +155,6 @@ static void __attribute__((noinline)) serial_write_byte(uint8_t data) { // interrupt handle to be used by the slave device void interrupt_handler(void *arg) { - split_shared_memory_lock_autounlock(); chSysLockFromISR(); sync_send(); @@ -210,8 +212,6 @@ void interrupt_handler(void *arg) { static inline bool initiate_transaction(uint8_t sstd_index) { if (sstd_index > NUM_TOTAL_TRANSACTIONS) return false; - split_shared_memory_lock_autounlock(); - split_transaction_desc_t *trans = &split_transaction_table[sstd_index]; // TODO: remove extra delay between transactions @@ -233,7 +233,7 @@ static inline bool initiate_transaction(uint8_t sstd_index) { // check if the slave is present if (serial_read_pin()) { // slave failed to pull the line low, assume not present - serial_dprintf("serial::NO_RESPONSE\n"); + dprintf("serial::NO_RESPONSE\n"); chSysUnlock(); return false; } @@ -269,7 +269,7 @@ static inline bool initiate_transaction(uint8_t sstd_index) { serial_delay(); if ((checksum_computed) != (checksum_received)) { - serial_dprintf("serial::FAIL[%u,%u,%u]\n", checksum_computed, checksum_received, sstd_index); + dprintf("serial::FAIL[%u,%u,%u]\n", checksum_computed, checksum_received, sstd_index); serial_output(); serial_high(); @@ -292,5 +292,8 @@ static inline bool initiate_transaction(uint8_t sstd_index) { // // this code is very time dependent, so we need to disable interrupts bool soft_serial_transaction(int sstd_index) { - return initiate_transaction((uint8_t)sstd_index); + split_shared_memory_lock(); + bool result = initiate_transaction((uint8_t)sstd_index); + split_shared_memory_unlock(); + return result; } diff --git a/platforms/chibios/drivers/serial_protocol.c b/platforms/chibios/drivers/serial_protocol.c deleted file mode 100644 index c95aed9885..0000000000 --- a/platforms/chibios/drivers/serial_protocol.c +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#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); -static inline bool react_to_transaction(void); - -/** - * @brief This thread runs on the slave and responds to transactions initiated - * by the master. - */ -static THD_WORKING_AREA(waSlaveThread, 1024); -static THD_FUNCTION(SlaveThread, arg) { - (void)arg; - chRegSetThreadName("split_protocol_tx_rx"); - - while (true) { - if (unlikely(!react_to_transaction())) { - /* Clear the receive queue, to start with a clean slate. - * Parts of failed transactions or spurious bytes could still be in it. */ - serial_transport_driver_clear(); - } - } -} - -/** - * @brief Slave specific initializations. - */ -void soft_serial_target_init(void) { - serial_transport_driver_slave_init(); - - /* Start transport thread. */ - chThdCreateStatic(waSlaveThread, sizeof(waSlaveThread), HIGHPRIO, SlaveThread, NULL); -} - -/** - * @brief Master specific initializations. - */ -void soft_serial_initiator_init(void) { - serial_transport_driver_master_init(); -} - -/** - * @brief React to transactions started by the master. - */ -static inline bool react_to_transaction(void) { - uint8_t transaction_id = 0; - /* Wait until there is a transaction for us. */ - if (unlikely(!serial_transport_receive_blocking(&transaction_id, sizeof(transaction_id)))) { - return false; - } - - /* Sanity check that we are actually responding to a valid transaction. */ - if (unlikely(transaction_id >= NUM_TOTAL_TRANSACTIONS)) { - return false; - } - - split_shared_memory_lock_autounlock(); - - split_transaction_desc_t* transaction = &split_transaction_table[transaction_id]; - - /* Send back the handshake which is XORed as a simple checksum, - to signal that the slave is ready to receive possible transaction buffers */ - transaction_id ^= NUM_TOTAL_TRANSACTIONS; - if (unlikely(!serial_transport_send(&transaction_id, sizeof(transaction_id)))) { - return false; - } - - /* Receive transaction buffer from the master. If this transaction requires it.*/ - if (transaction->initiator2target_buffer_size) { - if (unlikely(!serial_transport_receive(split_trans_initiator2target_buffer(transaction), transaction->initiator2target_buffer_size))) { - return false; - } - } - - /* Allow any slave processing to occur. */ - if (transaction->slave_callback) { - transaction->slave_callback(transaction->initiator2target_buffer_size, split_trans_initiator2target_buffer(transaction), transaction->initiator2target_buffer_size, split_trans_target2initiator_buffer(transaction)); - } - - /* Send transaction buffer to the master. If this transaction requires it. */ - if (transaction->target2initiator_buffer_size) { - if (unlikely(!serial_transport_send(split_trans_target2initiator_buffer(transaction), transaction->target2initiator_buffer_size))) { - return false; - } - } - - return true; -} - -/** - * @brief Start transaction from the master half to the slave half. - * - * @param index Transaction Table index of the transaction to start. - * @return bool Indicates success of transaction. - */ -bool soft_serial_transaction(int index) { - bool result = initiate_transaction((uint8_t)index); - - if (unlikely(!result)) { - /* Clear the receive queue, to start with a clean slate. - * Parts of failed transactions or spurious bytes could still be in it. */ - serial_transport_driver_clear(); - } - - return result; -} - -/** - * @brief Initiate transaction to slave half. - */ -static inline bool initiate_transaction(uint8_t transaction_id) { - /* Sanity check that we are actually starting a valid transaction. */ - if (unlikely(transaction_id >= NUM_TOTAL_TRANSACTIONS)) { - serial_dprintf("SPLIT: illegal transaction id\n"); - return false; - } - - split_shared_memory_lock_autounlock(); - - split_transaction_desc_t* transaction = &split_transaction_table[transaction_id]; - - /* Send transaction table index to the slave, which doubles as basic handshake token. */ - if (unlikely(!serial_transport_send(&transaction_id, sizeof(transaction_id)))) { - serial_dprintf("SPLIT: sending handshake failed\n"); - return false; - } - - uint8_t transaction_id_shake = 0xFF; - - /* Which we always read back first so that we can error out correctly. - * - due to the half duplex limitations on return codes, we always have to read *something*. - * - without the read, write only transactions *always* succeed, even during the boot process where the slave is not ready. - */ - if (unlikely(!serial_transport_receive(&transaction_id_shake, sizeof(transaction_id_shake)) || (transaction_id_shake != (transaction_id ^ NUM_TOTAL_TRANSACTIONS)))) { - serial_dprintf("SPLIT: receiving handshake failed\n"); - return false; - } - - /* Send transaction buffer to the slave. If this transaction requires it. */ - if (transaction->initiator2target_buffer_size) { - if (unlikely(!serial_transport_send(split_trans_initiator2target_buffer(transaction), transaction->initiator2target_buffer_size))) { - serial_dprintf("SPLIT: sending buffer failed\n"); - return false; - } - } - - /* Receive transaction buffer from the slave. If this transaction requires it. */ - if (transaction->target2initiator_buffer_size) { - if (unlikely(!serial_transport_receive(split_trans_target2initiator_buffer(transaction), transaction->target2initiator_buffer_size))) { - serial_dprintf("SPLIT: receiving buffer failed\n"); - return false; - } - } - - return true; -} diff --git a/platforms/chibios/drivers/serial_protocol.h b/platforms/chibios/drivers/serial_protocol.h deleted file mode 100644 index 4275a7f8d8..0000000000 --- a/platforms/chibios/drivers/serial_protocol.h +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include - -#pragma once - -/** - * @brief Clears any intermediate sending or receiving state of the driver to a known good - * state. This happens after errors in the middle of transactions, to start with - * a clean slate. - */ -void serial_transport_driver_clear(void); - -/** - * @brief Driver specific initialization on the slave half. - */ -void serial_transport_driver_slave_init(void); - -/** - * @brief Driver specific specific initialization on the master half. - */ -void serial_transport_driver_master_init(void); - -/** - * @brief Blocking receive of size * bytes. - * - * @return true Receive success. - * @return false Receive failed, e.g. by bit errors. - */ -bool __attribute__((nonnull, hot)) serial_transport_receive(uint8_t* destination, const size_t size); - -/** - * @brief Blocking receive of size * bytes with an implicitly defined timeout. - * - * @return true Receive success. - * @return false Receive failed, e.g. by timeout or bit errors. - */ -bool __attribute__((nonnull, hot)) serial_transport_receive_blocking(uint8_t* destination, const size_t size); - -/** - * @brief Blocking send of buffer with timeout. - * - * @return true Send success. - * @return false Send failed, e.g. by timeout or bit errors. - */ -bool __attribute__((nonnull, hot)) serial_transport_send(const uint8_t* source, const size_t size); diff --git a/platforms/chibios/drivers/serial_usart.c b/platforms/chibios/drivers/serial_usart.c index 6581a5b6e9..e9fa4af7a3 100644 --- a/platforms/chibios/drivers/serial_usart.c +++ b/platforms/chibios/drivers/serial_usart.c @@ -1,55 +1,49 @@ -// Copyright 2021 QMK -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright 2021 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 . + */ #include "serial_usart.h" -#include "serial_protocol.h" #include "synchronization_util.h" #if defined(SERIAL_USART_CONFIG) -static QMKSerialConfig serial_config = SERIAL_USART_CONFIG; -#elif defined(MCU_STM32) /* STM32 MCUs */ -static QMKSerialConfig serial_config = { -# if HAL_USE_SERIAL - .speed = (SERIAL_USART_SPEED), -# else - .baud = (SERIAL_USART_SPEED), -# endif +static SerialConfig serial_config = SERIAL_USART_CONFIG; +#else +static SerialConfig serial_config = { + .speed = (SERIAL_USART_SPEED), /* speed - mandatory */ .cr1 = (SERIAL_USART_CR1), .cr2 = (SERIAL_USART_CR2), # if !defined(SERIAL_USART_FULL_DUPLEX) .cr3 = ((SERIAL_USART_CR3) | USART_CR3_HDSEL) /* activate half-duplex mode */ # else - .cr3 = (SERIAL_USART_CR3) + .cr3 = (SERIAL_USART_CR3) # endif }; -#elif defined(MCU_RP) /* Raspberry Pi MCUs */ -/* USART in 8E2 config with RX and TX FIFOs enabled. */ -// clang-format off -static QMKSerialConfig serial_config = { - .baud = (SERIAL_USART_SPEED), - .UARTLCR_H = UART_UARTLCR_H_WLEN_8BITS | UART_UARTLCR_H_PEN | UART_UARTLCR_H_STP2 | UART_UARTLCR_H_FEN, - .UARTCR = 0U, - .UARTIFLS = UART_UARTIFLS_RXIFLSEL_1_8F | UART_UARTIFLS_TXIFLSEL_1_8E, - .UARTDMACR = 0U -}; -// clang-format on -#else -# error MCU Familiy not supported by default, supply your own serial_config by defining SERIAL_USART_CONFIG in your keyboard files. #endif -static QMKSerialDriver* serial_driver = (QMKSerialDriver*)&SERIAL_USART_DRIVER; +static SerialDriver* serial_driver = &SERIAL_USART_DRIVER; -#if HAL_USE_SERIAL +static inline bool react_to_transactions(void); +static inline bool __attribute__((nonnull)) receive(uint8_t* destination, const size_t size); +static inline bool __attribute__((nonnull)) send(const uint8_t* source, const size_t size); +static inline bool initiate_transaction(uint8_t sstd_index); +static inline void usart_clear(void); /** - * @brief SERIAL Driver startup routine. + * @brief Clear the receive input queue. */ -static inline void usart_driver_start(void) { - sdStart(serial_driver, &serial_config); -} - -inline void serial_transport_driver_clear(void) { +static inline void usart_clear(void) { osalSysLock(); bool volatile queue_not_empty = !iqIsEmptyI(&serial_driver->iqueue); osalSysUnlock(); @@ -70,96 +64,36 @@ inline void serial_transport_driver_clear(void) { } } -#elif HAL_USE_SIO - -void clear_rx_evt_cb(SIODriver* siop) { - osalSysLockFromISR(); - /* If errors occured during transactions this callback is invoked. We just - * clear the error sources and move on. We rely on the fact that we check - * for the success of the transaction by comparing the received/send bytes - * with the actual received/send bytes in the send/receive functions. */ - sioGetAndClearEventsI(serial_driver); - osalSysUnlockFromISR(); -} - -static const SIOOperation serial_usart_operation = {.rx_cb = NULL, .rx_idle_cb = NULL, .tx_cb = NULL, .tx_end_cb = NULL, .rx_evt_cb = &clear_rx_evt_cb}; - /** - * @brief SIO Driver startup routine. + * @brief Blocking send of buffer with timeout. + * + * @return true Send success. + * @return false Send failed. */ -static inline void usart_driver_start(void) { - sioStart(serial_driver, &serial_config); - sioStartOperation(serial_driver, &serial_usart_operation); -} - -inline void serial_transport_driver_clear(void) { - osalSysLock(); - while (!sioIsRXEmptyX(serial_driver)) { - (void)sioGetX(serial_driver); - } - osalSysUnlock(); -} - -#else - -# error Either the SERIAL or SIO driver has to be activated to use the usart driver for split keyboards. - -#endif - -inline bool serial_transport_send(const uint8_t* source, const size_t size) { - bool success = (size_t)chnWriteTimeout(serial_driver, source, size, TIME_MS2I(SERIAL_USART_TIMEOUT)) == size; +static inline bool send(const uint8_t* source, const size_t size) { + bool success = (size_t)sdWriteTimeout(serial_driver, source, size, TIME_MS2I(SERIAL_USART_TIMEOUT)) == size; #if !defined(SERIAL_USART_FULL_DUPLEX) - /* Half duplex fills the input queue with the data we wrote - just throw it away. */ - if (likely(success)) { - size_t bytes_left = size; -# if HAL_USE_SERIAL - /* The SERIAL driver uses large soft FIFOs that are filled from an IRQ - * context, so there is a delay between receiving the data and it - * becoming actually available, therefore we have to apply a timeout - * mechanism. Under the right circumstances (e.g. bad cables paired with - * high baud rates) less bytes can be present in the input queue as - * well. */ - uint8_t dump[64]; - - while (unlikely(bytes_left >= 64)) { - if (unlikely(!serial_transport_receive(dump, 64))) { - return false; - } - bytes_left -= 64; - } - - return serial_transport_receive(dump, bytes_left); -# else - /* The SIO driver directly accesses the hardware FIFOs of the USART - * peripheral. As these are limited in depth, the RX FIFO might have been - * overflowed by a large that we just send. Therefore we attempt to read - * back all the data we send or until the FIFO runs empty in case it - * overflowed and data was truncated. */ - if (unlikely(sioSynchronizeTXEnd(serial_driver, TIME_MS2I(SERIAL_USART_TIMEOUT)) < MSG_OK)) { - return false; - } - - osalSysLock(); - while (bytes_left > 0 && !sioIsRXEmptyX(serial_driver)) { - (void)sioGetX(serial_driver); - bytes_left--; - } - osalSysUnlock(); -# endif + if (success) { + /* Half duplex fills the input queue with the data we wrote - just throw it away. + Under the right circumstances (e.g. bad cables paired with high baud rates) + less bytes can be present in the input queue, therefore a timeout is needed. */ + uint8_t dump[size]; + return receive(dump, size); } #endif return success; } -inline bool serial_transport_receive(uint8_t* destination, const size_t size) { - bool success = (size_t)chnReadTimeout(serial_driver, destination, size, TIME_MS2I(SERIAL_USART_TIMEOUT)) == size; - return success; -} - -inline bool serial_transport_receive_blocking(uint8_t* destination, const size_t size) { - bool success = (size_t)chnRead(serial_driver, destination, size) == size; +/** + * @brief Blocking receive of size * bytes with timeout. + * + * @return true Receive success. + * @return false Receive failed. + */ +static inline bool receive(uint8_t* destination, const size_t size) { + bool success = (size_t)sdReadTimeout(serial_driver, destination, size, TIME_MS2I(SERIAL_USART_TIMEOUT)) == size; return success; } @@ -169,7 +103,7 @@ inline bool serial_transport_receive_blocking(uint8_t* destination, const size_t * @brief Initiate pins for USART peripheral. Half-duplex configuration. */ __attribute__((weak)) void usart_init(void) { -# if defined(MCU_STM32) /* STM32 MCUs */ +# if defined(MCU_STM32) # if defined(USE_GPIOV1) palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_ALTERNATE_OPENDRAIN); # else @@ -179,8 +113,6 @@ __attribute__((weak)) void usart_init(void) { # if defined(USART_REMAP) USART_REMAP; # endif -# elif defined(MCU_RP) /* Raspberry Pi MCUs */ -# error Half-duplex with the SIO driver is not supported due to hardware limitations on the RP2040, switch to the PIO driver which has half-duplex support. # else # pragma message "usart_init: MCU Familiy not supported by default, please supply your own init code by implementing usart_init() in your keyboard files." # endif @@ -192,7 +124,7 @@ __attribute__((weak)) void usart_init(void) { * @brief Initiate pins for USART peripheral. Full-duplex configuration. */ __attribute__((weak)) void usart_init(void) { -# if defined(MCU_STM32) /* STM32 MCUs */ +# if defined(MCU_STM32) # if defined(USE_GPIOV1) palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_ALTERNATE_PUSHPULL); palSetLineMode(SERIAL_USART_RX_PIN, PAL_MODE_INPUT); @@ -204,9 +136,6 @@ __attribute__((weak)) void usart_init(void) { # if defined(USART_REMAP) USART_REMAP; # endif -# elif defined(MCU_RP) /* Raspberry Pi MCUs */ - palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_ALTERNATE_UART); - palSetLineMode(SERIAL_USART_RX_PIN, PAL_MODE_ALTERNATE_UART); # else # pragma message "usart_init: MCU Familiy not supported by default, please supply your own init code by implementing usart_init() in your keyboard files." # endif @@ -217,7 +146,7 @@ __attribute__((weak)) void usart_init(void) { /** * @brief Overridable master specific initializations. */ -__attribute__((weak, nonnull)) void usart_master_init(QMKSerialDriver** driver) { +__attribute__((weak, nonnull)) void usart_master_init(SerialDriver** driver) { (void)driver; usart_init(); } @@ -225,22 +154,161 @@ __attribute__((weak, nonnull)) void usart_master_init(QMKSerialDriver** driver) /** * @brief Overridable slave specific initializations. */ -__attribute__((weak, nonnull)) void usart_slave_init(QMKSerialDriver** driver) { +__attribute__((weak, nonnull)) void usart_slave_init(SerialDriver** driver) { (void)driver; usart_init(); } -void serial_transport_driver_slave_init(void) { - usart_slave_init(&serial_driver); - usart_driver_start(); +/** + * @brief This thread runs on the slave and responds to transactions initiated + * by the master. + */ +static THD_WORKING_AREA(waSlaveThread, 1024); +static THD_FUNCTION(SlaveThread, arg) { + (void)arg; + chRegSetThreadName("usart_tx_rx"); + + while (true) { + if (!react_to_transactions()) { + /* Clear the receive queue, to start with a clean slate. + * Parts of failed transactions or spurious bytes could still be in it. */ + usart_clear(); + } + split_shared_memory_unlock(); + } } -void serial_transport_driver_master_init(void) { +/** + * @brief Slave specific initializations. + */ +void soft_serial_target_init(void) { + usart_slave_init(&serial_driver); + + sdStart(serial_driver, &serial_config); + + /* Start transport thread. */ + chThdCreateStatic(waSlaveThread, sizeof(waSlaveThread), HIGHPRIO, SlaveThread, NULL); +} + +/** + * @brief React to transactions started by the master. + */ +static inline bool react_to_transactions(void) { + /* Wait until there is a transaction for us. */ + uint8_t sstd_index = (uint8_t)sdGet(serial_driver); + + /* Sanity check that we are actually responding to a valid transaction. */ + if (sstd_index >= NUM_TOTAL_TRANSACTIONS) { + return false; + } + + split_shared_memory_lock(); + split_transaction_desc_t* trans = &split_transaction_table[sstd_index]; + + /* Send back the handshake which is XORed as a simple checksum, + to signal that the slave is ready to receive possible transaction buffers */ + sstd_index ^= HANDSHAKE_MAGIC; + if (!send(&sstd_index, sizeof(sstd_index))) { + return false; + } + + /* Receive transaction buffer from the master. If this transaction requires it.*/ + if (trans->initiator2target_buffer_size) { + if (!receive(split_trans_initiator2target_buffer(trans), trans->initiator2target_buffer_size)) { + return false; + } + } + + /* Allow any slave processing to occur. */ + if (trans->slave_callback) { + trans->slave_callback(trans->initiator2target_buffer_size, split_trans_initiator2target_buffer(trans), trans->initiator2target_buffer_size, split_trans_target2initiator_buffer(trans)); + } + + /* Send transaction buffer to the master. If this transaction requires it. */ + if (trans->target2initiator_buffer_size) { + if (!send(split_trans_target2initiator_buffer(trans), trans->target2initiator_buffer_size)) { + return false; + } + } + + return true; +} + +/** + * @brief Master specific initializations. + */ +void soft_serial_initiator_init(void) { usart_master_init(&serial_driver); #if defined(MCU_STM32) && defined(SERIAL_USART_PIN_SWAP) serial_config.cr2 |= USART_CR2_SWAP; // master has swapped TX/RX pins #endif - usart_driver_start(); + sdStart(serial_driver, &serial_config); +} + +/** + * @brief Start transaction from the master half to the slave half. + * + * @param index Transaction Table index of the transaction to start. + * @return bool Indicates success of transaction. + */ +bool soft_serial_transaction(int index) { + /* Clear the receive queue, to start with a clean slate. + * Parts of failed transactions or spurious bytes could still be in it. */ + usart_clear(); + + split_shared_memory_lock(); + bool result = initiate_transaction((uint8_t)index); + split_shared_memory_unlock(); + + return result; +} + +/** + * @brief Initiate transaction to slave half. + */ +static inline bool initiate_transaction(uint8_t sstd_index) { + /* Sanity check that we are actually starting a valid transaction. */ + if (sstd_index >= NUM_TOTAL_TRANSACTIONS) { + dprintln("USART: Illegal transaction Id."); + return false; + } + + split_transaction_desc_t* trans = &split_transaction_table[sstd_index]; + + /* Send transaction table index to the slave, which doubles as basic handshake token. */ + if (!send(&sstd_index, sizeof(sstd_index))) { + dprintln("USART: Send Handshake failed."); + return false; + } + + uint8_t sstd_index_shake = 0xFF; + + /* Which we always read back first so that we can error out correctly. + * - due to the half duplex limitations on return codes, we always have to read *something*. + * - without the read, write only transactions *always* succeed, even during the boot process where the slave is not ready. + */ + if (!receive(&sstd_index_shake, sizeof(sstd_index_shake)) || (sstd_index_shake != (sstd_index ^ HANDSHAKE_MAGIC))) { + dprintln("USART: Handshake failed."); + return false; + } + + /* Send transaction buffer to the slave. If this transaction requires it. */ + if (trans->initiator2target_buffer_size) { + if (!send(split_trans_initiator2target_buffer(trans), trans->initiator2target_buffer_size)) { + dprintln("USART: Send failed."); + return false; + } + } + + /* Receive transaction buffer from the slave. If this transaction requires it. */ + if (trans->target2initiator_buffer_size) { + if (!receive(split_trans_target2initiator_buffer(trans), trans->target2initiator_buffer_size)) { + dprintln("USART: Receive failed."); + return false; + } + } + + return true; } diff --git a/platforms/chibios/drivers/serial_usart.h b/platforms/chibios/drivers/serial_usart.h index fa062cd736..81fe9e0113 100644 --- a/platforms/chibios/drivers/serial_usart.h +++ b/platforms/chibios/drivers/serial_usart.h @@ -1,12 +1,42 @@ -// Copyright 2021 QMK -// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright 2021 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 #include "quantum.h" #include "serial.h" +#include "printf.h" + +#include #include +#if !defined(SERIAL_USART_DRIVER) +# define SERIAL_USART_DRIVER SD1 +#endif + +#if !defined(USE_GPIOV1) +/* The default PAL alternate modes are used to signal that the pins are used for USART. */ +# if !defined(SERIAL_USART_TX_PAL_MODE) +# define SERIAL_USART_TX_PAL_MODE 7 +# endif +# if !defined(SERIAL_USART_RX_PAL_MODE) +# define SERIAL_USART_RX_PAL_MODE 7 +# endif +#endif + #if defined(SOFT_SERIAL_PIN) # define SERIAL_USART_TX_PIN SOFT_SERIAL_PIN #endif @@ -19,62 +49,6 @@ # define SERIAL_USART_RX_PIN A10 #endif -#if !defined(SELECT_SOFT_SERIAL_SPEED) -# define SELECT_SOFT_SERIAL_SPEED 1 -#endif - -#if defined(SERIAL_USART_SPEED) -// Allow advanced users to directly set SERIAL_USART_SPEED -#elif SELECT_SOFT_SERIAL_SPEED == 0 -# define SERIAL_USART_SPEED 460800 -#elif SELECT_SOFT_SERIAL_SPEED == 1 -# define SERIAL_USART_SPEED 230400 -#elif SELECT_SOFT_SERIAL_SPEED == 2 -# define SERIAL_USART_SPEED 115200 -#elif SELECT_SOFT_SERIAL_SPEED == 3 -# define SERIAL_USART_SPEED 57600 -#elif SELECT_SOFT_SERIAL_SPEED == 4 -# define SERIAL_USART_SPEED 38400 -#elif SELECT_SOFT_SERIAL_SPEED == 5 -# define SERIAL_USART_SPEED 19200 -#else -# error invalid SELECT_SOFT_SERIAL_SPEED value -#endif - -#if !defined(SERIAL_USART_TIMEOUT) -# define SERIAL_USART_TIMEOUT 20 -#endif - -#if HAL_USE_SERIAL - -typedef SerialDriver QMKSerialDriver; -typedef SerialConfig QMKSerialConfig; - -# if !defined(SERIAL_USART_DRIVER) -# define SERIAL_USART_DRIVER SD1 -# endif - -#elif HAL_USE_SIO - -typedef SIODriver QMKSerialDriver; -typedef SIOConfig QMKSerialConfig; - -# if !defined(SERIAL_USART_DRIVER) -# define SERIAL_USART_DRIVER SIOD1 -# endif - -#endif - -#if !defined(USE_GPIOV1) -/* The default PAL alternate modes are used to signal that the pins are used for USART. */ -# if !defined(SERIAL_USART_TX_PAL_MODE) -# define SERIAL_USART_TX_PAL_MODE 7 -# endif -# if !defined(SERIAL_USART_RX_PAL_MODE) -# define SERIAL_USART_RX_PAL_MODE 7 -# endif -#endif - #if !defined(USART_CR1_M0) # define USART_CR1_M0 USART_CR1_M // some platforms (f1xx) dont have this so #endif @@ -112,3 +86,31 @@ typedef SIOConfig QMKSerialConfig; (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_FULLREMAP); \ } while (0) #endif + +#if !defined(SELECT_SOFT_SERIAL_SPEED) +# define SELECT_SOFT_SERIAL_SPEED 1 +#endif + +#if defined(SERIAL_USART_SPEED) +// Allow advanced users to directly set SERIAL_USART_SPEED +#elif SELECT_SOFT_SERIAL_SPEED == 0 +# define SERIAL_USART_SPEED 460800 +#elif SELECT_SOFT_SERIAL_SPEED == 1 +# define SERIAL_USART_SPEED 230400 +#elif SELECT_SOFT_SERIAL_SPEED == 2 +# define SERIAL_USART_SPEED 115200 +#elif SELECT_SOFT_SERIAL_SPEED == 3 +# define SERIAL_USART_SPEED 57600 +#elif SELECT_SOFT_SERIAL_SPEED == 4 +# define SERIAL_USART_SPEED 38400 +#elif SELECT_SOFT_SERIAL_SPEED == 5 +# define SERIAL_USART_SPEED 19200 +#else +# error invalid SELECT_SOFT_SERIAL_SPEED value +#endif + +#if !defined(SERIAL_USART_TIMEOUT) +# define SERIAL_USART_TIMEOUT 20 +#endif + +#define HANDSHAKE_MAGIC 7 diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index f9974d9f6b..ce69e7f0ac 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -20,7 +20,7 @@ static pin_t currentSlavePin = NO_PIN; -#if defined(K20x) || defined(KL2x) || defined(RP2040) +#if defined(K20x) || defined(KL2x) static SPIConfig spiConfig = {NULL, 0, 0, 0}; #else static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0}; @@ -167,36 +167,7 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { spiConfig.SPI_CPOL = SPI_CPOL_High; break; } -#elif defined(MCU_RP) - if (lsbFirst) { - osalDbgAssert(lsbFirst == false, "RP2040s PrimeCell SPI implementation does not support sending LSB first."); - } - // Motorola frame format and 8bit transfer data size. - spiConfig.SSPCR0 = SPI_SSPCR0_FRF_MOTOROLA | SPI_SSPCR0_DSS_8BIT; - // Serial output clock = (ck_sys or ck_peri) / (SSPCPSR->CPSDVSR * (1 + - // SSPCR0->SCR)). SCR is always set to zero, as QMK SPI API expects the - // passed divisor to be the only value to divide the input clock by. - spiConfig.SSPCPSR = roundedDivisor; // Even number from 2 to 254 - - switch (mode) { - case 0: - spiConfig.SSPCR0 &= ~SPI_SSPCR0_SPO; // Clock polarity: low - spiConfig.SSPCR0 &= ~SPI_SSPCR0_SPH; // Clock phase: sample on first edge - break; - case 1: - spiConfig.SSPCR0 &= ~SPI_SSPCR0_SPO; // Clock polarity: low - spiConfig.SSPCR0 |= SPI_SSPCR0_SPH; // Clock phase: sample on second edge transition - break; - case 2: - spiConfig.SSPCR0 |= SPI_SSPCR0_SPO; // Clock polarity: high - spiConfig.SSPCR0 &= ~SPI_SSPCR0_SPH; // Clock phase: sample on first edge - break; - case 3: - spiConfig.SSPCR0 |= SPI_SSPCR0_SPO; // Clock polarity: high - spiConfig.SSPCR0 |= SPI_SSPCR0_SPH; // Clock phase: sample on second edge transition - break; - } #else spiConfig.cr1 = 0; diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c deleted file mode 100644 index 949fc6dd93..0000000000 --- a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c +++ /dev/null @@ -1,457 +0,0 @@ -// 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" - -#if !defined(MCU_RP) -# error PIO Driver is only available for Raspberry Pi 2040 MCUs! -#endif - -static inline bool receive_impl(uint8_t* destination, const size_t size, sysinterval_t timeout); -static inline bool send_impl(const uint8_t* source, const size_t size); -static inline void pio_serve_interrupt(void); - -#define MSG_PIO_ERROR ((msg_t)(-3)) - -#if defined(SERIAL_PIO_USE_PIO1) -static const PIO pio = pio1; - -OSAL_IRQ_HANDLER(RP_PIO1_IRQ_0_HANDLER) { - OSAL_IRQ_PROLOGUE(); - pio_serve_interrupt(); - OSAL_IRQ_EPILOGUE(); -} -#else -static const PIO pio = pio0; - -OSAL_IRQ_HANDLER(RP_PIO0_IRQ_0_HANDLER) { - OSAL_IRQ_PROLOGUE(); - pio_serve_interrupt(); - OSAL_IRQ_EPILOGUE(); -} -#endif - -#define UART_TX_WRAP_TARGET 0 -#define UART_TX_WRAP 3 - -// clang-format off -#if defined(SERIAL_USART_FULL_DUPLEX) -static const uint16_t uart_tx_program_instructions[] = { - // .wrap_target - 0x9fa0, // 0: pull block side 1 [7] - 0xf727, // 1: set x, 7 side 0 [7] - 0x6001, // 2: out pins, 1 - 0x0642, // 3: jmp x--, 2 [6] - // .wrap -}; -#else -static const uint16_t uart_tx_program_instructions[] = { - // .wrap_target - 0x9fa0, // 0: pull block side 1 [7] - 0xf727, // 1: set x, 7 side 0 [7] - 0x6081, // 2: out pindirs, 1 - 0x0642, // 3: jmp x--, 2 [6] - // .wrap -}; -#endif -// clang-format on - -static const pio_program_t uart_tx_program = { - .instructions = uart_tx_program_instructions, - .length = 4, - .origin = -1, -}; - -#define UART_RX_WRAP_TARGET 0 -#define UART_RX_WRAP 8 - -// clang-format off -static const uint16_t uart_rx_program_instructions[] = { - // .wrap_target - 0x2020, // 0: wait 0 pin, 0 - 0xea27, // 1: set x, 7 [10] - 0x4001, // 2: in pins, 1 - 0x0642, // 3: jmp x--, 2 [6] - 0x00c8, // 4: jmp pin, 8 - 0xc020, // 5: irq wait 0 - 0x20a0, // 6: wait 1 pin, 0 - 0x0000, // 7: jmp 0 - 0x8020, // 8: push block - // .wrap -}; -// clang-format on - -static const pio_program_t uart_rx_program = { - .instructions = uart_rx_program_instructions, - .length = 9, - .origin = -1, -}; - -thread_reference_t rx_thread = NULL; -static int rx_state_machine = -1; - -thread_reference_t tx_thread = NULL; -static int tx_state_machine = -1; - -void pio_serve_interrupt(void) { - uint32_t irqs = pio->ints0; - - // The RX FIFO is not empty any more, therefore wake any sleeping rx thread - if (irqs & (PIO_IRQ0_INTF_SM0_RXNEMPTY_BITS << rx_state_machine)) { - // Disable rx not empty interrupt - pio_set_irq0_source_enabled(pio, pis_sm0_rx_fifo_not_empty + rx_state_machine, false); - - osalSysLockFromISR(); - osalThreadResumeI(&rx_thread, MSG_OK); - osalSysUnlockFromISR(); - } - - // The TX FIFO is not full any more, therefore wake any sleeping tx thread - if (irqs & (PIO_IRQ0_INTF_SM0_TXNFULL_BITS << tx_state_machine)) { - // Disable tx not full interrupt - pio_set_irq0_source_enabled(pio, pis_sm0_tx_fifo_not_full + tx_state_machine, false); - osalSysLockFromISR(); - osalThreadResumeI(&tx_thread, MSG_OK); - osalSysUnlockFromISR(); - } - - // IRQ 0 is set on framing or break errors by the rx state machine - if (pio_interrupt_get(pio, 0UL)) { - pio_interrupt_clear(pio, 0UL); - - osalSysLockFromISR(); - osalThreadResumeI(&rx_thread, MSG_PIO_ERROR); - osalSysUnlockFromISR(); - } -} - -#if !defined(SERIAL_USART_FULL_DUPLEX) -// The internal pull-ups of the RP2040 are rather weakish with a range of 50k to -// 80k, which in turn do not provide enough current to guarantee fast signal rise -// times with a parasitic capacitance of greater than 100pf. In real world -// applications, like split keyboards which might have vias in the signal path -// or long PCB traces, this prevents a successful communication. The solution -// is to temporarily augment the weak pull ups from the receiving side by -// driving the tx pin high. On the receiving side the lowest possible drive -// strength is chosen because the transmitting side must still be able to drive -// the signal low. With this configuration the rise times are fast enough and -// the generated low level with 360mV will generate a logical zero. -static inline void enter_rx_state(void) { - osalSysLock(); - // Wait for the transmitting state machines FIFO to run empty. At this point - // the last byte has been pulled from the transmitting state machines FIFO - // into the output shift register. We have to wait a tiny bit more until - // this byte is transmitted, before we can turn on the receiving state - // machine again. - while (!pio_sm_is_tx_fifo_empty(pio, tx_state_machine)) { - } - // Wait for ~11 bits, 1 start bit + 8 data bits + 1 stop bit + 1 bit - // headroom. - chSysPolledDelayX(US2RTC(1 * MHZ, (1000000U * 11 / SERIAL_USART_SPEED))); - // Disable tx state machine to not interfere with our tx pin manipulation - pio_sm_set_enabled(pio, tx_state_machine, false); - gpio_set_drive_strength(SERIAL_USART_TX_PIN, GPIO_DRIVE_STRENGTH_2MA); - pio_sm_set_pins_with_mask(pio, tx_state_machine, 1U << SERIAL_USART_TX_PIN, 1U << SERIAL_USART_TX_PIN); - pio_sm_set_consecutive_pindirs(pio, tx_state_machine, SERIAL_USART_TX_PIN, 1U, false); - pio_sm_set_enabled(pio, rx_state_machine, true); - osalSysUnlock(); -} - -static inline void leave_rx_state(void) { - osalSysLock(); - // In Half-duplex operation the tx pin dual-functions as sender and - // receiver. To not receive the data we will send, we disable the receiving - // state machine. - pio_sm_set_enabled(pio, rx_state_machine, false); - pio_sm_set_consecutive_pindirs(pio, tx_state_machine, SERIAL_USART_TX_PIN, 1U, true); - pio_sm_set_pins_with_mask(pio, tx_state_machine, 0U, 1U << SERIAL_USART_TX_PIN); - gpio_set_drive_strength(SERIAL_USART_TX_PIN, GPIO_DRIVE_STRENGTH_12MA); - pio_sm_restart(pio, tx_state_machine); - pio_sm_set_enabled(pio, tx_state_machine, true); - osalSysUnlock(); -} -#else -// All this trickery is gladly not necessary for full-duplex. -static inline void enter_rx_state(void) {} -static inline void leave_rx_state(void) {} -#endif - -/** - * @brief Clear the RX and TX hardware FIFOs of the state machines. - */ -inline void serial_transport_driver_clear(void) { - osalSysLock(); - pio_sm_clear_fifos(pio, rx_state_machine); - pio_sm_clear_fifos(pio, tx_state_machine); - osalSysUnlock(); -} - -static inline msg_t sync_tx(sysinterval_t timeout) { - msg_t msg = MSG_OK; - osalSysLock(); - while (pio_sm_is_tx_fifo_full(pio, tx_state_machine)) { - pio_set_irq0_source_enabled(pio, pis_sm0_tx_fifo_not_full + tx_state_machine, true); - msg = osalThreadSuspendTimeoutS(&tx_thread, timeout); - if (msg < MSG_OK) { - break; - } - } - osalSysUnlock(); - return msg; -} - -static inline bool send_impl(const uint8_t* source, const size_t size) { - size_t send = 0; - msg_t msg; - while (send < size) { - msg = sync_tx(TIME_MS2I(SERIAL_USART_TIMEOUT)); - if (msg < MSG_OK) { - return false; - } - - osalSysLock(); - while (send < size) { - if (pio_sm_is_tx_fifo_full(pio, tx_state_machine)) { - break; - } - if (send >= size) { - break; - } - pio_sm_put(pio, tx_state_machine, (uint32_t)(*source)); - source++; - send++; - } - osalSysUnlock(); - } - - return send == size; -} - -/** - * @brief Blocking send of buffer with timeout. - * - * @return true Send success. - * @return false Send failed. - */ -inline bool serial_transport_send(const uint8_t* source, const size_t size) { - leave_rx_state(); - bool result = send_impl(source, size); - enter_rx_state(); - - return result; -} - -static inline msg_t sync_rx(sysinterval_t timeout) { - msg_t msg = MSG_OK; - osalSysLock(); - while (pio_sm_is_rx_fifo_empty(pio, rx_state_machine)) { - pio_set_irq0_source_enabled(pio, pis_sm0_rx_fifo_not_empty + rx_state_machine, true); - msg = osalThreadSuspendTimeoutS(&rx_thread, timeout); - if (msg < MSG_OK) { - break; - } - } - osalSysUnlock(); - return msg; -} - -static inline bool receive_impl(uint8_t* destination, const size_t size, sysinterval_t timeout) { - size_t read = 0U; - - while (read < size) { - msg_t msg = sync_rx(timeout); - if (msg < MSG_OK) { - return false; - } - osalSysLock(); - while (true) { - if (pio_sm_is_rx_fifo_empty(pio, rx_state_machine)) { - break; - } - if (read >= size) { - break; - } - *destination++ = *((uint8_t*)&pio->rxf[rx_state_machine] + 3U); - read++; - } - osalSysUnlock(); - } - - return read == size; -} - -/** - * @brief Blocking receive of size * bytes with timeout. - * - * @return true Receive success. - * @return false Receive failed, e.g. by timeout. - */ -inline bool serial_transport_receive(uint8_t* destination, const size_t size) { - return receive_impl(destination, size, TIME_MS2I(SERIAL_USART_TIMEOUT)); -} - -/** - * @brief Blocking receive of size * bytes. - * - * @return true Receive success. - * @return false Receive failed. - */ -inline bool serial_transport_receive_blocking(uint8_t* destination, const size_t size) { - return receive_impl(destination, size, TIME_INFINITE); -} - -static inline void pio_tx_init(pin_t tx_pin) { - uint pio_idx = pio_get_index(pio); - uint offset = pio_add_program(pio, &uart_tx_program); - -#if defined(SERIAL_USART_FULL_DUPLEX) - // clang-format off - iomode_t tx_pin_mode = PAL_RP_GPIO_OE | - PAL_RP_PAD_SLEWFAST | - PAL_RP_PAD_DRIVE4 | - (pio_idx == 0 ? PAL_MODE_ALTERNATE_PIO0 : PAL_MODE_ALTERNATE_PIO1); - // clang-format on - pio_sm_set_pins_with_mask(pio, tx_state_machine, 1U << tx_pin, 1U << tx_pin); - pio_sm_set_consecutive_pindirs(pio, tx_state_machine, tx_pin, 1U, true); -#else - // clang-format off - iomode_t tx_pin_mode = PAL_RP_PAD_IE | - PAL_RP_GPIO_OE | - PAL_RP_PAD_SCHMITT | - PAL_RP_PAD_PUE | - PAL_RP_PAD_SLEWFAST | - PAL_RP_PAD_DRIVE12 | - PAL_RP_IOCTRL_OEOVER_DRVINVPERI | - (pio_idx == 0 ? PAL_MODE_ALTERNATE_PIO0 : PAL_MODE_ALTERNATE_PIO1); - // clang-format on - pio_sm_set_pins_with_mask(pio, tx_state_machine, 0U << tx_pin, 1U << tx_pin); - pio_sm_set_consecutive_pindirs(pio, tx_state_machine, tx_pin, 1U, true); -#endif - - palSetLineMode(tx_pin, tx_pin_mode); - - pio_sm_config config = pio_get_default_sm_config(); - sm_config_set_wrap(&config, offset + UART_TX_WRAP_TARGET, offset + UART_TX_WRAP); -#if defined(SERIAL_USART_FULL_DUPLEX) - sm_config_set_sideset(&config, 2, true, false); -#else - sm_config_set_sideset(&config, 2, true, true); -#endif - // OUT shifts to right, no autopull - sm_config_set_out_shift(&config, true, false, 32); - // We are mapping both OUT and side-set to the same pin, because sometimes - // we need to assert user data onto the pin (with OUT) and sometimes - // assert constant values (start/stop bit) - sm_config_set_out_pins(&config, tx_pin, 1); - sm_config_set_sideset_pins(&config, tx_pin); - // We only need TX, so get an 8-deep FIFO! - sm_config_set_fifo_join(&config, PIO_FIFO_JOIN_TX); - // SM transmits 1 bit per 8 execution cycles. - float div = (float)clock_get_hz(clk_sys) / (8 * SERIAL_USART_SPEED); - sm_config_set_clkdiv(&config, div); - pio_sm_init(pio, tx_state_machine, offset, &config); - pio_sm_set_enabled(pio, tx_state_machine, true); -} - -static inline void pio_rx_init(pin_t rx_pin) { - uint offset = pio_add_program(pio, &uart_rx_program); - -#if defined(SERIAL_USART_FULL_DUPLEX) - uint pio_idx = pio_get_index(pio); - pio_sm_set_consecutive_pindirs(pio, rx_state_machine, rx_pin, 1, false); - // clang-format off - iomode_t rx_pin_mode = PAL_RP_PAD_IE | - PAL_RP_PAD_SCHMITT | - PAL_RP_PAD_PUE | - (pio_idx == 0 ? PAL_MODE_ALTERNATE_PIO0 : PAL_MODE_ALTERNATE_PIO1); - // clang-format on - palSetLineMode(rx_pin, rx_pin_mode); -#endif - - pio_sm_config config = pio_get_default_sm_config(); - sm_config_set_wrap(&config, offset + UART_RX_WRAP_TARGET, offset + UART_RX_WRAP); - sm_config_set_in_pins(&config, rx_pin); // for WAIT, IN - sm_config_set_jmp_pin(&config, rx_pin); // for JMP - // Shift to right, autopush disabled - sm_config_set_in_shift(&config, true, false, 32); - // Deeper FIFO as we're not doing any TX - sm_config_set_fifo_join(&config, PIO_FIFO_JOIN_RX); - // SM transmits 1 bit per 8 execution cycles. - float div = (float)clock_get_hz(clk_sys) / (8 * SERIAL_USART_SPEED); - sm_config_set_clkdiv(&config, div); - pio_sm_init(pio, rx_state_machine, offset, &config); - pio_sm_set_enabled(pio, rx_state_machine, true); -} - -static inline void pio_init(pin_t tx_pin, pin_t rx_pin) { - uint pio_idx = pio_get_index(pio); - - /* Get PIOx peripheral out of reset state. */ - hal_lld_peripheral_unreset(pio_idx == 0 ? RESETS_ALLREG_PIO0 : RESETS_ALLREG_PIO1); - - tx_state_machine = pio_claim_unused_sm(pio, true); - if (tx_state_machine < 0) { - dprintln("ERROR: Failed to acquire state machine for serial transmission!"); - return; - } - pio_tx_init(tx_pin); - - rx_state_machine = pio_claim_unused_sm(pio, true); - if (rx_state_machine < 0) { - dprintln("ERROR: Failed to acquire state machine for serial reception!"); - return; - } - pio_rx_init(rx_pin); - - // Enable error flag IRQ source for rx state machine - pio_set_irq0_source_enabled(pio, pis_sm0_rx_fifo_not_empty + rx_state_machine, true); - pio_set_irq0_source_enabled(pio, pis_sm0_tx_fifo_not_full + tx_state_machine, true); - pio_set_irq0_source_enabled(pio, pis_interrupt0, true); - - // Enable PIO specific interrupt vector -#if defined(SERIAL_PIO_USE_PIO1) - nvicEnableVector(RP_PIO1_IRQ_0_NUMBER, RP_IRQ_UART0_PRIORITY); -#else - nvicEnableVector(RP_PIO0_IRQ_0_NUMBER, RP_IRQ_UART0_PRIORITY); -#endif - - enter_rx_state(); -} - -/** - * @brief PIO driver specific initialization function for the master side. - */ -void serial_transport_driver_master_init(void) { -#if defined(SERIAL_USART_FULL_DUPLEX) - pin_t tx_pin = SERIAL_USART_TX_PIN; - pin_t rx_pin = SERIAL_USART_RX_PIN; -#else - pin_t tx_pin = SERIAL_USART_TX_PIN; - pin_t rx_pin = SERIAL_USART_TX_PIN; -#endif - -#if defined(SERIAL_USART_PIN_SWAP) - pio_init(rx_pin, tx_pin); -#else - pio_init(tx_pin, rx_pin); -#endif -} - -/** - * @brief PIO driver specific initialization function for the slave side. - */ -void serial_transport_driver_slave_init(void) { -#if defined(SERIAL_USART_FULL_DUPLEX) - pin_t tx_pin = SERIAL_USART_TX_PIN; - pin_t rx_pin = SERIAL_USART_RX_PIN; -#else - pin_t tx_pin = SERIAL_USART_TX_PIN; - pin_t rx_pin = SERIAL_USART_TX_PIN; -#endif - - pio_init(tx_pin, rx_pin); -} diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c deleted file mode 100644 index bc34eded14..0000000000 --- a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" -#include "ws2812.h" -#include "hardware/pio.h" -#include "hardware/clocks.h" - -#if !defined(MCU_RP) -# error PIO Driver is only available for Raspberry Pi 2040 MCUs! -#endif - -#if defined(WS2812_PIO_USE_PIO1) -static const PIO pio = pio1; -#else -static const PIO pio = pio0; -#endif - -#if !defined(RP_DMA_PRIORITY_WS2812) -# define RP_DMA_PRIORITY_WS2812 12 -#endif - -static int state_machine = -1; - -#define WS2812_WRAP_TARGET 0 -#define WS2812_WRAP 3 - -#define WS2812_T1 2 -#define WS2812_T2 5 -#define WS2812_T3 3 - -#if defined(WS2812_EXTERNAL_PULLUP) - -# pragma message "The GPIOs of the RP2040 are NOT 5V tolerant! Make sure to NOT apply any voltage over 3.3V to the RGB data pin." - -// clang-format off -static const uint16_t ws2812_program_instructions[] = { - // .wrap_target - 0x7221, // 0: out x, 1 side 1 [2] - 0x0123, // 1: jmp !x, 3 side 0 [1] - 0x0400, // 2: jmp 0 side 0 [4] - 0xb442, // 3: nop side 1 [4] - // .wrap -}; - -#else - -static const uint16_t ws2812_program_instructions[] = { - // .wrap_target - 0x6221, // 0: out x, 1 side 0 [2] - 0x1123, // 1: jmp !x, 3 side 1 [1] - 0x1400, // 2: jmp 0 side 1 [4] - 0xa442, // 3: nop side 0 [4] - // .wrap -}; -// clang-format on -#endif - -static const pio_program_t ws2812_program = { - .instructions = ws2812_program_instructions, - .length = 4, - .origin = -1, -}; - -static uint32_t WS2812_BUFFER[RGBLED_NUM]; -static const rp_dma_channel_t* WS2812_DMA_CHANNEL; - -bool ws2812_init(void) { - uint pio_idx = pio_get_index(pio); - /* Get PIOx peripheral out of reset state. */ - hal_lld_peripheral_unreset(pio_idx == 0 ? RESETS_ALLREG_PIO0 : RESETS_ALLREG_PIO1); - - // clang-format off - iomode_t rgb_pin_mode = PAL_RP_PAD_SLEWFAST | - PAL_RP_GPIO_OE | - (pio_idx == 0 ? PAL_MODE_ALTERNATE_PIO0 : PAL_MODE_ALTERNATE_PIO1); - // clang-format on - - palSetLineMode(RGB_DI_PIN, rgb_pin_mode); - - state_machine = pio_claim_unused_sm(pio, true); - if (state_machine < 0) { - dprintln("ERROR: Failed to acquire state machine for WS2812 output!"); - return false; - } - - uint offset = pio_add_program(pio, &ws2812_program); - - pio_sm_set_consecutive_pindirs(pio, state_machine, RGB_DI_PIN, 1, true); - - pio_sm_config config = pio_get_default_sm_config(); - sm_config_set_wrap(&config, offset + WS2812_WRAP_TARGET, offset + WS2812_WRAP); - sm_config_set_sideset_pins(&config, RGB_DI_PIN); - sm_config_set_fifo_join(&config, PIO_FIFO_JOIN_TX); - -#if defined(WS2812_EXTERNAL_PULLUP) - /* Instruct side-set to change the pin-directions instead of outputting - * a logic level. We generate our levels the following way: - * - * 1: Set RGB data pin to high impedance input and let the pull-up drive the - * signal high. - * - * 0: Set RGB data pin to low impedance output and drive the pin low. - */ - sm_config_set_sideset(&config, 1, false, true); -#else - sm_config_set_sideset(&config, 1, false, false); -#endif - -#if defined(RGBW) - sm_config_set_out_shift(&config, false, true, 32); -#else - sm_config_set_out_shift(&config, false, true, 24); -#endif - - int cycles_per_bit = WS2812_T1 + WS2812_T2 + WS2812_T3; - float div = clock_get_hz(clk_sys) / (800.0f * KHZ * cycles_per_bit); - sm_config_set_clkdiv(&config, div); - - pio_sm_init(pio, state_machine, offset, &config); - pio_sm_set_enabled(pio, state_machine, true); - - WS2812_DMA_CHANNEL = dmaChannelAlloc(RP_DMA_CHANNEL_ID_ANY, RP_DMA_PRIORITY_WS2812, NULL, NULL); - - // clang-format off - uint32_t mode = DMA_CTRL_TRIG_INCR_READ | - DMA_CTRL_TRIG_DATA_SIZE_WORD | - DMA_CTRL_TRIG_IRQ_QUIET | - DMA_CTRL_TRIG_TREQ_SEL(pio_idx == 0 ? state_machine : state_machine + 8); - // clang-format on - - dmaChannelSetModeX(WS2812_DMA_CHANNEL, mode); - dmaChannelSetDestinationX(WS2812_DMA_CHANNEL, (uint32_t)&pio->txf[state_machine]); - return true; -} - -/** - * @brief Convert RGBW value into WS2812 compatible 32-bit data word. - */ -__always_inline static uint32_t rgbw8888_to_u32(uint8_t red, uint8_t green, uint8_t blue, uint8_t white) { -#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) - return ((uint32_t)green << 24) | ((uint32_t)red << 16) | ((uint32_t)blue << 8) | ((uint32_t)white); -#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) - return ((uint32_t)red << 24) | ((uint32_t)green << 16) | ((uint32_t)blue << 8) | ((uint32_t)white); -#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR) - return ((uint32_t)blue << 24) | ((uint32_t)green << 16) | ((uint32_t)red << 8) | ((uint32_t)white); -#endif -} - -static inline void sync_ws2812_transfer(void) { - if (unlikely(dmaChannelIsBusyX(WS2812_DMA_CHANNEL) || !pio_sm_is_tx_fifo_empty(pio, state_machine))) { - fast_timer_t start = timer_read_fast(); - do { - // Abort the synchronization if we have to wait longer than the total - // count of LEDs in millisecounds. This is safely much longer than it - // would take to push all the data out. - if (unlikely(timer_elapsed_fast(start) > RGBLED_NUM)) { - dprintln("ERROR: WS2812 DMA transfer has stalled, aborting!"); - dmaChannelDisableX(WS2812_DMA_CHANNEL); - return; - } - - } while (dmaChannelIsBusyX(WS2812_DMA_CHANNEL) || !pio_sm_is_tx_fifo_empty(pio, state_machine)); - // We wait for the WS2812 chain to reset after all data has been pushed - // out. - wait_us(WS2812_TRST_US); - } -} - -void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) { - static bool is_initialized = false; - if (unlikely(!is_initialized)) { - is_initialized = ws2812_init(); - } - - sync_ws2812_transfer(); - - for (int i = 0; i < leds; i++) { -#if defined(RGBW) - WS2812_BUFFER[i] = rgbw8888_to_u32(ledarray[i].r, ledarray[i].g, ledarray[i].b, ledarray[i].w); -#else - WS2812_BUFFER[i] = rgbw8888_to_u32(ledarray[i].r, ledarray[i].g, ledarray[i].b, 0); -#endif - } - - dmaChannelSetSourceX(WS2812_DMA_CHANNEL, (uint32_t)WS2812_BUFFER); - dmaChannelSetCounterX(WS2812_DMA_CHANNEL, leds); - dmaChannelEnableX(WS2812_DMA_CHANNEL); -} diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c deleted file mode 100644 index 4b5639ee4a..0000000000 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include -#include "timer.h" -#include "wear_leveling.h" -#include "wear_leveling_internal.h" - -static flash_offset_t base_offset = UINT32_MAX; - -#if defined(WEAR_LEVELING_EFL_FIRST_SECTOR) -static flash_sector_t first_sector = WEAR_LEVELING_EFL_FIRST_SECTOR; -#else // defined(WEAR_LEVELING_EFL_FIRST_SECTOR) -static flash_sector_t first_sector = UINT16_MAX; -#endif // defined(WEAR_LEVELING_EFL_FIRST_SECTOR) - -static flash_sector_t sector_count = UINT16_MAX; -static BaseFlash * flash; - -#ifndef WEAR_LEVELING_EFL_FIRST_SECTOR -// "Automatic" detection of the flash size -- ideally ChibiOS would have this already, but alas, it doesn't. -static inline uint32_t detect_flash_size(void) { -# if defined(WEAR_LEVELING_EFL_FLASH_SIZE) - return WEAR_LEVELING_EFL_FLASH_SIZE; -# elif defined(FLASH_BANK_SIZE) - return FLASH_BANK_SIZE; -# elif defined(FLASH_SIZE) - return FLASH_SIZE; -# elif defined(FLASHSIZE_BASE) -# if defined(QMK_MCU_SERIES_STM32F0XX) || defined(QMK_MCU_SERIES_STM32F1XX) || defined(QMK_MCU_SERIES_STM32F3XX) || defined(QMK_MCU_SERIES_STM32F4XX) || defined(QMK_MCU_SERIES_STM32G4XX) || defined(QMK_MCU_SERIES_STM32L0XX) || defined(QMK_MCU_SERIES_STM32L4XX) || defined(QMK_MCU_SERIES_GD32VF103) - return ((*(uint32_t *)FLASHSIZE_BASE) & 0xFFFFU) << 10U; // this register has the flash size in kB, so we convert it to bytes -# elif defined(QMK_MCU_SERIES_STM32L1XX) -# error This MCU family has an uncommon flash size register definition and has not been implemented. Perhaps try using the true EEPROM on the MCU instead? -# endif -# else -# error Unknown flash size definition. - return 0; -# endif -} -#endif // WEAR_LEVELING_EFL_FIRST_SECTOR - -bool backing_store_init(void) { - bs_dprintf("Init\n"); - flash = (BaseFlash *)&EFLD1; - - const flash_descriptor_t *desc = flashGetDescriptor(flash); - uint32_t counter = 0; - -#if defined(WEAR_LEVELING_EFL_FIRST_SECTOR) - - // Work out how many sectors we want to use, working forwards from the first sector specified - for (flash_sector_t i = 0; i < desc->sectors_count - first_sector; ++i) { - counter += flashGetSectorSize(flash, first_sector + i); - if (counter >= (WEAR_LEVELING_BACKING_SIZE)) { - sector_count = i + 1; - base_offset = flashGetSectorOffset(flash, first_sector); - break; - } - } - if (sector_count == UINT16_MAX || base_offset >= flash_size) { - // We didn't get the required number of sectors. Can't do anything here. Fault. - chSysHalt("Invalid sector count intended to be used with wear_leveling"); - } - -#else // defined(WEAR_LEVELING_EFL_FIRST_SECTOR) - - // Work out how many sectors we want to use, working backwards from the end of the flash - uint32_t flash_size = detect_flash_size(); - flash_sector_t last_sector = desc->sectors_count; - for (flash_sector_t i = 0; i < desc->sectors_count; ++i) { - first_sector = desc->sectors_count - i - 1; - if (flashGetSectorOffset(flash, first_sector) >= flash_size) { - last_sector = first_sector; - continue; - } - counter += flashGetSectorSize(flash, first_sector); - if (counter >= (WEAR_LEVELING_BACKING_SIZE)) { - sector_count = last_sector - first_sector; - base_offset = flashGetSectorOffset(flash, first_sector); - break; - } - } - -#endif // defined(WEAR_LEVELING_EFL_FIRST_SECTOR) - - return true; -} - -bool backing_store_unlock(void) { - bs_dprintf("Unlock\n"); - return eflStart(&EFLD1, NULL) == HAL_RET_SUCCESS; -} - -bool backing_store_erase(void) { -#ifdef WEAR_LEVELING_DEBUG_OUTPUT - uint32_t start = timer_read32(); -#endif - - bool ret = true; - flash_error_t status; - for (int i = 0; i < sector_count; ++i) { - // Kick off the sector erase - status = flashStartEraseSector(flash, first_sector + i); - if (status != FLASH_NO_ERROR && status != FLASH_BUSY_ERASING) { - ret = false; - } - - // Wait for the erase to complete - status = flashWaitErase(flash); - if (status != FLASH_NO_ERROR && status != FLASH_BUSY_ERASING) { - ret = false; - } - } - - bs_dprintf("Backing store erase took %ldms to complete\n", ((long)(timer_read32() - start))); - return ret; -} - -bool backing_store_write(uint32_t address, backing_store_int_t value) { - uint32_t offset = (base_offset + address); - bs_dprintf("Write "); - wl_dump(offset, &value, sizeof(value)); - value = ~value; - return flashProgram(flash, offset, sizeof(value), (const uint8_t *)&value) == FLASH_NO_ERROR; -} - -bool backing_store_lock(void) { - bs_dprintf("Lock \n"); - eflStop(&EFLD1); - return true; -} - -bool backing_store_read(uint32_t address, backing_store_int_t *value) { - uint32_t offset = (base_offset + address); - backing_store_int_t *loc = (backing_store_int_t *)offset; - *value = ~(*loc); - bs_dprintf("Read "); - wl_dump(offset, value, sizeof(backing_store_int_t)); - return true; -} diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h deleted file mode 100644 index 9e38c2965d..0000000000 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#ifndef __ASSEMBLER__ -# include -#endif - -// Work out how many bytes per write to internal flash -#ifndef BACKING_STORE_WRITE_SIZE -// These need to match EFL's XXXXXX_FLASH_LINE_SIZE, see associated code in `lib/chibios/os/hal/ports/**/hal_efl_lld.c`, -// or associated `stm32_registry.h` for the MCU in question (or equivalent for the family). -# if defined(QMK_MCU_SERIES_GD32VF103) -# define BACKING_STORE_WRITE_SIZE 2 // from hal_efl_lld.c -# elif defined(QMK_MCU_FAMILY_NUC123) -# define BACKING_STORE_WRITE_SIZE 4 // from hal_efl_lld.c -# elif defined(QMK_MCU_FAMILY_STM32) -# if defined(STM32_FLASH_LINE_SIZE) // from some family's stm32_registry.h file -# define BACKING_STORE_WRITE_SIZE (STM32_FLASH_LINE_SIZE) -# else -# if defined(QMK_MCU_SERIES_STM32F1XX) -# define BACKING_STORE_WRITE_SIZE 2 // from hal_efl_lld.c -# elif defined(QMK_MCU_SERIES_STM32F3XX) -# define BACKING_STORE_WRITE_SIZE 2 // from hal_efl_lld.c -# elif defined(QMK_MCU_SERIES_STM32F4XX) -# define BACKING_STORE_WRITE_SIZE (1 << STM32_FLASH_PSIZE) // from hal_efl_lld.c -# elif defined(QMK_MCU_SERIES_STM32L4XX) -# define BACKING_STORE_WRITE_SIZE 8 // from hal_efl_lld.c -# elif defined(QMK_MCU_SERIES_STM32G0XX) -# define BACKING_STORE_WRITE_SIZE 8 // from hal_efl_lld.c -# elif defined(QMK_MCU_SERIES_STM32G4XX) -# define BACKING_STORE_WRITE_SIZE 8 // from hal_efl_lld.c -# else -# error "ChibiOS hasn't defined STM32_FLASH_LINE_SIZE, and could not automatically determine BACKING_STORE_WRITE_SIZE" // normally defined in stm32_registry.h, should be set by STM32_FLASH_LINE_SIZE -# endif -# endif -# else -# error "Could not automatically determine BACKING_STORE_WRITE_SIZE" -# endif -#endif - -// 2kB backing space allocated -#ifndef WEAR_LEVELING_BACKING_SIZE -# define WEAR_LEVELING_BACKING_SIZE 2048 -#endif // WEAR_LEVELING_BACKING_SIZE - -// 1kB logical EEPROM -#ifndef WEAR_LEVELING_LOGICAL_SIZE -# define WEAR_LEVELING_LOGICAL_SIZE 1024 -#endif // WEAR_LEVELING_LOGICAL_SIZE diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy.c deleted file mode 100644 index 87126c4467..0000000000 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy.c +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include -#include "timer.h" -#include "wear_leveling.h" -#include "wear_leveling_internal.h" -#include "flash_stm32.h" - -bool backing_store_init(void) { - bs_dprintf("Init\n"); - return true; -} - -bool backing_store_unlock(void) { - bs_dprintf("Unlock\n"); - FLASH_Unlock(); - return true; -} - -bool backing_store_erase(void) { -#ifdef WEAR_LEVELING_DEBUG_OUTPUT - uint32_t start = timer_read32(); -#endif - - bool ret = true; - FLASH_Status status; - for (int i = 0; i < (WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT); ++i) { - status = FLASH_ErasePage(WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS + (i * (WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE))); - if (status != FLASH_COMPLETE) { - ret = false; - } - } - - bs_dprintf("Backing store erase took %ldms to complete\n", ((long)(timer_read32() - start))); - return ret; -} - -bool backing_store_write(uint32_t address, backing_store_int_t value) { - uint32_t offset = ((WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS) + address); - bs_dprintf("Write "); - wl_dump(offset, &value, sizeof(backing_store_int_t)); - return FLASH_ProgramHalfWord(offset, ~value) == FLASH_COMPLETE; -} - -bool backing_store_lock(void) { - bs_dprintf("Lock \n"); - FLASH_Lock(); - return true; -} - -bool backing_store_read(uint32_t address, backing_store_int_t* value) { - uint32_t offset = ((WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS) + address); - backing_store_int_t* loc = (backing_store_int_t*)offset; - *value = ~(*loc); - bs_dprintf("Read "); - wl_dump(offset, loc, sizeof(backing_store_int_t)); - return true; -} diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy_config.h deleted file mode 100644 index 1e4691a6c0..0000000000 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_legacy_config.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -// Work out the page size to use -#ifndef WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE -# if defined(QMK_MCU_STM32F042) -# define WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE 1024 -# elif defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072) -# define WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE 2048 -# elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411) -# define WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE 16384 -# endif -#endif - -// Work out how much flash space we have -#ifndef WEAR_LEVELING_LEGACY_EMULATION_FLASH_SIZE -# define WEAR_LEVELING_LEGACY_EMULATION_FLASH_SIZE ((*(uint32_t *)FLASHSIZE_BASE) & 0xFFFFU) // in kB -#endif - -// The base location of program memory -#ifndef WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE -# define WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE 0x08000000 -#endif - -// The number of pages to use -#ifndef WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT -# if defined(QMK_MCU_STM32F042) -# define WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT 2 -# elif defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072) -# define WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT 1 -# elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411) -# define WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT 1 -# endif -#endif - -// The origin of the emulated eeprom -#ifndef WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS -# if defined(QMK_MCU_STM32F042) || defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072) -# define WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS ((uintptr_t)(WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE) + WEAR_LEVELING_LEGACY_EMULATION_FLASH_SIZE * 1024 - (WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT * WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE)) -# elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411) -# if defined(BOOTLOADER_STM32) -# define WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS (WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE + (1 * (WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE))) // +16k -# elif defined(BOOTLOADER_TINYUF2) -# define WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS (WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE + (3 * (WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE))) // +48k -# endif -# endif -#endif - -// 2-byte writes -#ifndef BACKING_STORE_WRITE_SIZE -# define BACKING_STORE_WRITE_SIZE 2 -#endif - -// The amount of space to use for the entire set of emulation -#ifndef WEAR_LEVELING_BACKING_SIZE -# if defined(QMK_MCU_STM32F042) || defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072) -# define WEAR_LEVELING_BACKING_SIZE 2048 -# elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411) -# define WEAR_LEVELING_BACKING_SIZE 16384 -# endif -#endif - -// The logical amount of eeprom available -#ifndef WEAR_LEVELING_LOGICAL_SIZE -# define WEAR_LEVELING_LOGICAL_SIZE 1024 -#endif diff --git a/platforms/chibios/drivers/eeprom/eeprom_stm32.c b/platforms/chibios/eeprom_stm32.c similarity index 100% rename from platforms/chibios/drivers/eeprom/eeprom_stm32.c rename to platforms/chibios/eeprom_stm32.c diff --git a/platforms/chibios/drivers/eeprom/eeprom_stm32.h b/platforms/chibios/eeprom_stm32.h similarity index 100% rename from platforms/chibios/drivers/eeprom/eeprom_stm32.h rename to platforms/chibios/eeprom_stm32.h diff --git a/platforms/chibios/drivers/eeprom/eeprom_stm32_defs.h b/platforms/chibios/eeprom_stm32_defs.h similarity index 100% rename from platforms/chibios/drivers/eeprom/eeprom_stm32_defs.h rename to platforms/chibios/eeprom_stm32_defs.h diff --git a/platforms/chibios/drivers/eeprom/eeprom_teensy.c b/platforms/chibios/eeprom_teensy.c similarity index 100% rename from platforms/chibios/drivers/eeprom/eeprom_teensy.c rename to platforms/chibios/eeprom_teensy.c diff --git a/platforms/chibios/drivers/eeprom/eeprom_teensy.h b/platforms/chibios/eeprom_teensy.h similarity index 100% rename from platforms/chibios/drivers/eeprom/eeprom_teensy.h rename to platforms/chibios/eeprom_teensy.h diff --git a/platforms/chibios/flash.mk b/platforms/chibios/flash.mk index 790c4f3316..a91ef2cf35 100644 --- a/platforms/chibios/flash.mk +++ b/platforms/chibios/flash.mk @@ -54,11 +54,11 @@ endef # TODO: Remove once ARM has a way to configure EECONFIG_HANDEDNESS # within the emulated eeprom via dfu-util or another tool -ifneq (,$(filter $(MAKECMDGOALS), dfu-util-split-left uf2-split-left)) +ifneq (,$(filter $(MAKECMDGOALS),dfu-util-split-left)) OPT_DEFS += -DINIT_EE_HANDS_LEFT endif -ifneq (,$(filter $(MAKECMDGOALS), dfu-util-split-right uf2-split-right)) +ifneq (,$(filter $(MAKECMDGOALS),dfu-util-split-right)) OPT_DEFS += -DINIT_EE_HANDS_RIGHT endif @@ -66,10 +66,6 @@ dfu-util-split-left: dfu-util dfu-util-split-right: dfu-util -uf2-split-left: flash - -uf2-split-right: flash - ST_LINK_CLI ?= st-link_cli ST_LINK_ARGS ?= @@ -108,8 +104,6 @@ else ifeq ($(strip $(BOOTLOADER)),kiibohd) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL) else ifeq ($(strip $(BOOTLOADER)),tinyuf2) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_UF2_UTIL_DEPLOY) -else ifeq ($(strip $(BOOTLOADER)),rp2040) - $(UNSYNC_OUTPUT_CMD) && $(call EXEC_UF2_UTIL_DEPLOY) else ifeq ($(strip $(MCU_FAMILY)),KINETIS) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_TEENSY) else ifeq ($(strip $(MCU_FAMILY)),MIMXRT1062) diff --git a/platforms/chibios/drivers/flash/flash_stm32.c b/platforms/chibios/flash_stm32.c similarity index 100% rename from platforms/chibios/drivers/flash/flash_stm32.c rename to platforms/chibios/flash_stm32.c diff --git a/platforms/chibios/drivers/flash/flash_stm32.h b/platforms/chibios/flash_stm32.h similarity index 100% rename from platforms/chibios/drivers/flash/flash_stm32.h rename to platforms/chibios/flash_stm32.h diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index 32b8c5a946..21751f23fd 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -36,7 +36,6 @@ ifeq ($(strip $(MCU)), risc-v) # RISC-V Support # As of 7.4.2021 there is only one supported RISC-V platform in Chibios-Contrib, # therefore all required settings are hard-coded - USE_CHIBIOS_CONTRIB = yes STARTUP_MK = $(CHIBIOS_CONTRIB)/os/common/startup/RISCV-ECLIC/compilers/GCC/mk/startup_$(MCU_STARTUP).mk PORT_V = $(CHIBIOS_CONTRIB)/os/common/ports/RISCV-ECLIC/compilers/GCC/mk/port.mk RULESPATH = $(CHIBIOS_CONTRIB)/os/common/startup/RISCV-ECLIC/compilers/GCC @@ -88,17 +87,12 @@ ifeq ("$(MCU_PORT_NAME)","") endif ifeq ("$(wildcard $(PLATFORM_MK))","") - PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)/$(PLATFORM_NAME).mk + PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)/$(PLATFORM_NAME).mk ifeq ("$(wildcard $(PLATFORM_MK))","") - PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)/$(PLATFORM_NAME).mk + PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)/$(PLATFORM_NAME).mk endif endif -# If no MCU architecture specified, use the MCU instead (allows for mcu_selection.mk to swap to cortex-m0 etc.) -ifeq ("$(MCU_ARCH)","") - MCU_ARCH = $(MCU) -endif - include $(STARTUP_MK) include $(PORT_V) include $(PLATFORM_MK) @@ -287,17 +281,6 @@ EXTRAINCDIRS += $(CHIBIOS)/os/license $(CHIBIOS)/os/oslib/include \ $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ $(STREAMSINC) $(CHIBIOS)/os/various $(COMMON_VPATH) -# -# QMK specific MCU family support selection. -############################################################################## -ifneq ("$(wildcard $(PLATFORM_PATH)/$(PLATFORM_KEY)/vendors/$(MCU_FAMILY)/$(MCU_SERIES).mk)","") - # Either by MCU series e.g. STM32/STM32F1xx.mk or... - include $(PLATFORM_PATH)/$(PLATFORM_KEY)/vendors/$(MCU_FAMILY)/$(MCU_SERIES).mk -else ifneq ("$(wildcard $(PLATFORM_PATH)/$(PLATFORM_KEY)/vendors/$(MCU_FAMILY)/$(MCU_FAMILY).mk)","") - # By MCU family e.g. STM32/STM32.mk - include $(PLATFORM_PATH)/$(PLATFORM_KEY)/vendors/$(MCU_FAMILY)/$(MCU_FAMILY).mk -endif - # # ChibiOS-Contrib ############################################################################## diff --git a/platforms/chibios/vendors/RP/RP2040.mk b/platforms/chibios/vendors/RP/RP2040.mk deleted file mode 100644 index 1aa925cb15..0000000000 --- a/platforms/chibios/vendors/RP/RP2040.mk +++ /dev/null @@ -1,285 +0,0 @@ -# -# Raspberry Pi RP2040 specific drivers -############################################################################## -COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/vendor/$(MCU_FAMILY)/$(MCU_SERIES) - -ifeq ($(strip $(WS2812_DRIVER)), vendor) - OPT_DEFS += -DRP_DMA_REQUIRED=TRUE -endif - -# -# Raspberry Pi Pico SDK Support -############################################################################## -ADEFS += -DCRT0_VTOR_INIT=1 \ - -DCRT0_EXTRA_CORES_NUMBER=0 - -CFLAGS += -DPICO_NO_FPGA_CHECK \ - -DNDEBUG - -# -# Pico SDK source and header files needed by QMK and ChibiOS -############################################################################## -PICOSDKROOT := $(TOP_DIR)/lib/pico-sdk - -PICOSDKSRC = $(PICOSDKROOT)/src/rp2_common/hardware_clocks/clocks.c \ - $(PICOSDKROOT)/src/rp2_common/hardware_pll/pll.c \ - $(PICOSDKROOT)/src/rp2_common/hardware_pio/pio.c \ - $(PICOSDKROOT)/src/rp2_common/hardware_gpio/gpio.c \ - $(PICOSDKROOT)/src/rp2_common/hardware_claim/claim.c \ - $(PICOSDKROOT)/src/rp2_common/hardware_watchdog/watchdog.c \ - $(PICOSDKROOT)/src/rp2_common/hardware_xosc/xosc.c \ - $(PICOSDKROOT)/src/rp2_common/pico_bootrom/bootrom.c - -PICOSDKINC = $(CHIBIOS)//os/various/pico_bindings/dumb/include \ - $(PICOSDKROOT)/src/common/pico_base/include \ - $(PICOSDKROOT)/src/rp2_common/pico_platform/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_base/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_clocks/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_claim/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_gpio/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_irq/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_pll/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_pio/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_sync/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_resets/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_watchdog/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_xosc/include \ - $(PICOSDKROOT)/src/rp2040/hardware_regs/include \ - $(PICOSDKROOT)/src/rp2040/hardware_structs/include \ - $(PICOSDKROOT)/src/boards/include \ - $(PICOSDKROOT)/src/rp2_common/pico_bootrom/include - -PLATFORM_SRC += $(PICOSDKSRC) -EXTRAINCDIRS += $(PICOSDKINC) - -PLATFORM_RP2040_PATH := $(PLATFORM_PATH)/$(PLATFORM_KEY)/vendors/$(MCU_FAMILY) - -PLATFORM_SRC += $(PLATFORM_RP2040_PATH)/stage2_bootloaders.c \ - $(PLATFORM_RP2040_PATH)/pico_sdk_shims.c - -EXTRAINCDIRS += $(PLATFORM_RP2040_PATH) - -# -# RP2040 optimized compiler intrinsics -############################################################################## - -# Enables optimized Compiler intrinsics which are located in the RP2040 -# bootrom. This needs startup code and linker script support from ChibiOS, -# which is WIP. Therefore disabled by default for now. -RP2040_INTRINSICS_ENABLED ?= no -ifeq ($(strip $(RP2040_INTRINSICS_ENABLED)), yes) - PICOSDKINTRINSICSSRC = $(PICOSDKROOT)/src/rp2_common/pico_float/float_aeabi.S \ - $(PICOSDKROOT)/src/rp2_common/pico_float/float_math.c \ - $(PICOSDKROOT)/src/rp2_common/pico_float/float_init_rom.c \ - $(PICOSDKROOT)/src/rp2_common/pico_float/float_v1_rom_shim.S \ - $(PICOSDKROOT)/src/rp2_common/pico_double/double_aeabi.S \ - $(PICOSDKROOT)/src/rp2_common/pico_double/double_math.c \ - $(PICOSDKROOT)/src/rp2_common/pico_double/double_init_rom.c \ - $(PICOSDKROOT)/src/rp2_common/pico_double/double_v1_rom_shim.S \ - $(PICOSDKROOT)/src/rp2_common/pico_divider/divider.S \ - $(PICOSDKROOT)/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S \ - $(PICOSDKROOT)/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S \ - $(PICOSDKROOT)/src/rp2_common/pico_malloc/pico_malloc.c \ - $(PICOSDKROOT)/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S - - PICOSDKINTRINSICSINC = $(PICOSDKROOT)/src/common/pico_base/include \ - $(PICOSDKROOT)/src/rp2_common/pico_platfrom/include \ - $(PICOSDKROOT)/src/rp2_common/pico_bootrom/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_divider/include \ - $(PICOSDKROOT)/src/rp2_common/pico_float/include \ - $(PICOSDKROOT)/src/rp2_common/pico_double/include \ - $(PICOSDKROOT)/src/rp2_common/pico_malloc/include - - OPT_DEFS += -DPICO_FLOAT_SUPPORT_ROM_V1=0 -DPICO_DOUBLE_SUPPORT_ROM_V1=0 - - CFLAGS += -Wl,--defsym=__StackLimit=__heap_end__ - CFLAGS += -Wl,--defsym=__unhandled_user_irq=_unhandled_exception - CFLAGS += -Wl,--build-id=none - - # single precision floating point intrinsics - OPT_DEFS += -DPICO_FLOAT_IN_RAM=1 - OPT_DEFS += -DPICO_FLOAT_PROPAGATE_NANS=0 - - CFLAGS += -Wl,--wrap=__aeabi_fdiv - CFLAGS += -Wl,--wrap=__aeabi_fmul - CFLAGS += -Wl,--wrap=__aeabi_frsub - CFLAGS += -Wl,--wrap=__aeabi_fsub - CFLAGS += -Wl,--wrap=__aeabi_cfcmpeq - CFLAGS += -Wl,--wrap=__aeabi_cfrcmple - CFLAGS += -Wl,--wrap=__aeabi_cfcmple - CFLAGS += -Wl,--wrap=__aeabi_fcmpeq - CFLAGS += -Wl,--wrap=__aeabi_fcmplt - CFLAGS += -Wl,--wrap=__aeabi_fcmple - CFLAGS += -Wl,--wrap=__aeabi_fcmpge - CFLAGS += -Wl,--wrap=__aeabi_fcmpgt - CFLAGS += -Wl,--wrap=__aeabi_fcmpun - CFLAGS += -Wl,--wrap=__aeabi_i2f - CFLAGS += -Wl,--wrap=__aeabi_l2f - CFLAGS += -Wl,--wrap=__aeabi_ui2f - CFLAGS += -Wl,--wrap=__aeabi_ul2f - CFLAGS += -Wl,--wrap=__aeabi_i2f - CFLAGS += -Wl,--wrap=__aeabi_f2iz - CFLAGS += -Wl,--wrap=__aeabi_f2lz - CFLAGS += -Wl,--wrap=__aeabi_f2uiz - CFLAGS += -Wl,--wrap=__aeabi_f2ulz - CFLAGS += -Wl,--wrap=__aeabi_f2d - CFLAGS += -Wl,--wrap=sqrtf - CFLAGS += -Wl,--wrap=cosf - CFLAGS += -Wl,--wrap=sinf - CFLAGS += -Wl,--wrap=tanf - CFLAGS += -Wl,--wrap=atan2f - CFLAGS += -Wl,--wrap=expf - CFLAGS += -Wl,--wrap=logf - CFLAGS += -Wl,--wrap=ldexpf - CFLAGS += -Wl,--wrap=copysignf - CFLAGS += -Wl,--wrap=truncf - CFLAGS += -Wl,--wrap=floorf - CFLAGS += -Wl,--wrap=ceilf - CFLAGS += -Wl,--wrap=roundf - CFLAGS += -Wl,--wrap=sincosf - CFLAGS += -Wl,--wrap=asinf - CFLAGS += -Wl,--wrap=acosf - CFLAGS += -Wl,--wrap=atanf - CFLAGS += -Wl,--wrap=sinhf - CFLAGS += -Wl,--wrap=coshf - CFLAGS += -Wl,--wrap=tanhf - CFLAGS += -Wl,--wrap=asinhf - CFLAGS += -Wl,--wrap=acoshf - CFLAGS += -Wl,--wrap=atanhf - CFLAGS += -Wl,--wrap=exp2f - CFLAGS += -Wl,--wrap=log2f - CFLAGS += -Wl,--wrap=exp10f - CFLAGS += -Wl,--wrap=log10f - CFLAGS += -Wl,--wrap=powf - CFLAGS += -Wl,--wrap=powintf - CFLAGS += -Wl,--wrap=hypotf - CFLAGS += -Wl,--wrap=cbrtf - CFLAGS += -Wl,--wrap=fmodf - CFLAGS += -Wl,--wrap=dremf - CFLAGS += -Wl,--wrap=remainderf - CFLAGS += -Wl,--wrap=remquof - CFLAGS += -Wl,--wrap=expm1f - CFLAGS += -Wl,--wrap=log1pf - CFLAGS += -Wl,--wrap=fmaf - - # double precision floating point intrinsics - OPT_DEFS += -DPICO_DOUBLE_IN_RAM=1 - OPT_DEFS += -DPICO_DOUBLE_PROPAGATE_NANS=0 - - CFLAGS += -Wl,--wrap=__aeabi_dadd - CFLAGS += -Wl,--wrap=__aeabi_ddiv - CFLAGS += -Wl,--wrap=__aeabi_dmul - CFLAGS += -Wl,--wrap=__aeabi_drsub - CFLAGS += -Wl,--wrap=__aeabi_dsub - CFLAGS += -Wl,--wrap=__aeabi_cdcmpeq - CFLAGS += -Wl,--wrap=__aeabi_cdrcmple - CFLAGS += -Wl,--wrap=__aeabi_cdcmple - CFLAGS += -Wl,--wrap=__aeabi_dcmpeq - CFLAGS += -Wl,--wrap=__aeabi_dcmplt - CFLAGS += -Wl,--wrap=__aeabi_dcmple - CFLAGS += -Wl,--wrap=__aeabi_dcmpge - CFLAGS += -Wl,--wrap=__aeabi_dcmpgt - CFLAGS += -Wl,--wrap=__aeabi_dcmpun - CFLAGS += -Wl,--wrap=__aeabi_i2d - CFLAGS += -Wl,--wrap=__aeabi_l2d - CFLAGS += -Wl,--wrap=__aeabi_ui2d - CFLAGS += -Wl,--wrap=__aeabi_ul2d - CFLAGS += -Wl,--wrap=__aeabi_d2iz - CFLAGS += -Wl,--wrap=__aeabi_d2lz - CFLAGS += -Wl,--wrap=__aeabi_d2uiz - CFLAGS += -Wl,--wrap=__aeabi_d2ulz - CFLAGS += -Wl,--wrap=__aeabi_d2f - CFLAGS += -Wl,--wrap=sqrt - CFLAGS += -Wl,--wrap=cos - CFLAGS += -Wl,--wrap=sin - CFLAGS += -Wl,--wrap=tan - CFLAGS += -Wl,--wrap=atan2 - CFLAGS += -Wl,--wrap=exp - CFLAGS += -Wl,--wrap=log - CFLAGS += -Wl,--wrap=ldexp - CFLAGS += -Wl,--wrap=copysign - CFLAGS += -Wl,--wrap=trunc - CFLAGS += -Wl,--wrap=floor - CFLAGS += -Wl,--wrap=ceil - CFLAGS += -Wl,--wrap=round - CFLAGS += -Wl,--wrap=sincos - CFLAGS += -Wl,--wrap=asin - CFLAGS += -Wl,--wrap=acos - CFLAGS += -Wl,--wrap=atan - CFLAGS += -Wl,--wrap=sinh - CFLAGS += -Wl,--wrap=cosh - CFLAGS += -Wl,--wrap=tanh - CFLAGS += -Wl,--wrap=asinh - CFLAGS += -Wl,--wrap=acosh - CFLAGS += -Wl,--wrap=atanh - CFLAGS += -Wl,--wrap=exp2 - CFLAGS += -Wl,--wrap=log2 - CFLAGS += -Wl,--wrap=exp10 - CFLAGS += -Wl,--wrap=log10 - CFLAGS += -Wl,--wrap=pow - CFLAGS += -Wl,--wrap=powint - CFLAGS += -Wl,--wrap=hypot - CFLAGS += -Wl,--wrap=cbrt - CFLAGS += -Wl,--wrap=fmod - CFLAGS += -Wl,--wrap=drem - CFLAGS += -Wl,--wrap=remainder - CFLAGS += -Wl,--wrap=remquo - CFLAGS += -Wl,--wrap=expm1 - CFLAGS += -Wl,--wrap=log1p - CFLAGS += -Wl,--wrap=fma - - # bit operation intrinsics - OPT_DEFS += -DPICO_BITS_IN_RAM=1 - - CFLAGS += -Wl,--wrap=__clzsi2 - CFLAGS += -Wl,--wrap=__clzsi2 - CFLAGS += -Wl,--wrap=__clzdi2 - CFLAGS += -Wl,--wrap=__ctzsi2 - CFLAGS += -Wl,--wrap=__ctzdi2 - CFLAGS += -Wl,--wrap=__popcountsi2 - CFLAGS += -Wl,--wrap=__popcountdi2 - CFLAGS += -Wl,--wrap=__clz - CFLAGS += -Wl,--wrap=__clzl - CFLAGS += -Wl,--wrap=__clzsi2 - CFLAGS += -Wl,--wrap=__clzll - - # integer division intrinsics - OPT_DEFS += -DPICO_DIVIDER_IN_RAM=1 - OPT_DEFS += -DPICO_DIVIDER_DISABLE_INTERRUPTS=1 - - CFLAGS += -Wl,--wrap=__aeabi_idiv - CFLAGS += -Wl,--wrap=__aeabi_idivmod - CFLAGS += -Wl,--wrap=__aeabi_ldivmod - CFLAGS += -Wl,--wrap=__aeabi_uidiv - CFLAGS += -Wl,--wrap=__aeabi_uidivmod - CFLAGS += -Wl,--wrap=__aeabi_uldivmod - - # 64bit integer intrinsics - OPT_DEFS += -DPICO_INT64_OPS_IN_RAM=1 - - CFLAGS += -Wl,--wrap=__aeabi_lmul - - # malloc and friends functions - OPT_DEFS += -DPICO_USE_MALLOC_MUTEX=0 - OPT_DEFS += -DPICO_DEBUG_MALLOC=0 - OPT_DEFS ?= -DPICO_MALLOC_PANIC=0 - - CFLAGS += -Wl,--wrap=malloc - CFLAGS += -Wl,--wrap=calloc - CFLAGS += -Wl,--wrap=free - - # memory operation intrinsics - OPT_DEFS += -DPICO_MEM_IN_RAM=1 - - CFLAGS += -Wl,--wrap=memcpy - CFLAGS += -Wl,--wrap=memset - CFLAGS += -Wl,--wrap=__aeabi_memcpy - CFLAGS += -Wl,--wrap=__aeabi_memset - CFLAGS += -Wl,--wrap=__aeabi_memcpy4 - CFLAGS += -Wl,--wrap=__aeabi_memset4 - CFLAGS += -Wl,--wrap=__aeabi_memcpy8 - CFLAGS += -Wl,--wrap=__aeabi_memset8 - - PLATFORM_SRC += $(PICOSDKINTRINSICSSRC) - EXTRAINCDIRS += $(PICOSDKINTRINSICSINC) -endif diff --git a/platforms/chibios/vendors/RP/_pin_defs.h b/platforms/chibios/vendors/RP/_pin_defs.h deleted file mode 100644 index 4241845369..0000000000 --- a/platforms/chibios/vendors/RP/_pin_defs.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* RP2040 GPIO Numbering */ -#define GP0 0U -#define GP1 1U -#define GP2 2U -#define GP3 3U -#define GP4 4U -#define GP5 5U -#define GP6 6U -#define GP7 7U -#define GP8 8U -#define GP9 9U -#define GP10 10U -#define GP11 11U -#define GP12 12U -#define GP13 13U -#define GP14 14U -#define GP15 15U -#define GP16 16U -#define GP17 17U -#define GP18 18U -#define GP19 19U -#define GP20 20U -#define GP21 21U -#define GP22 22U -#define GP23 23U -#define GP24 24U -#define GP25 25U -#define GP26 26U -#define GP27 27U -#define GP28 28U -#define GP29 29U -#define GP30 30U diff --git a/platforms/chibios/vendors/RP/pico_sdk_shims.c b/platforms/chibios/vendors/RP/pico_sdk_shims.c deleted file mode 100644 index f6e3943928..0000000000 --- a/platforms/chibios/vendors/RP/pico_sdk_shims.c +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include - -void panic(const char *fmt, ...) { - chSysHalt(fmt); -} diff --git a/platforms/chibios/vendors/RP/stage2_bootloaders.c b/platforms/chibios/vendors/RP/stage2_bootloaders.c deleted file mode 100644 index 8eb31d2679..0000000000 --- a/platforms/chibios/vendors/RP/stage2_bootloaders.c +++ /dev/null @@ -1,42 +0,0 @@ -// ---------------------------------------------------------------------------- -// Pre-compiled second stage boot code for RP2040. -// -// Copyright (c) 2019-2021 Raspberry Pi (Trading) Ltd. -// SPDX-License-Identifier: BSD-3-Clause -// ---------------------------------------------------------------------------- - -#include - -#define BOOTLOADER_SECTION __attribute__((used, section(".boot2"))) - -#if defined(RP2040_FLASH_AT25SF128A) - -uint8_t BOOTLOADER_SECTION BOOT2_AT25SF128A[256] = {0x00, 0xb5, 0x31, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60, 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2d, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x01, 0x21, 0xf0, 0x22, 0x99, 0x50, 0x2a, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x35, 0x20, 0x00, 0xf0, 0x42, 0xf8, 0x02, 0x22, 0x90, 0x42, 0x12, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0, 0x32, 0xf8, 0x19, 0x6e, 0x31, 0x21, 0x19, 0x66, 0x1a, 0x66, 0x00, 0xf0, 0x2c, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x19, 0x6e, 0x05, 0x20, 0x00, 0xf0, 0x2f, 0xf8, 0x01, 0x21, 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1b, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60, 0x1a, 0x49, 0x1b, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66, 0x20, 0x21, 0x19, 0x66, 0x00, 0xf0, - 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x16, 0x49, 0x14, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x12, 0x48, 0x13, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a, 0x04, 0x20, 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5, 0x18, 0x66, 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x5f, 0x00, 0x21, 0x22, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0x20, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdd, 0xc0, 0xb5}; - -#elif defined(RP2040_FLASH_GD25Q64CS) - -uint8_t BOOTLOADER_SECTION BOOT2_GD25Q64CS[256] = {0x00, 0xb5, 0x31, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60, 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2d, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x01, 0x21, 0xf0, 0x22, 0x99, 0x50, 0x2a, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x35, 0x20, 0x00, 0xf0, 0x42, 0xf8, 0x02, 0x22, 0x90, 0x42, 0x12, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0, 0x32, 0xf8, 0x19, 0x6e, 0x31, 0x21, 0x19, 0x66, 0x1a, 0x66, 0x00, 0xf0, 0x2c, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x19, 0x6e, 0x05, 0x20, 0x00, 0xf0, 0x2f, 0xf8, 0x01, 0x21, 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1b, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60, 0x1a, 0x49, 0x1b, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xe7, 0x21, 0x19, 0x66, 0xa0, 0x21, 0x19, 0x66, 0x00, 0xf0, - 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x16, 0x49, 0x14, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x12, 0x48, 0x13, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a, 0x04, 0x20, 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5, 0x18, 0x66, 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x5f, 0x00, 0x21, 0x12, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x18, 0x22, 0x10, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0xd9, 0xa2, 0xb5}; - -#elif defined(RP2040_FLASH_W25X10CL) - -uint8_t BOOTLOADER_SECTION BOOT2_W25X10CL[256] = {0x00, 0xb5, 0x14, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x12, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60, 0x11, 0x49, 0x12, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xbb, 0x21, 0x19, 0x66, 0x02, 0x21, 0x19, 0x66, 0x08, 0x21, 0x98, 0x6a, 0x08, 0x42, 0xfc, 0xd0, 0x00, 0x21, 0x99, 0x60, 0x0c, 0x49, 0x0a, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x08, 0x48, 0x09, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x03, 0x3f, 0x00, 0x1d, 0x12, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x18, 0x1e, 0x10, 0x00, 0x20, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x81, 0x53, 0x9a}; - -#elif defined(RP2040_FLASH_IS25LP080) - -uint8_t BOOTLOADER_SECTION BOOT2_IS25LP080[256] = {0x00, 0xb5, 0x2b, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x29, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x28, 0x48, 0x00, 0xf0, 0x42, 0xf8, 0x28, 0x4a, 0x90, 0x42, 0x12, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0, 0x32, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20, 0x1a, 0x66, 0x00, 0xf0, 0x2b, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x1f, 0x48, 0x00, 0xf0, 0x2f, 0xf8, 0x01, 0x21, 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1d, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60, 0x1c, 0x49, 0x1c, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66, 0xa0, 0x21, 0x19, 0x66, 0x00, 0xf0, 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x17, 0x49, 0x16, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x14, 0x48, - 0x14, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a, 0x04, 0x20, 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5, 0x18, 0x66, 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x05, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0x5f, 0x00, 0x21, 0x22, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x33, 0x43, 0xb2}; - -#elif defined(RP2040_FLASH_GENERIC_03H) - -uint8_t BOOTLOADER_SECTION BOOT2_GENERIC_03H[256] = {0x00, 0xb5, 0x0c, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x0a, 0x49, 0x19, 0x60, 0x0a, 0x49, 0x0b, 0x48, 0x01, 0x60, 0x00, 0x21, 0x59, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x07, 0x48, 0x07, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x00, 0x00, 0x00, 0x18, 0x00, 0x03, 0x1f, 0x00, 0x18, 0x02, 0x00, 0x03, 0xf4, 0x00, 0x00, 0x18, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0xec, 0x21, 0x0d}; - -#else - -uint8_t BOOTLOADER_SECTION BOOT2_W25Q080[256] = {0x00, 0xb5, 0x32, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60, 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2e, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x01, 0x21, 0xf0, 0x22, 0x99, 0x50, 0x2b, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x35, 0x20, 0x00, 0xf0, 0x44, 0xf8, 0x02, 0x22, 0x90, 0x42, 0x14, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0, 0x34, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20, 0x18, 0x66, 0x1a, 0x66, 0x00, 0xf0, 0x2c, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x19, 0x6e, 0x05, 0x20, 0x00, 0xf0, 0x2f, 0xf8, 0x01, 0x21, 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1b, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60, 0x1a, 0x49, 0x1b, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66, 0xa0, 0x21, - 0x19, 0x66, 0x00, 0xf0, 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x16, 0x49, 0x14, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x12, 0x48, 0x13, 0x49, 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a, 0x04, 0x20, 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5, 0x18, 0x66, 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x5f, 0x00, 0x21, 0x22, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0b, 0x8f, 0xd5}; - -#endif diff --git a/platforms/eeprom.h b/platforms/eeprom.h index 8cb7e342dc..091e6e4400 100644 --- a/platforms/eeprom.h +++ b/platforms/eeprom.h @@ -27,8 +27,6 @@ void eeprom_update_block(const void *__src, void *__dst, size_t __n); # error EEPROM_SIZE has not been defined for custom driver. # endif # define TOTAL_EEPROM_BYTE_COUNT (EEPROM_SIZE) -#elif defined(EEPROM_WEAR_LEVELING) -# define TOTAL_EEPROM_BYTE_COUNT (WEAR_LEVELING_LOGICAL_SIZE) #elif defined(EEPROM_TRANSIENT) # include "eeprom_transient.h" # define TOTAL_EEPROM_BYTE_COUNT (TRANSIENT_EEPROM_SIZE) diff --git a/platforms/synchronization_util.h b/platforms/synchronization_util.h index 59933945c3..3730f271db 100644 --- a/platforms/synchronization_util.h +++ b/platforms/synchronization_util.h @@ -9,40 +9,6 @@ void split_shared_memory_lock(void); void split_shared_memory_unlock(void); # endif #else -# if defined(SPLIT_KEYBOARD) inline void split_shared_memory_lock(void){}; inline void split_shared_memory_unlock(void){}; -# endif -#endif - -/* GCCs cleanup attribute expects a function with one parameter, which is a - * pointer to a type compatible with the variable. As we don't want to expose - * the platforms internal mutex type this workaround with auto generated adapter - * function is defined */ -#define QMK_DECLARE_AUTOUNLOCK_HELPERS(prefix) \ - inline unsigned prefix##_autounlock_lock_helper(void) { \ - prefix##_lock(); \ - return 0; \ - } \ - \ - inline void prefix##_autounlock_unlock_helper(unsigned* unused_guard) { \ - prefix##_unlock(); \ - } - -/* Convinience macro the automatically generate the correct RAII-style - * lock_autounlock function macro */ -#define QMK_DECLARE_AUTOUNLOCK_CALL(prefix) unsigned prefix##_guard __attribute__((unused, cleanup(prefix##_autounlock_unlock_helper))) = prefix##_autounlock_lock_helper - -#if defined(SPLIT_KEYBOARD) -QMK_DECLARE_AUTOUNLOCK_HELPERS(split_shared_memory) - -/** - * @brief Acquire exclusive access to the split keyboard shared memory, by - * calling the platforms `split_shared_memory_lock()` function. The lock is - * automatically released by calling the platforms `split_shared_memory_unlock()` - * function. This happens when the block where - * `split_shared_memory_lock_autounlock()` is called in goes out of scope i.e. - * when the enclosing function returns. - */ -# define split_shared_memory_lock_autounlock QMK_DECLARE_AUTOUNLOCK_CALL(split_shared_memory) #endif diff --git a/platforms/test/platform.mk b/platforms/test/platform.mk index f07c863e69..eb2424ec5c 100644 --- a/platforms/test/platform.mk +++ b/platforms/test/platform.mk @@ -31,4 +31,4 @@ CFLAGS += -fno-strict-aliasing CXXFLAGS += $(COMPILEFLAGS) CXXFLAGS += -fno-exceptions -CXXFLAGS += $(CXXSTANDARD) +CXXFLAGS += -std=gnu++11 diff --git a/platforms/test/rules.mk b/platforms/test/rules.mk index a2baa283d0..55512c7392 100644 --- a/platforms/test/rules.mk +++ b/platforms/test/rules.mk @@ -11,8 +11,7 @@ eeprom_stm32_large_DEFS := $(eeprom_stm32_DEFS) \ -DFEE_PAGE_COUNT=16 eeprom_stm32_INC := \ - $(PLATFORM_PATH)/chibios/drivers/eeprom/ \ - $(PLATFORM_PATH)/chibios/drivers/flash/ + $(PLATFORM_PATH)/chibios/ eeprom_stm32_tiny_INC := $(eeprom_stm32_INC) eeprom_stm32_large_INC := $(eeprom_stm32_INC) @@ -20,6 +19,6 @@ eeprom_stm32_SRC := \ $(TOP_DIR)/drivers/eeprom/eeprom_driver.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/eeprom_stm32_tests.cpp \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/flash_stm32_mock.c \ - $(PLATFORM_PATH)/chibios/drivers/eeprom/eeprom_stm32.c + $(PLATFORM_PATH)/chibios/eeprom_stm32.c eeprom_stm32_tiny_SRC := $(eeprom_stm32_SRC) eeprom_stm32_large_SRC := $(eeprom_stm32_SRC) diff --git a/quantum/action.c b/quantum/action.c index 83f6e2a970..4e81a5466f 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -844,7 +844,7 @@ __attribute__((weak)) void register_code(uint8_t code) { # endif add_key(KC_CAPS_LOCK); send_keyboard_report(); - wait_ms(TAP_HOLD_CAPS_DELAY); + wait_ms(100); del_key(KC_CAPS_LOCK); send_keyboard_report(); } diff --git a/quantum/action_layer.h b/quantum/action_layer.h index bd1085a70f..b87d096eed 100644 --- a/quantum/action_layer.h +++ b/quantum/action_layer.h @@ -41,7 +41,7 @@ along with this program. If not, see . #endif #if !defined(LAYER_STATE_8BIT) && !defined(LAYER_STATE_16BIT) && !defined(LAYER_STATE_32BIT) -# define LAYER_STATE_16BIT +# define LAYER_STATE_32BIT #endif #if defined(LAYER_STATE_8BIT) diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index df3317ac05..3c8b5678b7 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -125,7 +125,7 @@ void action_tapping_process(keyrecord_t record) { /* return true when key event is processed or consumed. */ bool process_tapping(keyrecord_t *keyp) { keyevent_t event = keyp->event; -# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(TAPPING_FORCE_HOLD_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY) +# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(TAPPING_TERM_PER_KEY) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(TAPPING_FORCE_HOLD_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY) uint16_t tapping_keycode = get_record_keycode(&tapping_key, false); # endif @@ -164,15 +164,17 @@ bool process_tapping(keyrecord_t *keyp) { * useful for long TAPPING_TERM but may prevent fast typing. */ // clang-format off -# if defined(PERMISSIVE_HOLD) || defined(PERMISSIVE_HOLD_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) +# if defined(TAPPING_TERM_PER_KEY) || (TAPPING_TERM >= 500) || defined(PERMISSIVE_HOLD) || defined(PERMISSIVE_HOLD_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) else if ( ( - IS_RELEASED(event) && waiting_buffer_typed(event) + ( + GET_TAPPING_TERM(tapping_keycode, &tapping_key) >= 500 # ifdef PERMISSIVE_HOLD_PER_KEY - && get_permissive_hold(tapping_keycode, &tapping_key) + || get_permissive_hold(tapping_keycode, &tapping_key) # elif defined(PERMISSIVE_HOLD) - && true + || true # endif + ) && IS_RELEASED(event) && waiting_buffer_typed(event) ) // Causes nested taps to not wait past TAPPING_TERM/RETRO_SHIFT // unnecessarily and fixes them for Layer Taps. diff --git a/quantum/audio/song_list.h b/quantum/audio/song_list.h index ff22e6fe95..3e425abb47 100644 --- a/quantum/audio/song_list.h +++ b/quantum/audio/song_list.h @@ -144,12 +144,6 @@ */ #define USSR_ANTHEM B__NOTE(_G6), B__NOTE(_C7), W__NOTE(_G6), H__NOTE(_A6), B__NOTE(_B6), W__NOTE(_E6), W__NOTE(_E6), B__NOTE(_A6), W__NOTE(_G6), H__NOTE(_F6), B__NOTE(_G6), W__NOTE(_C6), W__NOTE(_C6), B__NOTE(_D6), W__NOTE(_D6), W__NOTE(_E6), B__NOTE(_D6), W__NOTE(_D6), W__NOTE(_G6), B__NOTE(_F6), W__NOTE(_G6), W__NOTE(_A6), B__NOTE(_B6), -/* Title: Hymn Risen - * Author/Composer: Terrance Andrew Davis - * License: Public Domain - */ -#define TOS_HYMN_RISEN H__NOTE(_D5), H__NOTE(_E5), HD_NOTE(_F5), HD_NOTE(_F5), H__NOTE(_F5), HD_NOTE(_D5), E__NOTE(_E5), E__NOTE(_E5), H__NOTE(_C5), Q__NOTE(_D5), Q__NOTE(_D5), H__NOTE(_E5), H__NOTE(_C5), Q__NOTE(_G5), Q__NOTE(_F5), H__NOTE(_D5), H__NOTE(_E5), HD_NOTE(_F5), HD_NOTE(_F5), H__NOTE(_F5), HD_NOTE(_D5), E__NOTE(_E5), E__NOTE(_E5), H__NOTE(_C5), Q__NOTE(_D5), Q__NOTE(_D5), H__NOTE(_E5), H__NOTE(_C5), Q__NOTE(_G5), Q__NOTE(_F5), H__NOTE(_D5), H__NOTE(_C5), W__NOTE(_D5), W__NOTE(_E5), Q__NOTE(_A4), H__NOTE(_A4), Q__NOTE(_E5), Q__NOTE(_E5), Q__NOTE(_F5), Q__NOTE(_E5), Q__NOTE(_D5), Q__NOTE(_G5), Q__NOTE(_B4), Q__NOTE(_D5), Q__NOTE(_C5), M__NOTE(_F5, 80), H__NOTE(_D5), H__NOTE(_C5), W__NOTE(_D5), W__NOTE(_E5), Q__NOTE(_A4), H__NOTE(_A4), Q__NOTE(_E5), Q__NOTE(_E5), Q__NOTE(_F5), Q__NOTE(_E5), Q__NOTE(_D5), Q__NOTE(_G5), Q__NOTE(_B4), Q__NOTE(_D5), Q__NOTE(_C5), M__NOTE(_F5, 80) - /* Removed sounds + This list is here solely for compatibility, so that removed songs don't just break things * If you think that any of these songs were wrongfully removed, let us know and provide diff --git a/quantum/keyboard.c b/quantum/keyboard.c index 8273299a9a..a65f9d6d18 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -381,7 +381,7 @@ void keyboard_init(void) { #ifdef ENCODER_ENABLE encoder_init(); #endif -#ifdef STENO_ENABLE_ALL +#ifdef STENO_ENABLE steno_init(); #endif #ifdef POINTING_DEVICE_ENABLE diff --git a/quantum/keymap.h b/quantum/keymap.h index edff484129..d64b271efb 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -46,11 +46,6 @@ along with this program. If not, see . #include "quantum_keycodes.h" -// Gross hack, remove me and change RESET keycode to QK_BOOT -#if defined(MCU_RP) -# undef RESET -#endif - // translates key to keycode uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key); @@ -60,5 +55,3 @@ extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; // Ensure we have a forward declaration for the encoder map # include "encoder.h" #endif - -#include "keymap_introspection.h" diff --git a/quantum/keymap_extras/keymap_steno.h b/quantum/keymap_extras/keymap_steno.h index 07d96b7465..e888ccd643 100644 --- a/quantum/keymap_extras/keymap_steno.h +++ b/quantum/keymap_extras/keymap_steno.h @@ -89,31 +89,3 @@ enum steno_combined_keycodes { STN_COMB_MAX = STN_EU, }; #endif - -#ifdef STENO_ENABLE_BOLT -// TxBolt Codes -# define TXB_NUL 0 -# define TXB_S_L 0b00000001 -# define TXB_T_L 0b00000010 -# define TXB_K_L 0b00000100 -# define TXB_P_L 0b00001000 -# define TXB_W_L 0b00010000 -# define TXB_H_L 0b00100000 -# define TXB_R_L 0b01000001 -# define TXB_A_L 0b01000010 -# define TXB_O_L 0b01000100 -# define TXB_STR 0b01001000 -# define TXB_E_R 0b01010000 -# define TXB_U_R 0b01100000 -# define TXB_F_R 0b10000001 -# define TXB_R_R 0b10000010 -# define TXB_P_R 0b10000100 -# define TXB_B_R 0b10001000 -# define TXB_L_R 0b10010000 -# define TXB_G_R 0b10100000 -# define TXB_T_R 0b11000001 -# define TXB_S_R 0b11000010 -# define TXB_D_R 0b11000100 -# define TXB_Z_R 0b11001000 -# define TXB_NUM 0b11010000 -#endif // STENO_ENABLE_BOLT diff --git a/quantum/keymap_introspection.c b/quantum/keymap_introspection.c deleted file mode 100644 index 9628b41eef..0000000000 --- a/quantum/keymap_introspection.c +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later - -// Pull the actual keymap code so that we can inspect stuff from it -#include KEYMAP_C - -#include "keymap_introspection.h" - -#define NUM_KEYMAP_LAYERS ((uint8_t)(sizeof(keymaps) / ((MATRIX_ROWS) * (MATRIX_COLS) * sizeof(uint16_t)))) - -uint8_t keymap_layer_count(void) { - return NUM_KEYMAP_LAYERS; -} - -#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) - -# define NUM_ENCODERMAP_LAYERS ((uint8_t)(sizeof(encoder_map) / ((NUM_ENCODERS) * (2) * sizeof(uint16_t)))) - -uint8_t encodermap_layer_count(void) { - return NUM_ENCODERMAP_LAYERS; -} - -_Static_assert(NUM_KEYMAP_LAYERS == NUM_ENCODERMAP_LAYERS, "Number of encoder_map layers doesn't match the number of keymap layers"); - -#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) diff --git a/quantum/keymap_introspection.h b/quantum/keymap_introspection.h deleted file mode 100644 index 23f6f2016f..0000000000 --- a/quantum/keymap_introspection.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include - -// Get the number of layers defined in the keymap -uint8_t keymap_layer_count(void); - -#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) - -// Get the number of layers defined in the encoder map -uint8_t encodermap_layer_count(void); - -#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) diff --git a/quantum/mousekey.c b/quantum/mousekey.c index 25a89bdba7..c5e3f8bcda 100644 --- a/quantum/mousekey.c +++ b/quantum/mousekey.c @@ -66,18 +66,11 @@ uint8_t mk_time_to_max = MOUSEKEY_TIME_TO_MAX; /* milliseconds between the initial key press and first repeated motion event (0-2550) */ 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; -# else -uint8_t mk_wheel_interval = MOUSEKEY_WHEEL_INTERVAL; -# endif +uint8_t mk_wheel_interval = MOUSEKEY_WHEEL_INTERVAL; uint8_t mk_wheel_max_speed = MOUSEKEY_WHEEL_MAX_SPEED; uint8_t mk_wheel_time_to_max = MOUSEKEY_WHEEL_TIME_TO_MAX; # ifndef MK_COMBINED -# ifndef MK_KINETIC_SPEED - -/* Default accelerated mode */ static uint8_t move_unit(void) { uint16_t unit; @@ -115,7 +108,8 @@ static uint8_t wheel_unit(void) { return (unit > MOUSEKEY_WHEEL_MAX ? MOUSEKEY_WHEEL_MAX : (unit == 0 ? 1 : unit)); } -# else /* #ifndef MK_KINETIC_SPEED */ +# else /* #ifndef MK_COMBINED */ +# ifdef MK_KINETIC_SPEED /* * Kinetic movement acceleration algorithm @@ -153,27 +147,27 @@ static uint8_t move_unit(void) { return speed > MOUSEKEY_MOVE_MAX ? MOUSEKEY_MOVE_MAX : speed; } +float mk_wheel_interval = 1000.0f / MOUSEKEY_WHEEL_INITIAL_MOVEMENTS; + static uint8_t wheel_unit(void) { float 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; - } else if (mousekey_wheel_repeat && mouse_timer) { + } else if (mousekey_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; } 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; + return 1; } -# endif /* #ifndef MK_KINETIC_SPEED */ -# else /* #ifndef MK_COMBINED */ - -/* Combined mode */ +# else /* #ifndef MK_KINETIC_SPEED */ static uint8_t move_unit(void) { uint16_t unit; @@ -211,7 +205,8 @@ static uint8_t wheel_unit(void) { return (unit > MOUSEKEY_WHEEL_MAX ? MOUSEKEY_WHEEL_MAX : (unit == 0 ? 1 : unit)); } -# endif /* #ifndef MK_COMBINED */ +# endif /* #ifndef MK_KINETIC_SPEED */ +# endif /* #ifndef MK_COMBINED */ void mousekey_task(void) { // report cursor and scroll movement independently diff --git a/quantum/mousekey.h b/quantum/mousekey.h index da2edb481a..1714e52ff6 100644 --- a/quantum/mousekey.h +++ b/quantum/mousekey.h @@ -39,7 +39,7 @@ along with this program. If not, see . # ifndef MK_KINETIC_SPEED # define MOUSEKEY_MOVE_DELTA 8 # else -# define MOUSEKEY_MOVE_DELTA 16 +# define MOUSEKEY_MOVE_DELTA 5 # endif # endif # ifndef MOUSEKEY_WHEEL_DELTA @@ -82,7 +82,7 @@ along with this program. If not, see . # define MOUSEKEY_INITIAL_SPEED 100 # endif # ifndef MOUSEKEY_BASE_SPEED -# define MOUSEKEY_BASE_SPEED 5000 +# define MOUSEKEY_BASE_SPEED 1000 # endif # ifndef MOUSEKEY_DECELERATED_SPEED # define MOUSEKEY_DECELERATED_SPEED 400 diff --git a/quantum/painter/qp_draw_core.c b/quantum/painter/qp_draw_core.c index c31c734132..309ef93dd0 100644 --- a/quantum/painter/qp_draw_core.c +++ b/quantum/painter/qp_draw_core.c @@ -20,17 +20,17 @@ _Static_assert((QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE > 0) && (QUANTUM_PAINTER_PIX // // Buffer used for transmitting native pixel data to the downstream device. -uint8_t qp_internal_global_pixdata_buffer[QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE]; +__attribute__((__aligned__(4))) uint8_t qp_internal_global_pixdata_buffer[QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE]; // Static buffer to contain a generated color palette -static bool generated_palette = false; -static int16_t generated_steps = -1; -static qp_pixel_t interpolated_fg_hsv888; -static qp_pixel_t interpolated_bg_hsv888; +static bool generated_palette = false; +static int16_t generated_steps = -1; +__attribute__((__aligned__(4))) static qp_pixel_t interpolated_fg_hsv888; +__attribute__((__aligned__(4))) static qp_pixel_t interpolated_bg_hsv888; #if QUANTUM_PAINTER_SUPPORTS_256_PALETTE -qp_pixel_t qp_internal_global_pixel_lookup_table[256]; +__attribute__((__aligned__(4))) qp_pixel_t qp_internal_global_pixel_lookup_table[256]; #else -qp_pixel_t qp_internal_global_pixel_lookup_table[16]; +__attribute__((__aligned__(4))) qp_pixel_t qp_internal_global_pixel_lookup_table[16]; #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/quantum/pointing_device.c b/quantum/pointing_device.c index 3aa4941687..a160647890 100644 --- a/quantum/pointing_device.c +++ b/quantum/pointing_device.c @@ -25,13 +25,6 @@ #if (defined(POINTING_DEVICE_ROTATION_90) + defined(POINTING_DEVICE_ROTATION_180) + defined(POINTING_DEVICE_ROTATION_270)) > 1 # error More than one rotation selected. This is not supported. #endif - -#if defined(POINTING_DEVICE_LEFT) || defined(POINTING_DEVICE_RIGHT) || defined(POINTING_DEVICE_COMBINED) -# ifndef SPLIT_POINTING_ENABLE -# error "Using POINTING_DEVICE_LEFT or POINTING_DEVICE_RIGHT or POINTING_DEVICE_COMBINED, then SPLIT_POINTING_ENABLE is required but has not been defined" -# endif -#endif - #if defined(SPLIT_POINTING_ENABLE) # include "transactions.h" # include "keyboard.h" @@ -184,8 +177,7 @@ __attribute__((weak)) void pointing_device_send(void) { report_mouse_t pointing_device_adjust_by_defines(report_mouse_t mouse_report) { // Support rotation of the sensor data #if defined(POINTING_DEVICE_ROTATION_90) || defined(POINTING_DEVICE_ROTATION_180) || defined(POINTING_DEVICE_ROTATION_270) - mouse_xy_report_t x = mouse_report.x; - mouse_xy_report_t y = mouse_report.y; + int8_t x = mouse_report.x, y = mouse_report.y; # if defined(POINTING_DEVICE_ROTATION_90) mouse_report.x = y; mouse_report.y = -x; @@ -355,7 +347,7 @@ void pointing_device_set_cpi_on_side(bool left, uint16_t cpi) { * @param[in] int16_t value * @return int8_t clamped value */ -static inline int8_t pointing_device_hv_clamp(int16_t value) { +static inline int8_t pointing_device_movement_clamp(int16_t value) { if (value < INT8_MIN) { return INT8_MIN; } else if (value > INT8_MAX) { @@ -365,21 +357,6 @@ static inline int8_t pointing_device_hv_clamp(int16_t value) { } } -/** - * @brief clamps int16_t to int8_t - * - * @param[in] clamp_range_t value - * @return mouse_xy_report_t clamped value - */ -static inline mouse_xy_report_t pointing_device_xy_clamp(clamp_range_t value) { - if (value < XY_REPORT_MIN) { - return XY_REPORT_MIN; - } else if (value > XY_REPORT_MAX) { - return XY_REPORT_MAX; - } else { - return value; - } -} /** * @brief combines 2 mouse reports and returns 2 * @@ -392,10 +369,10 @@ static inline mouse_xy_report_t pointing_device_xy_clamp(clamp_range_t value) { * @return combined report_mouse_t of left_report and right_report */ report_mouse_t pointing_device_combine_reports(report_mouse_t left_report, report_mouse_t right_report) { - left_report.x = pointing_device_xy_clamp((clamp_range_t)left_report.x + right_report.x); - left_report.y = pointing_device_xy_clamp((clamp_range_t)left_report.y + right_report.y); - left_report.h = pointing_device_hv_clamp((int16_t)left_report.h + right_report.h); - left_report.v = pointing_device_hv_clamp((int16_t)left_report.v + right_report.v); + left_report.x = pointing_device_movement_clamp((int16_t)left_report.x + right_report.x); + left_report.y = pointing_device_movement_clamp((int16_t)left_report.y + right_report.y); + left_report.h = pointing_device_movement_clamp((int16_t)left_report.h + right_report.h); + left_report.v = pointing_device_movement_clamp((int16_t)left_report.v + right_report.v); left_report.buttons |= right_report.buttons; return left_report; } @@ -413,8 +390,7 @@ report_mouse_t pointing_device_combine_reports(report_mouse_t left_report, repor report_mouse_t pointing_device_adjust_by_defines_right(report_mouse_t mouse_report) { // Support rotation of the sensor data # if defined(POINTING_DEVICE_ROTATION_90_RIGHT) || defined(POINTING_DEVICE_ROTATION_RIGHT) || defined(POINTING_DEVICE_ROTATION_RIGHT) - mouse_xy_report_t x = mouse_report.x; - mouse_xy_report_t y = mouse_report.y; + int8_t x = mouse_report.x, y = mouse_report.y; # if defined(POINTING_DEVICE_ROTATION_90_RIGHT) mouse_report.x = y; mouse_report.y = -x; diff --git a/quantum/pointing_device.h b/quantum/pointing_device.h index 1e5ef9590c..5c0eaeaf34 100644 --- a/quantum/pointing_device.h +++ b/quantum/pointing_device.h @@ -75,16 +75,6 @@ typedef enum { POINTING_DEVICE_BUTTON8, } pointing_device_buttons_t; -#ifdef MOUSE_EXTENDED_REPORT -# define XY_REPORT_MIN INT16_MIN -# define XY_REPORT_MAX INT16_MAX -typedef int32_t clamp_range_t; -#else -# define XY_REPORT_MIN INT8_MIN -# define XY_REPORT_MAX INT8_MAX -typedef int16_t clamp_range_t; -#endif - void pointing_device_init(void); void pointing_device_task(void); void pointing_device_send(void); diff --git a/quantum/pointing_device_drivers.c b/quantum/pointing_device_drivers.c index 435fcabf7c..56363c7ac6 100644 --- a/quantum/pointing_device_drivers.c +++ b/quantum/pointing_device_drivers.c @@ -22,8 +22,8 @@ #include "timer.h" #include -#define CONSTRAIN_HID(amt) ((amt) < INT8_MIN ? INT8_MIN : ((amt) > INT8_MAX ? INT8_MAX : (amt))) -#define CONSTRAIN_HID_XY(amt) ((amt) < XY_REPORT_MIN ? XY_REPORT_MIN : ((amt) > XY_REPORT_MAX ? XY_REPORT_MAX : (amt))) +// hid mouse reports cannot exceed -127 to 127, so constrain to that value +#define constrain_hid(amt) ((amt) < -127 ? -127 : ((amt) > 127 ? 127 : (amt))) // get_report functions should probably be moved to their respective drivers. #if defined(POINTING_DEVICE_DRIVER_adns5050) @@ -35,8 +35,8 @@ report_mouse_t adns5050_get_report(report_mouse_t mouse_report) { if (debug_mouse) dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); # endif - mouse_report.x = (mouse_xy_report_t)data.dx; - mouse_report.y = (mouse_xy_report_t)data.dy; + mouse_report.x = data.dx; + mouse_report.y = data.dy; } return mouse_report; @@ -50,14 +50,16 @@ const pointing_device_driver_t pointing_device_driver = { .get_cpi = adns5050_get_cpi, }; // clang-format on - #elif defined(POINTING_DEVICE_DRIVER_adns9800) report_mouse_t adns9800_get_report_driver(report_mouse_t mouse_report) { report_adns9800_t sensor_report = adns9800_get_report(); - mouse_report.x = CONSTRAIN_HID_XY(sensor_report.x); - mouse_report.y = CONSTRAIN_HID_XY(sensor_report.y); + int8_t clamped_x = constrain_hid(sensor_report.x); + int8_t clamped_y = constrain_hid(sensor_report.y); + + mouse_report.x = clamped_x; + mouse_report.y = clamped_y; return mouse_report; } @@ -70,7 +72,6 @@ const pointing_device_driver_t pointing_device_driver = { .get_cpi = adns9800_get_cpi }; // clang-format on - #elif defined(POINTING_DEVICE_DRIVER_analog_joystick) report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report) { report_analog_joystick_t data = analog_joystick_read(); @@ -95,7 +96,6 @@ const pointing_device_driver_t pointing_device_driver = { .get_cpi = NULL }; // clang-format on - #elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) # ifndef CIRQUE_PINNACLE_TAPPING_TERM # include "action.h" @@ -107,40 +107,22 @@ const pointing_device_driver_t pointing_device_driver = { # endif report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { - pinnacle_data_t touchData = cirque_pinnacle_read_data(); - mouse_xy_report_t report_x = 0, report_y = 0; - static mouse_xy_report_t x = 0, y = 0; - static uint16_t mouse_timer = 0; - static bool is_z_down = false; + pinnacle_data_t touchData = cirque_pinnacle_read_data(); + static uint16_t x = 0, y = 0, mouse_timer = 0; + int8_t report_x = 0, report_y = 0; + static bool is_z_down = false; -# if !CIRQUE_PINNACLE_POSITION_MODE -# error Cirque Pinnacle with relative mode not implemented yet. -# endif - - if (!touchData.valid) { - return mouse_report; - } - -# if CONSOLE_ENABLE - if (debug_mouse && touchData.touchDown) { - dprintf("cirque_pinnacle touchData x=%4d y=%4d z=%2d\n", touchData.xValue, touchData.yValue, touchData.zValue); - } -# endif - - // Scale coordinates to arbitrary X, Y resolution - cirque_pinnacle_scale_data(&touchData, cirque_pinnacle_get_scale(), cirque_pinnacle_get_scale()); + cirque_pinnacle_scale_data(&touchData, cirque_pinnacle_get_scale(), cirque_pinnacle_get_scale()); // Scale coordinates to arbitrary X, Y resolution if (x && y && touchData.xValue && touchData.yValue) { - report_x = (mouse_xy_report_t)(touchData.xValue - x); - report_y = (mouse_xy_report_t)(touchData.yValue - y); + report_x = (int8_t)(touchData.xValue - x); + report_y = (int8_t)(touchData.yValue - y); } - x = touchData.xValue; - y = touchData.yValue; - mouse_report.x = report_x; - mouse_report.y = report_y; + x = touchData.xValue; + y = touchData.yValue; - if (touchData.touchDown != is_z_down) { - is_z_down = touchData.touchDown; + if ((bool)touchData.zValue != is_z_down) { + is_z_down = (bool)touchData.zValue; if (!touchData.zValue) { if (timer_elapsed(mouse_timer) < CIRQUE_PINNACLE_TAPPING_TERM && mouse_timer != 0) { mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, true, POINTING_DEVICE_BUTTON1); @@ -159,6 +141,8 @@ report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { if (timer_elapsed(mouse_timer) > (CIRQUE_PINNACLE_TOUCH_DEBOUNCE)) { mouse_timer = 0; } + mouse_report.x = report_x; + mouse_report.y = report_y; return mouse_report; } @@ -173,26 +157,11 @@ const pointing_device_driver_t pointing_device_driver = { // clang-format on #elif defined(POINTING_DEVICE_DRIVER_pimoroni_trackball) - -mouse_xy_report_t pimoroni_trackball_adapt_values(clamp_range_t* offset) { - if (*offset > XY_REPORT_MAX) { - *offset -= XY_REPORT_MAX; - return (mouse_xy_report_t)XY_REPORT_MAX; - } else if (*offset < XY_REPORT_MIN) { - *offset += XY_REPORT_MAX; - return (mouse_xy_report_t)XY_REPORT_MIN; - } else { - mouse_xy_report_t temp_return = *offset; - *offset = 0; - return temp_return; - } -} - report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report) { - static uint16_t debounce = 0; - static uint8_t error_count = 0; - pimoroni_data_t pimoroni_data = {0}; - static clamp_range_t x_offset = 0, y_offset = 0; + static uint16_t debounce = 0; + static uint8_t error_count = 0; + pimoroni_data_t pimoroni_data = {0}; + static int16_t x_offset = 0, y_offset = 0; if (error_count < PIMORONI_TRACKBALL_ERROR_COUNT) { i2c_status_t status = read_pimoroni_trackball(&pimoroni_data); @@ -205,8 +174,8 @@ report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report) { if (!debounce) { x_offset += pimoroni_trackball_get_offsets(pimoroni_data.right, pimoroni_data.left, PIMORONI_TRACKBALL_SCALE); y_offset += pimoroni_trackball_get_offsets(pimoroni_data.down, pimoroni_data.up, PIMORONI_TRACKBALL_SCALE); - mouse_report.x = pimoroni_trackball_adapt_values(&x_offset); - mouse_report.y = pimoroni_trackball_adapt_values(&y_offset); + pimoroni_trackball_adapt_values(&mouse_report.x, &x_offset); + pimoroni_trackball_adapt_values(&mouse_report.y, &y_offset); } else { debounce--; } @@ -229,7 +198,6 @@ const pointing_device_driver_t pointing_device_driver = { .get_cpi = pimoroni_trackball_get_cpi }; // clang-format on - #elif defined(POINTING_DEVICE_DRIVER_pmw3360) static void pmw3360_device_init(void) { pmw3360_init(0); @@ -253,8 +221,8 @@ report_mouse_t pmw3360_get_report(report_mouse_t mouse_report) { # endif MotionStart = timer_read(); } - mouse_report.x = CONSTRAIN_HID_XY(data.dx); - mouse_report.y = CONSTRAIN_HID_XY(data.dy); + mouse_report.x = constrain_hid(data.dx); + mouse_report.y = constrain_hid(data.dy); } return mouse_report; @@ -268,7 +236,6 @@ const pointing_device_driver_t pointing_device_driver = { .get_cpi = pmw3360_get_cpi }; // clang-format on - #elif defined(POINTING_DEVICE_DRIVER_pmw3389) static void pmw3389_device_init(void) { pmw3389_init(); @@ -292,8 +259,8 @@ report_mouse_t pmw3389_get_report(report_mouse_t mouse_report) { # endif MotionStart = timer_read(); } - mouse_report.x = CONSTRAIN_HID_XY(data.dx); - mouse_report.y = CONSTRAIN_HID_XY(data.dy); + mouse_report.x = constrain_hid(data.dx); + mouse_report.y = constrain_hid(data.dy); } return mouse_report; @@ -307,7 +274,6 @@ const pointing_device_driver_t pointing_device_driver = { .get_cpi = pmw3389_get_cpi }; // clang-format on - #else __attribute__((weak)) void pointing_device_driver_init(void) {} __attribute__((weak)) report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { @@ -326,5 +292,4 @@ const pointing_device_driver_t pointing_device_driver = { .set_cpi = pointing_device_driver_set_cpi }; // clang-format on - #endif diff --git a/quantum/process_keycode/process_joystick.c b/quantum/process_keycode/process_joystick.c index 8c3e71616f..e867606074 100644 --- a/quantum/process_keycode/process_joystick.c +++ b/quantum/process_keycode/process_joystick.c @@ -106,7 +106,7 @@ bool process_joystick_analogread_quantum() { wait_us(10); -# if defined(__AVR__) || defined(PROTOCOL_CHIBIOS) +# if defined(ANALOG_JOYSTICK_ENABLE) && (defined(__AVR__) || defined(PROTOCOL_CHIBIOS)) int16_t axis_val = analogReadPin(joystick_axes[axis_index].input_pin); # else // default to resting position diff --git a/quantum/process_keycode/process_rgb.c b/quantum/process_keycode/process_rgb.c index c805bd615d..dae129786e 100644 --- a/quantum/process_keycode/process_rgb.c +++ b/quantum/process_keycode/process_rgb.c @@ -52,7 +52,11 @@ static void __attribute__((noinline, unused)) handleKeycodeRGBMode(const uint8_t */ bool process_rgb(const uint16_t keycode, const keyrecord_t *record) { // need to trigger on key-up for edge-case issue +#ifndef RGB_TRIGGER_ON_KEYDOWN if (!record->event.pressed) { +#else + if (record->event.pressed) { +#endif #if (defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)) || (defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)) uint8_t shifted = get_mods() & MOD_MASK_SHIFT; #endif diff --git a/quantum/process_keycode/process_steno.c b/quantum/process_keycode/process_steno.c index 20b8b9db4b..12ee898212 100644 --- a/quantum/process_keycode/process_steno.c +++ b/quantum/process_keycode/process_steno.c @@ -1,4 +1,4 @@ -/* Copyright 2017, 2022 Joseph Wasson, Vladislav Kucheriavykh +/* Copyright 2017 Joseph Wasson * * This 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,118 +15,77 @@ */ #include "process_steno.h" #include "quantum_keycodes.h" +#include "eeprom.h" #include "keymap_steno.h" +#include "virtser.h" #include -#ifdef VIRTSER_ENABLE -# include "virtser.h" -#endif -#ifdef STENO_ENABLE_ALL -# include "eeprom.h" -#endif -// All steno keys that have been pressed to form this chord, -// stored in MAX_STROKE_SIZE groups of 8-bit arrays. -static uint8_t chord[MAX_STROKE_SIZE] = {0}; -// The number of physical keys actually being held down. -// This is not always equal to the number of 1 bits in `chord` because it is possible to -// simultaneously press down four keys, then release three of those four keys and then press yet -// another key while the fourth finger is still holding down its key. -// At the end of this scenario given as an example, `chord` would have five bits set to 1 but -// `n_pressed_keys` would be set to 2 because there are only two keys currently being pressed down. -static int8_t n_pressed_keys = 0; +// TxBolt Codes +#define TXB_NUL 0 +#define TXB_S_L 0b00000001 +#define TXB_T_L 0b00000010 +#define TXB_K_L 0b00000100 +#define TXB_P_L 0b00001000 +#define TXB_W_L 0b00010000 +#define TXB_H_L 0b00100000 +#define TXB_R_L 0b01000001 +#define TXB_A_L 0b01000010 +#define TXB_O_L 0b01000100 +#define TXB_STR 0b01001000 +#define TXB_E_R 0b01010000 +#define TXB_U_R 0b01100000 +#define TXB_F_R 0b10000001 +#define TXB_R_R 0b10000010 +#define TXB_P_R 0b10000100 +#define TXB_B_R 0b10001000 +#define TXB_L_R 0b10010000 +#define TXB_G_R 0b10100000 +#define TXB_T_R 0b11000001 +#define TXB_S_R 0b11000010 +#define TXB_D_R 0b11000100 +#define TXB_Z_R 0b11001000 +#define TXB_NUM 0b11010000 -#ifdef STENO_ENABLE_ALL +#define TXB_GRP0 0b00000000 +#define TXB_GRP1 0b01000000 +#define TXB_GRP2 0b10000000 +#define TXB_GRP3 0b11000000 +#define TXB_GRPMASK 0b11000000 + +#define TXB_GET_GROUP(code) ((code & TXB_GRPMASK) >> 6) + +#define BOLT_STATE_SIZE 4 +#define GEMINI_STATE_SIZE 6 +#define MAX_STATE_SIZE GEMINI_STATE_SIZE + +static uint8_t state[MAX_STATE_SIZE] = {0}; +static uint8_t chord[MAX_STATE_SIZE] = {0}; +static int8_t pressed = 0; static steno_mode_t mode; -#elif defined(STENO_ENABLE_GEMINI) -static const steno_mode_t mode = STENO_MODE_GEMINI; -#elif defined(STENO_ENABLE_BOLT) -static const steno_mode_t mode = STENO_MODE_BOLT; -#endif - -static inline void steno_clear_chord(void) { - memset(chord, 0, sizeof(chord)); -} - -#ifdef STENO_ENABLE_GEMINI - -# ifdef VIRTSER_ENABLE -void send_steno_chord_gemini(void) { - // Set MSB to 1 to indicate the start of packet - chord[0] |= 0x80; - for (uint8_t i = 0; i < GEMINI_STROKE_SIZE; ++i) { - virtser_send(chord[i]); - } -} -# else -# pragma message "VIRTSER_ENABLE = yes is required for Gemini PR to work properly out of the box!" -# endif // VIRTSER_ENABLE - -/** - * @precondition: `key` is pressed - */ -bool add_gemini_key_to_chord(uint8_t key) { - // Although each group of the packet is 8 bits long, the MSB is reserved - // to indicate whether that byte is the first byte of the packet (MSB=1) - // or one of the remaining five bytes of the packet (MSB=0). - // As a consequence, only 7 out of the 8 bits are left to be used as a bit array - // for the steno keys of that group. - const int group_idx = key / 7; - const int intra_group_idx = key - group_idx * 7; - // The 0th steno key of the group has bit=0b01000000, the 1st has bit=0b00100000, etc. - const uint8_t bit = 1 << (6 - intra_group_idx); - chord[group_idx] |= bit; - return false; -} -#endif // STENO_ENABLE_GEMINI - -#ifdef STENO_ENABLE_BOLT - -# define TXB_GRP0 0b00000000 -# define TXB_GRP1 0b01000000 -# define TXB_GRP2 0b10000000 -# define TXB_GRP3 0b11000000 -# define TXB_GRPMASK 0b11000000 - -# define TXB_GET_GROUP(code) ((code & TXB_GRPMASK) >> 6) static const uint8_t boltmap[64] PROGMEM = {TXB_NUL, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_S_L, TXB_S_L, TXB_T_L, TXB_K_L, TXB_P_L, TXB_W_L, TXB_H_L, TXB_R_L, TXB_A_L, TXB_O_L, TXB_STR, TXB_STR, TXB_NUL, TXB_NUL, TXB_NUL, TXB_STR, TXB_STR, TXB_E_R, TXB_U_R, TXB_F_R, TXB_R_R, TXB_P_R, TXB_B_R, TXB_L_R, TXB_G_R, TXB_T_R, TXB_S_R, TXB_D_R, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_Z_R}; -# ifdef VIRTSER_ENABLE -static void send_steno_chord_bolt(void) { - for (uint8_t i = 0; i < BOLT_STROKE_SIZE; ++i) { - // TX Bolt uses variable length packets where each byte corresponds to a bit array of certain keys. - // If a user chorded the keys of the first group with keys of the last group, for example, there - // would be bytes of 0x00 in `chord` for the middle groups which we mustn't send. - if (chord[i]) { - virtser_send(chord[i]); - } - } - // Sending a null packet is not always necessary, but it is simpler and more reliable - // to unconditionally send it every time instead of keeping track of more states and - // creating more branches in the execution of the program. - virtser_send(0); -} -# else -# pragma message "VIRTSER_ENABLE = yes is required for TX Bolt to work properly out of the box!" -# endif // VIRTSER_ENABLE - -/** - * @precondition: `key` is pressed - */ -static bool add_bolt_key_to_chord(uint8_t key) { - uint8_t boltcode = pgm_read_byte(boltmap + key); - chord[TXB_GET_GROUP(boltcode)] |= boltcode; - return false; -} -#endif // STENO_ENABLE_BOLT - #ifdef STENO_COMBINEDMAP /* Used to look up when pressing the middle row key to combine two consonant or vowel keys */ static const uint16_t combinedmap_first[] PROGMEM = {STN_S1, STN_TL, STN_PL, STN_HL, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, STN_A, STN_E}; static const uint16_t combinedmap_second[] PROGMEM = {STN_S2, STN_KL, STN_WL, STN_RL, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, STN_O, STN_U}; #endif -#ifdef STENO_ENABLE_ALL +static void steno_clear_state(void) { + memset(state, 0, sizeof(state)); + memset(chord, 0, sizeof(chord)); +} + +static void send_steno_state(uint8_t size, bool send_empty) { + for (uint8_t i = 0; i < size; ++i) { + if (chord[i] || send_empty) { +#ifdef VIRTSER_ENABLE + virtser_send(chord[i]); +#endif + } + } +} + void steno_init() { if (!eeconfig_is_enabled()) { eeconfig_init(); @@ -135,20 +94,19 @@ void steno_init() { } void steno_set_mode(steno_mode_t new_mode) { - steno_clear_chord(); + steno_clear_state(); mode = new_mode; eeprom_update_byte(EECONFIG_STENOMODE, mode); } -#endif // STENO_ENABLE_ALL /* override to intercept chords right before they get sent. * return zero to suppress normal sending behavior. */ -__attribute__((weak)) bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[MAX_STROKE_SIZE]) { +__attribute__((weak)) bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]) { return true; } -__attribute__((weak)) bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[MAX_STROKE_SIZE], int8_t n_pressed_keys) { +__attribute__((weak)) bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed) { return true; } @@ -156,94 +114,108 @@ __attribute__((weak)) bool process_steno_user(uint16_t keycode, keyrecord_t *rec return true; } +static void send_steno_chord(void) { + if (send_steno_chord_user(mode, chord)) { + switch (mode) { + case STENO_MODE_BOLT: + send_steno_state(BOLT_STATE_SIZE, false); +#ifdef VIRTSER_ENABLE + virtser_send(0); // terminating byte +#endif + break; + case STENO_MODE_GEMINI: + chord[0] |= 0x80; // Indicate start of packet + send_steno_state(GEMINI_STATE_SIZE, true); + break; + } + } + steno_clear_state(); +} + +uint8_t *steno_get_state(void) { + return &state[0]; +} + +uint8_t *steno_get_chord(void) { + return &chord[0]; +} + +static bool update_state_bolt(uint8_t key, bool press) { + uint8_t boltcode = pgm_read_byte(boltmap + key); + if (press) { + state[TXB_GET_GROUP(boltcode)] |= boltcode; + chord[TXB_GET_GROUP(boltcode)] |= boltcode; + } else { + state[TXB_GET_GROUP(boltcode)] &= ~boltcode; + } + return false; +} + +static bool update_state_gemini(uint8_t key, bool press) { + int idx = key / 7; + uint8_t bit = 1 << (6 - (key % 7)); + if (press) { + state[idx] |= bit; + chord[idx] |= bit; + } else { + state[idx] &= ~bit; + } + return false; +} + bool process_steno(uint16_t keycode, keyrecord_t *record) { - if (keycode < QK_STENO || keycode > QK_STENO_MAX) { - return true; // Not a steno key, pass it further along the chain - /* - * Clearing or sending the chord state is not necessary as we intentionally ignore whatever - * normal keyboard keys the user may have tapped while chording steno keys. - */ - } - if (IS_NOEVENT(record->event)) { - return true; - } - if (!process_steno_user(keycode, record)) { - return false; // User fully processed the steno key themselves - } switch (keycode) { -#ifdef STENO_ENABLE_ALL case QK_STENO_BOLT: + if (!process_steno_user(keycode, record)) { + return false; + } if (IS_PRESSED(record->event)) { steno_set_mode(STENO_MODE_BOLT); } return false; case QK_STENO_GEMINI: + if (!process_steno_user(keycode, record)) { + return false; + } if (IS_PRESSED(record->event)) { steno_set_mode(STENO_MODE_GEMINI); } return false; -#endif // STENO_ENABLE_ALL #ifdef STENO_COMBINEDMAP case QK_STENO_COMB ... QK_STENO_COMB_MAX: { - bool first_result = process_steno(combinedmap_first[keycode - QK_STENO_COMB], record); - bool second_result = process_steno(combinedmap_second[keycode - QK_STENO_COMB], record); - return first_result && second_result; + uint8_t result; + result = process_steno(combinedmap_first[keycode - QK_STENO_COMB], record); + result &= process_steno(combinedmap_second[keycode - QK_STENO_COMB], record); + return result; } -#endif // STENO_COMBINEDMAP +#endif case STN__MIN ... STN__MAX: - if (IS_PRESSED(record->event)) { - n_pressed_keys++; - switch (mode) { -#ifdef STENO_ENABLE_BOLT - case STENO_MODE_BOLT: - add_bolt_key_to_chord(keycode - QK_STENO); - break; -#endif // STENO_ENABLE_BOLT -#ifdef STENO_ENABLE_GEMINI - case STENO_MODE_GEMINI: - add_gemini_key_to_chord(keycode - QK_STENO); - break; -#endif // STENO_ENABLE_GEMINI - default: - return false; - } - if (!postprocess_steno_user(keycode, record, mode, chord, n_pressed_keys)) { - return false; - } - } else { // is released - n_pressed_keys--; - if (!postprocess_steno_user(keycode, record, mode, chord, n_pressed_keys)) { - return false; - } - if (n_pressed_keys > 0) { - // User hasn't released all keys yet, - // so the chord cannot be sent - return false; - } - n_pressed_keys = 0; - if (!send_steno_chord_user(mode, chord)) { - steno_clear_chord(); - return false; - } - switch (mode) { -#if defined(STENO_ENABLE_BOLT) && defined(VIRTSER_ENABLE) - case STENO_MODE_BOLT: - send_steno_chord_bolt(); - break; -#endif // STENO_ENABLE_BOLT && VIRTSER_ENABLE -#if defined(STENO_ENABLE_GEMINI) && defined(VIRTSER_ENABLE) - case STENO_MODE_GEMINI: - send_steno_chord_gemini(); - break; -#endif // STENO_ENABLE_GEMINI && VIRTSER_ENABLE - default: - break; - } - steno_clear_chord(); + if (!process_steno_user(keycode, record)) { + return false; } - break; + switch (mode) { + case STENO_MODE_BOLT: + update_state_bolt(keycode - QK_STENO, IS_PRESSED(record->event)); + break; + case STENO_MODE_GEMINI: + update_state_gemini(keycode - QK_STENO, IS_PRESSED(record->event)); + break; + } + // allow postprocessing hooks + if (postprocess_steno_user(keycode, record, mode, chord, pressed)) { + if (IS_PRESSED(record->event)) { + ++pressed; + } else { + --pressed; + if (pressed <= 0) { + pressed = 0; + send_steno_chord(); + } + } + } + return false; } - return false; + return true; } diff --git a/quantum/process_keycode/process_steno.h b/quantum/process_keycode/process_steno.h index 68d6097b9b..d11fd40af0 100644 --- a/quantum/process_keycode/process_steno.h +++ b/quantum/process_keycode/process_steno.h @@ -18,22 +18,10 @@ #include "quantum.h" -#define BOLT_STROKE_SIZE 4 -#define GEMINI_STROKE_SIZE 6 +typedef enum { STENO_MODE_BOLT, STENO_MODE_GEMINI } steno_mode_t; -#ifdef STENO_ENABLE_GEMINI -# define MAX_STROKE_SIZE GEMINI_STROKE_SIZE -#else -# define MAX_STROKE_SIZE BOLT_STROKE_SIZE -#endif - -typedef enum { - STENO_MODE_GEMINI, - STENO_MODE_BOLT, -} steno_mode_t; - -bool process_steno(uint16_t keycode, keyrecord_t *record); -#ifdef STENO_ENABLE_ALL -void steno_init(void); -void steno_set_mode(steno_mode_t mode); -#endif // STENO_ENABLE_ALL +bool process_steno(uint16_t keycode, keyrecord_t *record); +void steno_init(void); +void steno_set_mode(steno_mode_t mode); +uint8_t *steno_get_state(void); +uint8_t *steno_get_chord(void); diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index 3270a1b000..db8df5f870 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -15,8 +15,12 @@ */ #include "quantum.h" -static uint16_t active_td; -static uint16_t last_tap_time; +#ifndef NO_ACTION_ONESHOT +uint8_t get_oneshot_mods(void); +#endif + +static uint16_t last_td; +static int16_t highest_td = -1; void qk_tap_dance_pair_on_each_tap(qk_tap_dance_state_t *state, void *user_data) { qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data; @@ -30,14 +34,18 @@ void qk_tap_dance_pair_on_each_tap(qk_tap_dance_state_t *state, void *user_data) void qk_tap_dance_pair_finished(qk_tap_dance_state_t *state, void *user_data) { qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data; - register_code16(pair->kc1); + if (state->count == 1) { + register_code16(pair->kc1); + } else if (state->count == 2) { + register_code16(pair->kc2); + } } void qk_tap_dance_pair_reset(qk_tap_dance_state_t *state, void *user_data) { qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data; + wait_ms(TAP_CODE_DELAY); if (state->count == 1) { - wait_ms(TAP_CODE_DELAY); unregister_code16(pair->kc1); } else if (state->count == 2) { unregister_code16(pair->kc2); @@ -79,40 +87,23 @@ static inline void _process_tap_dance_action_fn(qk_tap_dance_state_t *state, voi } static inline void process_tap_dance_action_on_each_tap(qk_tap_dance_action_t *action) { - action->state.count++; - action->state.weak_mods = get_mods(); - action->state.weak_mods |= get_weak_mods(); -#ifndef NO_ACTION_ONESHOT - action->state.oneshot_mods = get_oneshot_mods(); -#endif _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_each_tap); } +static inline void process_tap_dance_action_on_dance_finished(qk_tap_dance_action_t *action) { + if (action->state.finished) return; + action->state.finished = true; + add_mods(action->state.oneshot_mods); + add_weak_mods(action->state.weak_mods); + send_keyboard_report(); + _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_dance_finished); +} + static inline void process_tap_dance_action_on_reset(qk_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); -#ifndef NO_ACTION_ONESHOT del_mods(action->state.oneshot_mods); -#endif + del_weak_mods(action->state.weak_mods); send_keyboard_report(); - action->state = (const qk_tap_dance_state_t){0}; -} - -static inline void process_tap_dance_action_on_dance_finished(qk_tap_dance_action_t *action) { - if (!action->state.finished) { - action->state.finished = true; - add_weak_mods(action->state.weak_mods); -#ifndef NO_ACTION_ONESHOT - add_mods(action->state.oneshot_mods); -#endif - send_keyboard_report(); - _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_dance_finished); - } - active_td = 0; - if (!action->state.pressed) { - // There will not be a key release event, so reset now. - process_tap_dance_action_on_reset(action); - } } void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { @@ -120,33 +111,51 @@ void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { if (!record->event.pressed) return; - if (!active_td || keycode == active_td) return; + if (highest_td == -1) return; - action = &tap_dance_actions[TD_INDEX(active_td)]; - action->state.interrupted = true; - action->state.interrupting_keycode = keycode; - process_tap_dance_action_on_dance_finished(action); + for (int i = 0; i <= highest_td; i++) { + action = &tap_dance_actions[i]; + if (action->state.count) { + if (keycode == action->state.keycode && keycode == last_td) continue; + action->state.interrupted = true; + action->state.interrupting_keycode = keycode; + process_tap_dance_action_on_dance_finished(action); + reset_tap_dance(&action->state); - // Tap dance actions can leave some weak mods active (e.g., if the tap dance is mapped to a keycode with - // modifiers), but these weak mods should not affect the keypress which interrupted the tap dance. - clear_weak_mods(); + // Tap dance actions can leave some weak mods active (e.g., if the tap dance is mapped to a keycode with + // modifiers), but these weak mods should not affect the keypress which interrupted the tap dance. + clear_weak_mods(); + } + } } bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { + uint16_t idx = keycode - QK_TAP_DANCE; qk_tap_dance_action_t *action; switch (keycode) { case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: - action = &tap_dance_actions[TD_INDEX(keycode)]; + if ((int16_t)idx > highest_td) highest_td = idx; + action = &tap_dance_actions[idx]; action->state.pressed = record->event.pressed; if (record->event.pressed) { - last_tap_time = timer_read(); + action->state.keycode = keycode; + action->state.count++; + action->state.timer = timer_read(); +#ifndef NO_ACTION_ONESHOT + action->state.oneshot_mods = get_oneshot_mods(); +#else + action->state.oneshot_mods = 0; +#endif + action->state.weak_mods = get_mods(); + action->state.weak_mods |= get_weak_mods(); process_tap_dance_action_on_each_tap(action); - active_td = action->state.finished ? 0 : keycode; + + last_td = keycode; } else { - if (action->state.finished) { - process_tap_dance_action_on_reset(action); + if (action->state.count && action->state.finished) { + reset_tap_dance(&action->state); } } @@ -157,17 +166,35 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { } void tap_dance_task() { - qk_tap_dance_action_t *action; + if (highest_td == -1) return; + uint16_t tap_user_defined; - if (!active_td || timer_elapsed(last_tap_time) <= GET_TAPPING_TERM(active_td, &(keyrecord_t){})) return; - - action = &tap_dance_actions[TD_INDEX(active_td)]; - if (!action->state.interrupted) { - process_tap_dance_action_on_dance_finished(action); + for (uint8_t i = 0; i <= highest_td; i++) { + qk_tap_dance_action_t *action = &tap_dance_actions[i]; + if (action->custom_tapping_term > 0) { + tap_user_defined = action->custom_tapping_term; + } else { + tap_user_defined = GET_TAPPING_TERM(action->state.keycode, &(keyrecord_t){}); + } + if (action->state.count && timer_elapsed(action->state.timer) > tap_user_defined) { + process_tap_dance_action_on_dance_finished(action); + reset_tap_dance(&action->state); + } } } void reset_tap_dance(qk_tap_dance_state_t *state) { - active_td = 0; - process_tap_dance_action_on_reset((qk_tap_dance_action_t *)state); + qk_tap_dance_action_t *action; + + if (state->pressed) return; + + action = &tap_dance_actions[state->keycode - QK_TAP_DANCE]; + + process_tap_dance_action_on_reset(action); + + state->count = 0; + state->interrupted = false; + state->finished = false; + state->interrupting_keycode = 0; + last_td = 0; } diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index d97900d96b..d9ffb1e73d 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -22,27 +22,30 @@ # include typedef struct { - uint16_t interrupting_keycode; uint8_t count; + uint8_t oneshot_mods; uint8_t weak_mods; -# ifndef NO_ACTION_ONESHOT - uint8_t oneshot_mods; -# endif - bool pressed : 1; - bool finished : 1; - bool interrupted : 1; + uint16_t keycode; + uint16_t interrupting_keycode; + uint16_t timer; + bool interrupted; + bool pressed; + bool finished; } qk_tap_dance_state_t; +# define TD(n) (QK_TAP_DANCE | ((n)&0xFF)) + typedef void (*qk_tap_dance_user_fn_t)(qk_tap_dance_state_t *state, void *user_data); typedef struct { - qk_tap_dance_state_t state; struct { qk_tap_dance_user_fn_t on_each_tap; qk_tap_dance_user_fn_t on_dance_finished; qk_tap_dance_user_fn_t on_reset; } fn; - void *user_data; + qk_tap_dance_state_t state; + uint16_t custom_tapping_term; + void * user_data; } qk_tap_dance_action_t; typedef struct { @@ -59,31 +62,31 @@ typedef struct { # define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) \ { .fn = {qk_tap_dance_pair_on_each_tap, qk_tap_dance_pair_finished, qk_tap_dance_pair_reset}, .user_data = (void *)&((qk_tap_dance_pair_t){kc1, kc2}), } -# define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) \ +# define ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) \ { .fn = {qk_tap_dance_dual_role_on_each_tap, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset}, .user_data = (void *)&((qk_tap_dance_dual_role_t){kc, layer, layer_move}), } # define ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer) \ { .fn = {NULL, qk_tap_dance_dual_role_finished, qk_tap_dance_dual_role_reset}, .user_data = (void *)&((qk_tap_dance_dual_role_t){kc, layer, layer_invert}), } +# define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) ACTION_TAP_DANCE_DUAL_ROLE(kc, layer) + # define ACTION_TAP_DANCE_FN(user_fn) \ { .fn = {NULL, user_fn, 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 TD(n) (QK_TAP_DANCE | TD_INDEX(n)) -# define TD_INDEX(code) ((code)&0xFF) -# define TAP_DANCE_KEYCODE(state) TD(((qk_tap_dance_action_t *)state) - tap_dance_actions) +# define ACTION_TAP_DANCE_FN_ADVANCED_TIME(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, tap_specific_tapping_term) \ + { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset}, .user_data = NULL, .custom_tapping_term = tap_specific_tapping_term, } extern qk_tap_dance_action_t tap_dance_actions[]; -void reset_tap_dance(qk_tap_dance_state_t *state); - /* To be used internally */ void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record); bool process_tap_dance(uint16_t keycode, keyrecord_t *record); void tap_dance_task(void); +void reset_tap_dance(qk_tap_dance_state_t *state); void qk_tap_dance_pair_on_each_tap(qk_tap_dance_state_t *state, void *user_data); void qk_tap_dance_pair_finished(qk_tap_dance_state_t *state, void *user_data); diff --git a/quantum/process_keycode/process_terminal.c b/quantum/process_keycode/process_terminal.c new file mode 100644 index 0000000000..da1c4d506f --- /dev/null +++ b/quantum/process_keycode/process_terminal.c @@ -0,0 +1,330 @@ +/* Copyright 2017 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 "process_terminal.h" +#include +#include "version.h" +#include +#include + +#ifndef CMD_BUFF_SIZE +# define CMD_BUFF_SIZE 5 +#endif + +bool terminal_enabled = false; +char buffer[80] = ""; +char cmd_buffer[CMD_BUFF_SIZE][80]; +bool cmd_buffer_enabled = true; // replace with ifdef? +char newline[2] = "\n"; +char arguments[6][20]; +bool firstTime = true; + +short int current_cmd_buffer_pos = 0; // used for up/down arrows - keeps track of where you are in the command buffer + +__attribute__((weak)) const char terminal_prompt[8] = "> "; + +#ifdef AUDIO_ENABLE +# ifndef TERMINAL_SONG +# define TERMINAL_SONG SONG(TERMINAL_SOUND) +# endif +float terminal_song[][2] = TERMINAL_SONG; +# define TERMINAL_BELL() PLAY_SONG(terminal_song) +#else +# define TERMINAL_BELL() +#endif + +__attribute__((weak)) const char keycode_to_ascii_lut[58] = {0, 0, 0, 0, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 0, 0, 0, '\t', ' ', '-', '=', '[', ']', '\\', 0, ';', '\'', '`', ',', '.', '/'}; + +__attribute__((weak)) const char shifted_keycode_to_ascii_lut[58] = {0, 0, 0, 0, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', 0, 0, 0, '\t', ' ', '_', '+', '{', '}', '|', 0, ':', '\'', '~', '<', '>', '?'}; + +struct stringcase { + char *string; + void (*func)(void); +} typedef stringcase; + +void enable_terminal(void) { + terminal_enabled = true; + strcpy(buffer, ""); + memset(cmd_buffer, 0, CMD_BUFF_SIZE * 80); + for (int i = 0; i < 6; i++) + strcpy(arguments[i], ""); + // select all text to start over + // SEND_STRING(SS_LCTL("a")); + send_string(terminal_prompt); +} + +void disable_terminal(void) { + terminal_enabled = false; + SEND_STRING("\n"); +} + +void push_to_cmd_buffer(void) { + if (cmd_buffer_enabled) { + if (cmd_buffer == NULL) { + return; + } else { + if (firstTime) { + firstTime = false; + strcpy(cmd_buffer[0], buffer); + return; + } + + for (int i = CMD_BUFF_SIZE - 1; i > 0; --i) { + strncpy(cmd_buffer[i], cmd_buffer[i - 1], 80); + } + + strcpy(cmd_buffer[0], buffer); + + return; + } + } +} + +void terminal_about(void) { + SEND_STRING("QMK Firmware\n"); + SEND_STRING(" v"); + SEND_STRING(QMK_VERSION); + SEND_STRING("\n" SS_TAP(X_HOME) " Built: "); + SEND_STRING(QMK_BUILDDATE); + send_string(newline); +#ifdef TERMINAL_HELP + if (strlen(arguments[1]) != 0) { + SEND_STRING("You entered: "); + send_string(arguments[1]); + send_string(newline); + } +#endif +} + +void terminal_help(void); + +extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; + +void terminal_keycode(void) { + if (strlen(arguments[1]) != 0 && strlen(arguments[2]) != 0 && strlen(arguments[3]) != 0) { + char keycode_dec[5]; + char keycode_hex[5]; + uint16_t layer = strtol(arguments[1], (char **)NULL, 10); + uint16_t row = strtol(arguments[2], (char **)NULL, 10); + uint16_t col = strtol(arguments[3], (char **)NULL, 10); + uint16_t keycode = pgm_read_word(&keymaps[layer][row][col]); + itoa(keycode, keycode_dec, 10); + itoa(keycode, keycode_hex, 16); + SEND_STRING("0x"); + send_string(keycode_hex); + SEND_STRING(" ("); + send_string(keycode_dec); + SEND_STRING(")\n"); + } else { +#ifdef TERMINAL_HELP + SEND_STRING("usage: keycode \n"); +#endif + } +} + +void terminal_keymap(void) { + if (strlen(arguments[1]) != 0) { + uint16_t layer = strtol(arguments[1], (char **)NULL, 10); + for (int r = 0; r < MATRIX_ROWS; r++) { + for (int c = 0; c < MATRIX_COLS; c++) { + uint16_t keycode = pgm_read_word(&keymaps[layer][r][c]); + char keycode_s[8]; + sprintf(keycode_s, "0x%04x,", keycode); + send_string(keycode_s); + } + send_string(newline); + } + } else { +#ifdef TERMINAL_HELP + SEND_STRING("usage: keymap \n"); +#endif + } +} + +void print_cmd_buff(void) { + /* without the below wait, a race condition can occur wherein the + buffer can be printed before it has been fully moved */ + wait_ms(250); + for (int i = 0; i < CMD_BUFF_SIZE; i++) { + char tmpChar = ' '; + itoa(i, &tmpChar, 10); + const char *tmpCnstCharStr = &tmpChar; // because sned_string wont take a normal char * + send_string(tmpCnstCharStr); + SEND_STRING(". "); + send_string(cmd_buffer[i]); + SEND_STRING("\n"); + } +} + +void flush_cmd_buffer(void) { + memset(cmd_buffer, 0, CMD_BUFF_SIZE * 80); + SEND_STRING("Buffer Cleared!\n"); +} + +stringcase terminal_cases[] = {{"about", terminal_about}, {"help", terminal_help}, {"keycode", terminal_keycode}, {"keymap", terminal_keymap}, {"flush-buffer", flush_cmd_buffer}, {"print-buffer", print_cmd_buff}, {"exit", disable_terminal}}; + +void terminal_help(void) { + SEND_STRING("commands available:\n "); + for (stringcase *case_p = terminal_cases; case_p != terminal_cases + sizeof(terminal_cases) / sizeof(terminal_cases[0]); case_p++) { + send_string(case_p->string); + SEND_STRING(" "); + } + send_string(newline); +} + +void command_not_found(void) { + wait_ms(50); // sometimes buffer isnt grabbed quick enough + SEND_STRING("command \""); + send_string(buffer); + SEND_STRING("\" not found\n"); +} + +void process_terminal_command(void) { + // we capture return bc of the order of events, so we need to manually send a newline + send_string(newline); + + char * pch; + uint8_t i = 0; + pch = strtok(buffer, " "); + while (pch != NULL) { + strcpy(arguments[i], pch); + pch = strtok(NULL, " "); + i++; + } + + bool command_found = false; + for (stringcase *case_p = terminal_cases; case_p != terminal_cases + sizeof(terminal_cases) / sizeof(terminal_cases[0]); case_p++) { + if (0 == strcmp(case_p->string, buffer)) { + command_found = true; + (*case_p->func)(); + break; + } + } + + if (!command_found) command_not_found(); + + if (terminal_enabled) { + strcpy(buffer, ""); + for (int i = 0; i < 6; i++) + strcpy(arguments[i], ""); + SEND_STRING(SS_TAP(X_HOME)); + send_string(terminal_prompt); + } +} +void check_pos(void) { + if (current_cmd_buffer_pos >= CMD_BUFF_SIZE) { // if over the top, move it back down to the top of the buffer so you can climb back down... + current_cmd_buffer_pos = CMD_BUFF_SIZE - 1; + } else if (current_cmd_buffer_pos < 0) { //...and if you fall under the bottom of the buffer, reset back to 0 so you can climb back up + current_cmd_buffer_pos = 0; + } +} + +bool process_terminal(uint16_t keycode, keyrecord_t *record) { + if (keycode == TERM_ON && record->event.pressed) { + enable_terminal(); + return false; + } + + if (terminal_enabled && record->event.pressed) { + if (keycode == TERM_OFF && record->event.pressed) { + disable_terminal(); + return false; + } + + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { + keycode = keycode & 0xFF; + } + + if (keycode < 256) { + uint8_t str_len; + char char_to_add; + switch (keycode) { + case KC_ENTER: + case KC_KP_ENTER: + push_to_cmd_buffer(); + current_cmd_buffer_pos = 0; + process_terminal_command(); + return false; + break; + case KC_ESCAPE: + SEND_STRING("\n"); + enable_terminal(); + return false; + break; + case KC_BACKSPACE: + str_len = strlen(buffer); + if (str_len > 0) { + buffer[str_len - 1] = 0; + return true; + } else { + TERMINAL_BELL(); + return false; + } + break; + case KC_LEFT: + return false; + break; + case KC_RIGHT: + return false; + break; + case KC_UP: // 0 = recent + check_pos(); // check our current buffer position is valid + if (current_cmd_buffer_pos <= CMD_BUFF_SIZE - 1) { // once we get to the top, dont do anything + str_len = strlen(buffer); + for (int i = 0; i < str_len; ++i) { + send_string(SS_TAP(X_BSPACE)); // clear w/e is on the line already + // process_terminal(KC_BACKSPACE,record); + } + strncpy(buffer, cmd_buffer[current_cmd_buffer_pos], 80); + + send_string(buffer); + ++current_cmd_buffer_pos; // get ready to access the above cmd if up/down is pressed again + } + return false; + break; + case KC_DOWN: + check_pos(); + if (current_cmd_buffer_pos >= 0) { // once we get to the bottom, dont do anything + str_len = strlen(buffer); + for (int i = 0; i < str_len; ++i) { + send_string(SS_TAP(X_BSPACE)); // clear w/e is on the line already + // process_terminal(KC_BACKSPACE,record); + } + strncpy(buffer, cmd_buffer[current_cmd_buffer_pos], 79); + + send_string(buffer); + --current_cmd_buffer_pos; // get ready to access the above cmd if down/up is pressed again + } + return false; + break; + default: + if (keycode <= 58) { + char_to_add = 0; + if (get_mods() & (MOD_BIT(KC_LEFT_SHIFT) | MOD_BIT(KC_RIGHT_SHIFT))) { + char_to_add = shifted_keycode_to_ascii_lut[keycode]; + } else if (get_mods() == 0) { + char_to_add = keycode_to_ascii_lut[keycode]; + } + if (char_to_add != 0) { + strncat(buffer, &char_to_add, 1); + } + } + break; + } + } + } + return true; +} diff --git a/quantum/process_keycode/process_terminal.h b/quantum/process_keycode/process_terminal.h new file mode 100644 index 0000000000..0159131e5b --- /dev/null +++ b/quantum/process_keycode/process_terminal.h @@ -0,0 +1,24 @@ +/* Copyright 2017 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 + +#include "quantum.h" + +extern const char keycode_to_ascii_lut[58]; +extern const char shifted_keycode_to_ascii_lut[58]; +extern const char terminal_prompt[8]; +bool process_terminal(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/process_keycode/process_terminal_nop.h b/quantum/process_keycode/process_terminal_nop.h new file mode 100644 index 0000000000..36e25320c5 --- /dev/null +++ b/quantum/process_keycode/process_terminal_nop.h @@ -0,0 +1,22 @@ +/* Copyright 2017 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 + +#include "quantum.h" + +#define TERM_ON KC_NO +#define TERM_OFF KC_NO diff --git a/quantum/quantum.c b/quantum/quantum.c index d1cfb5fbe0..33121f6b95 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -307,6 +307,9 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef DYNAMIC_TAPPING_TERM_ENABLE process_dynamic_tapping_term(keycode, record) && #endif +#ifdef TERMINAL_ENABLE + process_terminal(keycode, record) && +#endif #ifdef SPACE_CADET_ENABLE process_space_cadet(keycode, record) && #endif diff --git a/quantum/quantum.h b/quantum/quantum.h index 8a7a20c706..92e1af1c40 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -141,6 +141,12 @@ extern layer_state_t layer_state; # include "process_key_lock.h" #endif +#ifdef TERMINAL_ENABLE +# include "process_terminal.h" +#else +# include "process_terminal_nop.h" +#endif + #ifdef SPACE_CADET_ENABLE # include "process_space_cadet.h" #endif diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 869826ce19..40355d799a 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -473,9 +473,9 @@ enum quantum_keycodes { // Lock Key KC_LOCK, // 5D2B - // Unused slots - UNUSED_000, // 5D2C - UNUSED_001, // 5D2D + // Terminal + TERM_ON, // 5D2C + TERM_OFF, // 5D2D // Sequencer SQ_ON, // 5D2E diff --git a/quantum/quantum_keycodes_legacy.h b/quantum/quantum_keycodes_legacy.h index 51380d9c50..ed9455ee74 100644 --- a/quantum/quantum_keycodes_legacy.h +++ b/quantum/quantum_keycodes_legacy.h @@ -11,6 +11,3 @@ #define KC_GESC QK_GRAVE_ESCAPE #define EEP_RST QK_CLEAR_EEPROM - -#define TERM_ON _Static_assert(false, "The Terminal feature has been removed from QMK. Please remove use of TERM_ON/TERM_OFF from your keymap.") -#define TERM_OFF _Static_assert(false, "The Terminal feature has been removed from QMK.. Please remove use of TERM_ON/TERM_OFF from your keymap.") \ No newline at end of file diff --git a/quantum/rgb_matrix/animations/typing_heatmap_anim.h b/quantum/rgb_matrix/animations/typing_heatmap_anim.h index a05c07760e..4b17c4c3ed 100644 --- a/quantum/rgb_matrix/animations/typing_heatmap_anim.h +++ b/quantum/rgb_matrix/animations/typing_heatmap_anim.h @@ -6,41 +6,30 @@ RGB_MATRIX_EFFECT(TYPING_HEATMAP) # define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 25 # endif -# ifndef RGB_MATRIX_TYPING_HEATMAP_SPREAD -# define RGB_MATRIX_TYPING_HEATMAP_SPREAD 40 -# endif - -# ifndef RGB_MATRIX_TYPING_HEATMAP_AREA_LIMIT -# define RGB_MATRIX_TYPING_HEATMAP_AREA_LIMIT 16 -# endif void process_rgb_matrix_typing_heatmap(uint8_t row, uint8_t col) { # ifdef RGB_MATRIX_TYPING_HEATMAP_SLIM // Limit effect to pressed keys g_rgb_frame_buffer[row][col] = qadd8(g_rgb_frame_buffer[row][col], 32); # else - if (g_led_config.matrix_co[row][col] == NO_LED) { // skip as pressed key doesn't have an led position - return; + uint8_t m_row = row - 1; + uint8_t p_row = row + 1; + uint8_t m_col = col - 1; + uint8_t p_col = col + 1; + + if (m_col < col) g_rgb_frame_buffer[row][m_col] = qadd8(g_rgb_frame_buffer[row][m_col], 16); + g_rgb_frame_buffer[row][col] = qadd8(g_rgb_frame_buffer[row][col], 32); + if (p_col < MATRIX_COLS) g_rgb_frame_buffer[row][p_col] = qadd8(g_rgb_frame_buffer[row][p_col], 16); + + if (p_row < MATRIX_ROWS) { + if (m_col < col) g_rgb_frame_buffer[p_row][m_col] = qadd8(g_rgb_frame_buffer[p_row][m_col], 13); + g_rgb_frame_buffer[p_row][col] = qadd8(g_rgb_frame_buffer[p_row][col], 16); + if (p_col < MATRIX_COLS) g_rgb_frame_buffer[p_row][p_col] = qadd8(g_rgb_frame_buffer[p_row][p_col], 13); } - for (uint8_t i_row = 0; i_row < MATRIX_ROWS; i_row++) { - for (uint8_t i_col = 0; i_col < MATRIX_COLS; i_col++) { - if (g_led_config.matrix_co[i_row][i_col] == NO_LED) { // skip as target key doesn't have an led position - continue; - } - if (i_row == row && i_col == col) { - g_rgb_frame_buffer[row][col] = qadd8(g_rgb_frame_buffer[row][col], 32); - } else { -# define LED_DISTANCE(led_a, led_b) sqrt16(((int8_t)(led_a.x - led_b.x) * (int8_t)(led_a.x - led_b.x)) + ((int8_t)(led_a.y - led_b.y) * (int8_t)(led_a.y - led_b.y))) - uint8_t distance = LED_DISTANCE(g_led_config.point[g_led_config.matrix_co[row][col]], g_led_config.point[g_led_config.matrix_co[i_row][i_col]]); -# undef LED_DISTANCE - if (distance <= RGB_MATRIX_TYPING_HEATMAP_SPREAD) { - uint8_t amount = qsub8(RGB_MATRIX_TYPING_HEATMAP_SPREAD, distance); - if (amount > RGB_MATRIX_TYPING_HEATMAP_AREA_LIMIT) { - amount = RGB_MATRIX_TYPING_HEATMAP_AREA_LIMIT; - } - g_rgb_frame_buffer[i_row][i_col] = qadd8(g_rgb_frame_buffer[i_row][i_col], amount); - } - } - } + + if (m_row < row) { + if (m_col < col) g_rgb_frame_buffer[m_row][m_col] = qadd8(g_rgb_frame_buffer[m_row][m_col], 13); + g_rgb_frame_buffer[m_row][col] = qadd8(g_rgb_frame_buffer[m_row][col], 16); + if (p_col < MATRIX_COLS) g_rgb_frame_buffer[m_row][p_col] = qadd8(g_rgb_frame_buffer[m_row][p_col], 13); } # endif } @@ -51,7 +40,10 @@ static uint16_t heatmap_decrease_timer; static bool decrease_heatmap_values; bool TYPING_HEATMAP(effect_params_t* params) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); + // Modified version of RGB_MATRIX_USE_LIMITS to work off of matrix row / col size + uint8_t led_min = RGB_MATRIX_LED_PROCESS_LIMIT * params->iter; + uint8_t led_max = led_min + RGB_MATRIX_LED_PROCESS_LIMIT; + if (led_max > sizeof(g_rgb_frame_buffer)) led_max = sizeof(g_rgb_frame_buffer); if (params->init) { rgb_matrix_set_color_all(0, 0, 0); @@ -71,26 +63,28 @@ bool TYPING_HEATMAP(effect_params_t* params) { } // Render heatmap & decrease - uint8_t count = 0; - for (uint8_t row = 0; row < MATRIX_ROWS && count < RGB_MATRIX_LED_PROCESS_LIMIT; row++) { - for (uint8_t col = 0; col < MATRIX_COLS && RGB_MATRIX_LED_PROCESS_LIMIT; col++) { - if (g_led_config.matrix_co[row][col] >= led_min && g_led_config.matrix_co[row][col] < led_max) { - count++; - uint8_t val = g_rgb_frame_buffer[row][col]; - if (!HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[row][col]], params->flags)) continue; + for (int i = led_min; i < led_max; i++) { + uint8_t row = i % MATRIX_ROWS; + uint8_t col = i / MATRIX_ROWS; + uint8_t val = g_rgb_frame_buffer[row][col]; - HSV hsv = {170 - qsub8(val, 85), rgb_matrix_config.hsv.s, scale8((qadd8(170, val) - 170) * 3, rgb_matrix_config.hsv.v)}; - RGB rgb = rgb_matrix_hsv_to_rgb(hsv); - rgb_matrix_set_color(g_led_config.matrix_co[row][col], rgb.r, rgb.g, rgb.b); + // set the pixel colour + uint8_t led[LED_HITS_TO_REMEMBER]; + uint8_t led_count = rgb_matrix_map_row_column_to_led(row, col, led); + for (uint8_t j = 0; j < led_count; ++j) { + if (!HAS_ANY_FLAGS(g_led_config.flags[led[j]], params->flags)) continue; - if (decrease_heatmap_values) { - g_rgb_frame_buffer[row][col] = qsub8(val, 1); - } - } + HSV hsv = {170 - qsub8(val, 85), rgb_matrix_config.hsv.s, scale8((qadd8(170, val) - 170) * 3, rgb_matrix_config.hsv.v)}; + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(led[j], rgb.r, rgb.g, rgb.b); + } + + if (decrease_heatmap_values) { + g_rgb_frame_buffer[row][col] = qsub8(val, 1); } } - return rgb_matrix_check_finished_leds(led_max); + return led_max < sizeof(g_rgb_frame_buffer); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index a51e379025..f721dfc7f2 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -249,15 +249,8 @@ void process_rgb_matrix(uint8_t row, uint8_t col, bool pressed) { #endif // RGB_MATRIX_KEYREACTIVE_ENABLED #if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) && defined(ENABLE_RGB_MATRIX_TYPING_HEATMAP) -# if defined(RGB_MATRIX_KEYRELEASES) - if (!pressed) -# else - if (pressed) -# endif // defined(RGB_MATRIX_KEYRELEASES) - { - if (rgb_matrix_config.mode == RGB_MATRIX_TYPING_HEATMAP) { - process_rgb_matrix_typing_heatmap(row, col); - } + if (rgb_matrix_config.mode == RGB_MATRIX_TYPING_HEATMAP) { + process_rgb_matrix_typing_heatmap(row, col); } #endif // defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) && defined(ENABLE_RGB_MATRIX_TYPING_HEATMAP) } diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index 4892b7f8d8..7d50adf758 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -57,9 +57,8 @@ static uint8_t connection_errors = 0; volatile bool isLeftHand = true; #if defined(SPLIT_USB_DETECT) -_Static_assert((SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL) <= UINT16_MAX, "Please lower SPLIT_USB_TIMEOUT and/or increase SPLIT_USB_TIMEOUT_POLL."); static bool usbIsActive(void) { - for (uint16_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) { + for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) { // This will return true if a USB connection has been established if (usb_connected_state()) { return true; @@ -94,6 +93,7 @@ static uint8_t peek_matrix_intersection(pin_t out_pin, pin_t in_pin) { __attribute__((weak)) bool is_keyboard_left(void) { #if defined(SPLIT_HAND_PIN) // Test pin SPLIT_HAND_PIN for High/Low, if low it's right hand + setPinInput(SPLIT_HAND_PIN); # ifdef SPLIT_HAND_PIN_LOW_IS_LEFT return !readPin(SPLIT_HAND_PIN); # else @@ -132,14 +132,6 @@ __attribute__((weak)) bool is_keyboard_master(void) { // this code runs before the keyboard is fully initialized void split_pre_init(void) { -#if defined(SPLIT_HAND_PIN) - setPinInput(SPLIT_HAND_PIN); - wait_us(100); -#elif defined(EE_HANDS) - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } -#endif isLeftHand = is_keyboard_left(); #if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) diff --git a/quantum/via.c b/quantum/via.c index d2ef0862cc..320bd5546d 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -64,7 +64,6 @@ void via_qmk_rgblight_get_value(uint8_t *data); #endif #if defined(VIA_QMK_RGB_MATRIX_ENABLE) -# include void via_qmk_rgb_matrix_set_value(uint8_t *data); void via_qmk_rgb_matrix_get_value(uint8_t *data); void eeconfig_update_rgb_matrix(void); @@ -422,7 +421,7 @@ void via_qmk_backlight_get_value(uint8_t *data) { switch (*value_id) { case id_qmk_backlight_brightness: { // level / BACKLIGHT_LEVELS * 255 - value_data[0] = ((uint16_t)get_backlight_level() * UINT8_MAX) / BACKLIGHT_LEVELS; + value_data[0] = ((uint16_t)get_backlight_level()) * 255 / BACKLIGHT_LEVELS; break; } case id_qmk_backlight_effect: { @@ -442,7 +441,7 @@ void via_qmk_backlight_set_value(uint8_t *data) { switch (*value_id) { case id_qmk_backlight_brightness: { // level / 255 * BACKLIGHT_LEVELS - backlight_level_noeeprom(((uint16_t)value_data[0] * BACKLIGHT_LEVELS) / UINT8_MAX); + backlight_level_noeeprom(((uint16_t)value_data[0]) * BACKLIGHT_LEVELS / 255); break; } case id_qmk_backlight_effect: { @@ -461,16 +460,13 @@ void via_qmk_backlight_set_value(uint8_t *data) { #endif // #if defined(VIA_QMK_BACKLIGHT_ENABLE) #if defined(VIA_QMK_RGBLIGHT_ENABLE) -# ifndef RGBLIGHT_LIMIT_VAL -# define RGBLIGHT_LIMIT_VAL 255 -# endif void via_qmk_rgblight_get_value(uint8_t *data) { uint8_t *value_id = &(data[0]); uint8_t *value_data = &(data[1]); switch (*value_id) { case id_qmk_rgblight_brightness: { - value_data[0] = ((uint16_t)rgblight_get_val() * UINT8_MAX) / RGBLIGHT_LIMIT_VAL; + value_data[0] = rgblight_get_val(); break; } case id_qmk_rgblight_effect: { @@ -494,7 +490,7 @@ void via_qmk_rgblight_set_value(uint8_t *data) { uint8_t *value_data = &(data[1]); switch (*value_id) { case id_qmk_rgblight_brightness: { - rgblight_sethsv_noeeprom(rgblight_get_hue(), rgblight_get_sat(), ((uint16_t)value_data[0] * RGBLIGHT_LIMIT_VAL) / UINT8_MAX); + rgblight_sethsv_noeeprom(rgblight_get_hue(), rgblight_get_sat(), value_data[0]); break; } case id_qmk_rgblight_effect: { @@ -521,11 +517,6 @@ void via_qmk_rgblight_set_value(uint8_t *data) { #if defined(VIA_QMK_RGB_MATRIX_ENABLE) -# if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX -# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX -# endif - // VIA supports only 4 discrete values for effect speed; map these to some // useful speed values for RGB Matrix. enum speed_values { @@ -566,7 +557,7 @@ void via_qmk_rgb_matrix_get_value(uint8_t *data) { uint8_t *value_data = &(data[1]); switch (*value_id) { case id_qmk_rgblight_brightness: - value_data[0] = ((uint16_t)rgb_matrix_get_val() * UINT8_MAX) / RGB_MATRIX_MAXIMUM_BRIGHTNESS; + value_data[0] = rgb_matrix_get_val(); break; case id_qmk_rgblight_effect: value_data[0] = rgb_matrix_get_mode(); @@ -586,7 +577,7 @@ void via_qmk_rgb_matrix_set_value(uint8_t *data) { uint8_t *value_data = &(data[1]); switch (*value_id) { case id_qmk_rgblight_brightness: - rgb_matrix_sethsv_noeeprom(rgb_matrix_get_hue(), rgb_matrix_get_sat(), scale8(value_data[0], RGB_MATRIX_MAXIMUM_BRIGHTNESS)); + rgb_matrix_sethsv_noeeprom(rgb_matrix_get_hue(), rgb_matrix_get_sat(), value_data[0]); break; case id_qmk_rgblight_effect: rgb_matrix_mode_noeeprom(value_data[0]); diff --git a/quantum/wear_leveling/tests/backing_mocks.cpp b/quantum/wear_leveling/tests/backing_mocks.cpp deleted file mode 100644 index 1dbb26f8e7..0000000000 --- a/quantum/wear_leveling/tests/backing_mocks.cpp +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "backing_mocks.hpp" - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Backing Store Mock implementation -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -void MockBackingStore::reset_instance() { - for (auto&& e : backing_storage) - e.reset(); - - locked = true; - - backing_erasure_count = 0; - backing_max_write_count = 0; - backing_total_write_count = 0; - - backing_init_invoke_count = 0; - backing_unlock_invoke_count = 0; - backing_erase_invoke_count = 0; - backing_write_invoke_count = 0; - backing_lock_invoke_count = 0; - - init_success_callback = [](std::uint64_t) { return true; }; - erase_success_callback = [](std::uint64_t) { return true; }; - unlock_success_callback = [](std::uint64_t) { return true; }; - write_success_callback = [](std::uint64_t, std::uint32_t) { return true; }; - lock_success_callback = [](std::uint64_t) { return true; }; - - write_log.clear(); -} - -bool MockBackingStore::init(void) { - ++backing_init_invoke_count; - - if (init_success_callback) { - return init_success_callback(backing_init_invoke_count); - } - return true; -} - -bool MockBackingStore::unlock(void) { - ++backing_unlock_invoke_count; - - EXPECT_TRUE(is_locked()) << "Attempted to unlock but was not locked"; - locked = false; - - if (unlock_success_callback) { - return unlock_success_callback(backing_unlock_invoke_count); - } - return true; -} - -bool MockBackingStore::erase(void) { - ++backing_erase_invoke_count; - - // Erase each slot - for (std::size_t i = 0; i < backing_storage.size(); ++i) { - // Drop out of erase early with failure if we need to - if (erase_success_callback && !erase_success_callback(backing_erase_invoke_count)) { - append_log(true); - return false; - } - - backing_storage[i].erase(); - } - - // Keep track of the erase in the write log so that we can verify during tests - append_log(true); - - ++backing_erasure_count; - return true; -} - -bool MockBackingStore::write(uint32_t address, backing_store_int_t value) { - ++backing_write_invoke_count; - - // precondition: value's buffer size already matches BACKING_STORE_WRITE_SIZE - EXPECT_TRUE(address % BACKING_STORE_WRITE_SIZE == 0) << "Supplied address was not aligned with the backing store integral size"; - EXPECT_TRUE(address + BACKING_STORE_WRITE_SIZE <= WEAR_LEVELING_BACKING_SIZE) << "Address would result of out-of-bounds access"; - EXPECT_FALSE(is_locked()) << "Write was attempted without being unlocked first"; - - // Drop out of write early with failure if we need to - if (write_success_callback && !write_success_callback(backing_write_invoke_count, address)) { - return false; - } - - // Write the complement as we're simulating flash memory -- 0xFF means 0x00 - std::size_t index = address / BACKING_STORE_WRITE_SIZE; - backing_storage[index].set(~value); - - // Keep track of the write log so that we can verify during tests - append_log(address, value); - - // Keep track of the total number of writes into the backing store - ++backing_total_write_count; - - return true; -} - -bool MockBackingStore::lock(void) { - ++backing_lock_invoke_count; - - EXPECT_FALSE(is_locked()) << "Attempted to lock but was not unlocked"; - locked = true; - - if (lock_success_callback) { - return lock_success_callback(backing_lock_invoke_count); - } - return true; -} - -bool MockBackingStore::read(uint32_t address, backing_store_int_t& value) const { - // precondition: value's buffer size already matches BACKING_STORE_WRITE_SIZE - EXPECT_TRUE(address % BACKING_STORE_WRITE_SIZE == 0) << "Supplied address was not aligned with the backing store integral size"; - EXPECT_TRUE(address + BACKING_STORE_WRITE_SIZE <= WEAR_LEVELING_BACKING_SIZE) << "Address would result of out-of-bounds access"; - - // Read and take the complement as we're simulating flash memory -- 0xFF means 0x00 - std::size_t index = address / BACKING_STORE_WRITE_SIZE; - value = ~backing_storage[index].get(); - - return true; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Backing Implementation -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -extern "C" bool backing_store_init(void) { - return MockBackingStore::Instance().init(); -} - -extern "C" bool backing_store_unlock(void) { - return MockBackingStore::Instance().unlock(); -} - -extern "C" bool backing_store_erase(void) { - return MockBackingStore::Instance().erase(); -} - -extern "C" bool backing_store_write(uint32_t address, backing_store_int_t value) { - return MockBackingStore::Instance().write(address, value); -} - -extern "C" bool backing_store_lock(void) { - return MockBackingStore::Instance().lock(); -} - -extern "C" bool backing_store_read(uint32_t address, backing_store_int_t* value) { - return MockBackingStore::Instance().read(address, *value); -} diff --git a/quantum/wear_leveling/tests/backing_mocks.hpp b/quantum/wear_leveling/tests/backing_mocks.hpp deleted file mode 100644 index e7af7895f3..0000000000 --- a/quantum/wear_leveling/tests/backing_mocks.hpp +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once -#include -#include -#include -#include -#include -#include -#include - -extern "C" { -#include "fnv.h" -#include "wear_leveling.h" -#include "wear_leveling_internal.h" -}; - -// Maximum number of mock write log entries to keep -using MOCK_WRITE_LOG_MAX_ENTRIES = std::integral_constant; -// Complement to the backing store integral, for emulating flash erases of all bytes=0xFF -using BACKING_STORE_INTEGRAL_COMPLEMENT = std::integral_constant; -// Total number of elements stored in the backing arrays -using BACKING_STORE_ELEMENT_COUNT = std::integral_constant; - -class MockBackingStoreElement { - private: - backing_store_int_t value; - std::size_t writes; - std::size_t erases; - - public: - MockBackingStoreElement() : value(BACKING_STORE_INTEGRAL_COMPLEMENT::value), writes(0), erases(0) {} - void reset() { - erase(); - writes = 0; - erases = 0; - } - void erase() { - if (!is_erased()) { - ++erases; - } - value = BACKING_STORE_INTEGRAL_COMPLEMENT::value; - } - backing_store_int_t get() const { - return value; - } - void set(const backing_store_int_t& v) { - EXPECT_TRUE(is_erased()) << "Attempted write at index which isn't empty."; - value = v; - ++writes; - } - std::size_t num_writes() const { - return writes; - } - std::size_t num_erases() const { - return erases; - } - bool is_erased() const { - return value == BACKING_STORE_INTEGRAL_COMPLEMENT::value; - } -}; - -struct MockBackingStoreLogEntry { - MockBackingStoreLogEntry(uint32_t address, backing_store_int_t value) : address(address), value(value), erased(false) {} - MockBackingStoreLogEntry(bool erased) : address(0), value(0), erased(erased) {} - uint32_t address = 0; // The address of the operation - backing_store_int_t value = 0; // The value of the operation - bool erased = false; // Whether the entire backing store was erased -}; - -class MockBackingStore { - private: - MockBackingStore() { - reset_instance(); - } - - // Type containing each of the entries and the write counts - using storage_t = std::array; - - // Whether the backing store is locked - bool locked; - // The actual data stored in the emulated flash - storage_t backing_storage; - // The number of erase cycles that have occurred - std::uint64_t backing_erasure_count; - // The max number of writes to an element of the backing store - std::uint64_t backing_max_write_count; - // The total number of writes to all elements of the backing store - std::uint64_t backing_total_write_count; - // The write log for the backing store - std::vector write_log; - - // The number of times each API was invoked - std::uint64_t backing_init_invoke_count; - std::uint64_t backing_unlock_invoke_count; - std::uint64_t backing_erase_invoke_count; - std::uint64_t backing_write_invoke_count; - std::uint64_t backing_lock_invoke_count; - - // Whether init should succeed - std::function init_success_callback; - // Whether erase should succeed - std::function erase_success_callback; - // Whether unlocks should succeed - std::function unlock_success_callback; - // Whether writes should succeed - std::function write_success_callback; - // Whether locks should succeed - std::function lock_success_callback; - - template - void append_log(Args&&... args) { - if (write_log.size() < MOCK_WRITE_LOG_MAX_ENTRIES::value) { - write_log.emplace_back(std::forward(args)...); - } - } - - public: - static MockBackingStore& Instance() { - static MockBackingStore instance; - return instance; - } - - std::uint64_t erasure_count() const { - return backing_erasure_count; - } - std::uint64_t max_write_count() const { - return backing_max_write_count; - } - std::uint64_t total_write_count() const { - return backing_total_write_count; - } - - // The number of times each API was invoked - std::uint64_t init_invoke_count() const { - return backing_init_invoke_count; - } - std::uint64_t unlock_invoke_count() const { - return backing_unlock_invoke_count; - } - std::uint64_t erase_invoke_count() const { - return backing_erase_invoke_count; - } - std::uint64_t write_invoke_count() const { - return backing_write_invoke_count; - } - std::uint64_t lock_invoke_count() const { - return backing_lock_invoke_count; - } - - // Clear out the internal data for the next run - void reset_instance(); - - bool is_locked() const { - return locked; - } - - // APIs for the backing store - bool init(); - bool unlock(); - bool erase(); - bool write(std::uint32_t address, backing_store_int_t value); - bool lock(); - bool read(std::uint32_t address, backing_store_int_t& value) const; - - // Control over when init/writes/erases should succeed - void set_init_callback(std::function callback) { - init_success_callback = callback; - } - void set_erase_callback(std::function callback) { - erase_success_callback = callback; - } - void set_unlock_callback(std::function callback) { - unlock_success_callback = callback; - } - void set_write_callback(std::function callback) { - write_success_callback = callback; - } - void set_lock_callback(std::function callback) { - lock_success_callback = callback; - } - - auto storage_begin() const -> decltype(backing_storage.begin()) { - return backing_storage.begin(); - } - auto storage_end() const -> decltype(backing_storage.end()) { - return backing_storage.end(); - } - - auto storage_begin() -> decltype(backing_storage.begin()) { - return backing_storage.begin(); - } - auto storage_end() -> decltype(backing_storage.end()) { - return backing_storage.end(); - } - - auto log_begin() -> decltype(write_log.begin()) { - return write_log.begin(); - } - auto log_end() -> decltype(write_log.end()) { - return write_log.end(); - } - - auto log_begin() const -> decltype(write_log.begin()) { - return write_log.begin(); - } - auto log_end() const -> decltype(write_log.end()) { - return write_log.end(); - } -}; diff --git a/quantum/wear_leveling/tests/rules.mk b/quantum/wear_leveling/tests/rules.mk deleted file mode 100644 index 4d7a964049..0000000000 --- a/quantum/wear_leveling/tests/rules.mk +++ /dev/null @@ -1,66 +0,0 @@ -wear_leveling_common_DEFS := \ - -DWEAR_LEVELING_TESTS -wear_leveling_common_SRC := \ - $(LIB_PATH)/fnv/qmk_fnv_type_validation.c \ - $(LIB_PATH)/fnv/hash_32a.c \ - $(LIB_PATH)/fnv/hash_64a.c \ - $(QUANTUM_PATH)/wear_leveling/wear_leveling.c \ - $(QUANTUM_PATH)/wear_leveling/tests/backing_mocks.cpp -wear_leveling_common_INC := \ - $(LIB_PATH)/fnv \ - $(QUANTUM_PATH)/wear_leveling - -wear_leveling_general_DEFS := \ - $(wear_leveling_common_DEFS) \ - -DBACKING_STORE_WRITE_SIZE=2 \ - -DWEAR_LEVELING_BACKING_SIZE=48 \ - -DWEAR_LEVELING_LOGICAL_SIZE=16 -wear_leveling_general_SRC := \ - $(wear_leveling_common_SRC) \ - $(QUANTUM_PATH)/wear_leveling/tests/wear_leveling_general.cpp -wear_leveling_general_INC := \ - $(wear_leveling_common_INC) - -wear_leveling_2byte_optimized_writes_DEFS := \ - $(wear_leveling_common_DEFS) \ - -DBACKING_STORE_WRITE_SIZE=2 \ - -DWEAR_LEVELING_BACKING_SIZE=65536 \ - -DWEAR_LEVELING_LOGICAL_SIZE=32768 -wear_leveling_2byte_optimized_writes_SRC := \ - $(wear_leveling_common_SRC) \ - $(QUANTUM_PATH)/wear_leveling/tests/wear_leveling_2byte_optimized_writes.cpp -wear_leveling_2byte_optimized_writes_INC := \ - $(wear_leveling_common_INC) - -wear_leveling_2byte_DEFS := \ - $(wear_leveling_common_DEFS) \ - -DBACKING_STORE_WRITE_SIZE=2 \ - -DWEAR_LEVELING_BACKING_SIZE=48 \ - -DWEAR_LEVELING_LOGICAL_SIZE=16 -wear_leveling_2byte_SRC := \ - $(wear_leveling_common_SRC) \ - $(QUANTUM_PATH)/wear_leveling/tests/wear_leveling_2byte.cpp -wear_leveling_2byte_INC := \ - $(wear_leveling_common_INC) - -wear_leveling_4byte_DEFS := \ - $(wear_leveling_common_DEFS) \ - -DBACKING_STORE_WRITE_SIZE=4 \ - -DWEAR_LEVELING_BACKING_SIZE=48 \ - -DWEAR_LEVELING_LOGICAL_SIZE=16 -wear_leveling_4byte_SRC := \ - $(wear_leveling_common_SRC) \ - $(QUANTUM_PATH)/wear_leveling/tests/wear_leveling_4byte.cpp -wear_leveling_4byte_INC := \ - $(wear_leveling_common_INC) - -wear_leveling_8byte_DEFS := \ - $(wear_leveling_common_DEFS) \ - -DBACKING_STORE_WRITE_SIZE=8 \ - -DWEAR_LEVELING_BACKING_SIZE=48 \ - -DWEAR_LEVELING_LOGICAL_SIZE=16 -wear_leveling_8byte_SRC := \ - $(wear_leveling_common_SRC) \ - $(QUANTUM_PATH)/wear_leveling/tests/wear_leveling_8byte.cpp -wear_leveling_8byte_INC := \ - $(wear_leveling_common_INC) \ No newline at end of file diff --git a/quantum/wear_leveling/tests/testlist.mk b/quantum/wear_leveling/tests/testlist.mk deleted file mode 100644 index 32cfc178b4..0000000000 --- a/quantum/wear_leveling/tests/testlist.mk +++ /dev/null @@ -1,6 +0,0 @@ -TEST_LIST += \ - wear_leveling_general \ - wear_leveling_2byte_optimized_writes \ - wear_leveling_2byte \ - wear_leveling_4byte \ - wear_leveling_8byte diff --git a/quantum/wear_leveling/tests/wear_leveling_2byte.cpp b/quantum/wear_leveling/tests/wear_leveling_2byte.cpp deleted file mode 100644 index b749c32b04..0000000000 --- a/quantum/wear_leveling/tests/wear_leveling_2byte.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "backing_mocks.hpp" - -class WearLeveling2Byte : public ::testing::Test { - protected: - void SetUp() override { - MockBackingStore::Instance().reset_instance(); - wear_leveling_init(); - } -}; - -static std::array verify_data; - -static wear_leveling_status_t test_write(const uint32_t address, const void* value, size_t length) { - memcpy(&verify_data[address], value, length); - return wear_leveling_write(address, value, length); -} - -/** - * This test verifies that the first write after initialisation occurs after the FNV1a_64 hash location. - */ -TEST_F(WearLeveling2Byte, FirstWriteOccursAfterHash) { - auto& inst = MockBackingStore::Instance(); - uint8_t test_value = 0x15; - test_write(0x02, &test_value, sizeof(test_value)); - EXPECT_EQ(inst.log_begin()->address, WEAR_LEVELING_LOGICAL_SIZE + 8) << "Invalid first write address."; -} - -/** - * This test verifies that the first write after initialisation occurs after the FNV1a_64 hash location, after an erase has occurred. - */ -TEST_F(WearLeveling2Byte, FirstWriteOccursAfterHash_AfterErase) { - auto& inst = MockBackingStore::Instance(); - uint8_t test_value = 0x15; - wear_leveling_erase(); - test_write(0x02, &test_value, sizeof(test_value)); - EXPECT_EQ((inst.log_begin() + 1)->address, WEAR_LEVELING_LOGICAL_SIZE + 8) << "Invalid first write address."; -} - -/** - * This test forces consolidation by writing enough to the write log that it overflows, consolidating the data into the - * base logical area. - */ -TEST_F(WearLeveling2Byte, ConsolidationOverflow) { - auto& inst = MockBackingStore::Instance(); - - // Generate a test block of data which forces OPTIMIZED_64 writes - std::array testvalue; - - // Write the data - std::iota(testvalue.begin(), testvalue.end(), 0x20); - EXPECT_EQ(test_write(0, testvalue.data(), testvalue.size()), WEAR_LEVELING_CONSOLIDATED) << "Write returned incorrect status"; - uint8_t dummy = 0x40; - EXPECT_EQ(test_write(0x04, &dummy, sizeof(dummy)), WEAR_LEVELING_SUCCESS) << "Write returned incorrect status"; - - // All writes are at address<64, so each logical byte written will generate 1 write log entry, thus 1 backing store write. - // Expected log: - // [0..11]: optimised64, backing address 0x18, logical address 0x00 - // [12]: erase - // [13..20]: consolidated data, backing address 0x00, logical address 0x00 - // [21..24]: FNV1a_64 result, backing address 0x10 - // [25]: optimised64, backing address 0x18, logical address 0x04 - EXPECT_EQ(std::distance(inst.log_begin(), inst.log_end()), 26); - - // Verify the backing store writes for the write log - std::size_t index; - write_log_entry_t e; - for (index = 0; index < 12; ++index) { - auto write_iter = inst.log_begin() + index; - EXPECT_EQ(write_iter->address, WEAR_LEVELING_LOGICAL_SIZE + 8 + (index * BACKING_STORE_WRITE_SIZE)) << "Invalid write log address"; - e.raw16[0] = write_iter->value; - EXPECT_EQ(LOG_ENTRY_GET_TYPE(e), LOG_ENTRY_TYPE_OPTIMIZED_64) << "Invalid write log entry type"; - } - - // Verify the backing store erase - { - index = 12; - auto write_iter = inst.log_begin() + index; - e.raw16[0] = write_iter->value; - EXPECT_TRUE(write_iter->erased) << "Backing store erase did not occur as required"; - } - - // Verify the backing store writes for consolidation - for (index = 13; index < 21; ++index) { - auto write_iter = inst.log_begin() + index; - EXPECT_EQ(write_iter->address, (index - 13) * BACKING_STORE_WRITE_SIZE) << "Invalid write log entry address"; - } - - // Verify the FNV1a_64 write - { - EXPECT_EQ((inst.log_begin() + 21)->address, WEAR_LEVELING_LOGICAL_SIZE) << "Invalid write log address"; - e.raw16[0] = (inst.log_begin() + 21)->value; - e.raw16[1] = (inst.log_begin() + 22)->value; - e.raw16[2] = (inst.log_begin() + 23)->value; - e.raw16[3] = (inst.log_begin() + 24)->value; - EXPECT_EQ(e.raw64, fnv_64a_buf(testvalue.data(), testvalue.size(), FNV1A_64_INIT)) << "Invalid checksum"; // Note that checksum is based on testvalue, as we overwrote one byte and need to consult the consolidated data, not the current - } - - // Verify the final write - EXPECT_EQ((inst.log_begin() + 25)->address, WEAR_LEVELING_LOGICAL_SIZE + 8) << "Invalid write log address"; - - // Verify the data is what we expected - std::array readback; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback did not match"; - - // Re-init and re-read, verifying the reload capability - EXPECT_NE(wear_leveling_init(), WEAR_LEVELING_FAILED) << "Re-initialisation failed"; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback did not match"; -} - -/** - * This test verifies multibyte readback gets canceled with an out-of-bounds address. - */ -TEST_F(WearLeveling2Byte, PlaybackReadbackMultibyte_OOB) { - auto& inst = MockBackingStore::Instance(); - auto logstart = inst.storage_begin() + (WEAR_LEVELING_LOGICAL_SIZE / sizeof(backing_store_int_t)); - - // Invalid FNV1a_64 hash - (logstart + 0)->set(0); - (logstart + 1)->set(0); - (logstart + 2)->set(0); - (logstart + 3)->set(0); - - // Set up a 2-byte logical write of [0x11,0x12] at logical offset 0x01 - auto entry0 = LOG_ENTRY_MAKE_MULTIBYTE(0x01, 2); - entry0.raw8[3] = 0x11; - entry0.raw8[4] = 0x12; - (logstart + 4)->set(~entry0.raw16[0]); - (logstart + 5)->set(~entry0.raw16[1]); - (logstart + 6)->set(~entry0.raw16[2]); - - // Set up a 2-byte logical write of [0x13,0x14] at logical offset 0x1000 (out of bounds) - auto entry1 = LOG_ENTRY_MAKE_MULTIBYTE(0x1000, 2); - entry1.raw8[3] = 0x13; - entry1.raw8[4] = 0x14; - (logstart + 7)->set(~entry1.raw16[0]); - (logstart + 8)->set(~entry1.raw16[1]); - (logstart + 9)->set(~entry1.raw16[2]); - - // Set up a 2-byte logical write of [0x15,0x16] at logical offset 0x01 - auto entry2 = LOG_ENTRY_MAKE_MULTIBYTE(0x01, 2); - entry2.raw8[3] = 0x15; - entry2.raw8[4] = 0x16; - (logstart + 10)->set(~entry2.raw16[0]); - (logstart + 11)->set(~entry2.raw16[1]); - (logstart + 12)->set(~entry2.raw16[2]); - - EXPECT_EQ(inst.erasure_count(), 0) << "Invalid initial erase count"; - EXPECT_EQ(wear_leveling_init(), WEAR_LEVELING_CONSOLIDATED) << "Readback should have failed and triggered consolidation"; - EXPECT_EQ(inst.erasure_count(), 1) << "Invalid final erase count"; - - uint8_t buf[2]; - wear_leveling_read(0x01, buf, sizeof(buf)); - EXPECT_EQ(buf[0], 0x11) << "Readback should have maintained the previous pre-failure value from the write log"; - EXPECT_EQ(buf[1], 0x12) << "Readback should have maintained the previous pre-failure value from the write log"; -} - -/** - * This test verifies optimized 64 readback gets canceled with an out-of-bounds address. - */ -TEST_F(WearLeveling2Byte, PlaybackReadbackOptimized64_OOB) { - auto& inst = MockBackingStore::Instance(); - auto logstart = inst.storage_begin() + (WEAR_LEVELING_LOGICAL_SIZE / sizeof(backing_store_int_t)); - - // Invalid FNV1a_64 hash - (logstart + 0)->set(0); - (logstart + 1)->set(0); - (logstart + 2)->set(0); - (logstart + 3)->set(0); - - // Set up a 1-byte logical write of 0x11 at logical offset 0x01 - auto entry0 = LOG_ENTRY_MAKE_OPTIMIZED_64(0x01, 0x11); - (logstart + 4)->set(~entry0.raw16[0]); - - // Set up a 1-byte logical write of 0x11 at logical offset 0x30 (out of bounds) - auto entry1 = LOG_ENTRY_MAKE_OPTIMIZED_64(0x30, 0x11); - (logstart + 5)->set(~entry1.raw16[0]); - - // Set up a 1-byte logical write of 0x12 at logical offset 0x01 - auto entry2 = LOG_ENTRY_MAKE_OPTIMIZED_64(0x01, 0x12); - (logstart + 6)->set(~entry2.raw16[0]); - - EXPECT_EQ(inst.erasure_count(), 0) << "Invalid initial erase count"; - EXPECT_EQ(wear_leveling_init(), WEAR_LEVELING_CONSOLIDATED) << "Readback should have failed and triggered consolidation"; - EXPECT_EQ(inst.erasure_count(), 1) << "Invalid final erase count"; - uint8_t tmp; - wear_leveling_read(0x01, &tmp, sizeof(tmp)); - EXPECT_EQ(tmp, 0x11) << "Readback should have maintained the previous pre-failure value from the write log"; -} - -/** - * This test verifies word 0/1 readback gets canceled with an out-of-bounds address. - */ -TEST_F(WearLeveling2Byte, PlaybackReadbackWord01_OOB) { - auto& inst = MockBackingStore::Instance(); - auto logstart = inst.storage_begin() + (WEAR_LEVELING_LOGICAL_SIZE / sizeof(backing_store_int_t)); - - // Invalid FNV1a_64 hash - (logstart + 0)->set(0); - (logstart + 1)->set(0); - (logstart + 2)->set(0); - (logstart + 3)->set(0); - - // Set up a 1-byte logical write of 1 at logical offset 0x02 - auto entry0 = LOG_ENTRY_MAKE_WORD_01(0x02, 1); - (logstart + 4)->set(~entry0.raw16[0]); - - // Set up a 1-byte logical write of 1 at logical offset 0x1000 (out of bounds) - auto entry1 = LOG_ENTRY_MAKE_WORD_01(0x1000, 1); - (logstart + 5)->set(~entry1.raw16[0]); - - // Set up a 1-byte logical write of 0 at logical offset 0x02 - auto entry2 = LOG_ENTRY_MAKE_WORD_01(0x02, 0); - (logstart + 6)->set(~entry2.raw16[0]); - - EXPECT_EQ(inst.erasure_count(), 0) << "Invalid initial erase count"; - EXPECT_EQ(wear_leveling_init(), WEAR_LEVELING_CONSOLIDATED) << "Readback should have failed and triggered consolidation"; - EXPECT_EQ(inst.erasure_count(), 1) << "Invalid final erase count"; - uint8_t tmp; - wear_leveling_read(0x02, &tmp, sizeof(tmp)); - EXPECT_EQ(tmp, 1) << "Readback should have maintained the previous pre-failure value from the write log"; -} diff --git a/quantum/wear_leveling/tests/wear_leveling_2byte_optimized_writes.cpp b/quantum/wear_leveling/tests/wear_leveling_2byte_optimized_writes.cpp deleted file mode 100644 index 0b03113c89..0000000000 --- a/quantum/wear_leveling/tests/wear_leveling_2byte_optimized_writes.cpp +++ /dev/null @@ -1,295 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "backing_mocks.hpp" - -class WearLeveling2ByteOptimizedWrites : public ::testing::Test { - protected: - void SetUp() override { - MockBackingStore::Instance().reset_instance(); - wear_leveling_init(); - } -}; - -static std::array verify_data; - -static wear_leveling_status_t test_write(const uint32_t address, const void* value, size_t length) { - memcpy(&verify_data[address], value, length); - return wear_leveling_write(address, value, length); -} - -/** - * This test ensures the correct number of backing store writes occurs with a multibyte write, given the input buffer size. - */ -TEST_F(WearLeveling2ByteOptimizedWrites, MultibyteBackingStoreWriteCounts) { - auto& inst = MockBackingStore::Instance(); - - for (std::size_t length = 1; length <= 5; ++length) { - // Clear things out - std::fill(verify_data.begin(), verify_data.end(), 0); - inst.reset_instance(); - wear_leveling_init(); - - // Generate a test block of data - std::vector testvalue(length); - std::iota(testvalue.begin(), testvalue.end(), 0x20); - - // Write the data - EXPECT_EQ(test_write(2000, testvalue.data(), testvalue.size()), WEAR_LEVELING_SUCCESS) << "Write failed with incorrect status"; - - std::size_t expected; - if (length > 3) { - expected = 4; - } else if (length > 1) { - expected = 3; - } else { - expected = 2; - } - - // Check that we got the expected number of write log entries - EXPECT_EQ(std::distance(inst.log_begin(), inst.log_end()), expected); - } -} - -/** - * This test runs through writing U16 values of `0` or `1` over the entire logical address range, to even addresses only. - * - Addresses <16384 will result in a single optimised backing write - * - Higher addresses will result in a multibyte write of 3 backing writes - */ -TEST_F(WearLeveling2ByteOptimizedWrites, WriteOneThenZeroToEvenAddresses) { - auto& inst = MockBackingStore::Instance(); - - // Only attempt writes for each address up to a limit that would NOT force a consolidated data write. - std::size_t writes_per_loop = (MOCK_WRITE_LOG_MAX_ENTRIES::value / 6) - 1; // Worst case is 6 writes for each pair of writes of 0/1 - std::size_t final_address; - for (uint32_t address = 0; address < WEAR_LEVELING_LOGICAL_SIZE; address += (writes_per_loop * 2)) { - // Clear things out - std::fill(verify_data.begin(), verify_data.end(), 0); - inst.reset_instance(); - wear_leveling_init(); - - // Loop through all the addresses in this range - std::size_t expected = 0; - for (uint32_t offset = 0; offset < (writes_per_loop * 2); offset += 2) { - // If we're about to exceed the limit of the logical store, skip the writes - if (address + offset + 2 > WEAR_LEVELING_LOGICAL_SIZE) { - break; - } - - // The default erased value of the wear-leveling cache is zero, so we write a one first, then a zero, to ensure a backing store write occurs. - uint16_t val = 1; - EXPECT_EQ(test_write(address + offset, &val, sizeof(val)), WEAR_LEVELING_SUCCESS) << "Write failed with incorrect status"; - val = 0; - EXPECT_EQ(test_write(address + offset, &val, sizeof(val)), WEAR_LEVELING_SUCCESS) << "Write failed with incorrect status"; - - std::size_t backing_store_writes_expected = 0; - if (address + offset < 16384) { - // A U16 value of 0/1 at an even address <16384 will result in 1 backing write each, so we need 2 backing writes for 2 logical writes - backing_store_writes_expected = 2; - } else { - // All other addresses result in a multibyte write (3 backing store writes) to write two local bytes of data - backing_store_writes_expected = 6; - } - - // Keep track of the total number of expected writes to the backing store - expected += backing_store_writes_expected; - - // Verify we're at the correct number of writes - EXPECT_EQ(std::distance(inst.log_begin(), inst.log_end()), expected) << "Write log doesn't match required number of backing store writes for address " << (address + offset); - - // Verify that the write log entries we expect are actually present - std::size_t write_index = expected - backing_store_writes_expected; - auto write_iter = inst.log_begin() + write_index; - write_log_entry_t e; - if (address + offset < 16384) { - // A U16 value of 0/1 at an even address <16384 will result in 1 backing write each, so we need 2 backing writes for 2 logical writes - for (std::size_t i = 0; i < 2; ++i) { - e.raw16[0] = write_iter->value; - EXPECT_EQ(LOG_ENTRY_GET_TYPE(e), LOG_ENTRY_TYPE_WORD_01) << "Invalid write log entry type at " << (address + offset); - ++write_iter; - } - } else { - // Multibyte write - e.raw16[0] = write_iter->value; - EXPECT_EQ(LOG_ENTRY_GET_TYPE(e), LOG_ENTRY_TYPE_MULTIBYTE) << "Invalid write log entry type at " << (address + offset); - EXPECT_EQ(LOG_ENTRY_MULTIBYTE_GET_LENGTH(e), 2) << "Invalid write log entry length at " << (address + offset); - ++write_iter; - } - - // Keep track of the final address written, so we can verify the entire logical range was handled - final_address = address + offset; - } - - // Verify the number of writes that occurred to the backing store - size_t backing_write_count = std::distance(inst.log_begin(), inst.log_end()); - EXPECT_EQ(backing_write_count, expected) << "Invalid write count at address " << address; - - // Verify the data is what we expected - std::array readback; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback for address " << address << " did not match"; - - // Re-init and re-read, testing the reload capability - EXPECT_NE(wear_leveling_init(), WEAR_LEVELING_FAILED) << "Re-initialisation failed"; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback for address " << address << " did not match"; - } - - // Verify the full range of the logical area got written - EXPECT_EQ(final_address, WEAR_LEVELING_LOGICAL_SIZE - 2) << "Invalid final write address"; -} - -/** - * This test runs through writing U16 values of `0` or `1` over the entire logical address range, to odd addresses only. - * - Addresses <63 will result in 2 optimised backing writes - * - Address 63 results in a single optimised backing write for the first logical byte, and a multibyte write of 2 backing writes for the second logical byte - * - Higher addresses will result in a multibyte write of 3 backing writes - */ -TEST_F(WearLeveling2ByteOptimizedWrites, WriteOneThenZeroToOddAddresses) { - auto& inst = MockBackingStore::Instance(); - - // Only attempt writes for each address up to a limit that would NOT force a consolidated data write. - std::size_t writes_per_loop = (MOCK_WRITE_LOG_MAX_ENTRIES::value / 6) - 1; // Worst case is 6 writes for each pair of writes of 0/1 - std::size_t final_address; - for (uint32_t address = 1; address < WEAR_LEVELING_LOGICAL_SIZE; address += (writes_per_loop * 2)) { - // Clear things out - std::fill(verify_data.begin(), verify_data.end(), 0); - inst.reset_instance(); - wear_leveling_init(); - - // Loop through all the addresses in this range - std::size_t expected = 0; - for (uint32_t offset = 0; offset < (writes_per_loop * 2); offset += 2) { - // If we're about to exceed the limit of the logical store, skip the writes - if (address + offset + 2 > WEAR_LEVELING_LOGICAL_SIZE) { - break; - } - - // The default erased value of the wear-leveling cache is zero, so we write a one first, then a zero, to ensure a backing store write occurs. - uint16_t val = 1; - EXPECT_EQ(test_write(address + offset, &val, sizeof(val)), WEAR_LEVELING_SUCCESS) << "Write failed with incorrect status"; - val = 0; - EXPECT_EQ(test_write(address + offset, &val, sizeof(val)), WEAR_LEVELING_SUCCESS) << "Write failed with incorrect status"; - - std::size_t backing_store_writes_expected = 0; - if (address + offset < 63) { - // A U16 value of 0/1 at an odd address <64 will result in 2 backing writes each, so we need 4 backing writes for 2 logical writes - backing_store_writes_expected = 4; - } else if (address + offset == 63) { - // If we're straddling the boundary for optimised bytes (addr==64), then the first logical byte is written using the optimised write (1 backing - // store write), and the second logical byte uses a multibyte write (2 backing store writes) - backing_store_writes_expected = 2 // First logical bytes written using optimised log entries - + 4; // Second logical bytes written using multibyte log entries - } else { - // All other addresses result in a multibyte write (3 backing store writes) to write two local bytes of data - backing_store_writes_expected = 6; - } - - // Keep track of the total number of expected writes to the backing store - expected += backing_store_writes_expected; - - // Verify we're at the correct number of writes - EXPECT_EQ(std::distance(inst.log_begin(), inst.log_end()), expected) << "Write log doesn't match required number of backing store writes for address " << (address + offset); - - // Verify that the write log entries we expect are actually present - std::size_t write_index = expected - backing_store_writes_expected; - auto write_iter = inst.log_begin() + write_index; - write_log_entry_t e; - if (address + offset < 63) { - // A U16 value of 0/1 at an odd address <64 will result in 2 backing writes each, so we need 4 backing writes for 2 logical writes - for (std::size_t i = 0; i < 4; ++i) { - e.raw16[0] = write_iter->value; - EXPECT_EQ(LOG_ENTRY_GET_TYPE(e), LOG_ENTRY_TYPE_OPTIMIZED_64) << "Invalid write log entry type"; - ++write_iter; - } - } else if (address + offset == 63) { - // First log entry is the 64-addr optimised one - e.raw16[0] = write_iter->value; - EXPECT_EQ(LOG_ENTRY_GET_TYPE(e), LOG_ENTRY_TYPE_OPTIMIZED_64) << "Invalid write log entry type"; - ++write_iter; - - // Second log entry is the multibyte entry for the second logical byte - e.raw16[0] = write_iter->value; - EXPECT_EQ(LOG_ENTRY_GET_TYPE(e), LOG_ENTRY_TYPE_MULTIBYTE) << "Invalid write log entry type"; - EXPECT_EQ(LOG_ENTRY_MULTIBYTE_GET_LENGTH(e), 1) << "Invalid write log entry length"; - ++write_iter; - } else { - // Multibyte write - e.raw16[0] = write_iter->value; - EXPECT_EQ(LOG_ENTRY_GET_TYPE(e), LOG_ENTRY_TYPE_MULTIBYTE) << "Invalid write log entry type"; - EXPECT_EQ(LOG_ENTRY_MULTIBYTE_GET_LENGTH(e), 2) << "Invalid write log entry length"; - ++write_iter; - } - - // Keep track of the final address written, so we can verify the entire logical range was handled - final_address = address + offset; - } - - // Verify the number of writes that occurred to the backing store - size_t backing_write_count = std::distance(inst.log_begin(), inst.log_end()); - EXPECT_EQ(backing_write_count, expected) << "Invalid write count at address " << address; - - // Verify the data is what we expected - std::array readback; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback for address " << address << " did not match"; - - // Re-init and re-read, testing the reload capability - EXPECT_NE(wear_leveling_init(), WEAR_LEVELING_FAILED) << "Re-initialisation failed"; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback for address " << address << " did not match"; - } - - // Verify the full range of the logical area got written - EXPECT_EQ(final_address, WEAR_LEVELING_LOGICAL_SIZE - 3) << "Invalid final write address"; -} - -/** - * This test verifies readback after playback of the write log, simulating power loss and reboot. - */ -TEST_F(WearLeveling2ByteOptimizedWrites, PlaybackReadbackOptimized64_Success) { - auto& inst = MockBackingStore::Instance(); - auto logstart = inst.storage_begin() + (WEAR_LEVELING_LOGICAL_SIZE / sizeof(backing_store_int_t)); - - // Invalid FNV1a_64 hash - (logstart + 0)->set(0); - (logstart + 1)->set(0); - (logstart + 2)->set(0); - (logstart + 3)->set(0); - - // Set up a 1-byte logical write of 0x11 at logical offset 0x01 - auto entry0 = LOG_ENTRY_MAKE_OPTIMIZED_64(0x01, 0x11); - (logstart + 4)->set(~entry0.raw16[0]); // start at offset 4 to skip FNV1a_64 result - - wear_leveling_init(); - uint8_t tmp; - - wear_leveling_read(0x01, &tmp, sizeof(tmp)); - EXPECT_EQ(tmp, 0x11) << "Failed to read back the seeded data"; -} - -/** - * This test verifies readback after playback of the write log, simulating power loss and reboot. - */ -TEST_F(WearLeveling2ByteOptimizedWrites, PlaybackReadbackWord01_Success) { - auto& inst = MockBackingStore::Instance(); - auto logstart = inst.storage_begin() + (WEAR_LEVELING_LOGICAL_SIZE / sizeof(backing_store_int_t)); - - // Invalid FNV1a_64 hash - (logstart + 0)->set(0); - (logstart + 1)->set(0); - (logstart + 2)->set(0); - (logstart + 3)->set(0); - - // Set up a 1-byte logical write of 1 at logical offset 0x02 - auto entry0 = LOG_ENTRY_MAKE_WORD_01(0x02, 1); - (logstart + 4)->set(~entry0.raw16[0]); // start at offset 4 to skip FNV1a_64 result - - wear_leveling_init(); - uint8_t tmp; - - wear_leveling_read(0x02, &tmp, sizeof(tmp)); - EXPECT_EQ(tmp, 1) << "Failed to read back the seeded data"; -} diff --git a/quantum/wear_leveling/tests/wear_leveling_4byte.cpp b/quantum/wear_leveling/tests/wear_leveling_4byte.cpp deleted file mode 100644 index 54482c5fe7..0000000000 --- a/quantum/wear_leveling/tests/wear_leveling_4byte.cpp +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "backing_mocks.hpp" - -class WearLeveling4Byte : public ::testing::Test { - protected: - void SetUp() override { - MockBackingStore::Instance().reset_instance(); - wear_leveling_init(); - } -}; - -static std::array verify_data; - -static wear_leveling_status_t test_write(const uint32_t address, const void* value, size_t length) { - memcpy(&verify_data[address], value, length); - return wear_leveling_write(address, value, length); -} - -/** - * This test verifies that the first write after initialisation occurs after the FNV1a_64 hash location. - */ -TEST_F(WearLeveling4Byte, FirstWriteOccursAfterHash) { - auto& inst = MockBackingStore::Instance(); - uint8_t test_value = 0x15; - test_write(0x02, &test_value, sizeof(test_value)); - EXPECT_EQ(inst.log_begin()->address, WEAR_LEVELING_LOGICAL_SIZE + 8) << "Invalid first write address."; -} - -/** - * This test verifies that the first write after initialisation occurs after the FNV1a_64 hash location, after an erase has occurred. - */ -TEST_F(WearLeveling4Byte, FirstWriteOccursAfterHash_AfterErase) { - auto& inst = MockBackingStore::Instance(); - uint8_t test_value = 0x15; - wear_leveling_erase(); - test_write(0x02, &test_value, sizeof(test_value)); - EXPECT_EQ((inst.log_begin() + 1)->address, WEAR_LEVELING_LOGICAL_SIZE + 8) << "Invalid first write address."; -} - -/** - * This test ensures the correct number of backing store writes occurs with a multibyte write, given the input buffer size. - */ -TEST_F(WearLeveling4Byte, MultibyteBackingStoreWriteCounts) { - auto& inst = MockBackingStore::Instance(); - - for (std::size_t length = 1; length <= 5; ++length) { - // Clear things out - std::fill(verify_data.begin(), verify_data.end(), 0); - inst.reset_instance(); - wear_leveling_init(); - - // Generate a test block of data - std::vector testvalue(length); - std::iota(testvalue.begin(), testvalue.end(), 0x20); - - // Write the data - EXPECT_EQ(test_write(0, testvalue.data(), testvalue.size()), WEAR_LEVELING_SUCCESS) << "Write failed with incorrect status"; - - std::size_t expected; - if (length > 1) { - expected = 2; - } else { - expected = 1; - } - - // Check that we got the expected number of write log entries - EXPECT_EQ(std::distance(inst.log_begin(), inst.log_end()), expected); - } -} - -/** - * This test forces consolidation by writing enough to the write log that it overflows, consolidating the data into the - * base logical area. - */ -TEST_F(WearLeveling4Byte, ConsolidationOverflow) { - auto& inst = MockBackingStore::Instance(); - - // Generate a test block of data - std::array testvalue; - - // Write the data - std::iota(testvalue.begin(), testvalue.end(), 0x20); - EXPECT_EQ(test_write(0, testvalue.data(), testvalue.size()), WEAR_LEVELING_CONSOLIDATED) << "Write returned incorrect status"; - uint8_t dummy = 0x40; - EXPECT_EQ(test_write(0x04, &dummy, sizeof(dummy)), WEAR_LEVELING_SUCCESS) << "Write returned incorrect status"; - - // Expected log: - // [0,1]: multibyte, 5 bytes, backing address 0x18, logical address 0x00 - // [2,3]: multibyte, 5 bytes, backing address 0x20, logical address 0x05 - // [4,5]: multibyte, 5 bytes, backing address 0x28, logical address 0x0A, triggers consolidation - // [6]: erase - // [7,8]: consolidated data, backing address 0x00, logical address 0x00 - // [9,10]: consolidated data, backing address 0x08, logical address 0x08 - // [11,12]: FNV1a_64 result, backing address 0x10 - // [13]: multibyte, 1 byte, backing address 0x18, logical address 0x04 - EXPECT_EQ(std::distance(inst.log_begin(), inst.log_end()), 14); - - // Verify the backing store writes for the write log - std::size_t index; - write_log_entry_t e; - for (index = 0; index < 6; ++index) { - auto write_iter = inst.log_begin() + index; - EXPECT_EQ(write_iter->address, WEAR_LEVELING_LOGICAL_SIZE + 8 + (index * BACKING_STORE_WRITE_SIZE)) << "Invalid write log address"; - - // If this is the backing store write that contains the metadata, verify it - if (index % 2 == 0) { - write_log_entry_t e; - e.raw64 = write_iter->value; - EXPECT_EQ(LOG_ENTRY_GET_TYPE(e), LOG_ENTRY_TYPE_MULTIBYTE) << "Invalid write log entry type"; - } - } - - // Verify the backing store erase - { - index = 6; - auto write_iter = inst.log_begin() + index; - e.raw64 = write_iter->value; - EXPECT_TRUE(write_iter->erased) << "Backing store erase did not occur as required"; - } - - // Verify the backing store writes for consolidation - for (index = 7; index < 11; ++index) { - auto write_iter = inst.log_begin() + index; - EXPECT_EQ(write_iter->address, (index - 7) * BACKING_STORE_WRITE_SIZE) << "Invalid write log entry address"; - } - - // Verify the FNV1a_64 write - { - EXPECT_EQ((inst.log_begin() + 11)->address, WEAR_LEVELING_LOGICAL_SIZE) << "Invalid write log address"; - e.raw32[0] = (inst.log_begin() + 11)->value; - e.raw32[1] = (inst.log_begin() + 12)->value; - EXPECT_EQ(e.raw64, fnv_64a_buf(testvalue.data(), testvalue.size(), FNV1A_64_INIT)) << "Invalid checksum"; // Note that checksum is based on testvalue, as we overwrote one byte and need to consult the consolidated data, not the current - } - - // Verify the final write - EXPECT_EQ((inst.log_begin() + 13)->address, WEAR_LEVELING_LOGICAL_SIZE + 8) << "Invalid write log address"; - - // Verify the data is what we expected - std::array readback; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback did not match"; - - // Re-init and re-read, verifying the reload capability - EXPECT_NE(wear_leveling_init(), WEAR_LEVELING_FAILED) << "Re-initialisation failed"; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback did not match"; -} - -/** - * This test verifies multibyte readback gets canceled with an out-of-bounds address. - */ -TEST_F(WearLeveling4Byte, PlaybackReadbackMultibyte_OOB) { - auto& inst = MockBackingStore::Instance(); - auto logstart = inst.storage_begin() + (WEAR_LEVELING_LOGICAL_SIZE / sizeof(backing_store_int_t)); - - // Invalid FNV1a_64 hash - (logstart + 0)->set(0); - (logstart + 1)->set(0); - - // Set up a 2-byte logical write of [0x11,0x12] at logical offset 0x01 - auto entry0 = LOG_ENTRY_MAKE_MULTIBYTE(0x01, 2); - entry0.raw8[3] = 0x11; - entry0.raw8[4] = 0x12; - (logstart + 2)->set(~entry0.raw32[0]); - (logstart + 3)->set(~entry0.raw32[1]); - - // Set up a 2-byte logical write of [0x13,0x14] at logical offset 0x1000 (out of bounds) - auto entry1 = LOG_ENTRY_MAKE_MULTIBYTE(0x1000, 2); - entry1.raw8[3] = 0x13; - entry1.raw8[4] = 0x14; - (logstart + 4)->set(~entry1.raw32[0]); - (logstart + 5)->set(~entry1.raw32[1]); - - // Set up a 2-byte logical write of [0x15,0x16] at logical offset 0x10 - auto entry2 = LOG_ENTRY_MAKE_MULTIBYTE(0x01, 2); - entry2.raw8[3] = 0x15; - entry2.raw8[4] = 0x16; - (logstart + 6)->set(~entry2.raw32[0]); - (logstart + 7)->set(~entry2.raw32[1]); - - EXPECT_EQ(inst.erasure_count(), 0) << "Invalid initial erase count"; - EXPECT_EQ(wear_leveling_init(), WEAR_LEVELING_CONSOLIDATED) << "Readback should have failed and triggered consolidation"; - EXPECT_EQ(inst.erasure_count(), 1) << "Invalid final erase count"; - - uint8_t buf[2]; - wear_leveling_read(0x01, buf, sizeof(buf)); - EXPECT_EQ(buf[0], 0x11) << "Readback should have maintained the previous pre-failure value from the write log"; - EXPECT_EQ(buf[1], 0x12) << "Readback should have maintained the previous pre-failure value from the write log"; -} diff --git a/quantum/wear_leveling/tests/wear_leveling_8byte.cpp b/quantum/wear_leveling/tests/wear_leveling_8byte.cpp deleted file mode 100644 index c27c21d034..0000000000 --- a/quantum/wear_leveling/tests/wear_leveling_8byte.cpp +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "backing_mocks.hpp" - -class WearLeveling8Byte : public ::testing::Test { - protected: - void SetUp() override { - MockBackingStore::Instance().reset_instance(); - wear_leveling_init(); - } -}; - -static std::array verify_data; - -static wear_leveling_status_t test_write(const uint32_t address, const void* value, size_t length) { - memcpy(&verify_data[address], value, length); - return wear_leveling_write(address, value, length); -} - -/** - * This test verifies that the first write after initialisation occurs after the FNV1a_64 hash location. - */ -TEST_F(WearLeveling8Byte, FirstWriteOccursAfterHash) { - auto& inst = MockBackingStore::Instance(); - uint8_t test_value = 0x15; - test_write(0x02, &test_value, sizeof(test_value)); - EXPECT_EQ(inst.log_begin()->address, WEAR_LEVELING_LOGICAL_SIZE + 8) << "Invalid first write address."; -} - -/** - * This test verifies that the first write after initialisation occurs after the FNV1a_64 hash location, after an erase has occurred. - */ -TEST_F(WearLeveling8Byte, FirstWriteOccursAfterHash_AfterErase) { - auto& inst = MockBackingStore::Instance(); - uint8_t test_value = 0x15; - wear_leveling_erase(); - test_write(0x02, &test_value, sizeof(test_value)); - EXPECT_EQ((inst.log_begin() + 1)->address, WEAR_LEVELING_LOGICAL_SIZE + 8) << "Invalid first write address."; -} - -/** - * This test ensures the correct number of backing store writes occurs with a multibyte write, given the input buffer size. - */ -TEST_F(WearLeveling8Byte, MultibyteBackingStoreWriteCounts) { - auto& inst = MockBackingStore::Instance(); - - for (std::size_t length = 1; length <= 5; ++length) { - // Clear things out - std::fill(verify_data.begin(), verify_data.end(), 0); - inst.reset_instance(); - wear_leveling_init(); - - // Generate a test block of data - std::vector testvalue(length); - std::iota(testvalue.begin(), testvalue.end(), 0x20); - - // Write the data - EXPECT_EQ(test_write(0, testvalue.data(), testvalue.size()), WEAR_LEVELING_SUCCESS) << "Write failed with incorrect status"; - - // Check that we got the expected number of write log entries - EXPECT_EQ(std::distance(inst.log_begin(), inst.log_end()), 1); - } -} - -/** - * This test forces consolidation by writing enough to the write log that it overflows, consolidating the data into the - * base logical area. - */ -TEST_F(WearLeveling8Byte, ConsolidationOverflow) { - auto& inst = MockBackingStore::Instance(); - - // Generate a test block of data - std::array testvalue; - - // Write the data - std::iota(testvalue.begin(), testvalue.end(), 0x20); - EXPECT_EQ(test_write(0, testvalue.data(), testvalue.size()), WEAR_LEVELING_CONSOLIDATED) << "Write returned incorrect status"; - uint8_t dummy = 0x40; - EXPECT_EQ(test_write(0x04, &dummy, sizeof(dummy)), WEAR_LEVELING_SUCCESS) << "Write returned incorrect status"; - - // Expected log: - // [0]: multibyte, 5 bytes, backing address 0x18, logical address 0x00 - // [1]: multibyte, 5 bytes, backing address 0x20, logical address 0x05 - // [2]: multibyte, 5 bytes, backing address 0x28, logical address 0x0A, triggers consolidation - // [3]: erase - // [4]: consolidated data, backing address 0x00, logical address 0x00 - // [5]: consolidated data, backing address 0x08, logical address 0x08 - // [6]: FNV1a_64 result, backing address 0x10 - // [7]: multibyte, 1 byte, backing address 0x18, logical address 0x04 - EXPECT_EQ(std::distance(inst.log_begin(), inst.log_end()), 8); - - // Verify the backing store writes for the write log - std::size_t index; - write_log_entry_t e; - for (index = 0; index < 3; ++index) { - auto write_iter = inst.log_begin() + index; - EXPECT_EQ(write_iter->address, WEAR_LEVELING_LOGICAL_SIZE + 8 + (index * BACKING_STORE_WRITE_SIZE)) << "Invalid write log address"; - - write_log_entry_t e; - e.raw64 = write_iter->value; - EXPECT_EQ(LOG_ENTRY_GET_TYPE(e), LOG_ENTRY_TYPE_MULTIBYTE) << "Invalid write log entry type"; - } - - // Verify the backing store erase - { - index = 3; - auto write_iter = inst.log_begin() + index; - e.raw64 = write_iter->value; - EXPECT_TRUE(write_iter->erased) << "Backing store erase did not occur as required"; - } - - // Verify the backing store writes for consolidation - for (index = 4; index < 6; ++index) { - auto write_iter = inst.log_begin() + index; - EXPECT_EQ(write_iter->address, (index - 4) * BACKING_STORE_WRITE_SIZE) << "Invalid write log entry address"; - } - - // Verify the FNV1a_64 write - { - EXPECT_EQ((inst.log_begin() + 6)->address, WEAR_LEVELING_LOGICAL_SIZE) << "Invalid write log address"; - e.raw64 = (inst.log_begin() + 6)->value; - EXPECT_EQ(e.raw64, fnv_64a_buf(testvalue.data(), testvalue.size(), FNV1A_64_INIT)) << "Invalid checksum"; // Note that checksum is based on testvalue, as we overwrote one byte and need to consult the consolidated data, not the current - } - - // Verify the final write - EXPECT_EQ((inst.log_begin() + 7)->address, WEAR_LEVELING_LOGICAL_SIZE + 8) << "Invalid write log address"; - - // Verify the data is what we expected - std::array readback; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback did not match"; - - // Re-init and re-read, verifying the reload capability - EXPECT_NE(wear_leveling_init(), WEAR_LEVELING_FAILED) << "Re-initialisation failed"; - EXPECT_EQ(wear_leveling_read(0, readback.data(), WEAR_LEVELING_LOGICAL_SIZE), WEAR_LEVELING_SUCCESS) << "Failed to read back the saved data"; - EXPECT_TRUE(memcmp(readback.data(), verify_data.data(), WEAR_LEVELING_LOGICAL_SIZE) == 0) << "Readback did not match"; -} - -/** - * This test verifies multibyte readback gets canceled with an out-of-bounds address. - */ -TEST_F(WearLeveling8Byte, PlaybackReadbackMultibyte_OOB) { - auto& inst = MockBackingStore::Instance(); - auto logstart = inst.storage_begin() + (WEAR_LEVELING_LOGICAL_SIZE / sizeof(backing_store_int_t)); - - // Invalid FNV1a_64 hash - (logstart + 0)->set(0); - - // Set up a 2-byte logical write of [0x11,0x12] at logical offset 0x01 - auto entry0 = LOG_ENTRY_MAKE_MULTIBYTE(0x01, 2); - entry0.raw8[3] = 0x11; - entry0.raw8[4] = 0x12; - (logstart + 1)->set(~entry0.raw64); - - // Set up a 2-byte logical write of [0x13,0x14] at logical offset 0x1000 (out of bounds) - auto entry1 = LOG_ENTRY_MAKE_MULTIBYTE(0x1000, 2); - entry1.raw8[3] = 0x13; - entry1.raw8[4] = 0x14; - (logstart + 2)->set(~entry1.raw64); - - // Set up a 2-byte logical write of [0x15,0x16] at logical offset 0x10 - auto entry2 = LOG_ENTRY_MAKE_MULTIBYTE(0x01, 2); - entry2.raw8[3] = 0x15; - entry2.raw8[4] = 0x16; - (logstart + 3)->set(~entry2.raw64); - - EXPECT_EQ(inst.erasure_count(), 0) << "Invalid initial erase count"; - EXPECT_EQ(wear_leveling_init(), WEAR_LEVELING_CONSOLIDATED) << "Readback should have failed and triggered consolidation"; - EXPECT_EQ(inst.erasure_count(), 1) << "Invalid final erase count"; - - uint8_t buf[2]; - wear_leveling_read(0x01, buf, sizeof(buf)); - EXPECT_EQ(buf[0], 0x11) << "Readback should have maintained the previous pre-failure value from the write log"; - EXPECT_EQ(buf[1], 0x12) << "Readback should have maintained the previous pre-failure value from the write log"; -} diff --git a/quantum/wear_leveling/tests/wear_leveling_general.cpp b/quantum/wear_leveling/tests/wear_leveling_general.cpp deleted file mode 100644 index 76a4bf7bf3..0000000000 --- a/quantum/wear_leveling/tests/wear_leveling_general.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "backing_mocks.hpp" - -class WearLevelingGeneral : public ::testing::Test { - protected: - void SetUp() override { - MockBackingStore::Instance().reset_instance(); - wear_leveling_init(); - } -}; - -/** - * This test verifies that even if there is consolidated data present, if the checksum doesn't match then the cache is zero'd after reading the consolidated area, but before write log is played back. - */ -TEST_F(WearLevelingGeneral, InvalidChecksum_ConsolidatedDataIgnored) { - auto& inst = MockBackingStore::Instance(); - auto logstart = inst.storage_begin() + (WEAR_LEVELING_LOGICAL_SIZE / sizeof(backing_store_int_t)); - - // Generate a test block of data - std::array testvalue; - std::iota(testvalue.begin(), testvalue.end(), 0x20); - - // Write the data - EXPECT_EQ(wear_leveling_write(0, testvalue.data(), testvalue.size()), WEAR_LEVELING_CONSOLIDATED) << "Write returned incorrect status"; - - // Invalidate the checksum - (logstart + 0)->erase(); - (logstart + 1)->erase(); - (logstart + 2)->erase(); - (logstart + 3)->erase(); - - // Set up a 1-byte logical write of [0x11] at logical offset 0x01 - auto entry0 = LOG_ENTRY_MAKE_OPTIMIZED_64(0x01, 0x11); - (logstart + 4)->set(~entry0.raw16[0]); - - // Re-init - EXPECT_EQ(wear_leveling_init(), WEAR_LEVELING_SUCCESS) << "Init returned incorrect status"; - EXPECT_EQ(wear_leveling_read(0, testvalue.data(), testvalue.size()), WEAR_LEVELING_SUCCESS) << "Failed to read"; - for (int i = 0; i < WEAR_LEVELING_LOGICAL_SIZE; ++i) { - EXPECT_EQ(testvalue[i], i == 0x01 ? 0x11 : 0x00) << "Invalid readback"; - } -} - -/** - * This test verifies that writing the same data multiple times does not result in subsequent writes to the backing store. - */ -TEST_F(WearLevelingGeneral, SameValue_SingleBackingWrite) { - auto& inst = MockBackingStore::Instance(); - - uint8_t test_val = 0x14; - EXPECT_EQ(wear_leveling_write(0x02, &test_val, sizeof(test_val)), WEAR_LEVELING_SUCCESS) << "First overall write operation should have succeeded"; - - uint64_t invoke_count = inst.unlock_invoke_count(); - uint64_t erase_count = inst.erase_invoke_count(); - uint64_t write_count = inst.write_invoke_count(); - uint64_t lock_count = inst.lock_invoke_count(); - - for (int i = 0; i < 10; ++i) { - EXPECT_EQ(wear_leveling_write(0x02, &test_val, sizeof(test_val)), WEAR_LEVELING_SUCCESS) << "Subsequent overall write operation should have succeeded"; - - EXPECT_EQ(inst.unlock_invoke_count(), invoke_count) << "Unlock count should match"; - EXPECT_EQ(inst.erase_invoke_count(), erase_count) << "Erase count should match"; - EXPECT_EQ(inst.write_invoke_count(), write_count) << "Write count should match"; - EXPECT_EQ(inst.lock_invoke_count(), lock_count) << "Lock count should match"; - } -} - -/** - * This test verifies that no other invocations occur if `backing_store_init()` fails. - */ -TEST_F(WearLevelingGeneral, InitFailure) { - auto& inst = MockBackingStore::Instance(); - inst.reset_instance(); // make sure the counters are all zero - inst.set_init_callback([](std::uint64_t count) { return false; }); - - EXPECT_EQ(inst.erasure_count(), 0) << "Invalid initial erase count"; - EXPECT_EQ(wear_leveling_init(), WEAR_LEVELING_FAILED) << "Init should have failed"; - EXPECT_EQ(inst.erasure_count(), 0) << "Invalid final erase count"; - - EXPECT_EQ(inst.init_invoke_count(), 1) << "Init should have been invoked once"; - EXPECT_EQ(inst.unlock_invoke_count(), 0) << "Unlock should not have been invoked"; - EXPECT_EQ(inst.erase_invoke_count(), 0) << "Erase should not have been invoked"; - EXPECT_EQ(inst.write_invoke_count(), 0) << "Write should not have been invoked"; - EXPECT_EQ(inst.lock_invoke_count(), 0) << "Lock should not have been invoked"; -} - -/** - * This test verifies that no invocations occur if the supplied address is out of range while writing. - */ -TEST_F(WearLevelingGeneral, WriteFailure_OOB) { - auto& inst = MockBackingStore::Instance(); - - uint8_t test_val = 0x14; - EXPECT_EQ(wear_leveling_write(0x21349830, &test_val, sizeof(test_val)), WEAR_LEVELING_FAILED) << "Overall write operation should have failed"; - - EXPECT_EQ(inst.unlock_invoke_count(), 0) << "Unlock should not have been invoked"; - EXPECT_EQ(inst.erase_invoke_count(), 0) << "Erase should not have been invoked"; - EXPECT_EQ(inst.write_invoke_count(), 0) << "Write should not have been invoked"; - EXPECT_EQ(inst.lock_invoke_count(), 0) << "Lock should not have been invoked"; -} - -/** - * This test verifies that a single write occurs if the supplied address and data length hits the edge of the logical area. - */ -TEST_F(WearLevelingGeneral, WriteSuccess_BoundaryOK) { - auto& inst = MockBackingStore::Instance(); - - uint16_t test_val = 0x14; - EXPECT_EQ(wear_leveling_write(WEAR_LEVELING_LOGICAL_SIZE - sizeof(test_val), &test_val, sizeof(test_val)), WEAR_LEVELING_SUCCESS) << "Overall write operation should have succeeded"; - - EXPECT_EQ(inst.unlock_invoke_count(), 1) << "Unlock should have been invoked once"; - EXPECT_EQ(inst.erase_invoke_count(), 0) << "Erase should not have been invoked"; - EXPECT_EQ(inst.write_invoke_count(), 2) << "Write should have been invoked twice"; - EXPECT_EQ(inst.lock_invoke_count(), 1) << "Lock should have been invoked once"; -} - -/** - * This test verifies that no invocations occur if the supplied address and length would generate writes outside the logical range. - */ -TEST_F(WearLevelingGeneral, WriteFailure_BoundaryOverflow) { - auto& inst = MockBackingStore::Instance(); - - uint16_t test_val = 0x14; - EXPECT_EQ(wear_leveling_write(WEAR_LEVELING_LOGICAL_SIZE - sizeof(test_val) + 1, &test_val, sizeof(test_val)), WEAR_LEVELING_FAILED) << "Overall write operation should have failed"; - - EXPECT_EQ(inst.unlock_invoke_count(), 0) << "Unlock should not have been invoked"; - EXPECT_EQ(inst.erase_invoke_count(), 0) << "Erase should not have been invoked"; - EXPECT_EQ(inst.write_invoke_count(), 0) << "Write should not have been invoked"; - EXPECT_EQ(inst.lock_invoke_count(), 0) << "Lock should not have been invoked"; -} - -/** - * This test verifies that no invocations occur if the supplied address is out of range while reading. - */ -TEST_F(WearLevelingGeneral, ReadFailure_OOB) { - auto& inst = MockBackingStore::Instance(); - - uint8_t test_val = 0; - EXPECT_EQ(wear_leveling_read(0x21349830, &test_val, sizeof(test_val)), WEAR_LEVELING_FAILED) << "Overall read operation should have failed"; - - EXPECT_EQ(inst.unlock_invoke_count(), 0) << "Unlock should not have been invoked"; - EXPECT_EQ(inst.erase_invoke_count(), 0) << "Erase should not have been invoked"; - EXPECT_EQ(inst.write_invoke_count(), 0) << "Write should not have been invoked"; - EXPECT_EQ(inst.lock_invoke_count(), 0) << "Lock should not have been invoked"; -} - -/** - * This test verifies that no write invocations occur if `backing_store_unlock()` fails. - */ -TEST_F(WearLevelingGeneral, UnlockFailure_NoWrite) { - auto& inst = MockBackingStore::Instance(); - inst.set_unlock_callback([](std::uint64_t count) { return false; }); - - uint8_t test_val = 0x14; - EXPECT_EQ(wear_leveling_write(0x04, &test_val, sizeof(test_val)), WEAR_LEVELING_FAILED) << "Overall write operation should have failed"; - - EXPECT_EQ(inst.unlock_invoke_count(), 1) << "Unlock should have been invoked once"; - EXPECT_EQ(inst.erase_invoke_count(), 0) << "Erase should not have been invoked"; - EXPECT_EQ(inst.write_invoke_count(), 0) << "Write should not have been invoked"; - EXPECT_EQ(inst.lock_invoke_count(), 0) << "Lock should not have been invoked"; - - test_val = 0; - wear_leveling_read(0x04, &test_val, sizeof(test_val)); - EXPECT_EQ(test_val, 0x14) << "Readback should come from cache regardless of unlock failure"; -} - -/** - * This test verifies that no erase invocations occur if `backing_store_unlock()` fails. - */ -TEST_F(WearLevelingGeneral, UnlockFailure_NoErase) { - auto& inst = MockBackingStore::Instance(); - inst.set_unlock_callback([](std::uint64_t count) { return false; }); - - EXPECT_EQ(wear_leveling_erase(), WEAR_LEVELING_FAILED) << "Overall erase operation should have failed"; - - EXPECT_EQ(inst.unlock_invoke_count(), 1) << "Unlock should have been invoked once"; - EXPECT_EQ(inst.erase_invoke_count(), 0) << "Erase should not have been invoked"; - EXPECT_EQ(inst.write_invoke_count(), 0) << "Write should not have been invoked"; - EXPECT_EQ(inst.lock_invoke_count(), 0) << "Lock should not have been invoked"; -} - -/** - * This test verifies that only one write invocation occurs if `backing_store_write()` fails. - */ -TEST_F(WearLevelingGeneral, WriteFailure_NoSubsequentWrites) { - auto& inst = MockBackingStore::Instance(); - inst.set_write_callback([](std::uint64_t count, std::uint32_t address) { return false; }); - - uint8_t test_val = 0x14; - EXPECT_EQ(wear_leveling_write(0x04, &test_val, sizeof(test_val)), WEAR_LEVELING_FAILED) << "Overall write operation should have failed"; - - EXPECT_EQ(inst.unlock_invoke_count(), 1) << "Unlock should have been invoked once"; - EXPECT_EQ(inst.erase_invoke_count(), 0) << "Erase should not have been invoked"; - EXPECT_EQ(inst.write_invoke_count(), 1) << "Write should have been invoked once"; - EXPECT_EQ(inst.lock_invoke_count(), 1) << "Lock should have been invoked once"; - - test_val = 0; - wear_leveling_read(0x04, &test_val, sizeof(test_val)); - EXPECT_EQ(test_val, 0x14) << "Readback should come from cache regardless of unlock failure"; -} diff --git a/quantum/wear_leveling/wear_leveling.c b/quantum/wear_leveling/wear_leveling.c deleted file mode 100644 index 0a519639ea..0000000000 --- a/quantum/wear_leveling/wear_leveling.c +++ /dev/null @@ -1,768 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#include -#include "fnv.h" -#include "wear_leveling.h" -#include "wear_leveling_internal.h" - -/* - This wear leveling algorithm is adapted from algorithms from previous - implementations in QMK, namely: - - Artur F. (http://engsta.com/stm32-flash-memory-eeprom-emulator/) - - Yiancar -- QMK's base implementation for STM32F303 - - Ilya Zhuravlev -- initial wear leveling algorithm - - Don Kjer -- increased flash density algorithm - - Nick Brassel (@tzarc) -- decoupled for use on other peripherals - - At this layer, it is assumed that any reads/writes from the backing store - have a "reset state" after erasure of zero. - It is up to the backing store to perform translation of values, such as - taking the complement in order to deal with flash memory's reset value. - - Terminology: - - - Backing store: this is the storage area used by the wear leveling - algorithm. - - - Backing size: this is the amount of storage provided by the backing - store for use by the wear leveling algorithm. - - - Backing write size: this is the minimum number of bytes the backing - store can write in a single operation. - - - Logical data: this is the externally-visible "emulated EEPROM" that - external subsystems "see" when performing reads/writes. - - - Logical size: this is the amount of storage available for use - externally. Effectively, the "size of the EEPROM". - - - Write log: this is a section of the backing store used to keep track - of modifications without overwriting existing data. This log is - "played back" on startup such that any subsequent reads are capable - of returning the latest data. - - - Consolidated data: this is a section of the backing store reserved for - use for the latest copy of logical data. This is only ever written - when the write log is full -- the latest values for the logical data - are written here and the write log is cleared. - - Configurables: - - - BACKING_STORE_WRITE_SIZE: The number of bytes requires for a write - operation. This is defined by the capabilities of the backing store. - - - WEAR_LEVELING_BACKING_SIZE: The number of bytes provided by the - backing store for use by the wear leveling algorithm. This is - defined by the capabilities of the backing store. This value must - also be at least twice the size of the logical size, as well as a - multiple of the logical size. - - - WEAR_LEVELING_LOGICAL_SIZE: The number of bytes externally visible - to other subsystems performing reads/writes. This must be a multiple - of the write size. - - General algorithm: - - During initialization: - * The contents of the consolidated data section are read into cache. - * The contents of the write log are "played back" and update the - cache accordingly. - - During reads: - * Logical data is served from the cache. - - During writes: - * The cache is updated with the new data. - * A new write log entry is appended to the log. - * If the log's full, data is consolidated and the write log cleared. - - Write log structure: - - The first 8 bytes of the write log are a FNV1a_64 hash of the contents - of the consolidated data area, in an attempt to detect and guard against - any data corruption. - - The write log follows the hash: - - Given that the algorithm needs to cater for 2-, 4-, and 8-byte writes, - a variable-length write log entry is used such that the minimal amount - of storage is used based off the backing store write size. - - Firstly, an empty log entry is expected to be all zeros. If the backing - store uses 0xFF for cleared bytes, it should return the complement, such - that this wear-leveling algorithm "receives" zeros. - - For multi-byte writes, up to 8 bytes will be used for each log entry, - depending on the size of backing store writes: - - ╔ Multi-byte Log Entry (2, 4-byte) ═╗ - ║00XXXYYY║YYYYYYYY║YYYYYYYY║AAAAAAAA║ - ║ └┬┘└┬┘║└──┬───┘║└──┬───┘║└──┬───┘║ - ║ LenAdd║ Address║ Address║Value[0]║ - ╚════════╩════════╩════════╩════════╝ - ╔ Multi-byte Log Entry (2-byte) ══════════════════════╗ - ║00XXXYYY║YYYYYYYY║YYYYYYYY║AAAAAAAA║BBBBBBBB║CCCCCCCC║ - ║ └┬┘└┬┘║└──┬───┘║└──┬───┘║└──┬───┘║└──┬───┘║└──┬───┘║ - ║ LenAdd║ Address║ Address║Value[0]║Value[1]║Value[2]║ - ╚════════╩════════╩════════╩════════╩════════╩════════╝ - ╔ Multi-byte Log Entry (2, 4, 8-byte) ══════════════════════════════════╗ - ║00XXXYYY║YYYYYYYY║YYYYYYYY║AAAAAAAA║BBBBBBBB║CCCCCCCC║DDDDDDDD║EEEEEEEE║ - ║ └┬┘└┬┘║└──┬───┘║└──┬───┘║└──┬───┘║└──┬───┘║└──┬───┘║└──┬───┘║└──┬───┘║ - ║ LenAdd║ Address║ Address║Value[0]║Value[1]║Value[2]║Value[3]║Value[4]║ - ╚════════╩════════╩════════╩════════╩════════╩════════╩════════╩════════╝ - - 19 bits are used for the address, which allows for a max logical size of - 512kB. Up to 5 bytes can be included in a single log entry. - - For 2-byte backing store writes, the last two bytes are optional - depending on the length of data to be written. Accordingly, either 3 - or 4 backing store write operations will occur. - For 4-byte backing store writes, either one or two write operations - occur, depending on the length. - For 8-byte backing store writes, one write operation occur. - - 2-byte backing store optimizations: - - For single byte writes, addresses between 0...63 are encoded in a single - backing store write operation. 4- and 8-byte backing stores do not have - this optimization as it does not minimize the number of bytes written. - - ╔ Byte-Entry ════╗ - ║01XXXXXXYYYYYYYY║ - ║ └─┬──┘└──┬───┘║ - ║ Address Value ║ - ╚════════════════╝ - 0 <= Address < 0x40 (64) - - A second optimization takes into account uint16_t writes of 0 or 1, - specifically catering for KC_NO and KC_TRANSPARENT in the dynamic keymap - subsystem. This is valid only for the first 16kB of logical data -- - addresses outside this range will use the multi-byte encoding above. - - ╔ U16-Encoded 0 ═╗ - ║100XXXXXXXXXXXXX║ - ║ │└─────┬─────┘║ - ║ │Address >> 1 ║ - ║ └── Value: 0 ║ - ╚════════════════╝ - 0 <= Address <= 0x3FFE (16382) - - ╔ U16-Encoded 1 ═╗ - ║101XXXXXXXXXXXXX║ - ║ │└─────┬─────┘║ - ║ │Address >> 1 ║ - ║ └── Value: 1 ║ - ╚════════════════╝ - 0 <= Address <= 0x3FFE (16382) */ - -/** - * Storage area for the wear-leveling cache. - */ -static struct __attribute__((__aligned__(BACKING_STORE_WRITE_SIZE))) { - __attribute__((__aligned__(BACKING_STORE_WRITE_SIZE))) uint8_t cache[(WEAR_LEVELING_LOGICAL_SIZE)]; - uint32_t write_address; - bool unlocked; -} wear_leveling; - -/** - * Locking helper: status - */ -typedef enum backing_store_lock_status_t { STATUS_FAILURE = 0, STATUS_SUCCESS, STATUS_UNCHANGED } backing_store_lock_status_t; - -/** - * Locking helper: unlock - */ -static inline backing_store_lock_status_t wear_leveling_unlock(void) { - if (wear_leveling.unlocked) { - return STATUS_UNCHANGED; - } - if (!backing_store_unlock()) { - return STATUS_FAILURE; - } - wear_leveling.unlocked = true; - return STATUS_SUCCESS; -} - -/** - * Locking helper: lock - */ -static inline backing_store_lock_status_t wear_leveling_lock(void) { - if (!wear_leveling.unlocked) { - return STATUS_UNCHANGED; - } - if (!backing_store_lock()) { - return STATUS_FAILURE; - } - wear_leveling.unlocked = false; - return STATUS_SUCCESS; -} - -/** - * Resets the cache, ensuring the write address is correctly initialised. - */ -static void wear_leveling_clear_cache(void) { - memset(wear_leveling.cache, 0, (WEAR_LEVELING_LOGICAL_SIZE)); - wear_leveling.write_address = (WEAR_LEVELING_LOGICAL_SIZE) + 8; // +8 is due to the FNV1a_64 of the consolidated buffer -} - -/** - * Reads the consolidated data from the backing store into the cache. - * Does not consider the write log. - */ -static wear_leveling_status_t wear_leveling_read_consolidated(void) { - wl_dprintf("Reading consolidated data\n"); - - wear_leveling_status_t status = WEAR_LEVELING_SUCCESS; - if (!backing_store_read_bulk(0, (backing_store_int_t *)wear_leveling.cache, sizeof(wear_leveling.cache) / sizeof(backing_store_int_t))) { - wl_dprintf("Failed to read from backing store\n"); - status = WEAR_LEVELING_FAILED; - } - - // Verify the FNV1a_64 result - if (status != WEAR_LEVELING_FAILED) { - uint64_t expected = fnv_64a_buf(wear_leveling.cache, (WEAR_LEVELING_LOGICAL_SIZE), FNV1A_64_INIT); - write_log_entry_t entry; - wl_dprintf("Reading checksum\n"); -#if BACKING_STORE_WRITE_SIZE == 2 - backing_store_read_bulk((WEAR_LEVELING_LOGICAL_SIZE), entry.raw16, 4); -#elif BACKING_STORE_WRITE_SIZE == 4 - backing_store_read_bulk((WEAR_LEVELING_LOGICAL_SIZE), entry.raw32, 2); -#elif BACKING_STORE_WRITE_SIZE == 8 - backing_store_read((WEAR_LEVELING_LOGICAL_SIZE) + 0, &entry.raw64); -#endif - // If we have a mismatch, clear the cache but do not flag a failure, - // which will cater for the completely clean MCU case. - if (entry.raw64 == expected) { - wl_dprintf("Checksum matches, consolidated data is correct\n"); - } else { - wl_dprintf("Checksum mismatch, clearing cache\n"); - wear_leveling_clear_cache(); - } - } - - // If we failed for any reason, then clear the cache - if (status == WEAR_LEVELING_FAILED) { - wear_leveling_clear_cache(); - } - - return status; -} - -/** - * Writes the current cache to consolidated data at the beginning of the backing store. - * Does not clear the write log. - * Pre-condition: this is just after an erase, so we can write directly without reading. - */ -static wear_leveling_status_t wear_leveling_write_consolidated(void) { - wl_dprintf("Writing consolidated data\n"); - - backing_store_lock_status_t lock_status = wear_leveling_unlock(); - wear_leveling_status_t status = WEAR_LEVELING_CONSOLIDATED; - if (!backing_store_write_bulk(0, (backing_store_int_t *)wear_leveling.cache, sizeof(wear_leveling.cache) / sizeof(backing_store_int_t))) { - wl_dprintf("Failed to write to backing store\n"); - status = WEAR_LEVELING_FAILED; - } - - if (status != WEAR_LEVELING_FAILED) { - // Write out the FNV1a_64 result of the consolidated data - write_log_entry_t entry; - entry.raw64 = fnv_64a_buf(wear_leveling.cache, (WEAR_LEVELING_LOGICAL_SIZE), FNV1A_64_INIT); - wl_dprintf("Writing checksum\n"); - do { -#if BACKING_STORE_WRITE_SIZE == 2 - if (!backing_store_write_bulk((WEAR_LEVELING_LOGICAL_SIZE), entry.raw16, 4)) { - status = WEAR_LEVELING_FAILED; - break; - } -#elif BACKING_STORE_WRITE_SIZE == 4 - if (!backing_store_write_bulk((WEAR_LEVELING_LOGICAL_SIZE), entry.raw32, 2)) { - status = WEAR_LEVELING_FAILED; - break; - } -#elif BACKING_STORE_WRITE_SIZE == 8 - if (!backing_store_write((WEAR_LEVELING_LOGICAL_SIZE), entry.raw64)) { - status = WEAR_LEVELING_FAILED; - break; - } -#endif - } while (0); - } - - if (lock_status == STATUS_SUCCESS) { - wear_leveling_lock(); - } - return status; -} - -/** - * Forces a write of the current cache. - * Erases the backing store, including the write log. - * During this operation, there is the potential for data loss if a power loss occurs. - */ -static wear_leveling_status_t wear_leveling_consolidate_force(void) { - wl_dprintf("Erasing backing store\n"); - - // Erase the backing store. Expectation is that any un-written values that are read back after this call come back as zero. - bool ok = backing_store_erase(); - if (!ok) { - wl_dprintf("Failed to erase backing store\n"); - return WEAR_LEVELING_FAILED; - } - - // Write the cache to the first section of the backing store. - wear_leveling_status_t status = wear_leveling_write_consolidated(); - if (status == WEAR_LEVELING_FAILED) { - wl_dprintf("Failed to write consolidated data\n"); - } - - // Next write of the log occurs after the consolidated values at the start of the backing store. - wear_leveling.write_address = (WEAR_LEVELING_LOGICAL_SIZE) + 8; // +8 due to the FNV1a_64 of the consolidated area - - return status; -} - -/** - * Potential write of the current cache to the backing store. - * Skipped if the current write log position is not at the end of the backing store. - * During this operation, there is the potential for data loss if a power loss occurs. - * - * @return true if consolidation occurred - */ -static wear_leveling_status_t wear_leveling_consolidate_if_needed(void) { - if (wear_leveling.write_address >= (WEAR_LEVELING_BACKING_SIZE)) { - return wear_leveling_consolidate_force(); - } - - return WEAR_LEVELING_SUCCESS; -} - -/** - * Appends the supplied fixed-width entry to the write log, optionally consolidating if the log is full. - * - * @return true if consolidation occurred - */ -static wear_leveling_status_t wear_leveling_append_raw(backing_store_int_t value) { - bool ok = backing_store_write(wear_leveling.write_address, value); - if (!ok) { - wl_dprintf("Failed to write to backing store\n"); - return WEAR_LEVELING_FAILED; - } - wear_leveling.write_address += (BACKING_STORE_WRITE_SIZE); - return wear_leveling_consolidate_if_needed(); -} - -/** - * Handles writing multi_byte-encoded data to the backing store. - * - * @return true if consolidation occurred - */ -static wear_leveling_status_t wear_leveling_write_raw_multibyte(uint32_t address, const void *value, size_t length) { - const uint8_t * p = value; - write_log_entry_t log = LOG_ENTRY_MAKE_MULTIBYTE(address, length); - for (size_t i = 0; i < length; ++i) { - log.raw8[3 + i] = p[i]; - } - - // Write to the backing store. See the multi-byte log format in the documentation header at the top of the file. - wear_leveling_status_t status; -#if BACKING_STORE_WRITE_SIZE == 2 - status = wear_leveling_append_raw(log.raw16[0]); - if (status != WEAR_LEVELING_SUCCESS) { - return status; - } - - status = wear_leveling_append_raw(log.raw16[1]); - if (status != WEAR_LEVELING_SUCCESS) { - return status; - } - - if (length > 1) { - status = wear_leveling_append_raw(log.raw16[2]); - if (status != WEAR_LEVELING_SUCCESS) { - return status; - } - } - - if (length > 3) { - status = wear_leveling_append_raw(log.raw16[3]); - if (status != WEAR_LEVELING_SUCCESS) { - return status; - } - } -#elif BACKING_STORE_WRITE_SIZE == 4 - status = wear_leveling_append_raw(log.raw32[0]); - if (status != WEAR_LEVELING_SUCCESS) { - return status; - } - - if (length > 1) { - status = wear_leveling_append_raw(log.raw32[1]); - if (status != WEAR_LEVELING_SUCCESS) { - return status; - } - } -#elif BACKING_STORE_WRITE_SIZE == 8 - status = wear_leveling_append_raw(log.raw64); - if (status != WEAR_LEVELING_SUCCESS) { - return status; - } -#endif - return status; -} - -/** - * Handles the actual writing of logical data into the write log section of the backing store. - */ -static wear_leveling_status_t wear_leveling_write_raw(uint32_t address, const void *value, size_t length) { - const uint8_t * p = value; - size_t remaining = length; - wear_leveling_status_t status = WEAR_LEVELING_SUCCESS; - while (remaining > 0) { -#if BACKING_STORE_WRITE_SIZE == 2 - // Small-write optimizations - uint16_t, 0 or 1, address is even, address <16384: - if (remaining >= 2 && address % 2 == 0 && address < 16384) { - const uint16_t v = *(const uint16_t *)p; - if (v == 0 || v == 1) { - const write_log_entry_t log = LOG_ENTRY_MAKE_WORD_01(address, v); - status = wear_leveling_append_raw(log.raw16[0]); - if (status != WEAR_LEVELING_SUCCESS) { - // If consolidation occurred, then the cache has already been written to the consolidated area. No need to continue. - // If a failure occurred, pass it on. - return status; - } - - remaining -= 2; - address += 2; - p += 2; - continue; - } - } - - // Small-write optimizations - address<64: - if (address < 64) { - const write_log_entry_t log = LOG_ENTRY_MAKE_OPTIMIZED_64(address, *p); - status = wear_leveling_append_raw(log.raw16[0]); - if (status != WEAR_LEVELING_SUCCESS) { - // If consolidation occurred, then the cache has already been written to the consolidated area. No need to continue. - // If a failure occurred, pass it on. - return status; - } - - remaining--; - address++; - p++; - continue; - } -#endif // BACKING_STORE_WRITE_SIZE == 2 - const size_t this_length = remaining >= LOG_ENTRY_MULTIBYTE_MAX_BYTES ? LOG_ENTRY_MULTIBYTE_MAX_BYTES : remaining; - status = wear_leveling_write_raw_multibyte(address, p, this_length); - if (status != WEAR_LEVELING_SUCCESS) { - // If consolidation occurred, then the cache has already been written to the consolidated area. No need to continue. - // If a failure occurred, pass it on. - return status; - } - remaining -= this_length; - address += (uint32_t)this_length; - p += this_length; - } - - return status; -} - -/** - * "Replays" the write log from the backing store, updating the local cache with updated values. - */ -static wear_leveling_status_t wear_leveling_playback_log(void) { - wl_dprintf("Playback write log\n"); - - wear_leveling_status_t status = WEAR_LEVELING_SUCCESS; - bool cancel_playback = false; - uint32_t address = (WEAR_LEVELING_LOGICAL_SIZE) + 8; // +8 due to the FNV1a_64 of the consolidated area - while (!cancel_playback && address < (WEAR_LEVELING_BACKING_SIZE)) { - backing_store_int_t value; - bool ok = backing_store_read(address, &value); - if (!ok) { - wl_dprintf("Failed to load from backing store, skipping playback of write log\n"); - cancel_playback = true; - status = WEAR_LEVELING_FAILED; - break; - } - if (value == 0) { - wl_dprintf("Found empty slot, no more log entries\n"); - cancel_playback = true; - break; - } - - // If we got a nonzero value, then we need to increment the address to ensure next write occurs at next location - address += (BACKING_STORE_WRITE_SIZE); - - // Read from the write log - write_log_entry_t log; -#if BACKING_STORE_WRITE_SIZE == 2 - log.raw16[0] = value; -#elif BACKING_STORE_WRITE_SIZE == 4 - log.raw32[0] = value; -#elif BACKING_STORE_WRITE_SIZE == 8 - log.raw64 = value; -#endif - - switch (LOG_ENTRY_GET_TYPE(log)) { - case LOG_ENTRY_TYPE_MULTIBYTE: { -#if BACKING_STORE_WRITE_SIZE == 2 - ok = backing_store_read(address, &log.raw16[1]); - if (!ok) { - wl_dprintf("Failed to load from backing store, skipping playback of write log\n"); - cancel_playback = true; - status = WEAR_LEVELING_FAILED; - break; - } - address += (BACKING_STORE_WRITE_SIZE); -#endif // BACKING_STORE_WRITE_SIZE == 2 - const uint32_t a = LOG_ENTRY_MULTIBYTE_GET_ADDRESS(log); - const uint8_t l = LOG_ENTRY_MULTIBYTE_GET_LENGTH(log); - - if (a + l > (WEAR_LEVELING_LOGICAL_SIZE)) { - cancel_playback = true; - status = WEAR_LEVELING_FAILED; - break; - } - -#if BACKING_STORE_WRITE_SIZE == 2 - if (l > 1) { - ok = backing_store_read(address, &log.raw16[2]); - if (!ok) { - wl_dprintf("Failed to load from backing store, skipping playback of write log\n"); - cancel_playback = true; - status = WEAR_LEVELING_FAILED; - break; - } - address += (BACKING_STORE_WRITE_SIZE); - } - if (l > 3) { - ok = backing_store_read(address, &log.raw16[3]); - if (!ok) { - wl_dprintf("Failed to load from backing store, skipping playback of write log\n"); - cancel_playback = true; - status = WEAR_LEVELING_FAILED; - break; - } - address += (BACKING_STORE_WRITE_SIZE); - } -#elif BACKING_STORE_WRITE_SIZE == 4 - if (l > 1) { - ok = backing_store_read(address, &log.raw32[1]); - if (!ok) { - wl_dprintf("Failed to load from backing store, skipping playback of write log\n"); - cancel_playback = true; - status = WEAR_LEVELING_FAILED; - break; - } - address += (BACKING_STORE_WRITE_SIZE); - } -#endif - - memcpy(&wear_leveling.cache[a], &log.raw8[3], l); - } break; -#if BACKING_STORE_WRITE_SIZE == 2 - case LOG_ENTRY_TYPE_OPTIMIZED_64: { - const uint32_t a = LOG_ENTRY_OPTIMIZED_64_GET_ADDRESS(log); - const uint8_t v = LOG_ENTRY_OPTIMIZED_64_GET_VALUE(log); - - if (a >= (WEAR_LEVELING_LOGICAL_SIZE)) { - cancel_playback = true; - status = WEAR_LEVELING_FAILED; - break; - } - - wear_leveling.cache[a] = v; - } break; - case LOG_ENTRY_TYPE_WORD_01: { - const uint32_t a = LOG_ENTRY_WORD_01_GET_ADDRESS(log); - const uint8_t v = LOG_ENTRY_WORD_01_GET_VALUE(log); - - if (a + 1 >= (WEAR_LEVELING_LOGICAL_SIZE)) { - cancel_playback = true; - status = WEAR_LEVELING_FAILED; - break; - } - - wear_leveling.cache[a + 0] = v; - wear_leveling.cache[a + 1] = 0; - } break; -#endif // BACKING_STORE_WRITE_SIZE == 2 - default: { - cancel_playback = true; - status = WEAR_LEVELING_FAILED; - } break; - } - } - - // We've reached the end of the log, so we're at the new write location - wear_leveling.write_address = address; - - if (status == WEAR_LEVELING_FAILED) { - // If we had a failure during readback, assume we're corrupted -- force a consolidation with the data we already have - status = wear_leveling_consolidate_force(); - } else { - // Consolidate the cache + write log if required - status = wear_leveling_consolidate_if_needed(); - } - - return status; -} - -/** - * Wear-leveling initialization - */ -wear_leveling_status_t wear_leveling_init(void) { - wl_dprintf("Init\n"); - - // Reset the cache - wear_leveling_clear_cache(); - - // Initialise the backing store - if (!backing_store_init()) { - // If it failed, clear the cache and return with failure - wear_leveling_clear_cache(); - return WEAR_LEVELING_FAILED; - } - - // Read the previous consolidated values, then replay the existing write log so that the cache has the "live" values - wear_leveling_status_t status = wear_leveling_read_consolidated(); - if (status == WEAR_LEVELING_FAILED) { - // If it failed, clear the cache and return with failure - wear_leveling_clear_cache(); - return status; - } - - status = wear_leveling_playback_log(); - if (status == WEAR_LEVELING_FAILED) { - // If it failed, clear the cache and return with failure - wear_leveling_clear_cache(); - return status; - } - - return status; -} - -/** - * Wear-leveling erase. - * Post-condition: any reads from the backing store directly after an erase operation must come back as zero. - */ -wear_leveling_status_t wear_leveling_erase(void) { - wl_dprintf("Erase\n"); - - // Unlock the backing store - backing_store_lock_status_t lock_status = wear_leveling_unlock(); - if (lock_status == STATUS_FAILURE) { - wear_leveling_lock(); - return WEAR_LEVELING_FAILED; - } - - // Perform the erase - bool ret = backing_store_erase(); - wear_leveling_clear_cache(); - - // Lock the backing store if we acquired the lock successfully - if (lock_status == STATUS_SUCCESS) { - ret &= (wear_leveling_lock() != STATUS_FAILURE); - } - - return ret ? WEAR_LEVELING_SUCCESS : WEAR_LEVELING_FAILED; -} - -/** - * Writes logical data into the backing store. Skips writes if there are no changes to values. - */ -wear_leveling_status_t wear_leveling_write(const uint32_t address, const void *value, size_t length) { - wl_assert(address + length <= (WEAR_LEVELING_LOGICAL_SIZE)); - if (address + length > (WEAR_LEVELING_LOGICAL_SIZE)) { - return WEAR_LEVELING_FAILED; - } - - wl_dprintf("Write "); - wl_dump(address, value, length); - - // Skip write if there's no change compared to the current cached value - if (memcmp(value, &wear_leveling.cache[address], length) == 0) { - return true; - } - - // Update the cache before writing to the backing store -- if we hit the end of the backing store during writes to the log then we'll force a consolidation in-line - memcpy(&wear_leveling.cache[address], value, length); - - // Unlock the backing store - backing_store_lock_status_t lock_status = wear_leveling_unlock(); - if (lock_status == STATUS_FAILURE) { - wear_leveling_lock(); - return WEAR_LEVELING_FAILED; - } - - // Perform the actual write - wear_leveling_status_t status = wear_leveling_write_raw(address, value, length); - switch (status) { - case WEAR_LEVELING_CONSOLIDATED: - case WEAR_LEVELING_FAILED: - // If the write triggered consolidation, or the write failed, then nothing else needs to occur. - break; - - case WEAR_LEVELING_SUCCESS: - // Consolidate the cache + write log if required - status = wear_leveling_consolidate_if_needed(); - break; - - default: - // Unsure how we'd get here... - status = WEAR_LEVELING_FAILED; - break; - } - - if (lock_status == STATUS_SUCCESS) { - if (wear_leveling_lock() == STATUS_FAILURE) { - status = WEAR_LEVELING_FAILED; - } - } - - return status; -} - -/** - * Reads logical data from the cache. - */ -wear_leveling_status_t wear_leveling_read(const uint32_t address, void *value, size_t length) { - wl_assert(address + length <= (WEAR_LEVELING_LOGICAL_SIZE)); - if (address + length > (WEAR_LEVELING_LOGICAL_SIZE)) { - return WEAR_LEVELING_FAILED; - } - - // Only need to copy from the cache - memcpy(value, &wear_leveling.cache[address], length); - - wl_dprintf("Read "); - wl_dump(address, value, length); - return WEAR_LEVELING_SUCCESS; -} - -/** - * Weak implementation of bulk read, drivers can implement more optimised implementations. - */ -__attribute__((weak)) bool backing_store_read_bulk(uint32_t address, backing_store_int_t *values, size_t item_count) { - for (size_t i = 0; i < item_count; ++i) { - if (!backing_store_read(address + (i * BACKING_STORE_WRITE_SIZE), &values[i])) { - return false; - } - } - return true; -} - -/** - * Weak implementation of bulk write, drivers can implement more optimised implementations. - */ -__attribute__((weak)) bool backing_store_write_bulk(uint32_t address, backing_store_int_t *values, size_t item_count) { - for (size_t i = 0; i < item_count; ++i) { - if (!backing_store_write(address + (i * BACKING_STORE_WRITE_SIZE), values[i])) { - return false; - } - } - return true; -} \ No newline at end of file diff --git a/quantum/wear_leveling/wear_leveling.h b/quantum/wear_leveling/wear_leveling.h deleted file mode 100644 index 6641bc49b3..0000000000 --- a/quantum/wear_leveling/wear_leveling.h +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once -#include -#include - -/** - * @typedef Status returned from any wear-leveling API. - */ -typedef enum wear_leveling_status_t { - WEAR_LEVELING_FAILED, //< Invocation failed - WEAR_LEVELING_SUCCESS, //< Invocation succeeded - WEAR_LEVELING_CONSOLIDATED //< Invocation succeeded, consolidation occurred -} wear_leveling_status_t; - -/** - * Wear-leveling initialization - * - * @return Status of the request - */ -wear_leveling_status_t wear_leveling_init(void); - -/** - * Wear-leveling erasure. - * - * Clears the wear-leveling area, with the definition that the "reset state" of all data is zero. - * - * @return Status of the request - */ -wear_leveling_status_t wear_leveling_erase(void); - -/** - * Writes logical data into the backing store. - * - * Skips writes if there are no changes to written values. The entire written block is considered when attempting to - * determine if an overwrite should occur -- if there is any data mismatch the entire block will be written to the log, - * not just the changed bytes. - * - * @param address[in] the logical address to write data - * @param value[in] pointer to the source buffer - * @param length[in] length of the data - * @return Status of the request - */ -wear_leveling_status_t wear_leveling_write(uint32_t address, const void* value, size_t length); - -/** - * Reads logical data from the cache. - * - * @param address[in] the logical address to read data - * @param value[out] pointer to the destination buffer - * @param length[in] length of the data - * @return Status of the request - */ -wear_leveling_status_t wear_leveling_read(uint32_t address, void* value, size_t length); diff --git a/quantum/wear_leveling/wear_leveling_internal.h b/quantum/wear_leveling/wear_leveling_internal.h deleted file mode 100644 index e83f9b22ea..0000000000 --- a/quantum/wear_leveling/wear_leveling_internal.h +++ /dev/null @@ -1,151 +0,0 @@ -// Copyright 2022 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#ifdef __cplusplus -# define _Static_assert static_assert -#endif - -#include -#include - -#if BACKING_STORE_WRITE_SIZE == 2 -typedef uint16_t backing_store_int_t; -#elif BACKING_STORE_WRITE_SIZE == 4 -typedef uint32_t backing_store_int_t; -#elif BACKING_STORE_WRITE_SIZE == 8 -typedef uint64_t backing_store_int_t; -#else -# error Invalid BACKING_STORE_WRITE_SIZE, needs to be 2/4/8. -#endif - -#ifndef WEAR_LEVELING_BACKING_SIZE -# error WEAR_LEVELING_BACKING_SIZE was not set. -#endif - -#ifndef WEAR_LEVELING_LOGICAL_SIZE -# error WEAR_LEVELING_LOGICAL_SIZE was not set. -#endif - -#ifdef WEAR_LEVELING_DEBUG_OUTPUT -# include -# define bs_dprintf(...) dprintf("Backing store: " __VA_ARGS__) -# define wl_dprintf(...) dprintf("Wear leveling: " __VA_ARGS__) -# define wl_dump(address, value, length) \ - do { \ - dprintf("[0x%04X]: ", (int)(address)); \ - const uint8_t* p = (const uint8_t*)(value); \ - for (int i = 0; i < (length); ++i) { \ - dprintf(" %02X", (int)p[i]); \ - } \ - dprintf("\n"); \ - } while (0) -#else -# define wl_dprintf(...) \ - do { \ - } while (0) -# define bs_dprintf(...) \ - do { \ - } while (0) -# define wl_dump(...) \ - do { \ - } while (0) -#endif // WEAR_LEVELING_DEBUG_OUTPUT - -#ifdef WEAR_LEVELING_ASSERTS -# include -# define wl_assert(...) assert(__VA_ARGS__) -#else -# define wl_assert(...) \ - do { \ - } while (0) -#endif // WEAR_LEVELING_ASSERTS - -// Compile-time validation of configurable options -_Static_assert(WEAR_LEVELING_BACKING_SIZE >= (WEAR_LEVELING_LOGICAL_SIZE * 2), "Total backing size must be at least twice the size of the logical size"); -_Static_assert(WEAR_LEVELING_LOGICAL_SIZE % BACKING_STORE_WRITE_SIZE == 0, "Logical size must be a multiple of write size"); -_Static_assert(WEAR_LEVELING_BACKING_SIZE % WEAR_LEVELING_LOGICAL_SIZE == 0, "Backing size must be a multiple of logical size"); - -// Backing Store API, to be implemented elsewhere by flash driver etc. -bool backing_store_init(void); -bool backing_store_unlock(void); -bool backing_store_erase(void); -bool backing_store_write(uint32_t address, backing_store_int_t value); -bool backing_store_write_bulk(uint32_t address, backing_store_int_t* values, size_t item_count); // weak implementation already provided, optimized implementation can be implemented by driver -bool backing_store_lock(void); -bool backing_store_read(uint32_t address, backing_store_int_t* value); -bool backing_store_read_bulk(uint32_t address, backing_store_int_t* values, size_t item_count); // weak implementation already provided, optimized implementation can be implemented by driver - -/** - * Helper type used to contain a write log entry. - */ -typedef union write_log_entry_t { - uint64_t raw64; - uint32_t raw32[2]; - uint16_t raw16[4]; - uint8_t raw8[8]; -} write_log_entry_t; - -_Static_assert(sizeof(write_log_entry_t) == 8, "Wear leveling write log entry size was not 8"); - -/** - * Log entry type discriminator. - */ -enum { - // 0x00 -- Multi-byte storage type - LOG_ENTRY_TYPE_MULTIBYTE, - - // 0x01 -- 2-byte backing store write optimization: address < 64 - LOG_ENTRY_TYPE_OPTIMIZED_64, - - // 0x02 -- 2-byte backing store write optimization: word-encoded 0/1 values - LOG_ENTRY_TYPE_WORD_01, - - LOG_ENTRY_TYPES -}; - -_Static_assert(LOG_ENTRY_TYPES <= (1 << 2), "Too many log entry types to fit into 2 bits of storage"); - -#define BITMASK_FOR_BITCOUNT(n) ((1 << (n)) - 1) - -#define LOG_ENTRY_GET_TYPE(entry) (((entry).raw8[0] >> 6) & BITMASK_FOR_BITCOUNT(2)) - -#define LOG_ENTRY_MULTIBYTE_MAX_BYTES 5 -#define LOG_ENTRY_MULTIBYTE_GET_ADDRESS(entry) (((((uint32_t)((entry).raw8[0])) & BITMASK_FOR_BITCOUNT(3)) << 16) | (((uint32_t)((entry).raw8[1])) << 8) | (entry).raw8[2]) -#define LOG_ENTRY_MULTIBYTE_GET_LENGTH(entry) ((uint8_t)(((entry).raw8[0] >> 3) & BITMASK_FOR_BITCOUNT(3))) -#define LOG_ENTRY_MAKE_MULTIBYTE(address, length) \ - (write_log_entry_t) { \ - .raw8 = { \ - [0] = (((((uint8_t)LOG_ENTRY_TYPE_MULTIBYTE) & BITMASK_FOR_BITCOUNT(2)) << 6) /* type */ \ - | ((((uint8_t)(length)) & BITMASK_FOR_BITCOUNT(3)) << 3) /* length */ \ - | ((((uint8_t)((address) >> 16))) & BITMASK_FOR_BITCOUNT(3)) /* address */ \ - ), \ - [1] = (((uint8_t)((address) >> 8)) & BITMASK_FOR_BITCOUNT(8)), /* address */ \ - [2] = (((uint8_t)(address)) & BITMASK_FOR_BITCOUNT(8)), /* address */ \ - } \ - } - -#define LOG_ENTRY_OPTIMIZED_64_GET_ADDRESS(entry) ((uint32_t)((entry).raw8[0] & BITMASK_FOR_BITCOUNT(6))) -#define LOG_ENTRY_OPTIMIZED_64_GET_VALUE(entry) ((entry).raw8[1]) -#define LOG_ENTRY_MAKE_OPTIMIZED_64(address, value) \ - (write_log_entry_t) { \ - .raw8 = { \ - [0] = (((((uint8_t)LOG_ENTRY_TYPE_OPTIMIZED_64) & BITMASK_FOR_BITCOUNT(2)) << 6) /* type */ \ - | ((((uint8_t)(address))) & BITMASK_FOR_BITCOUNT(6)) /* address */ \ - ), \ - [1] = ((uint8_t)(value)), /* value */ \ - } \ - } - -#define LOG_ENTRY_WORD_01_GET_ADDRESS(entry) ((((uint32_t)(((entry).raw8[0]) & BITMASK_FOR_BITCOUNT(5))) << 9) | (((uint32_t)((entry).raw8[1])) << 1)) -#define LOG_ENTRY_WORD_01_GET_VALUE(entry) ((uint8_t)((entry).raw8[0] >> 5) & BITMASK_FOR_BITCOUNT(1)) -#define LOG_ENTRY_MAKE_WORD_01(address, value) \ - (write_log_entry_t) { \ - .raw8 = { \ - [0] = (((((uint8_t)LOG_ENTRY_TYPE_WORD_01) & BITMASK_FOR_BITCOUNT(2)) << 6) /* type */ \ - | (((((uint8_t)((value) ? 1 : 0))) & BITMASK_FOR_BITCOUNT(1)) << 5) /* value */ \ - | ((((uint8_t)((address) >> 9))) & BITMASK_FOR_BITCOUNT(5)) /* address */ \ - ), \ - [1] = (uint8_t)((address) >> 1), /* address */ \ - } \ - } diff --git a/readme.md b/readme.md index 63b483c744..5649ddfa09 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,3 @@ -# This is the `develop` branch! - -See the [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) document for more information. - # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) diff --git a/shell.nix b/shell.nix index a96aa840de..7e3704d010 100644 --- a/shell.nix +++ b/shell.nix @@ -48,7 +48,7 @@ in mkShell { name = "qmk-firmware"; - buildInputs = [ clang-tools dfu-programmer dfu-util diffutils git pythonEnv poetry niv ] + buildInputs = [ clang-tools dfu-programmer dfu-util diffutils git pythonEnv niv ] ++ lib.optional avr [ pkgsCross.avr.buildPackages.binutils pkgsCross.avr.buildPackages.gcc8 diff --git a/tests/tap_dance/examples.c b/tests/tap_dance/examples.c deleted file mode 100644 index 4a5be41b08..0000000000 --- a/tests/tap_dance/examples.c +++ /dev/null @@ -1,199 +0,0 @@ -/* Copyright 2022 Jouke Witteveen - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public 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 "examples.h" - -// Example code from the tap dance documentation, adapted for testing - -// clang-format off - -// Example 1 - -void dance_egg(qk_tap_dance_state_t *state, void *user_data) { - if (state->count >= 100) { - // SEND_STRING("Safety dance!"); - tap_code(KC_C); - reset_tap_dance(state); - } -} - - -// Example 2 - -void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) { - switch (state->count) { - case 1: - register_code(KC_3); - break; - case 2: - register_code(KC_2); - break; - case 3: - register_code(KC_1); - break; - case 4: - unregister_code(KC_3); - // wait_ms(50); - unregister_code(KC_2); - // wait_ms(50); - unregister_code(KC_1); - } -} - -void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) { - if (state->count >= 4) { - // reset_keyboard(); - tap_code(KC_R); - } -} - -void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) { - unregister_code(KC_1); - // wait_ms(50); - unregister_code(KC_2); - // wait_ms(50); - unregister_code(KC_3); -} - - -// Example 3 - -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) { - qk_tap_dance_action_t *action; - - switch (keycode) { - case TD(CT_CLN): - 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); - } - } - return true; -} - -void tap_dance_tap_hold_finished(qk_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(qk_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}), } - - -// Example 4 - -typedef enum { - TD_NONE, - TD_UNKNOWN, - TD_SINGLE_TAP, - TD_SINGLE_HOLD, - TD_DOUBLE_TAP, - TD_DOUBLE_HOLD, - TD_DOUBLE_SINGLE_TAP, - TD_TRIPLE_TAP, - TD_TRIPLE_HOLD -} td_state_t; - -typedef struct { - bool is_press_action; - td_state_t state; -} td_tap_t; - -td_state_t cur_dance(qk_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) return TD_DOUBLE_SINGLE_TAP; - else if (state->pressed) return TD_DOUBLE_HOLD; - else return TD_DOUBLE_TAP; - } - - if (state->count == 3) { - if (state->interrupted || !state->pressed) return TD_TRIPLE_TAP; - else return TD_TRIPLE_HOLD; - } else return TD_UNKNOWN; -} - -static td_tap_t xtap_state = { - .is_press_action = true, - .state = TD_NONE -}; - -void x_finished(qk_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_X); break; - case TD_SINGLE_HOLD: register_code(KC_LCTL); break; - case TD_DOUBLE_TAP: register_code(KC_ESC); break; - case TD_DOUBLE_HOLD: register_code(KC_LALT); break; - case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); - default: break; // Not present in documentation - } -} - -void x_reset(qk_tap_dance_state_t *state, void *user_data) { - switch (xtap_state.state) { - case TD_SINGLE_TAP: unregister_code(KC_X); break; - case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; - case TD_DOUBLE_TAP: unregister_code(KC_ESC); break; - case TD_DOUBLE_HOLD: unregister_code(KC_LALT); - case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X); - default: break; // Not present in documentation - } - xtap_state.state = TD_NONE; -} - - -qk_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) -}; - -// clang-format on diff --git a/tests/tap_dance/test_examples.cpp b/tests/tap_dance/test_examples.cpp deleted file mode 100644 index e67e6cb907..0000000000 --- a/tests/tap_dance/test_examples.cpp +++ /dev/null @@ -1,319 +0,0 @@ -/* Copyright 2022 Jouke Witteveen - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public 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" -#include "examples.h" - -using testing::_; -using testing::InSequence; - -class TapDance : public TestFixture {}; - -TEST_F(TapDance, DoubleTap) { - TestDriver driver; - InSequence s; - auto key_esc_caps = KeymapKey{0, 1, 0, TD(TD_ESC_CAPS)}; - - set_keymap({key_esc_caps}); - - /* The tap dance key does nothing on the first press */ - key_esc_caps.press(); - run_one_scan_loop(); - key_esc_caps.release(); - EXPECT_NO_REPORT(driver); - - /* We get the key press and the release on timeout */ - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_ESC)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Double tap gets us the second key */ - tap_key(key_esc_caps); - EXPECT_NO_REPORT(driver); - key_esc_caps.press(); - EXPECT_REPORT(driver, (KC_CAPS)); - run_one_scan_loop(); - key_esc_caps.release(); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); -} - -TEST_F(TapDance, DoubleTapWithMod) { - TestDriver driver; - InSequence s; - auto key_esc_caps = KeymapKey{0, 1, 0, TD(TD_ESC_CAPS)}; - auto key_shift = KeymapKey{0, 2, 0, KC_LSFT}; - - set_keymap({key_esc_caps, key_shift}); - - /* The tap dance key does nothing on the first press */ - key_shift.press(); - EXPECT_REPORT(driver, (KC_LSFT)); - run_one_scan_loop(); - key_esc_caps.press(); - run_one_scan_loop(); - - key_esc_caps.release(); - key_shift.release(); - EXPECT_EMPTY_REPORT(driver); - - /* We get the key press and the release */ - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_LSFT)); - EXPECT_REPORT(driver, (KC_LSFT, KC_ESC)); - EXPECT_REPORT(driver, (KC_LSFT)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Double tap gets us the second key */ - key_shift.press(); - EXPECT_REPORT(driver, (KC_LSFT)); - run_one_scan_loop(); - tap_key(key_esc_caps); - EXPECT_NO_REPORT(driver); - key_shift.release(); - key_esc_caps.press(); - EXPECT_REPORT(driver, (KC_LSFT, KC_CAPS)); - run_one_scan_loop(); - key_esc_caps.release(); - EXPECT_REPORT(driver, (KC_LSFT)); - run_one_scan_loop(); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); -} - -TEST_F(TapDance, DoubleTapInterrupted) { - TestDriver driver; - InSequence s; - auto key_esc_caps = KeymapKey{0, 1, 0, TD(TD_ESC_CAPS)}; - auto regular_key = KeymapKey(0, 2, 0, KC_A); - - set_keymap({key_esc_caps, regular_key}); - - /* Interrupted double tap */ - tap_key(key_esc_caps); - regular_key.press(); - /* Immediate tap of the first key */ - EXPECT_REPORT(driver, (KC_ESC)); - EXPECT_EMPTY_REPORT(driver); - /* Followed by the interrupting key */ - EXPECT_REPORT(driver, (KC_A)); - run_one_scan_loop(); - regular_key.release(); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Second tap after being interrupted acts as a single tap */ - key_esc_caps.press(); - run_one_scan_loop(); - key_esc_caps.release(); - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_ESC)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); -} - -TEST_F(TapDance, DanceFn) { - TestDriver driver; - InSequence s; - auto key_egg = KeymapKey(0, 1, 0, TD(CT_EGG)); - - set_keymap({key_egg}); - - /* 99 taps do nothing */ - for (int i = 0; i < 99; i++) { - run_one_scan_loop(); - key_egg.press(); - run_one_scan_loop(); - key_egg.release(); - } - idle_for(TAPPING_TERM); - EXPECT_NO_REPORT(driver); - run_one_scan_loop(); - - /* 100 taps trigger the action */ - for (int i = 0; i < 100; i++) { - run_one_scan_loop(); - key_egg.press(); - run_one_scan_loop(); - key_egg.release(); - } - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* 250 taps act the same as 100 taps */ - /* Taps are counted in an uint8_t, so the count overflows after 255 taps */ - for (int i = 0; i < 250; i++) { - run_one_scan_loop(); - key_egg.press(); - run_one_scan_loop(); - key_egg.release(); - } - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_C)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); -} - -TEST_F(TapDance, DanceFnAdvanced) { - TestDriver driver; - InSequence s; - auto key_flsh = KeymapKey(0, 1, 0, TD(CT_FLSH)); - - set_keymap({key_flsh}); - - /* Three taps don't trigger a reset */ - EXPECT_REPORT(driver, (KC_3)); - EXPECT_REPORT(driver, (KC_3, KC_2)); - EXPECT_REPORT(driver, (KC_3, KC_2, KC_1)); - for (int i = 0; i < 3; i++) { - run_one_scan_loop(); - key_flsh.press(); - run_one_scan_loop(); - key_flsh.release(); - } - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_3, KC_2)); - EXPECT_REPORT(driver, (KC_3)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Four taps trigger a reset */ - EXPECT_REPORT(driver, (KC_3)); - EXPECT_REPORT(driver, (KC_3, KC_2)); - EXPECT_REPORT(driver, (KC_3, KC_2, KC_1)); - EXPECT_REPORT(driver, (KC_2, KC_1)); - EXPECT_REPORT(driver, (KC_1)); - EXPECT_EMPTY_REPORT(driver); - for (int i = 0; i < 4; i++) { - run_one_scan_loop(); - key_flsh.press(); - run_one_scan_loop(); - key_flsh.release(); - } - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_R)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); -} - -TEST_F(TapDance, TapHold) { - TestDriver driver; - InSequence s; - auto key_cln = KeymapKey{0, 1, 0, TD(CT_CLN)}; - - set_keymap({key_cln}); - - /* Short taps fire on release */ - key_cln.press(); - run_one_scan_loop(); - key_cln.release(); - EXPECT_REPORT(driver, (KC_LSFT)); - EXPECT_REPORT(driver, (KC_LSFT, KC_SCLN)); - EXPECT_REPORT(driver, (KC_LSFT)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Holds immediate following a tap apply to the tap key */ - key_cln.press(); - EXPECT_REPORT(driver, (KC_LSFT)); - EXPECT_REPORT(driver, (KC_LSFT, KC_SCLN)); - idle_for(TAPPING_TERM * 2); - key_cln.release(); - EXPECT_REPORT(driver, (KC_LSFT)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Holds trigger the hold key */ - key_cln.press(); - idle_for(TAPPING_TERM); - run_one_scan_loop(); - EXPECT_REPORT(driver, (KC_SCLN)); - run_one_scan_loop(); - key_cln.release(); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); -} - -TEST_F(TapDance, QuadFunction) { - TestDriver driver; - InSequence s; - auto key_quad = KeymapKey{0, 1, 0, TD(X_CTL)}; - auto regular_key = KeymapKey(0, 2, 0, KC_A); - - set_keymap({key_quad, regular_key}); - - /* Single tap */ - key_quad.press(); - run_one_scan_loop(); - key_quad.release(); - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_X)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Single hold */ - key_quad.press(); - run_one_scan_loop(); - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_LCTL)); - run_one_scan_loop(); - key_quad.release(); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Double tap */ - tap_key(key_quad); - key_quad.press(); - run_one_scan_loop(); - key_quad.release(); - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_ESC)); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Double tap and hold */ - tap_key(key_quad); - key_quad.press(); - run_one_scan_loop(); - idle_for(TAPPING_TERM); - EXPECT_REPORT(driver, (KC_LALT)); - run_one_scan_loop(); - key_quad.release(); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); - - /* Double single tap */ - tap_key(key_quad); - tap_key(key_quad); - regular_key.press(); - EXPECT_REPORT(driver, (KC_X)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_X)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_A)); - run_one_scan_loop(); - regular_key.release(); - EXPECT_EMPTY_REPORT(driver); - run_one_scan_loop(); -} diff --git a/tmk_core/protocol/arm_atsam/md_rgb_matrix.c b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c index 52fe86d297..3ed83a44a6 100644 --- a/tmk_core/protocol/arm_atsam/md_rgb_matrix.c +++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c @@ -450,7 +450,7 @@ static void md_rgb_matrix_config_override(int i) { float bo = 0; float po; - uint8_t highest_active_layer = get_highest_layer(layer_state); + uint8_t highest_active_layer = biton32(layer_state); if (led_animation_circular) { // TODO: should use min/max values from LED configuration instead of diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index 4bb6949b4f..19e2e858fc 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -32,7 +32,6 @@ #include "usb_main.h" #include "host.h" -#include "chibios_config.h" #include "debug.h" #include "suspend.h" #ifdef SLEEP_LED_ENABLE @@ -92,13 +91,6 @@ uint8_t extra_report_blank[3] = {0}; * --------------------------------------------------------- */ -/* USB Low Level driver specific endpoint fields */ -#if !defined(usb_lld_endpoint_fields) -# define usb_lld_endpoint_fields \ - 2, /* IN multiplier */ \ - NULL, /* SETUP buffer (not a SETUP endpoint) */ -#endif - /* HID specific constants */ #define HID_GET_REPORT 0x01 #define HID_GET_IDLE 0x02 @@ -129,15 +121,16 @@ static const USBDescriptor *usb_get_descriptor_cb(USBDriver *usbp, uint8_t dtype static USBInEndpointState kbd_ep_state; /* keyboard endpoint initialization structure (IN) - see USBEndpointConfig comment at top of file */ static const USBEndpointConfig kbd_ep_config = { - USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ - NULL, /* SETUP packet notification callback */ - kbd_in_cb, /* IN notification callback */ - NULL, /* OUT notification callback */ - KEYBOARD_EPSIZE, /* IN maximum packet size */ - 0, /* OUT maximum packet size */ - &kbd_ep_state, /* IN Endpoint state */ - NULL, /* OUT endpoint state */ - usb_lld_endpoint_fields /* USB driver specific endpoint fields */ + USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ + NULL, /* SETUP packet notification callback */ + kbd_in_cb, /* IN notification callback */ + NULL, /* OUT notification callback */ + KEYBOARD_EPSIZE, /* IN maximum packet size */ + 0, /* OUT maximum packet size */ + &kbd_ep_state, /* IN Endpoint state */ + NULL, /* OUT endpoint state */ + 2, /* IN multiplier */ + NULL /* SETUP buffer (not a SETUP endpoint) */ }; #endif @@ -147,15 +140,16 @@ static USBInEndpointState mouse_ep_state; /* mouse endpoint initialization structure (IN) - see USBEndpointConfig comment at top of file */ static const USBEndpointConfig mouse_ep_config = { - USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ - NULL, /* SETUP packet notification callback */ - mouse_in_cb, /* IN notification callback */ - NULL, /* OUT notification callback */ - MOUSE_EPSIZE, /* IN maximum packet size */ - 0, /* OUT maximum packet size */ - &mouse_ep_state, /* IN Endpoint state */ - NULL, /* OUT endpoint state */ - usb_lld_endpoint_fields /* USB driver specific endpoint fields */ + USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ + NULL, /* SETUP packet notification callback */ + mouse_in_cb, /* IN notification callback */ + NULL, /* OUT notification callback */ + MOUSE_EPSIZE, /* IN maximum packet size */ + 0, /* OUT maximum packet size */ + &mouse_ep_state, /* IN Endpoint state */ + NULL, /* OUT endpoint state */ + 2, /* IN multiplier */ + NULL /* SETUP buffer (not a SETUP endpoint) */ }; #endif @@ -165,15 +159,16 @@ static USBInEndpointState shared_ep_state; /* shared endpoint initialization structure (IN) - see USBEndpointConfig comment at top of file */ static const USBEndpointConfig shared_ep_config = { - USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ - NULL, /* SETUP packet notification callback */ - shared_in_cb, /* IN notification callback */ - NULL, /* OUT notification callback */ - SHARED_EPSIZE, /* IN maximum packet size */ - 0, /* OUT maximum packet size */ - &shared_ep_state, /* IN Endpoint state */ - NULL, /* OUT endpoint state */ - usb_lld_endpoint_fields /* USB driver specific endpoint fields */ + USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ + NULL, /* SETUP packet notification callback */ + shared_in_cb, /* IN notification callback */ + NULL, /* OUT notification callback */ + SHARED_EPSIZE, /* IN maximum packet size */ + 0, /* OUT maximum packet size */ + &shared_ep_state, /* IN Endpoint state */ + NULL, /* OUT endpoint state */ + 2, /* IN multiplier */ + NULL /* SETUP buffer (not a SETUP endpoint) */ }; #endif @@ -256,27 +251,29 @@ typedef struct { .queue_capacity_in = stream##_IN_CAPACITY, .queue_capacity_out = stream##_OUT_CAPACITY, \ .in_ep_config = \ { \ - stream##_IN_MODE, /* Interrupt EP */ \ - NULL, /* SETUP packet notification callback */ \ - qmkusbDataTransmitted, /* IN notification callback */ \ - NULL, /* OUT notification callback */ \ - stream##_EPSIZE, /* IN maximum packet size */ \ - 0, /* OUT maximum packet size */ \ - NULL, /* IN Endpoint state */ \ - NULL, /* OUT endpoint state */ \ - usb_lld_endpoint_fields /* USB driver specific endpoint fields */ \ + stream##_IN_MODE, /* Interrupt EP */ \ + NULL, /* SETUP packet notification callback */ \ + qmkusbDataTransmitted, /* IN notification callback */ \ + NULL, /* OUT notification callback */ \ + stream##_EPSIZE, /* IN maximum packet size */ \ + 0, /* OUT maximum packet size */ \ + NULL, /* IN Endpoint state */ \ + NULL, /* OUT endpoint state */ \ + 2, /* IN multiplier */ \ + NULL /* SETUP buffer (not a SETUP endpoint) */ \ }, \ .out_ep_config = \ { \ - stream##_OUT_MODE, /* Interrupt EP */ \ - NULL, /* SETUP packet notification callback */ \ - NULL, /* IN notification callback */ \ - qmkusbDataReceived, /* OUT notification callback */ \ - 0, /* IN maximum packet size */ \ - stream##_EPSIZE, /* OUT maximum packet size */ \ - NULL, /* IN Endpoint state */ \ - NULL, /* OUT endpoint state */ \ - usb_lld_endpoint_fields /* USB driver specific endpoint fields */ \ + stream##_OUT_MODE, /* Interrupt EP */ \ + NULL, /* SETUP packet notification callback */ \ + NULL, /* IN notification callback */ \ + qmkusbDataReceived, /* OUT notification callback */ \ + 0, /* IN maximum packet size */ \ + stream##_EPSIZE, /* OUT maximum packet size */ \ + NULL, /* IN Endpoint state */ \ + NULL, /* OUT endpoint state */ \ + 2, /* IN multiplier */ \ + NULL, /* SETUP buffer (not a SETUP endpoint) */ \ }, \ .int_ep_config = \ { \ @@ -288,7 +285,8 @@ typedef struct { 0, /* OUT maximum packet size */ \ NULL, /* IN Endpoint state */ \ NULL, /* OUT endpoint state */ \ - usb_lld_endpoint_fields /* USB driver specific endpoint fields */ \ + 2, /* IN multiplier */ \ + NULL, /* SETUP buffer (not a SETUP endpoint) */ \ }, \ .config = { \ .usbp = &USB_DRIVER, \ diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 3d8604d541..053d2b79e3 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -93,11 +93,6 @@ void host_mouse_send(report_mouse_t *report) { if (!driver) return; #ifdef MOUSE_SHARED_EP report->report_id = REPORT_ID_MOUSE; -#endif -#ifdef MOUSE_EXTENDED_REPORT - // clip and copy to Boot protocol XY - report->boot_x = (report->x > 127) ? 127 : ((report->x < -127) ? -127 : report->x); - report->boot_y = (report->y > 127) ? 127 : ((report->y < -127) ? -127 : report->y); #endif (*driver->send_mouse)(report); } diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index 735ccdb4a1..7bbeb78af7 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -201,25 +201,15 @@ typedef struct { uint32_t usage; } __attribute__((packed)) report_programmable_button_t; -#ifdef MOUSE_EXTENDED_REPORT -typedef int16_t mouse_xy_report_t; -#else -typedef int8_t mouse_xy_report_t; -#endif - typedef struct { #ifdef MOUSE_SHARED_EP uint8_t report_id; #endif uint8_t buttons; -#ifdef MOUSE_EXTENDED_REPORT - int8_t boot_x; - int8_t boot_y; -#endif - mouse_xy_report_t x; - mouse_xy_report_t y; - int8_t v; - int8_t h; + int8_t x; + int8_t y; + int8_t v; + int8_t h; } __attribute__((packed)) report_mouse_t; typedef struct { diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index 52e3276d35..063bd2c3f1 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -126,27 +126,14 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_REPORT_SIZE(8, 0x01), HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), -# ifdef MOUSE_EXTENDED_REPORT - // Boot protocol XY ignored in Report protocol - HID_RI_REPORT_COUNT(8, 0x02), - HID_RI_REPORT_SIZE(8, 0x08), - HID_RI_INPUT(8, HID_IOF_CONSTANT), -# endif - // X/Y position (2 or 4 bytes) + // X/Y position (2 bytes) HID_RI_USAGE_PAGE(8, 0x01), // Generic Desktop HID_RI_USAGE(8, 0x30), // X HID_RI_USAGE(8, 0x31), // Y -# ifndef MOUSE_EXTENDED_REPORT HID_RI_LOGICAL_MINIMUM(8, -127), HID_RI_LOGICAL_MAXIMUM(8, 127), HID_RI_REPORT_COUNT(8, 0x02), HID_RI_REPORT_SIZE(8, 0x08), -# else - HID_RI_LOGICAL_MINIMUM(16, -32767), - HID_RI_LOGICAL_MAXIMUM(16, 32767), - HID_RI_REPORT_COUNT(8, 0x02), - HID_RI_REPORT_SIZE(8, 0x10), -# endif HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), // Vertical wheel (1 byte) diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index d07cc0d27e..ebde955d3b 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -482,28 +482,14 @@ const PROGMEM uchar shared_hid_report[] = { 0x75, 0x01, // Report Size (1) 0x81, 0x02, // Input (Data, Variable, Absolute) -# ifdef MOUSE_EXTENDED_REPORT - // Boot protocol XY ignored in Report protocol - 0x95, 0x02, // Report Count (2) - 0x75, 0x08, // Report Size (8) - 0x81, 0x03, // Input (Constant) -# endif - - // X/Y position (2 or 4 bytes) + // X/Y position (2 bytes) 0x05, 0x01, // Usage Page (Generic Desktop) 0x09, 0x30, // Usage (X) 0x09, 0x31, // Usage (Y) -# ifndef MOUSE_EXTENDED_REPORT 0x15, 0x81, // Logical Minimum (-127) 0x25, 0x7F, // Logical Maximum (127) 0x95, 0x02, // Report Count (2) 0x75, 0x08, // Report Size (8) -# else - 0x16, 0x01, 0x80, // Logical Minimum (-32767) - 0x26, 0xFF, 0x7F, // Logical Maximum (32767) - 0x95, 0x02, // Report Count (2) - 0x75, 0x10, // Report Size (16) -# endif 0x81, 0x06, // Input (Data, Variable, Relative) // Vertical wheel (1 byte) diff --git a/users/333fred/333fred.c b/users/333fred/333fred.c index ea7b904403..99f4e01685 100644 --- a/users/333fred/333fred.c +++ b/users/333fred/333fred.c @@ -115,7 +115,7 @@ void tap_dance_process_keycode(uint16_t keycode) { } __attribute__ ((weak)) -void layer_state_set_rgb(layer_state_t state) {} +void layer_state_set_rgb(uint32_t state) {} layer_state_t layer_state_set_user(layer_state_t state) { layer_state_set_rgb(state); diff --git a/users/333fred/rgb.c b/users/333fred/rgb.c index ae21702030..d287143302 100644 --- a/users/333fred/rgb.c +++ b/users/333fred/rgb.c @@ -23,8 +23,8 @@ #include "quantum.h" #include "333fred.h" -void layer_state_set_rgb(layer_state_t state) { - switch (get_highest_layer(state)) { +void layer_state_set_rgb(uint32_t state) { + switch (biton32(state)) { case BASE: // purple rgblight_sethsv_noeeprom(210, 255, 20); diff --git a/users/bbaserdem/.gitignore b/users/bbaserdem/.gitignore new file mode 100644 index 0000000000..57bd0e43b4 --- /dev/null +++ b/users/bbaserdem/.gitignore @@ -0,0 +1,2 @@ +/secrets.h +/secrets.c diff --git a/users/bbaserdem/README.md b/users/bbaserdem/README.md deleted file mode 100644 index eb8f33d422..0000000000 --- a/users/bbaserdem/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# Overview - -I have mostly ortholinear keyboards, which share a lot of functions. -For this purpose, I collected them here. - -I have the following keymaps: - -* Gherkin (Does not use the user space) -* XD75RE (Uses different keymap) -* Let's Split -* Let's Split It Up -* Planck - -# Layout - -I use DVORAK with an unorthodox Turkish layout. -If you wanna grab my code, and you used a layout with a persistent base -layer change, change it to layer 0 before proceeding. - -# Layers - -* **Dvorak**: Base layer,with dvorak layout. -* **Alternative**: Has alternate characters. -* **Game**: Toggled from *Function*, comfortable for gaming use. -* **Numeric**: Has numericals and symbols. Can be locked. -* **Function**: Layer has media and function keys. -* **Mouse**: Manipulates mouse. Can be locked. -* **Music** Allows playing sounds. - -# Functionality - -* **RGB Backlight**: With layer indication, and ability to change base layer lighting mode. -* **Secrets**: By placing a secrets.h, and not tracking it, passwords can be stored. -* **Mouse**: Mouse emulation, complete with diagonal keys. -* **Turkish**: An AltGr-like overlay that allows some non-common letters, in unicode. - -I suggest checking out how I enabled Turkish keys, -how I planned out RGB lighting, -and my mouse implementation; -they might offer some insight into fringe user cases. - -# Issues - -All features are too big for the 32kB bootloader. -Offenders are audio and rgb lights; it comes down to one or the other. - -~The Proton board, and rev 6 might fix that.~ - -# Credits - -I have previously written my keymap by myself before, but I rewrote it here, diff --git a/users/bbaserdem/bb-audio.c b/users/bbaserdem/bb-audio.c new file mode 100644 index 0000000000..eef0cdf2f6 --- /dev/null +++ b/users/bbaserdem/bb-audio.c @@ -0,0 +1,82 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include "bb-audio.h" +/* AUDIO + * This contains some audio related stuff. + * There is no need to wrap this up with preprocessor commands; + * This is only called if audio is enabled + */ + +float tone_game_intro[][2] = GAME_ON_SONG; +float tone_game_outro[][2] = GAME_OFF_SONG; + +// Audio playing when layer changes +layer_state_t layer_state_set_audio(layer_state_t state) { + // Get this layer + static bool prev_game = false; + + // If entering the game layer; play the intro sound + if (layer_state_cmp(state, _GAME) && (!prev_game)) { + stop_all_notes(); + PLAY_SONG(tone_game_intro); + prev_game = true; + } + // If exiting the game layer; play the outro sound + if ((!layer_state_cmp(state, _GAME)) && prev_game) { + stop_all_notes(); + PLAY_SONG(tone_game_outro); + prev_game = false; + } + return state; +} + +// Audio layer switch; add the music layer on top of this +bool process_record_audio(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MU_TOG: + if (!record->event.pressed) { + // On release, exit music mode if enabled + if (layer_state_is(_MUSI)) { + layer_off(_MUSI); + // If not enabled; turn off all layers and load music layer + } else { + layer_clear(); + layer_on(_MUSI); + } + } + return true; + break; + case MU_ON: + if (!record->event.pressed) { + // On release, enter music mode + layer_clear(); + layer_on(_MUSI); + } + return true; + break; + case MU_OFF: + if (!record->event.pressed) { + // On release, exit music mode + layer_off(_MUSI); + } + return true; + break; + } + return true; +} diff --git a/users/bbaserdem/bb-audio.h b/users/bbaserdem/bb-audio.h new file mode 100644 index 0000000000..351061ab9a --- /dev/null +++ b/users/bbaserdem/bb-audio.h @@ -0,0 +1,28 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "bbaserdem.h" + +/* AUDIO + * Some functions to hook to some modes + */ + +// Hook to layer change effects +layer_state_t layer_state_set_audio(layer_state_t state); + +// Hook to audio keycodes +bool process_record_audio(uint16_t keycode, keyrecord_t *record); diff --git a/users/bbaserdem/bb-backlight.c b/users/bbaserdem/bb-backlight.c new file mode 100644 index 0000000000..5eca1f2c11 --- /dev/null +++ b/users/bbaserdem/bb-backlight.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "bb-backlight.h" +/* Replaced functions with noeeprom varieties; I don't need retention across + * booting. + */ + +// Backlight LEDs +void keyboard_post_init_backlight(void) { + backlight_enable(); + backlight_level(2); +# ifdef BACKLIGHT_BREATHING + breathing_enable(); +# endif // BACKLIGHT_BREATHING +} diff --git a/users/bbaserdem/bb-backlight.h b/users/bbaserdem/bb-backlight.h new file mode 100644 index 0000000000..3af3137d9a --- /dev/null +++ b/users/bbaserdem/bb-backlight.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "bbaserdem.h" + +/* Hooks for backlight definitions + */ + +void keyboard_post_init_backlight(void); diff --git a/users/bbaserdem/bb-encoder.c b/users/bbaserdem/bb-encoder.c new file mode 100644 index 0000000000..eea9751051 --- /dev/null +++ b/users/bbaserdem/bb-encoder.c @@ -0,0 +1,514 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "bb-encoder.h" + +// Need this to call velocikey activation +#ifdef VELOCIKEY_ENABLE +# include "velocikey.h" +#endif // VELOCIKEY_ENABLE +// Need memcpy and memcmp from string.h along with transfer stuff +#ifdef OLED_ENABLE +# include +#endif // OLED_ENABLE + +/* ROTARY ENCODER + * This contains my general rotary encoder code + * Encoders each have a list of different modes they can be in. + * Each mode also have an on click action as well. + * Modes can be cycled using either shift-click or ctrl-click + * Modes can be reset using OS click + * Some modes are only accessible through some keymap layers + */ + +// Default state for the encoders +void reset_encoder_state(void) { + userspace_config.e0base = 0; + userspace_config.e0point = 0; + userspace_config.e0rgb = 0; + userspace_config.e1base = 1; + userspace_config.e1point = 1; + userspace_config.e1rgb = 1; +} + +// Encoder scroll functionality +bool encoder_update_user(uint8_t index, bool clockwise) { + uint8_t this_number; + // Differentiate layer roles + switch (get_highest_layer(layer_state)) { +# ifdef RGB_MATRIX_ENABLE + case _MEDI: + // Get correct index + if (index == 0) { + this_number = userspace_config.e0rgb; + } else if (index == 1) { + this_number = userspace_config.e1rgb; + } else { + this_number = 128; + } + switch(this_number) { + case 0: // Effect the RGB mode + if (clockwise) { + rgb_matrix_step_noeeprom(); + } else { + rgb_matrix_step_reverse_noeeprom(); + } + break; + case 1: // Effect the RGB hue + if (clockwise) { + rgb_matrix_increase_hue_noeeprom(); + } else { + rgb_matrix_decrease_hue_noeeprom(); + } + break; + case 2: // Effect the RGB saturation + if (clockwise) { + rgb_matrix_increase_sat_noeeprom(); + } else { + rgb_matrix_decrease_sat_noeeprom(); + } + break; + case 3: // Effect the RGB brightness + if (clockwise) { + rgb_matrix_increase_val_noeeprom(); + } else { + rgb_matrix_decrease_val_noeeprom(); + } + break; + case 4: // Effect the RGB effect speed + if (clockwise) { + rgb_matrix_increase_speed_noeeprom(); + } else { + rgb_matrix_decrease_speed_noeeprom(); + } + break; + } + break; +# endif // RGB_MATRIX_ENABLE +# ifdef MOUSEKEY_ENABLE + case _MOUS: + // Get correct index + if (index == 0) { + this_number = userspace_config.e0point; + } else if (index == 1) { + this_number = userspace_config.e1point; + } else { + this_number = 128; + } + switch(this_number) { + case 0: // Move mouse on horizontal axis + if (clockwise) { + tap_code(KC_MS_R); + } else { + tap_code(KC_MS_L); + } + break; + case 1: // Move mouse on vertical axis + if (clockwise) { + tap_code(KC_MS_D); + } else { + tap_code(KC_MS_U); + } + break; + case 2: // Move mouse wheel on vertical axis + if (clockwise) { + tap_code(KC_WH_D); + } else { + tap_code(KC_WH_U); + } + break; + case 3: // Move mouse on horizontal axis + if (clockwise) { + tap_code(KC_WH_R); + } else { + tap_code(KC_WH_L); + } + break; + } + break; +# endif // MOUSEKEY_ENABLE + default: + // Get correct index + if (index == 0) { + this_number = userspace_config.e0base; + } else if (index == 1) { + this_number = userspace_config.e1base; + } else { + this_number = 128; + } + switch(this_number) { + case 0: // Volume + if (clockwise) { + tap_code16(KC_VOLU); + } else { + tap_code16(KC_VOLD); + } + break; + case 1: // Song change + if (clockwise) { + tap_code16(KC_MNXT); + } else { + tap_code16(KC_MPRV); + } + break; + case 2: // Move to audio sink + if (clockwise) { + tap_code16(KC_F13); + } else { + tap_code16(S(KC_F13)); + } + break; + case 3: // Volume of source + if (clockwise) { + tap_code16(S(KC_VOLU)); + } else { + tap_code16(C(KC_VOLD)); + } + break; + case 4: // Move to audio source + if (clockwise) { + tap_code16(C(KC_F13)); + } else { + tap_code16(C(S(KC_F13))); + } + break; + case 5: // Left-right + if (clockwise) { + tap_code16(KC_RGHT); + } else { + tap_code16(KC_LEFT); + } + break; + case 6: // Up-down + if (clockwise) { + tap_code16(KC_DOWN); + } else { + tap_code16(KC_UP); + } + break; + case 7: // Page Up-down + if (clockwise) { + tap_code16(KC_PGDN); + } else { + tap_code16(KC_PGUP); + } + break; + case 8: // Delete + if (clockwise) { + tap_code16(KC_DEL); + } else { + tap_code16(KC_BSPC); + } + break; + } + break; + } + return false; +} + +void encoder_click_action(uint8_t index) { + uint8_t this_number; + // Differentiate layer roles + switch (get_highest_layer(layer_state)) { +# ifdef RGB_MATRIX_ENABLE + case _MEDI: + // Get correct index + if (index == 0) { + this_number = userspace_config.e0rgb; + } else if (index == 1) { + this_number = userspace_config.e1rgb; + } else { + this_number = 128; + } + switch(this_number) { + case 0: // Return to no animation + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + break; + case 1: + case 2: + case 3: // Toggle + rgb_matrix_increase_val_noeeprom(); + break; + case 4: // Toggle velocikey +# ifdef VELOCIKEY_ENABLE + velocikey_toggle(); +# endif // VELOCIKEY_ENABLE + break; + } + break; +# endif // RGB_MATRIX_ENABLE +# ifdef MOUSEKEY_ENABLE + case _MOUS: + // Get correct index + if (index == 0) { + this_number = userspace_config.e0point; + } else if (index == 1) { + this_number = userspace_config.e1point; + } else { + this_number = 128; + } + switch(this_number) { + case 0: // Left click + tap_code16(KC_BTN1); + break; + case 1: // Right click + tap_code16(KC_BTN2); + break; + case 2: + case 3: // Middle click + tap_code16(KC_BTN2); + break; + } + break; +# endif // MOUSEKEY_ENABLE + default: + // Get correct index + if (index == 0) { + this_number = userspace_config.e0base; + } else if (index == 1) { + this_number = userspace_config.e1base; + } else { + this_number = 128; + } + switch(this_number) { + case 0: // Toggle mute + case 2: + tap_code16(KC_MUTE); + break; + case 1: // Pause + tap_code16(KC_MPLY); + break; + case 3: // Mute source + case 4: + tap_code16(A(KC_MUTE)); + break; + case 5: // Insert + tap_code16(KC_INS); + break; + case 6: // Capslock + tap_code16(KC_CAPS); + break; + case 7: // Redo + tap_code16(BB_REDO); + break; + case 8: // Undo + tap_code16(BB_UNDO); + break; + } + break; + } +} + +bool process_record_encoder(uint16_t keycode, keyrecord_t *record) { + // Check if and which encoder + int encoder_index = -1; + + // Get the pressed encoder + switch (keycode) { + case BB_ENC0: + encoder_index = 0; + break; + case BB_ENC1: + encoder_index = 1; + break; + } + + // Activate encoder function of button + if ((encoder_index >= 0) & (!record->event.pressed)) { + // If shifted, move mode one point forward + if (get_mods() & MOD_MASK_SHIFT) { + switch (get_highest_layer(layer_state)) { +# ifdef RGB_MATRIX_ENABLE + case _MEDI: + if (encoder_index == 0) { + userspace_config.e0rgb = (userspace_config.e0rgb + 1) % 5; + } else { + userspace_config.e1rgb = (userspace_config.e1rgb + 1) % 5; + } + break; +# endif // RGB_MATRIX_ENABLE +# ifdef MOUSEKEY_ENABLE + case _MOUS: + if (encoder_index == 0) { + userspace_config.e0point = (userspace_config.e0point + 1) % 4; + } else { + userspace_config.e1point = (userspace_config.e1point + 1) % 4; + } + break; +# endif // MOUSEKEY_ENABLE + default: + if (encoder_index == 0) { + userspace_config.e0base = (userspace_config.e0base + 1) % 9; + } else { + userspace_config.e1base = (userspace_config.e1base + 1) % 9; + } + break; + } + // If ctrl is active, move mode one point backwards + } else if (get_mods() & MOD_MASK_CTRL) { + switch (get_highest_layer(layer_state)) { +# ifdef RGB_MATRIX_ENABLE + case _MEDI: + if (encoder_index == 0) { + userspace_config.e0rgb = (userspace_config.e0rgb + 5 - 1) % 5; + } else { + userspace_config.e1rgb = (userspace_config.e1rgb + 5 - 1) % 5; + } + break; +# endif // RGB_MATRIX_ENABLE +# ifdef MOUSEKEY_ENABLE + case _MOUS: + if (encoder_index == 0) { + userspace_config.e0point = (userspace_config.e0point + 4 - 1) % 4; + } else { + userspace_config.e1point = (userspace_config.e1point + 4 - 1) % 4; + } + break; +# endif // MOUSEKEY_ENABLE + default: + if (encoder_index == 0) { + userspace_config.e0base = (userspace_config.e0base + 9 - 1) % 9; + } else { + userspace_config.e1base = (userspace_config.e1base + 9 - 1) % 9; + } + break; + } + // If meta is active, reset the encoder states + } else if (get_mods() & MOD_MASK_GUI) { + reset_encoder_state(); + eeconfig_update_user(userspace_config.raw); + // If nothing else; just perform the click action + } else { + encoder_click_action(encoder_index); + } + } + return true; +} + +// For printing status to OLED +#ifdef OLED_ENABLE +void encoder_state_string(uint8_t index, uint8_t layer, char* buffer) { + uint8_t this_number; + // Get the layer straight from the main function + switch (layer) { + // If RGB control mode is enabled +# ifdef RGB_MATRIX_ENABLE + case _MEDI: + // Get correct index + if (index == 0) { + this_number = userspace_config.e0rgb; + } else if (index == 1) { + this_number = userspace_config.e1rgb; + } else { + this_number = 128; + } + switch (this_number) { + case 0: + strcpy(buffer, "ani mode"); + break; + case 1: + strcpy(buffer, "hue "); + break; + case 2: + strcpy(buffer, "saturat."); + break; + case 3: + strcpy(buffer, "bright. "); + break; + case 4: + strcpy(buffer, "ani. spd"); + break; + default: + strcpy(buffer, " -N/A- "); + break; + } + break; +# endif // RGB_MATRIX_ENABLE + // If pointer control is enabled +# ifdef MOUSEKEY_ENABLE + case _MOUS: + // Get correct index + if (index == 0) { + this_number = userspace_config.e0point; + } else if (index == 1) { + this_number = userspace_config.e1point; + } else { + this_number = 128; + } + switch (this_number) { + case 0: + strcpy(buffer, "Lateral "); + break; + case 1: + strcpy(buffer, "Vertical"); + break; + case 2: + strcpy(buffer, "Scr. Ver"); + break; + case 3: + strcpy(buffer, "Scr. Lat"); + break; + default: + strcpy(buffer, " -N/A- "); + break; + } + break; +# endif // MOUSEKEY_ENABLE + default: + // Get correct index + if (index == 0) { + this_number = userspace_config.e0base; + } else if (index == 1) { + this_number = userspace_config.e1base; + } else { + this_number = 128; + } + switch (this_number) { + case 0: + strcpy(buffer, "Volume "); + break; + case 1: + strcpy(buffer, "Song "); + break; + case 2: + strcpy(buffer, "Sink "); + break; + case 3: + strcpy(buffer, "Src. Vol"); + break; + case 4: + strcpy(buffer, "Source "); + break; + case 5: + strcpy(buffer, "Arrow LR"); + break; + case 6: + strcpy(buffer, "Arrow UD"); + break; + case 7: + strcpy(buffer, "Page U/D"); + break; + case 8: + strcpy(buffer, "Erase "); + break; + default: + strcpy(buffer, " -N/A- "); + break; + } + break; + } +} +#endif // OLED_ENABLE diff --git a/users/bbaserdem/bb-encoder.h b/users/bbaserdem/bb-encoder.h new file mode 100644 index 0000000000..dce08cd3d5 --- /dev/null +++ b/users/bbaserdem/bb-encoder.h @@ -0,0 +1,29 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "bbaserdem.h" + +// Hook to encoder stuff +bool encoder_update_user(uint8_t index, bool clockwise); +// Complicated code for what the encoder keys do when pressed +bool process_record_encoder(uint16_t keycode, keyrecord_t *record); +// Clear the encoder settings +void reset_encoder_state(void); +// This is so that encoder state is synched between two halves +void housekeeping_task_encoder(void); +// This is purely for oled; should it want to use it +void encoder_state_string(uint8_t index, uint8_t layer, char* buffer); diff --git a/users/bbaserdem/bb-macro.c b/users/bbaserdem/bb-macro.c new file mode 100644 index 0000000000..a84a7bbc21 --- /dev/null +++ b/users/bbaserdem/bb-macro.c @@ -0,0 +1,156 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "bb-macro.h" + +/* MACRO Definitions + * This file has my macros/unicodes + * Hooks for other functionality to inject itself into the process_record + */ + +// Tap dance definitons +#ifdef AUDIO_ENABLE +#ifdef TAP_DANCE_ENABLE +qk_tap_dance_action_t tap_dance_actions[] = { + // Music playback speed modulator + [TD_AUDIO_TEMPO] = ACTION_TAP_DANCE_DOUBLE(MU_SLOW, MU_FAST), +}; +#endif // AUDIO_ENABLE +#endif // TAP_DANCE_ENABLE + +// Unicode definitions; for single character keys +// We mask their definitions if unicode is not enabled +#ifdef UNICODEMAP_ENABLE +const uint32_t PROGMEM unicode_map[] = { + [UPC_A_CIRC] = 0x00C2, [LOW_A_CIRC] = 0x00E2, //  â + [UPC_C_CEDI] = 0x00C7, [LOW_C_CEDI] = 0x00E7, // Ç ç + [UPC_G_BREV] = 0x011E, [LOW_G_BREV] = 0x001F, // Ğ ğ + [UPC_I_CIRC] = 0x00CE, [LOW_I_CIRC] = 0x00EE, // Î î + [UPC_I_DOTL] = 0x0049, [LOW_I_DOTL] = 0x0131, // I ı + [UPC_I_DOTT] = 0x0130, [LOW_I_DOTT] = 0x0069, // İ i + [UPC_O_DIAE] = 0x00D6, [LOW_O_DIAE] = 0x00F6, // Ö ö + [UPC_S_CEDI] = 0x015E, [LOW_S_CEDI] = 0x015F, // Ş ş + [UPC_U_CIRC] = 0x00DB, [LOW_U_CIRC] = 0x00FB, // Û û + [UPC_U_DIAE] = 0x00DC, [LOW_U_DIAE] = 0x00FC, // Ü ü + [UPC_ALPHA] = 0x0391, [LOW_ALPHA] = 0x03B1, // Α α + [UPC_BETA] = 0x0392, [LOW_BETA] = 0x03B2, // Β β + [UPC_GAMMA] = 0x0393, [LOW_GAMMA] = 0x03B3, // Γ γ + [UPC_DELTA] = 0x0394, [LOW_DELTA] = 0x03B4, // Δ δ + [UPC_EPSILON] = 0x0395, [LOW_EPSILON] = 0x03B5, // Ε ε + [UPC_ZETA] = 0x0396, [LOW_ZETA] = 0x03B6, // Ζ ζ + [UPC_ETA] = 0x0397, [LOW_ETA] = 0x03B7, // Η η + [UPC_THETA] = 0x0398, [LOW_THETA] = 0x03B8, // Θ θ + [UPC_IOTA] = 0x0399, [LOW_IOTA] = 0x03B9, // Ι ι + [UPC_KAPPA] = 0x039A, [LOW_KAPPA] = 0x03BA, // Κ κ + [UPC_LAMBDA] = 0x039B, [LOW_LAMBDA] = 0x03BB, // Λ λ + [UPC_MU] = 0x039C, [LOW_MU] = 0x03BC, // Μ μ + [UPC_NU] = 0x039D, [LOW_NU] = 0x03BD, // Ν ν + [UPC_XI] = 0x039E, [LOW_XI] = 0x03BE, // Ξ ξ + [UPC_OMICRON] = 0x039F, [LOW_OMICRON] = 0x03BF, // Ο ο + [UPC_PI] = 0x03A0, [LOW_PI] = 0x03C0, // Π π + [UPC_RHO] = 0x03A1, [LOW_RHO] = 0x03C1, // Ρ ρ + [UPC_SIGMA] = 0x03A3, [LOW_SIGMA] = 0x03C3, // Σ σ + [UPC_TAU] = 0x03A4, [LOW_TAU] = 0x03C4, // Τ τ + [UPC_UPSILON] = 0x03A5, [LOW_UPSILON] = 0x03C5, // Υ υ + [UPC_PHI] = 0x03A6, [LOW_PHI] = 0x03C6, // Φ φ + [UPC_CHI] = 0x03A7, [LOW_CHI] = 0x03C7, // Χ χ + [UPC_PSI] = 0x03A8, [LOW_PSI] = 0x03C8, // Ψ ψ + [UPC_OMEGA] = 0x03A9, [LOW_OMEGA] = 0x03C9, // Ω ω + [ELLIPSIS] = 0x2026, // … + [PLANCK_CON] = 0x210F, // ℏ + [ANGSTROM] = 0x212B, // Å + [BITCOIN] = 0x20BF // ₿ +}; +#endif // UNICODEMAP_ENABLE + +// Keycodes +bool process_record_macro(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // AltGr + Caps should change the oled layout variable + case KC_CAPSLOCK: + if (record->event.pressed) { + if (get_mods() & MOD_BIT(KC_RALT)) { + userspace_config.layout = (userspace_config.layout + 1) % 3; + } + } + return true; + break; + case BB_OLED: + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + // Scroll in opposite direction + userspace_config.layout = (userspace_config.layout + 4) % 3; + } else { + userspace_config.layout = (userspace_config.layout + 1) % 3; + } + } + return false; + break; + // Plain macros + case BB_PGPK: + // My public PGP key + if (record->event.pressed) { + SEND_STRING("0B7151C823559DD8A7A04CE36426139E2F4C6CCE"); + } + return false; break; + case DBL_ANG: + // Double angular bracket + if (record->event.pressed) { + SEND_STRING("<>"SS_TAP(X_LEFT)); + } + return false; break; + case DBL_PAR: + // Double paranthesis + if (record->event.pressed) { + SEND_STRING("()"SS_TAP(X_LEFT)); + } + return false; break; + case DBL_BRC: + // Double square brackets + if (record->event.pressed) { + SEND_STRING("[]"SS_TAP(X_LEFT)); + } + return false; break; + case DBL_CBR: + // Double curly brackets + if (record->event.pressed) { + SEND_STRING("{}"SS_TAP(X_LEFT)); + } + return false; break; + // Unicode macros +# ifdef UNICODEMAP_ENABLE + case TR_FLAG: + // Turkish flag + if (record->event.pressed) { + send_unicode_string("🇹🇷"); + } + return false; break; + case BB_LENY: + // Lenny face: ( ͡° ͜ʖ ͡°) + if (record->event.pressed) { + send_unicode_string("( ͡° ͜ʖ ͡°)"); + } + return false; break; + case BB_TABL: + // Table flip: ┻━┻︵ \(°□°)/ ︵ ┻━┻ + if (record->event.pressed) { + send_unicode_string("┻━┻︵ \\(°□°)/ ︵ ┻━┻"); + } + return false; break; +# endif // UNICODEMAP_ENABLE + } + return true; +} diff --git a/users/bbaserdem/bb-macro.h b/users/bbaserdem/bb-macro.h new file mode 100644 index 0000000000..3dc14e7a8a --- /dev/null +++ b/users/bbaserdem/bb-macro.h @@ -0,0 +1,113 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "bbaserdem.h" + +/* This header file contains definitons regarding custom keycodes. + * - Both regular and unicode macros are dealt with in this file + */ + +// These will be delegated to keymap specific stuff (weak definition) +bool process_record_macro(uint16_t keycode, keyrecord_t *record); + +// Unicodemap implementation +#ifdef UNICODEMAP_ENABLE +enum userspace_unicodemap { + UPC_A_CIRC, + UPC_C_CEDI, + UPC_G_BREV, + UPC_I_CIRC, + UPC_I_DOTL, + UPC_I_DOTT, + UPC_O_DIAE, + UPC_S_CEDI, + UPC_U_CIRC, + UPC_U_DIAE, + LOW_A_CIRC, + LOW_C_CEDI, + LOW_G_BREV, + LOW_I_CIRC, + LOW_I_DOTL, + LOW_I_DOTT, + LOW_O_DIAE, + LOW_S_CEDI, + LOW_U_CIRC, + LOW_U_DIAE, + ELLIPSIS, + PLANCK_CON, + ANGSTROM, + MATHPI, + BITCOIN, + UPC_ALPHA, + UPC_BETA, + UPC_GAMMA, + UPC_DELTA, + UPC_EPSILON, + UPC_ZETA, + UPC_ETA, + UPC_THETA, + UPC_IOTA, + UPC_KAPPA, + UPC_LAMBDA, + UPC_MU, + UPC_NU, + UPC_XI, + UPC_OMICRON, + UPC_PI, + UPC_RHO, + UPC_SIGMA, + UPC_TAU, + UPC_UPSILON, + UPC_PHI, + UPC_CHI, + UPC_PSI, + UPC_OMEGA, + LOW_ALPHA, + LOW_BETA, + LOW_GAMMA, + LOW_DELTA, + LOW_EPSILON, + LOW_ZETA, + LOW_ETA, + LOW_THETA, + LOW_IOTA, + LOW_KAPPA, + LOW_LAMBDA, + LOW_MU, + LOW_NU, + LOW_XI, + LOW_OMICRON, + LOW_PI, + LOW_RHO, + LOW_SIGMA, + LOW_TAU, + LOW_UPSILON, + LOW_PHI, + LOW_CHI, + LOW_PSI, + LOW_OMEGA, +}; +#endif // UNICODEMAP_ENABLE + +// Tap dance stuff +#ifdef AUDIO_ENABLE +#ifdef TAP_DANCE_ENABLE +enum { + TD_AUDIO_TEMPO, +}; +#endif // AUDIO_ENABLE +#endif // TAP_DANCE_ENABLE diff --git a/users/bbaserdem/bb-oled-extra.c b/users/bbaserdem/bb-oled-extra.c new file mode 100644 index 0000000000..b52c4b335a --- /dev/null +++ b/users/bbaserdem/bb-oled-extra.c @@ -0,0 +1,796 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "bb-oled.h" +#include "bb-oled-extra.h" + +// Helper function that draws images +void draw_image(uint8_t row, uint8_t col, const char image[4][42]) { + // Draw this image iteratively + for (int i = 0; i < 4; i++) { + oled_set_cursor(col, row + i); + oled_write_raw_P(image[i], 42); + } +} + +// Write modifiers to the screen +void render_modifiers(uint8_t row, uint8_t col, uint8_t mods) { + static const char PROGMEM mod_meta[12] = {0x00,0x01,0x01,0x01,0x01,0x06,0x18,0x60,0x81,0x81,0x81,0x81}; + static const char PROGMEM mod_altL[12] = {0x00,0x80,0x80,0x80,0x40,0x20,0x10,0x08,0x84,0x95,0x8e,0x84}; + static const char PROGMEM mod_altR[12] = {0x00,0x86,0x8f,0x8f,0x46,0x20,0x10,0x08,0x84,0x95,0x8e,0x84}; + static const char PROGMEM mod_ctrl[12] = {0x00,0x00,0xbd,0x42,0xa5,0x99,0x99,0xa5,0x42,0xbd,0x00,0x00}; + static const char PROGMEM mod_shft[12] = {0x00,0x20,0x30,0x28,0xe4,0x02,0x01,0x02,0xe4,0x28,0x30,0x20}; + // Looks like Mods: + oled_set_cursor(col, row); + oled_write("Mods: ", false); + // Meta + if (mods & MOD_MASK_GUI) { + oled_write_raw_P(mod_meta, 12); + oled_set_cursor(col + 8, row); + } else { + oled_write(" ", false); + } + // Alt(Gr) + if (mods & MOD_BIT(KC_RALT)) { + oled_write_raw_P(mod_altR, 12); + oled_set_cursor(col + 10, row); + } else if (mods & MOD_MASK_ALT) { + oled_write_raw_P(mod_altL, 12); + oled_set_cursor(col + 10, row); + } else { + oled_write(" ", false); + } + // Ctrl + if (mods & MOD_MASK_CTRL) { + oled_write_raw_P(mod_ctrl, 12); + oled_set_cursor(col + 12, row); + } else { + oled_write(" ", false); + } + // Shift + if (mods & MOD_MASK_SHIFT) { + oled_write_raw_P(mod_shft, 12); + oled_set_cursor(col + 14, row); + } else { + oled_write(" ", false); + } +} + +// Draws the image of the currently used layout +void render_layout(uint8_t row, uint8_t col, uint8_t mods, bool isLeft) { + // DVORAK + static const char PROGMEM base0_L_dvor_nomod[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x04,0x08,0x10,0x00,0x00,0x00, + 0x00,0x0e,0x00,0x00,0x00,0x00,0x60,0xe0,0x00,0x00,0x00,0x00,0xc0,0xc0, + 0x00,0x00,0x00,0xf8,0x90,0x88,0x88,0x70,0x00,0x78,0x80,0x80,0x40,0xf8 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x00,0x00, + 0x40,0x40,0x40,0x80,0x00,0x80,0x41,0x40,0x40,0x80,0x00,0x80,0x40,0x40, + 0x40,0x80,0x00,0xc3,0x00,0x00,0x00,0xc0,0x00,0x00,0x42,0xd2,0x02,0x01 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0xd8,0x06,0x01,0x00,0x00,0x00,0x02, + 0x05,0x05,0x05,0x07,0x00,0x03,0x04,0x04,0x04,0x03,0x00,0x03,0x05,0x05, + 0x85,0x05,0x00,0xc3,0x04,0x04,0x02,0x07,0x00,0x00,0x00,0x07,0x04,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00, + 0xb6,0x76,0x00,0x00,0x00,0x1c,0x22,0x22,0x12,0xfe,0x00,0x00,0x80,0x82, + 0x7e,0x00,0x00,0x3f,0x08,0x0c,0x12,0x20,0x00,0x22,0x14,0x08,0x14,0x22}}; + static const char PROGMEM base0_L_dvor_shift[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x20,0x10,0x20,0x40,0x20,0x00,0x00, + 0x07,0x00,0x07,0x00,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x82,0x44,0x28, + 0x10,0x00,0x00,0xfe,0x12,0x12,0x12,0x0c,0x00,0x06,0x08,0xf0,0x08,0x06 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xe0, + 0x90,0x90,0x90,0xe0,0x00,0xe0,0x10,0x10,0x10,0xe0,0x00,0xf0,0x90,0x90, + 0x90,0x10,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x10,0xf0,0x10,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x80,0x87,0x80,0x00,0x00,0x07, + 0x00,0x00,0x00,0x07,0x00,0x03,0x84,0x84,0x84,0x03,0x00,0x07,0x04,0x04, + 0x04,0x84,0x00,0x83,0x04,0x04,0x04,0x83,0x00,0x80,0x04,0x07,0x04,0x80 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x01,0x00,0x28,0x04,0x03,0x00,0x00, + 0x36,0x36,0x00,0x00,0x00,0x1f,0x20,0x28,0x10,0x6f,0x00,0x18,0x20,0x20, + 0x20,0x1f,0x00,0x3f,0x04,0x0a,0x11,0x20,0x00,0x31,0x0a,0x04,0x0a,0x31}}; + static const char PROGMEM base0_R_dvor_nomod[4][42] = { + { 0x00,0xfc,0x12,0x12,0x00,0x00,0x70,0x88,0x88,0x48,0xf8,0x00,0x70,0x88, + 0x88,0x88,0x88,0x00,0xf8,0x10,0x08,0x08,0x10,0x00,0x00,0x02,0x7e,0x80, + 0x80,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x00,0x80,0x80,0x80,0xf0,0x00,0xf0,0x02,0x82,0x82,0x01,0x00,0x00,0x80, + 0xf0,0x80,0x80,0x00,0xc0,0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x83,0x04,0x04,0x02,0x07,0x00,0x07,0x01,0x00,0x00,0x07,0x00,0x00,0x00, + 0x03,0x04,0x04,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x04,0x05,0x05,0x05, + 0x02,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x3f,0x24,0x22,0x22,0x1c,0x00,0x3e,0x02,0x3e,0x02,0x3c,0x00,0x1e,0x20, + 0x1c,0x20,0x1e,0x00,0x06,0x18,0x20,0x18,0x06,0x00,0x22,0x32,0x2a,0x26, + 0x22,0x00,0x14,0x14,0x14,0x14,0x14,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM base0_R_dvor_shift[4][42] = { + { 0xfe,0x12,0x12,0x12,0x02,0x00,0xfc,0x02,0x12,0x12,0xf4,0x00,0xfc,0x02, + 0x02,0x02,0x84,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0xfe,0x00,0x00,0x00, + 0x00,0x00,0x04,0x88,0x50,0x20,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0xf1,0x10,0x10,0x10,0xe0,0x00,0xf0,0x81,0x81,0x81,0xf0,0x00,0x10,0x11, + 0xf1,0x11,0x10,0x00,0xf1,0x60,0x80,0x00,0xf1,0x00,0x61,0x91,0x91,0x91, + 0x21,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x8f,0x88,0x88,0x88,0x07,0x00,0x8f,0x00,0x00,0x00,0x8f,0x00,0x80,0x00, + 0x0f,0x00,0x80,0x00,0x8f,0x00,0x01,0x06,0x8f,0x00,0x84,0x88,0x88,0x88, + 0x87,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x7f,0x44,0x44,0x44,0x3b,0x00,0x7f,0x01,0x06,0x01,0x7f,0x00,0x1f,0x60, + 0x1c,0x60,0x1f,0x00,0x07,0x18,0x60,0x18,0x07,0x00,0x70,0x48,0x44,0x42, + 0x41,0x00,0x08,0x08,0x3e,0x08,0x08,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM symb5_R_dvor[4][42] = { + { 0x00,0x02,0x04,0x08,0x00,0x00,0x20,0x20,0xdc,0x02,0x02,0x00,0x02,0x02, + 0xdc,0x20,0x20,0x00,0x00,0xc0,0x30,0x0c,0x03,0x00,0x50,0x50,0x50,0x50, + 0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x00,0x80,0x00,0x00,0x00,0x00,0x00,0xf0,0x11,0x12,0x02,0x00,0x02,0x12, + 0x11,0xf0,0x00,0x00,0x43,0x20,0x20,0x20,0xc0,0x00,0x00,0x00,0xc0,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x01,0x80,0x41,0x82,0x01,0x00,0x00,0x1f,0x10,0x90,0x00,0x00,0x00,0x90, + 0x10,0x1f,0x00,0x00,0xc0,0x00,0x14,0x03,0x00,0x00,0x01,0x01,0x87,0x01, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x1c,0x63,0x80,0x00,0x00,0x00,0x80, + 0x63,0x1c,0x00,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00,0x00,0x7f,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM numb6_L_dvor_nomod[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20, + 0x50,0x88,0x04,0x00,0x00,0x04,0x04,0xc4,0x34,0x0c,0x00,0xd8,0x24,0x24, + 0x24,0xd8,0x00,0x18,0x24,0x24,0x24,0xf8,0x00,0xf8,0x44,0x24,0x14,0xf8 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x41,0xe0,0x00,0x00,0xe0,0xa1,0xa1, + 0xa1,0x20,0x00,0xc0,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x01,0x01,0x01,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, + 0x08,0x08,0x08,0x08,0x00,0x03,0x02,0x02,0x0f,0x02,0x00,0x04,0x08,0x08, + 0x08,0x07,0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x01,0x01,0x01,0x01,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41, + 0x22,0x14,0x08,0x00,0x00,0x00,0x04,0x02,0x7f,0x00,0x00,0x42,0x61,0x51, + 0x49,0x46,0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x5e,0x61,0x01,0x61,0x5e}}; + static const char PROGMEM numb6_L_dvor_shift[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xd8,0x24,0x54,0x88,0x40,0x00,0x50,0x20,0xf8, + 0x20,0x50,0x00,0x00,0x38,0xc6,0x01,0x00,0x00,0x00,0x01,0xc6,0x38,0x00 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x60,0x91,0xf9,0x90,0x21,0x00,0x20,0x50,0x20, + 0x80,0x60,0x00,0x40,0x20,0x10,0x21,0x40,0x00,0x00,0x01,0x00,0x00,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x8f,0x04,0x03,0x00,0x0c,0x02,0x09, + 0x14,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x3e,0x41,0x5d, + 0x55,0x5e,0x00,0x14,0x7f,0x14,0x7f,0x14,0x00,0x00,0x00,0x00,0x00,0x00}}; + // Turkish F + static const char PROGMEM base0_L_turf_nomod[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x10,0x10,0x7c,0x10,0x10,0x00,0x00, + 0xfe,0x09,0x09,0x00,0x00,0x70,0x88,0x88,0x48,0xf8,0x00,0x51,0xaa,0xaa, + 0x92,0x09,0x00,0x00,0x88,0xf8,0x80,0x00,0x00,0x70,0x88,0x88,0x88,0x70 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x40,0x80,0x00,0x80,0x40,0x00,0xc0, + 0x00,0x00,0x00,0xc0,0x00,0x00,0x42,0xd2,0x02,0x01,0x00,0x81,0x42,0x42, + 0x42,0x81,0x00,0x00,0x40,0x40,0x40,0x80,0x00,0xc0,0x10,0x00,0x10,0xc0 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x04,0x02,0x01,0x02,0x04,0x00,0x03, + 0x04,0x04,0x82,0x07,0x00,0x00,0x80,0x07,0x84,0x00,0x00,0x03,0x05,0x05, + 0x05,0x05,0x00,0x02,0x05,0x05,0x05,0x07,0x00,0x03,0x04,0x04,0x02,0x07 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x1c,0x22,0x22,0x12,0xfe,0x00,0x00, + 0x80,0x82,0x7e,0x00,0x00,0x1c,0x22,0x22,0x22,0x1c,0x00,0x06,0x18,0x20, + 0x18,0x06,0x00,0x1c,0x22,0x22,0x22,0x22,0x00,0x1c,0xa2,0x62,0x22,0x22}}; + static const char PROGMEM base0_L_turf_shift[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x28,0x10,0x7c,0x10,0x28,0x00,0xfe, + 0x12,0x12,0x12,0x02,0x00,0xfc,0x02,0x12,0x12,0xf4,0x00,0xf1,0x0a,0x4a, + 0x4a,0xd1,0x00,0x00,0x02,0xfe,0x02,0x00,0x00,0xfc,0x02,0x02,0x02,0xfc + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x30,0x40,0x80,0x40,0x30,0x00,0xf1, + 0x00,0x00,0x00,0xf0,0x00,0x00,0x21,0xe9,0x21,0x00,0x00,0xf1,0x92,0x92, + 0x92,0x11,0x00,0xe0,0x91,0x91,0x91,0xe0,0x00,0xe0,0x09,0x01,0x09,0xe0 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x0e,0x81,0x80,0x81,0x0e,0x00,0x07, + 0x08,0x08,0x08,0x87,0x00,0x00,0x50,0x1f,0x50,0x00,0x00,0x8f,0x08,0x08, + 0x08,0x88,0x00,0x0f,0x80,0x80,0x80,0x0f,0x00,0x8f,0x50,0x50,0x50,0x8f + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x3f,0x40,0x50,0x20,0xdf,0x00,0x30, + 0x40,0x40,0x40,0x3f,0x00,0x7e,0x81,0x81,0x81,0x7e,0x00,0x07,0x18,0x60, + 0x18,0x07,0x00,0x3f,0x40,0x40,0x40,0x21,0x00,0x1f,0xa0,0x60,0x20,0x10}}; + static const char PROGMEM base0_L_turf_altgr[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x10,0x10,0x10,0x30,0x00,0x00,0xf0, + 0x08,0xe8,0xa8,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x0c,0x1e,0xfe,0x02,0xfe,0x00,0x70,0x8a,0x89,0x8a,0x70 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x10,0x20,0x40,0x00,0x00,0xc1, + 0x12,0x0a,0x12,0xc2,0x00,0x00,0x10,0xc8,0x10,0x00,0x00,0x40,0xe0,0x50, + 0x10,0x20,0x00,0x00,0x50,0x48,0x50,0x80,0x00,0xc0,0x10,0x08,0x10,0xc0 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x03, + 0x04,0x04,0x02,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x83,0x05, + 0x04,0x82,0x00,0x02,0x05,0x05,0x05,0x07,0x00,0x83,0x84,0x04,0x82,0x87 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x3e,0x3e,0x3e,0x00,0x08,0x14, + 0x22,0x08,0x14,0x22,0x00,0x22,0x14,0x08,0x22,0x14,0x08,0x03,0x02,0x00, + 0x03,0x02,0x00,0x1c,0x22,0x7f,0x22,0x22,0x00,0x02,0x01,0x00,0x02,0x01}}; + static const char PROGMEM base0_L_turf_shfgr[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x90,0x90,0xfc,0x90,0x90,0x00,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,0x0a,0x09,0x0a,0xf0 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x88,0x90,0xa0,0x00,0x00,0xc0, + 0x10,0x08,0x10,0xc0,0x00,0x00,0x50,0xc8,0x50,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x80,0x50,0x48,0x50,0x80,0x00,0xc1,0x12,0x0a,0x12,0xc1 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x8f,0x4f,0x8f,0x00,0x00,0x0f, + 0x10,0x10,0x90,0x0f,0x00,0x80,0x10,0x1f,0x10,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x1f,0x82,0x82,0x82,0x1f,0x00,0x0f,0x10,0x10,0x10,0x0f + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x7c,0x7d,0x7c,0x00,0x00,0x04, + 0x0a,0x11,0x20,0x00,0x00,0x20,0x11,0x0a,0x04,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x1f,0x24,0x2a,0x20,0x1f,0x00,0x00,0x00,0x00,0x00,0x00}}; + static const char PROGMEM base0_R_turf_nomod[4][42] = { + { 0x70,0x88,0x88,0x48,0xff,0x00,0xf8,0x10,0x08,0x08,0x10,0x00,0xf8,0x08, + 0x08,0x08,0xf0,0x00,0xff,0x10,0x08,0x08,0xf0,0x00,0xf8,0x90,0x88,0x88, + 0x70,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x40,0xf8,0x40,0x40,0x00,0x00,0xf8,0x00,0x80,0x40,0x00,0x00,0xc0,0x40, + 0xc0,0x40,0x80,0x00,0x08,0xf8,0x00,0x00,0x00,0x00,0xc3,0x00,0x00,0x00, + 0xc0,0x00,0x80,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x00,0x03,0x04,0x04,0x00,0x00,0x07,0x01,0x01,0x02,0x04,0x00,0xc7,0x00, + 0x07,0x00,0x07,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x03,0x14,0x14,0x12, + 0x0f,0x00,0x04,0x15,0x0d,0x05,0x02,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x22,0x32,0x2a,0x26,0x22,0x00,0x24,0x2a,0x2a,0x2a,0x10,0x00,0x3f,0x24, + 0x22,0x22,0x1c,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0xb0,0x70,0x00, + 0x00,0x00,0x1e,0x20,0x1c,0x20,0x1e,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM base0_R_turf_shift[4][42] = { + { 0xfe,0x02,0x02,0x02,0xfc,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0xfe,0x0c, + 0x30,0xc0,0xfe,0x00,0xfe,0x10,0x10,0x10,0xfe,0x00,0xfe,0x12,0x12,0x12, + 0x0c,0x00,0x82,0x44,0x28,0x10,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x11,0x11,0xf1,0x11,0x10,0x00,0xf1,0x80,0x40,0x20,0x11,0x00,0xf1,0x20, + 0xc0,0x20,0xf1,0x00,0xf1,0x00,0x00,0x00,0x01,0x00,0x31,0x40,0x80,0x40, + 0x30,0x00,0x30,0x48,0x48,0x48,0x90,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x80,0x80,0x8f,0x80,0x80,0x00,0x0f,0x80,0x81,0x82,0x0c,0x00,0x8f,0x80, + 0x80,0x80,0x0f,0x00,0x0f,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x0f,0x00, + 0x00,0x00,0x82,0x14,0x0c,0x04,0x83,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x70,0x48,0x44,0x42,0x41,0x00,0x23,0x44,0x44,0x44,0x39,0x00,0x7f,0x44, + 0x44,0x44,0x3b,0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0xb6,0x76,0x00, + 0x00,0x00,0x1f,0x60,0x1c,0x60,0x1f,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM base0_R_turf_altgr[4][42] = { + { 0x53,0x54,0xf8,0x54,0x53,0x00,0x7c,0xba,0x8a,0x8a,0x7c,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,0x20,0xfc,0x22,0x02, + 0x84,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x80,0x80,0xf1,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00, + 0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x11,0x01, + 0x00,0x00,0x40,0xf0,0x41,0xf0,0x40,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x02,0x01,0x0f,0x08,0x08,0x06,0x83,0x40,0x40,0x40,0x00,0x00,0x0f,0x02, + 0x04,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x07,0x01,0x07,0x01,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x4a,0x4a,0x3c,0x00,0x00,0x11,0x0a, + 0x04,0x0a,0x11,0x00,0x04,0x04,0x15,0x04,0x04,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x04,0x02,0x04,0x08,0x04,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM base0_R_turf_shfgr[4][42] = { + { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x90,0x88, + 0x00,0x00,0x00,0x90,0xa1,0x90,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x00,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,0x0f, + 0x00,0x00,0x00,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x7d,0x7c, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM symb5_R_turf_nomod[4][42] = { + { 0x20,0x20,0xf8,0x20,0x20,0x00,0x00,0xc0,0x30,0x0c,0x03,0x00,0x20,0x20, + 0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x80,0x00,0xc0,0x00,0x80,0x00,0x43,0x20,0x20,0x20,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,0x9c,0xce,0x00,0x00 + },{ 0x02,0x81,0x47,0x81,0x02,0x00,0x00,0x00,0x0a,0x01,0x00,0x00,0x04,0x04, + 0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM symb5_R_turf_altgr[4][42] = { + { 0x10,0x10,0x10,0x30,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00,0x00,0x00, + 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x80,0x80,0xe0,0x80,0x80,0x00,0x00,0x00,0xa0,0x00,0x03,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,0x9c,0xce,0x00,0x00 + },{ 0x04,0x84,0x47,0x84,0x04,0x00,0x06,0x09,0x08,0x08,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,0x73,0x39,0x00,0x00 + },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM numb6_L_turf_nomod[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20, + 0x50,0x88,0x04,0x00,0x00,0x04,0x04,0xc4,0x34,0x0c,0x00,0xd8,0x24,0x24, + 0x24,0xd8,0x00,0x18,0x24,0x24,0x24,0xf8,0x00,0xf8,0x44,0x24,0x14,0xf8 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x41,0xe0,0x00,0x00,0xe0,0xa1,0xa1, + 0xa1,0x20,0x00,0xc0,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x01,0x01,0x01,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x0f,0x02,0x00,0x04,0x08,0x08, + 0x08,0x07,0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41, + 0x22,0x14,0x08,0x00,0x00,0x00,0x04,0x02,0x7f,0x00,0x00,0x42,0x61,0x51, + 0x49,0x46,0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x5e,0x61,0x01,0x61,0x5e}}; + static const char PROGMEM numb6_L_turf_shift[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, + 0x88,0x50,0x20,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x38,0xc6, + 0x01,0x00,0x00,0x00,0x01,0xc6,0x38,0x00,0x00,0x50,0x50,0x50,0x50,0x50 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x60,0x90,0xf8,0x90,0x20,0x00,0x20,0x50,0x20, + 0x81,0x60,0x00,0x70,0x89,0x48,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x8f,0x04,0x03,0x00,0x0c,0x82,0x09, + 0x94,0x08,0x00,0x07,0x08,0x89,0x06,0x09,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41, + 0x22,0x14,0x08,0x00,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x00,0x03,0x00, + 0x03,0x00,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x5e,0x61,0x01,0x61,0x5e}}; + static const char PROGMEM numb6_L_turf_altgr[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xff,0x00,0x00,0x00,0x10,0x10,0xee,0x01,0x01,0x00,0x00,0xff,0x01, + 0x01,0x00,0x00,0x00,0x01,0x01,0xff,0x00,0x00,0x01,0x01,0xee,0x10,0x10 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x10,0xf8,0x00,0x01,0x01,0x00,0x10,0xf9,0x01, + 0x01,0x00,0x00,0x88,0xa9,0x51,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xc0,0x00,0x00,0x00,0x00,0x08,0x8c,0x0a,0x1f,0x00,0x00,0x00,0x90, + 0x90,0x10,0x00,0x00,0x08,0x0c,0x0a,0x1f,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x7b,0x00,0x00,0x00,0x00,0x09,0x0f,0x08,0x00,0x00,0x00,0x09,0x0c, + 0x0a,0x09,0x00,0x14,0x7f,0x14,0x7f,0x14,0x00,0x5e,0x61,0x01,0x61,0x5e}}; + static const char PROGMEM numb6_L_turf_shfgr[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xef,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x90,0xfc, + 0x90,0x90,0x00,0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xa8,0x50, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x0a, + 0x15,0x0a,0x00,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x7b,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x04,0x05,0x05,0x02,0x00,0x00,0x5e,0x61,0x01,0x61,0x5e}}; + // QWERTY + static const char PROGMEM base0_L_qwer_nomod[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x04,0x08,0x10,0x00,0x00,0x70, + 0x88,0x88,0x48,0xf8,0x00,0x78,0x80,0x70,0x80,0x78,0x00,0x70,0xa8,0xa8, + 0xa8,0xb0,0x00,0xf8,0x10,0x08,0x08,0x10,0x00,0x08,0x7f,0x88,0x88,0x00 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x18,0x60,0x80,0x00,0x00,0x00,0x00, + 0x40,0x40,0x40,0x83,0x00,0x80,0x40,0x40,0x40,0x00,0x00,0x80,0x40,0x40, + 0x40,0xf8,0x00,0x00,0xf0,0x48,0x48,0x00,0x00,0x80,0x40,0x40,0x40,0xc0 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0xc0,0x41,0x46,0x18,0x00,0x02, + 0x05,0x05,0x05,0x07,0x00,0x04,0x05,0x05,0x05,0x02,0x00,0x03,0x04,0x04, + 0x02,0x07,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0xc3,0x14,0x14,0x12,0x0f + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0xff,0x80,0x80,0x00,0x00,0x22, + 0x32,0x2a,0x26,0x22,0x00,0x22,0x14,0x08,0x14,0x22,0x00,0x1c,0x22,0x22, + 0x22,0x22,0x00,0x06,0x18,0x20,0x18,0x06,0x00,0x3f,0x24,0x22,0x22,0x1c}}; + static const char PROGMEM base0_L_qwer_shift[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x20,0x10,0x20,0x40,0x20,0x00,0xfc, + 0x02,0x42,0x82,0x7c,0x00,0x7e,0x80,0x70,0x80,0x7e,0x00,0xfe,0x12,0x12, + 0x12,0x02,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0x02,0x02,0xfe,0x02,0x02 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xe0, + 0x91,0x91,0x90,0xe3,0x00,0x60,0x91,0x90,0x91,0x20,0x00,0xf1,0x11,0x11, + 0x11,0xe1,0x00,0xf1,0x90,0x90,0x90,0x11,0x00,0xe0,0x10,0x91,0x90,0xa0 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x9f,0x40,0x40,0x00,0x8f, + 0x80,0x80,0x80,0x8f,0x00,0x84,0x08,0x08,0x08,0x87,0x00,0x0f,0x88,0x88, + 0x88,0x07,0x00,0x8f,0x00,0x00,0x00,0x80,0x00,0x87,0x88,0x88,0x88,0x07 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x04,0x04,0x7b,0x80,0x80,0x00,0x70, + 0x48,0x44,0x42,0x41,0x00,0x71,0x0a,0x04,0x0a,0x71,0x00,0x3f,0x40,0x40, + 0x40,0x21,0x00,0x07,0x18,0x60,0x18,0x07,0x00,0x7f,0x44,0x44,0x44,0x3b}}; + static const char PROGMEM base0_R_qwer_nomod[4][42] = { + { 0x78,0x80,0x80,0x40,0xf8,0x00,0x78,0x80,0x80,0x40,0xf8,0x00,0x00,0x08, + 0xfa,0x80,0x00,0x00,0x70,0x88,0x88,0x88,0x70,0x00,0xf8,0x90,0x88,0x88, + 0x70,0x00,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0xf8,0x82,0x42,0x42,0x81,0x00,0x00,0x00,0x40,0xd0,0x00,0x00,0xf8,0x00, + 0x80,0x40,0x00,0x00,0x08,0xf8,0x00,0x00,0x00,0x00,0x03,0xc0,0xc0,0x00, + 0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x10,0x10,0x0f,0x00,0x00,0x07,0x01, + 0x01,0x02,0x04,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x00,0x16,0x0e,0x00, + 0xc0,0x00,0x00,0x40,0x40,0xc0,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x3e,0x02,0x02,0x02,0x3c,0x00,0x3e,0x02,0x3e,0x02,0x3c,0x00,0x00,0xb0, + 0x70,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0xc0,0x30,0x0c,0x03, + 0x00,0x00,0x00,0x80,0x80,0xff,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM base0_R_qwer_shift[4][42] = { + { 0x06,0x08,0xf0,0x08,0x06,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x02, + 0xfe,0x02,0x00,0x00,0xfc,0x02,0x02,0x02,0xfc,0x00,0xfe,0x12,0x12,0x12, + 0x0c,0x00,0x82,0x44,0x28,0x10,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0xf0,0x80,0x81,0x80,0xf0,0x00,0x00,0x01,0x01,0x01,0xf0,0x00,0xf0,0x81, + 0x41,0x21,0x10,0x00,0xf0,0x01,0x01,0x01,0x00,0x00,0x01,0xc0,0xc0,0x00, + 0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x8f,0x00,0x00,0x00,0x8f,0x00,0x86,0x08,0x08,0x08,0x87,0x00,0x0f,0x00, + 0x01,0x82,0x0c,0x00,0x8f,0x08,0x08,0x08,0x08,0x00,0x00,0x86,0x86,0x80, + 0x00,0x00,0x00,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x7f,0x03,0x0c,0x30,0x7f,0x00,0x7f,0x01,0x06,0x01,0x7f,0x00,0x04,0x0a, + 0x11,0x20,0x00,0x00,0x20,0x11,0x0a,0x04,0x00,0x00,0x01,0x00,0x28,0x04, + 0x03,0x00,0x00,0x80,0x80,0x7b,0x04,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM symb5_R_qwer[4][42] = { + { 0x00,0x04,0x08,0x10,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x50,0x50, + 0x50,0x50,0x50,0x00,0x10,0x10,0xee,0x01,0x01,0x00,0x01,0x01,0xee,0x10, + 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xc0,0x00,0x00,0x00,0x00,0xf8,0x09,0x0a,0x02,0x00,0x02,0x0a,0x09,0xf8, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x01,0x80,0x41,0x82,0x01,0x00,0x04,0x04,0x84,0x44,0x04,0x00,0x01,0x41, + 0x87,0x01,0x01,0x00,0xc0,0x1f,0x10,0x10,0x00,0x00,0x00,0x10,0xd0,0x1f, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x22,0xf3,0x0a,0xf3,0x22,0x00,0x00,0x1e,0x61,0x80,0x00,0x00,0x00,0x80, + 0x61,0x1e,0x00,0x00,0x00,0x03,0x0c,0x30,0xc0,0x00,0x00,0x00,0xff,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM numb6_L_qwer_nomod[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20, + 0x50,0x88,0x04,0x00,0x00,0x04,0x04,0xc4,0x34,0x0c,0x00,0xd8,0x24,0x24, + 0x24,0xd8,0x00,0x18,0x24,0x24,0x24,0xf8,0x00,0xf8,0x44,0x24,0x14,0xf8 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x70,0x00,0x71,0x00,0x00,0x00,0x80,0x41,0xe0,0x00,0x00,0xe0,0xa1,0xa1, + 0xa1,0x20,0x00,0xc0,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x01,0x71,0x01,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x0f,0x02,0x00,0x04,0x08,0x08, + 0x08,0x07,0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41, + 0x22,0x14,0x08,0x00,0x00,0x00,0x04,0x02,0x7f,0x00,0x00,0x42,0x61,0x51, + 0x49,0x46,0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x5e,0x61,0x01,0x61,0x5e}}; + static const char PROGMEM numb6_L_qwer_shift[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xd8,0x24,0x54,0x88,0x40,0x00,0x50,0x20,0xf8, + 0x20,0x50,0x00,0x00,0x38,0xc6,0x01,0x00,0x00,0x00,0x01,0xc6,0x38,0x00 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x70,0x00,0x70,0x00,0x00,0x60,0x91,0xf9,0x90,0x21,0x00,0x20,0x50,0x20, + 0x80,0x60,0x00,0x40,0x20,0x10,0x21,0x40,0x00,0x00,0x71,0x00,0x70,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x8f,0x04,0x03,0x00,0x0c,0x02,0x09, + 0x14,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x3e,0x41,0x5d, + 0x55,0x5e,0x00,0x14,0x7f,0x14,0x7f,0x14,0x00,0x00,0x00,0x00,0x00,0x00}}; + + // UNIVERSAL + static const char PROGMEM char1_L[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xe2,0xae,0x42,0x00,0x00,0x20,0x44,0x40,0x4c,0x20,0x00,0x12,0xa4,0x88, + 0xa4,0x12,0x00,0x08,0xf8,0x08,0xf8,0x08,0x00,0x78,0x80,0x80,0x80,0x78 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x41,0x40,0x41,0x80,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x81,0x40,0x40, + 0x40,0x81,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0x00,0xc0,0x00,0x00,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83, + 0xc4,0x84,0xc2,0x07,0x00,0x03,0x04,0x04,0x04,0x03,0x00,0x02,0x85,0x05, + 0x04,0x82,0x00,0x03,0x04,0x1f,0x04,0x03,0x00,0x80,0x83,0x84,0x82,0x80 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f, + 0xc4,0x44,0xef,0x3b,0x00,0x3e,0x49,0x49,0x49,0x3e,0x00,0x02,0x7f,0x09, + 0x09,0x78,0x00,0x3e,0x08,0x08,0x14,0x22,0x00,0x20,0x24,0x24,0x24,0x20}}; + static const char PROGMEM char1_R[4][42] = { + { 0x70,0x88,0xf0,0x88,0x70,0x00,0xfe,0x02,0x02,0x02,0x06,0x00,0x88,0x48, + 0x70,0x90,0x88,0x00,0xf0,0x88,0x88,0x88,0x70,0x00,0xc0,0x30,0x0c,0x30, + 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0xa0,0x50,0x53,0x90,0x20,0x00,0xc0,0x80,0x40,0x40,0x80,0x00,0x40,0x40, + 0xc0,0x40,0x40,0x00,0xc3,0x00,0x00,0x00,0xc0,0x00,0x80,0x40,0xc0,0x40, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x03,0x84,0x84,0x04,0x03,0x00,0x07,0x00,0x00,0x00,0x1f,0x00,0x00,0x80, + 0x83,0x84,0x00,0x00,0x00,0x83,0x54,0x8b,0x00,0x00,0x83,0x84,0x84,0x83, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0xff,0x24,0x24,0x27,0x18,0x00,0x7e,0x10,0x20,0x20,0x1e,0x00,0x2f,0x30, + 0x00,0x30,0x2f,0x00,0xe0,0x38,0x25,0x38,0xe0,0x00,0x18,0x26,0xa1,0xa0, + 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM game2_L[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, + 0x82,0xa2,0x42,0xbc,0x00,0x3e,0xc0,0x30,0xc0,0x3e,0x00,0xfe,0x92,0x92, + 0x92,0x82,0x00,0xfe,0x12,0x12,0x32,0xcc,0x00,0x02,0x02,0xfe,0x02,0x02 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0xe0,0x00,0xe0, + 0x90,0x90,0x90,0xe1,0x00,0x60,0x90,0x90,0x90,0x20,0x00,0xf0,0x10,0x10, + 0x10,0xe0,0x00,0xf0,0x90,0x90,0x90,0x10,0x00,0xe0,0x10,0x90,0x90,0xa0 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x00,0x87, + 0x80,0x80,0x80,0x87,0x00,0x82,0x04,0x04,0x04,0x83,0x00,0x07,0x84,0x84, + 0x84,0x03,0x00,0x87,0x00,0x00,0x00,0x80,0x00,0x83,0x84,0x84,0x84,0x03 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x08,0x3c,0x02,0x3c,0x08,0x00,0x30, + 0x28,0x24,0x22,0x21,0x00,0x31,0x0a,0x04,0x0a,0x31,0x00,0x1f,0x20,0x20, + 0x20,0x11,0x00,0x03,0x0c,0x30,0x0c,0x03,0x00,0x3f,0x24,0x24,0x24,0x1b}}; + static const char PROGMEM medi3_R_nomod[4][42] = { + { 0x03,0x0c,0xb0,0x0c,0x03,0x00,0x3f,0x02,0x9c,0x02,0x3f,0x00,0x3f,0x04, + 0x84,0x04,0x3f,0x00,0x22,0x25,0xa5,0x25,0x18,0x00,0x3f,0x25,0xa5,0x25, + 0x1a,0x00,0x00,0xe0,0x8f,0x02,0x31,0x49,0xfa,0x00,0xe7,0x73,0x00,0x00 + },{ 0xc0,0x01,0x73,0x01,0xc0,0x00,0xf0,0x81,0xc3,0xe1,0xf0,0x00,0x00,0x71, + 0x03,0x71,0x00,0x00,0x00,0xc1,0xc3,0xc1,0x00,0x00,0xf0,0xe1,0xc3,0x81, + 0xf0,0x00,0x00,0x03,0xe2,0x21,0xe0,0x21,0xc0,0x00,0x9c,0xce,0x00,0x00 + },{ 0x01,0x02,0x02,0x02,0x01,0x00,0x07,0x00,0x01,0x03,0x87,0x00,0x00,0x1f, + 0x0e,0x04,0x80,0x00,0x00,0x03,0x03,0x03,0x00,0x00,0x07,0x03,0x01,0x00, + 0x87,0x00,0x00,0x40,0xa6,0xa8,0x08,0x04,0x8e,0x00,0x73,0x39,0x00,0x00 + },{ 0x3e,0x31,0x01,0x31,0x3e,0x00,0x00,0x46,0x46,0x4f,0x1f,0x00,0x00,0xa6, + 0x46,0xaf,0x1f,0x00,0x28,0x2c,0x2e,0x2c,0x28,0x00,0x00,0x46,0xe6,0x4f, + 0x1f,0x00,0x00,0x02,0x72,0x8a,0x89,0x00,0x1e,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM medi3_R_shift[4][42] = { + { 0x03,0x0c,0x30,0x0c,0x03,0x00,0x3f,0x02,0x1c,0x02,0x3f,0x00,0x3f,0x04, + 0x04,0x04,0x3f,0x00,0x22,0x25,0x25,0x25,0x18,0x00,0x3f,0x25,0x25,0x25, + 0x1a,0x00,0x00,0xe0,0x8f,0x02,0x31,0x49,0xfa,0x00,0xe7,0x73,0x00,0x00 + },{ 0xc0,0x01,0x71,0x01,0xc0,0x00,0xf0,0x81,0xc1,0xe1,0xf0,0x00,0x00,0x71, + 0x01,0x71,0x00,0x00,0x00,0xc1,0xc1,0xc1,0x00,0x00,0xf0,0xe1,0xc1,0x81, + 0xf0,0x00,0x00,0x03,0xe2,0x21,0xe0,0x21,0xc0,0x00,0x9c,0xce,0x00,0x00 + },{ 0x01,0x02,0x02,0x02,0x01,0x00,0x07,0x00,0x01,0x03,0x87,0x00,0x00,0x1f, + 0x0e,0x04,0x80,0x00,0x00,0x03,0x03,0x03,0x00,0x00,0x07,0x03,0x01,0x00, + 0x87,0x00,0x00,0x40,0xa6,0xa8,0x08,0x04,0x8e,0x00,0x73,0x39,0x00,0x00 + },{ 0x3e,0x31,0x01,0x31,0x3e,0x00,0x00,0x46,0x46,0x4f,0x1f,0x00,0x00,0xa6, + 0x46,0xaf,0x1f,0x00,0x28,0x2c,0x2e,0x2c,0x28,0x00,0x00,0x46,0xe6,0x4f, + 0x1f,0x00,0x00,0x02,0x72,0x8a,0x89,0x00,0x1e,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM navi4_R[4][42] = { + { 0xe0,0x10,0x54,0x38,0x10,0x00,0xfc,0x24,0x24,0x24,0x18,0x00,0x0c,0x10, + 0xe0,0x10,0x0c,0x00,0x8c,0x50,0x20,0x50,0x8c,0x00,0xc0,0xbe,0xa2,0xbe, + 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x80,0xc1,0xa1,0x81,0x00,0x00,0x01,0x80,0x40,0x20,0x00,0x00,0x00,0x00, + 0xf1,0x00,0x00,0x00,0x41,0x20,0xd0,0x20,0x41,0x00,0x01,0x21,0x41,0x81, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x00,0x49,0x4a,0x48,0x87,0x00,0x81,0x82,0x85,0x89,0x01,0x00,0x01,0x02, + 0x85,0x02,0x01,0x00,0x40,0x40,0x47,0x40,0x40,0x00,0x81,0x09,0x05,0x02, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x39,0x00,0x00 + },{ 0x12,0x65,0x85,0x65,0x17,0x00,0x07,0x01,0x06,0x18,0x60,0x00,0x88,0x90, + 0xaf,0x90,0x88,0x00,0x04,0x02,0x7d,0x02,0x04,0x00,0x01,0x46,0x58,0x60, + 0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + static const char PROGMEM func7_L[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0xff,0x09,0xe9,0xc9,0x01,0x00,0xe0,0x00, + 0x10,0x08,0xfc,0x00,0x00,0x08,0x84,0x44,0x24,0x18,0x00,0x88,0x04,0x24, + 0x24,0xd8,0x00,0x60,0x50,0x48,0xfc,0x40,0x00,0x70,0x80,0x9c,0x80,0x70 + },{ 0x00,0x00,0xce,0x9c,0x00,0xf0,0x00,0x00,0x9f,0x00,0x03,0x0c,0x1f,0x00, + 0xe0,0xa0,0xa1,0x20,0x00,0xc1,0xa1,0xa1,0xa1,0x01,0x00,0x20,0x21,0x21, + 0xa1,0x60,0x00,0xc0,0x20,0x20,0x21,0xc0,0x00,0x40,0xe0,0x50,0x40,0x80 + },{ 0x00,0x00,0x39,0x73,0x00,0xef,0x02,0x83,0xe4,0x00,0x0e,0x15,0x16,0x00, + 0x04,0x08,0x08,0x07,0x00,0x07,0x48,0xc8,0x08,0x07,0x00,0x00,0x40,0xce, + 0x01,0x00,0x00,0x06,0x49,0xc9,0x09,0x06,0x00,0x06,0x08,0x49,0x08,0x07 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x05,0x04,0x03,0x90,0xa8,0xa8,0x40,0x06, + 0x49,0x49,0x49,0x3e,0x00,0x7c,0xa2,0x93,0x8a,0x7c,0x00,0x00,0x08,0x07, + 0xfe,0x00,0x00,0x84,0xc2,0xa3,0x92,0x8c,0x00,0x70,0x38,0x0d,0x38,0x70}}; + static const char PROGMEM mous8_L[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x3c,0x84,0xbc,0x84,0x38,0x00,0x00,0x00,0x10, + 0x28,0x92,0xc5,0x82,0x00,0xfe,0x1f,0x1f,0x01,0xfe,0x00,0xfe,0x01,0x19, + 0x01,0xfe,0x00,0xfe,0x01,0x1f,0x1f,0xfe,0x00,0x10,0x38,0x92,0xc7,0x82 + },{ 0x00,0x00,0xce,0x9c,0x00,0xe7,0x08,0x08,0x08,0xe7,0x00,0x00,0x00,0x00, + 0x00,0x80,0x01,0x00,0x00,0x01,0x01,0x81,0x01,0x01,0x00,0x01,0x01,0x81, + 0x01,0x01,0x00,0x01,0x01,0x81,0x01,0x01,0x00,0x60,0x50,0xf8,0x41,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x91,0xaa,0xaa,0xa9,0x43,0x00,0x00,0x00,0x02, + 0x07,0xca,0x02,0x02,0x00,0x02,0x01,0xcf,0x01,0x02,0x00,0x02,0x04,0x0f, + 0x04,0x02,0x00,0x02,0x02,0xca,0x07,0x02,0x00,0xdc,0x58,0x5c,0x18,0x1f + },{ 0x00,0x00,0xe7,0xce,0x00,0x1c,0x2a,0x2a,0x2a,0x2c,0x00,0x00,0x00,0x0c, + 0x33,0xc0,0x00,0x00,0x00,0x0c,0x03,0x00,0x03,0x0c,0x00,0x0c,0x30,0xc0, + 0x30,0x0c,0x00,0x00,0x00,0xc0,0x33,0x0c,0x00,0xe5,0xc9,0xe6,0xc0,0xf8}}; + static const char PROGMEM musi9_L[4][42] = { + { 0x00,0x00,0x73,0xe7,0x00,0x00,0x00,0x00,0x00,0xfe,0x04,0x18,0x04,0xfe, + 0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x8c,0x12,0x12,0x12,0xe4,0x00, + 0x00,0x02,0xfe,0x02,0x00,0x00,0xfc,0x02,0x02,0x02,0x84,0x00,0x00,0x00 + },{ 0x00,0x00,0xce,0x9c,0x00,0x00,0xc0,0xe0,0xf0,0xf9,0xf8,0xf8,0xf8,0xf9, + 0xf0,0xe0,0xc0,0x01,0x01,0x01,0x00,0xf0,0xf0,0x01,0x01,0xf1,0xf0,0x00, + 0x00,0x01,0x01,0x01,0x00,0x00,0xf8,0xf1,0xe1,0xc1,0x80,0x00,0x00,0x00 + },{ 0x00,0x00,0x39,0x73,0x00,0x00,0x07,0x0f,0x1f,0x3f,0x3f,0x3f,0x3f,0x3f, + 0x1f,0x0f,0x07,0x00,0x00,0x00,0x00,0x1f,0x1f,0x00,0x00,0x1f,0x1f,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x00 + },{ 0x00,0x00,0xe7,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x08, + 0xf8,0x08,0xf0,0x00,0x70,0x88,0x88,0x88,0x70,0x00,0x70,0x88,0x88,0x48, + 0xff,0x00,0x70,0xa8,0xa8,0xa8,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}; + static const char PROGMEM musi9_R[4][42] = { + { 0x00,0x00,0x00,0xfe,0x04,0x18,0x04,0xfe,0x00,0x00,0xfe,0x00,0x00,0x00, + 0xfe,0x00,0x8c,0x12,0x12,0x12,0xe4,0x00,0x00,0x02,0xfe,0x02,0x00,0x00, + 0xfc,0x02,0x02,0x02,0x84,0x00,0x00,0x00,0x00,0x00,0xe7,0x73,0x00,0x00 + },{ 0x00,0x00,0x00,0x81,0x60,0x10,0x60,0x81,0x60,0x10,0x00,0x01,0x01,0x01, + 0xe0,0xe0,0x60,0x61,0x61,0x61,0x60,0xf8,0x70,0x21,0x01,0x01,0xc0,0xe0, + 0x60,0x01,0xf9,0xf9,0x00,0x60,0xe0,0xc0,0x00,0x00,0x9c,0xce,0x00,0x00 + },{ 0x18,0x24,0x4b,0x48,0x48,0x4c,0x4b,0x48,0x4b,0x2c,0x18,0x00,0x00,0x00, + 0x4f,0xe7,0xf0,0x60,0x60,0x60,0x60,0x60,0x7e,0x7f,0x00,0x0f,0x3f,0x70, + 0x60,0xc0,0xc1,0xc1,0xc0,0x60,0x70,0x3f,0x0f,0x00,0x73,0x39,0x00,0x00 + },{ 0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x08,0xf8,0x08,0xf0,0x00,0x70,0x88, + 0x88,0x88,0x71,0x00,0x70,0x88,0x88,0x48,0xff,0x00,0x70,0xa8,0xa8,0xa8, + 0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0xe7,0x00,0x00}}; + uint8_t this_layout = userspace_config.layout % 3; + + // Render the requested image on the given column and row + // Don't grab highest layer; instead compare from top to bottom. + // Highest layer might be on the other side + if (isLeft) { + if (layer_state_cmp(layer_state, _MUSI)) { + draw_image(row, col, musi9_L); + } else if (layer_state_cmp(layer_state, _MOUS)) { + draw_image(row, col, mous8_L); + } else if (layer_state_cmp(layer_state, _FUNC)) { + draw_image(row, col, func7_L); + } else if (layer_state_cmp(layer_state, _NUMB)) { + switch (this_layout) { + case 0: // Dvorak + if (mods & MOD_MASK_SHIFT) { + draw_image(row, col, numb6_L_dvor_shift); + } else { + draw_image(row, col, numb6_L_dvor_nomod); + } + break; + case 1: // Turkish F + if ((mods & MOD_MASK_SHIFT) && (mods & MOD_BIT(KC_RALT))) { + // Shift + AltGr + draw_image(row, col, numb6_L_turf_shfgr); + } else if (mods & MOD_MASK_SHIFT) { + // Shift + draw_image(row, col, numb6_L_turf_shift); + } else if (mods & MOD_BIT(KC_RALT)) { + // AltGr + draw_image(row, col, numb6_L_turf_altgr); + } else { + // Normal + draw_image(row, col, numb6_L_turf_nomod); + } + break; + case 2: // Qwerty + if (mods & MOD_MASK_SHIFT) { + draw_image(row, col, numb6_L_qwer_shift); + } else { + draw_image(row, col, numb6_L_qwer_nomod); + } + break; + } + } else if (layer_state_cmp(layer_state, _GAME)) { + draw_image(row, col, game2_L); + } else if (layer_state_cmp(layer_state, _CHAR)) { + draw_image(row, col, char1_L); + } else { + switch (this_layout) { + case 0: // Dvorak + if (mods & MOD_MASK_SHIFT) { + draw_image(row, col, base0_L_dvor_shift); + } else { + draw_image(row, col, base0_L_dvor_nomod); + } + break; + case 1: // Turkish F + if ((mods & MOD_MASK_SHIFT) && (mods & MOD_BIT(KC_RALT))) { + // Shift + AltGr + draw_image(row, col, base0_L_turf_shfgr); + } else if (mods & MOD_MASK_SHIFT) { + // Shift + draw_image(row, col, base0_L_turf_shift); + } else if (mods & MOD_BIT(KC_RALT)) { + // AltGr + draw_image(row, col, base0_L_turf_altgr); + } else { + // Normal + draw_image(row, col, base0_L_turf_nomod); + } + break; + case 2: // Qwerty + if (mods & MOD_MASK_SHIFT) { + draw_image(row, col, base0_L_qwer_shift); + } else { + draw_image(row, col, base0_L_qwer_nomod); + } + break; + } + } + } else { + if (layer_state_cmp(layer_state, _MUSI)) { + draw_image(row, col, musi9_R); + } else if (layer_state_cmp(layer_state, _SYMB)) { + switch (this_layout) { + case 0: // Dvorak + draw_image(row, col, symb5_R_dvor); + break; + case 1: // Turkish f + if (mods & MOD_BIT(KC_RALT)) { + // AltGr + draw_image(row, col, symb5_R_turf_altgr); + } else { + // Normal + draw_image(row, col, symb5_R_turf_nomod); + } + break; + case 2: // Qwerty + draw_image(row, col, symb5_R_qwer); + break; + } + } else if (layer_state_cmp(layer_state, _NAVI)) { + draw_image(row, col, navi4_R); + } else if (layer_state_cmp(layer_state, _MEDI)) { + if (mods & MOD_MASK_SHIFT) { + draw_image(row, col, medi3_R_shift); + } else { + draw_image(row, col, medi3_R_nomod); + } + } else if (layer_state_cmp(layer_state, _CHAR)) { + draw_image(row, col, char1_R); + } else { + switch (this_layout) { + case 0: // Dvorak + if (mods & MOD_MASK_SHIFT) { + draw_image(row, col, base0_R_dvor_shift); + } else { + draw_image(row, col, base0_R_dvor_nomod); + } + break; + case 1: // Turkish F + if ((mods & MOD_MASK_SHIFT) && (mods & MOD_BIT(KC_RALT))) { + // Shift + AltGr + draw_image(row, col, base0_R_turf_shfgr); + } else if (mods & MOD_MASK_SHIFT) { + // Shift + draw_image(row, col, base0_R_turf_shift); + } else if (mods & MOD_BIT(KC_RALT)) { + // AltGr + draw_image(row, col, base0_R_turf_altgr); + } else { + // Normal + draw_image(row, col, base0_R_turf_nomod); + } + break; + case 2: // Qwerty + if (mods & MOD_MASK_SHIFT) { + draw_image(row, col, base0_R_qwer_shift); + } else { + draw_image(row, col, base0_R_qwer_nomod); + } + break; + } + } + } +} + +// Render the RGB state on the given column and row +void render_rgb(uint8_t row, uint8_t col) { + static const char PROGMEM rgb_enab[12] = {0x08,0x81,0x3c,0x42,0x99,0xbd,0xbd,0x99,0x42,0x3c,0x81,0x10}; + static const char PROGMEM rgb_disa[12] = {0x08,0x81,0x3c,0x42,0x81,0x81,0x81,0x81,0x42,0x3c,0x81,0x10}; + static char rgb_temp4[4] = {0}; + static char rgb_temp3[3] = {0}; + + oled_set_cursor(col, row); +# ifdef RGB_MATRIX_ENABLE + if (rgb_matrix_is_enabled()) { + oled_write_raw_P(rgb_enab, 12); + } else { + oled_write_raw_P(rgb_disa, 12); + } + oled_set_cursor(col + 2, row); + oled_write(" hue sat val", false); + oled_set_cursor(col, row + 1); + itoa(rgb_matrix_get_mode(), rgb_temp3, 10); + oled_write(rgb_temp3, false); + oled_write(" ", false); + itoa(rgb_matrix_get_hue(), rgb_temp4, 10); + oled_write(rgb_temp4, false); + oled_write(" ", false); + itoa(rgb_matrix_get_sat(), rgb_temp4, 10); + oled_write(rgb_temp4, false); + oled_write(" ", false); + itoa(rgb_matrix_get_val(), rgb_temp4, 10); + oled_write(rgb_temp4, false); +# else // RGB_MATRIX_ENABLE + oled_write("-RGB disabled-", false); +# endif // RGB_MATRIX_ENABLE +} + +void render_status_left(uint8_t row, uint8_t col) { + // Left side looks like this on the left half + // (Should be 14 characters per line) + // Mods: + // Enc: <8 len str> + // Wpm: + // Layout: + // Right half is whatever layer image needs be + uint8_t this_mod = get_mods(); + uint8_t this_layer = get_highest_layer(layer_state); + + // MODIFIERS + render_modifiers(row + 0, col + 0, this_mod); + // Encoders + render_encoder(row + 1, col + 0, 0, this_layer); + // WPM text + render_wpm(row + 2, col + 0); + // Visual layout + render_keymap(row + 3, col + 0, false); + // Draw the image after 14'th character + render_layout(row + 0, col + 14, this_mod, true); +} + +void render_status_right(uint8_t row, uint8_t col) { + // Right half is whatever layer image needs be on the left + // Right side looks like this on the right half + // (Should be after the 12'th character; max 14 characters per line) + // Mods: + // Enc: <8 len str> + // Wpm: + // Layout: + uint8_t this_mod = get_mods(); + uint8_t this_layer = get_highest_layer(layer_state); + + // Draw the image + render_layout(row + 0, col + 0, this_mod, false); + // Modifiers + render_modifiers(row + 0, col + 7, this_mod); + // Encoder + render_encoder(row + 1, col + 7, 1, this_layer); + // RGB State (2 rows) + render_rgb(row + 2, col + 7); +} diff --git a/users/bbaserdem/bb-oled-extra.h b/users/bbaserdem/bb-oled-extra.h new file mode 100644 index 0000000000..c051e6226c --- /dev/null +++ b/users/bbaserdem/bb-oled-extra.h @@ -0,0 +1,25 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "bbaserdem.h" + +// OLED layout images writer function +void render_modifiers(uint8_t row, uint8_t col, uint8_t mods); +void render_layout(uint8_t row, uint8_t col, uint8_t mods, bool isLeft); +void render_rgb(uint8_t row, uint8_t col); +void render_status_left(uint8_t row, uint8_t col); +void render_status_right(uint8_t row, uint8_t col); diff --git a/users/bbaserdem/bb-oled.c b/users/bbaserdem/bb-oled.c new file mode 100644 index 0000000000..cf00193c03 --- /dev/null +++ b/users/bbaserdem/bb-oled.c @@ -0,0 +1,216 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "bb-oled.h" + +#include +// Grab the print function +#ifdef ENCODER_ENABLE +# include "bb-encoder.h" +#endif // ENCODER_ENABLE + +/* OLED + * This contains general purpose oled code + */ + +// Allow default to be overwritten by keymap if they return false +__attribute__ ((weak)) bool oled_task_keymap(void) {return true;} + +// Do sane defaults for regular oled rendering +void oled_task_user(void) { + if (is_oled_on()) { + if (oled_task_keymap()) { + render_status_lite(0, 0); + } + } +} + +/*-------------------------*\ +|*---RENDERING FUNCTIONS---*| +\*-------------------------*/ +void render_qmk_logo(uint8_t row, uint8_t col) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d, + 0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6, + 0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd, + 0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; + oled_set_cursor(col, row); + oled_write_P(qmk_logo, false); +} + +void render_layer(uint8_t row, uint8_t col, uint8_t top_layer) { + // Write the layer state; 17 chars + oled_set_cursor(col, row); + oled_write("Layer: ", false); + switch (top_layer) { + case _BASE: + oled_write("Default ", false); + break; + case _CHAR: + oled_write("Sp. Chars ", false); + break; + case _GAME: + oled_write("Gaming ", false); + break; + case _MEDI: + oled_write("Media Ctr ", false); + break; + case _NAVI: + oled_write("Navigation", false); + break; + case _SYMB: + oled_write("Symbols ", false); + break; + case _NUMB: + oled_write("Numpad ", false); + break; + case _FUNC: + oled_write("Funct Keys", false); + break; + case _MOUS: + oled_write("Mouse Keys", false); + break; + case _MUSI: + oled_write("Music Mode", false); + break; + default: + oled_write("?? N/A ?? ", false); + } +} + +void render_modifiers_lite(uint8_t row, uint8_t col, uint8_t mods) { + // Write the modifier state, 16 characters + oled_set_cursor(col, row); + oled_write((mods & MOD_MASK_SHIFT ) ? "Shft " : " ", false); + oled_write((mods & MOD_MASK_CTRL ) ? "Ctrl " : " ", false); + oled_write((mods & MOD_MASK_ALT ) ? "Alt" : " ", false); + oled_write((mods & MOD_BIT(KC_RALT)) ? "G " : " ", false); + oled_write((mods & MOD_MASK_GUI ) ? "Meta " : " ", false); +} + +void render_encoder(uint8_t row, uint8_t col, uint8_t index, uint8_t layer) { + // Renders the encoder state, 14 characters + oled_set_cursor(col, row); + +# ifdef ENCODER_ENABLE + static char encoder_temp9[9] = {0}; + oled_write("Enc: ", false); + encoder_state_string(index, layer, encoder_temp9); + oled_write(encoder_temp9, false); +# else // ENCODER_ENABLE + oled_write("No enc. avail.", false); +# endif // ENCODER_ENABLE +} + +void render_wpm(uint8_t row, uint8_t col) { + // Renders the WPM, 8 characters + oled_set_cursor(col, row); +# ifdef WPM_ENABLE + static char wpm_temp4[4] = {0}; + oled_write("WPM: ", false); + itoa(get_current_wpm(), wpm_temp4, 10); + oled_write(wpm_temp4, false); + oled_write(" ", false); +# else // WPM_ENABLE + oled_write("WPM: N/A", false); +# endif // WPM_ENABLE +} + +// Writes the currently used OLED display layout +void render_keymap(uint8_t row, uint8_t col, bool isLite) { + // Render the oled layout; lite is 11, regular is 14 characters + oled_set_cursor(col, row); + if (isLite) { + oled_write("KM: ", false); + } else { + oled_write("Layout: ", false); + } + switch (userspace_config.layout % 3) { + case 0: + oled_write("Dvorak", false); + break; + case 1: + oled_write("Tur. F", false); + break; + case 2: + oled_write("Qwerty", false); + break; + } + if (isLite) { + oled_write(" ", false); + } +} + +// Writes the currently used OLED display layout +#ifdef RGB_MATRIX_ENABLE +void render_rgb_lite(uint8_t row, uint8_t col) { + // Writes the currently used OLED display layout, 19 characters + static char rgb_temp4[4] = {0}; + // Render the oled layout + oled_set_cursor(col, row); + oled_write("m", false); + itoa(rgb_matrix_get_mode(), rgb_temp4, 10); + oled_write(rgb_temp4, false); + oled_write(" h", false); + itoa(rgb_matrix_get_hue(), rgb_temp4, 10); + oled_write(rgb_temp4, false); + oled_write(" s", false); + itoa(rgb_matrix_get_sat(), rgb_temp4, 10); + oled_write(rgb_temp4, false); + oled_write(" v", false); + itoa(rgb_matrix_get_val(), rgb_temp4, 10); + oled_write(rgb_temp4, false); +} +#endif // RGB_MATRIX_ENABLE + +void render_status_lite(uint8_t row, uint8_t col) { + // Function to print state information; for low flash memory + uint8_t this_layer = get_highest_layer(layer_state); + uint8_t this_mod = get_mods(); + + // Line 1: Layer State + render_layer(row + 0, col + 0, this_layer); + + // Line 2: Mod or info + switch (this_layer) { + // Show RGB mode as an overlay in media mode. +# ifdef RGB_MATRIX_ENABLE + case _MEDI: + render_rgb_lite(row + 1, col + 0); + break; +# endif // RGB_MATRIX_ENABLE + // Show the modifier if nothing else is doing anything + default: + render_modifiers_lite(row + 1, col + 0, this_mod); + break; + } + + // Line 3: WPM and layout + render_keymap(row + 2, col + 0, true); + render_wpm(row + 2, col + 11); + + // Line 4: Encoder states +# ifdef SPLIT_KEYBOARD + if (is_keyboard_left()) { + render_encoder(row + 3, col + 0, 0, this_layer); + } else { + render_encoder(row + 3, col + 0, 1, this_layer); + } +# else // SPLIT_KEYBOARD + render_encoder(row + 3, col + 0, 0, this_layer); +# endif // SPLIT_KEYBOARD +} diff --git a/users/bbaserdem/bb-oled.h b/users/bbaserdem/bb-oled.h new file mode 100644 index 0000000000..a355c88ca9 --- /dev/null +++ b/users/bbaserdem/bb-oled.h @@ -0,0 +1,32 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "bbaserdem.h" + +// Contain the main oled writer here +void oled_task_user(void); +// Some generic rendering functions +void render_qmk_logo(uint8_t row, uint8_t col); +void render_layer(uint8_t row, uint8_t col, uint8_t top_layer); +void render_modifiers_lite(uint8_t row, uint8_t col, uint8_t mods); +void render_encoder(uint8_t row, uint8_t col, uint8_t index, uint8_t layer); +void render_wpm(uint8_t row, uint8_t col); +void render_keymap(uint8_t row, uint8_t col, bool isLite); +#ifdef RGB_MATRIX_ENABLE +void render_rgb_lite(uint8_t row, uint8_t col); +#endif // RGB_MATRIX_ENABLE +void render_status_lite(uint8_t row, uint8_t col); diff --git a/users/bbaserdem/bb-rgb.c b/users/bbaserdem/bb-rgb.c new file mode 100644 index 0000000000..bdb7f12bbd --- /dev/null +++ b/users/bbaserdem/bb-rgb.c @@ -0,0 +1,130 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "bb-rgb.h" +#include "color.h" + +#define X_DIV 224/2 +/* Code relating to per-key RGB LED stuff + */ + +// Allow hooking into the RGB matrix indications using keymap code + +// Modulates the brightness of indicator +RGB helper_dimmer(uint8_t r, uint8_t g, uint8_t b) { + RGB output; + output.r = r / 2; + output.g = g / 2; + output.b = b / 2; + return output; +} +// x range from 0-left to 224-right +// y range from 0-top to 64-bottom +void helper_painter(uint8_t led_min, uint8_t led_max, RGB col, uint8_t side) { + if (side == 1) { + // Left + for(uint8_t i = led_min; i <= led_max; i++) { + if((g_led_config.point[i].x < X_DIV) && (g_led_config.flags[i] & LED_FLAG_INDICATOR)) { + rgb_matrix_set_color(i, col.r, col.g, col.b); + } + } + } else if (side == 2) { + // Right + for(uint8_t i = led_min; i <= led_max; i++) { + if((g_led_config.point[i].x > X_DIV) && (g_led_config.flags[i] & LED_FLAG_INDICATOR)) { + rgb_matrix_set_color(i, col.r, col.g, col.b); + } + } + } else if (side == 0) { + // Both + for(uint8_t i = led_min; i <= led_max; i++) { + if(g_led_config.flags[i] & LED_FLAG_INDICATOR) { + rgb_matrix_set_color(i, col.r, col.g, col.b); + } + } + } +} + +// Allow to turn off global handling +__attribute__ ((weak)) bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { + return false; +} +// Set RGB state depending on layer +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + uint8_t thisInd = 3; + RGB thisCol; + // Load keymap hooks + if(rgb_matrix_indicators_advanced_keymap(led_min, led_max)) { + return; + } + // Grab color info + switch (get_highest_layer(layer_state)) { + case _GAME: // Set left side as purple + thisCol = helper_dimmer(RGB_PURPLE); + thisInd = 1; + break; + case _CHAR: // Set full board as gold + thisCol = helper_dimmer(RGB_GOLD); + thisInd = 0; + break; + case _MEDI: // Set right side as pink + thisCol = helper_dimmer(RGB_MAGENTA); + thisInd = 2; + break; + case _NAVI: // Set right side as green + thisCol = helper_dimmer(RGB_GREEN); + thisInd = 2; + break; + case _SYMB: // Set right side as yellow + thisCol = helper_dimmer(RGB_YELLOW); + thisInd = 2; + break; + case _NUMB: // Set left side as blue + thisCol = helper_dimmer(RGB_BLUE); + thisInd = 1; + break; + case _FUNC: // Set left side as red + thisCol = helper_dimmer(RGB_RED); + thisInd = 1; + break; + case _MOUS: // Set left side as blue-green + thisCol = helper_dimmer(RGB_SPRINGGREEN); + thisInd = 1; + break; + case _MUSI: // Set full board as orange + thisCol = helper_dimmer(RGB_ORANGE); + thisInd = 0; + break; + } + helper_painter(led_min, led_max, thisCol, thisInd); +} + +// Hook into shutdown code to make all perkey LED's red on hitting reset +void shutdown_rgb(void) { + // Flash all the key LED's red on shutdown + uint16_t timer_start = timer_read(); + rgb_matrix_set_color_all(RGB_CORAL); + // Delay until this registers + while(timer_elapsed(timer_start) < 250) {wait_ms(1);} +} + +// Hook into suspend code +void suspend_power_down_rgb(void) { + rgb_matrix_set_suspend_state(true); +} +void suspend_wakeup_init_rgb(void) { + rgb_matrix_set_suspend_state(false); +} diff --git a/users/bbaserdem/bb-rgb.h b/users/bbaserdem/bb-rgb.h new file mode 100644 index 0000000000..62b6da9f2f --- /dev/null +++ b/users/bbaserdem/bb-rgb.h @@ -0,0 +1,28 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "bbaserdem.h" + +/* Hooks involving perkey RGB LEDs + */ + +// For custom indicators +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max); +// Hook into shutdown code +void shutdown_rgb(void); +void suspend_wakeup_init_rgb(void); +void suspend_power_down_rgb(void); diff --git a/users/bbaserdem/bb-underglow.c b/users/bbaserdem/bb-underglow.c new file mode 100644 index 0000000000..69aae439f4 --- /dev/null +++ b/users/bbaserdem/bb-underglow.c @@ -0,0 +1,116 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "bb-underglow.h" + +/* UNDERGLOW IMPLEMENTATION + */ + +// Define the layer switching code + +// An empty layer on the base +const rgblight_segment_t PROGMEM bb_base_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 0, HSV_WHITE} +); +// Gaming layer is turquoise +const rgblight_segment_t PROGMEM bb_game_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_PURPLE} +); +// Character overlay is chartereuse +const rgblight_segment_t PROGMEM bb_char_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, RGBLED_NUM, HSV_GOLD} +); + +// Right-hand layers + +// Media layer is orange +const rgblight_segment_t PROGMEM bb_medi_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_MAGENTA} +); +// Navigation layer is green +const rgblight_segment_t PROGMEM bb_navi_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_GREEN} +); +// Symbol layer is purple +const rgblight_segment_t PROGMEM bb_symb_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_YELLOW} +); + +// Left-hand layers + +// Number layer is blue +const rgblight_segment_t PROGMEM bb_numb_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_BLUE} +); +// Function layer is red +const rgblight_segment_t PROGMEM bb_func_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_RED} +); +// Pointer layer is yellow +const rgblight_segment_t PROGMEM bb_mous_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_SPRINGGREEN} +); + +// Music playback layer is magenta +const rgblight_segment_t PROGMEM bb_musi_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, RGBLED_NUM, HSV_ORANGE} +); + +const rgblight_segment_t* const PROGMEM bb_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + bb_base_layer, + bb_char_layer, + bb_game_layer, + bb_medi_layer, + bb_navi_layer, + bb_symb_layer, + bb_numb_layer, + bb_func_layer, + bb_mous_layer, + bb_musi_layer +); + +// Enable the LED switching layers +void keyboard_post_init_underglow(void) { + rgblight_layers = bb_rgb_layers; + // Default rgb mode is rainbow swirl; set this + rgblight_sethsv_noeeprom(100, 255, 255); + rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL + 0); +} + +// Set RGBLIGHT state depending on layer +layer_state_t layer_state_set_underglow(layer_state_t state) { + // Activate layers if on that region + rgblight_set_layer_state(_BASE, layer_state_cmp(state, _BASE)); + rgblight_set_layer_state(_GAME, layer_state_cmp(state, _GAME)); + rgblight_set_layer_state(_CHAR, layer_state_cmp(state, _CHAR)); + rgblight_set_layer_state(_MEDI, layer_state_cmp(state, _MEDI)); + rgblight_set_layer_state(_NAVI, layer_state_cmp(state, _NAVI)); + rgblight_set_layer_state(_SYMB, layer_state_cmp(state, _SYMB)); + rgblight_set_layer_state(_NUMB, layer_state_cmp(state, _NUMB)); + rgblight_set_layer_state(_FUNC, layer_state_cmp(state, _FUNC)); + rgblight_set_layer_state(_MOUS, layer_state_cmp(state, _MOUS)); + rgblight_set_layer_state(_MUSI, layer_state_cmp(state, _MUSI)); + // Return so other stuff can be done + return state; +} + +// Hook into shutdown code +void shutdown_underglow(void) { + // Make the LED's red on shutdown + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_sethsv(HSV_WHITE); +} diff --git a/users/bbaserdem/bb-underglow.h b/users/bbaserdem/bb-underglow.h new file mode 100644 index 0000000000..9cc1db3757 --- /dev/null +++ b/users/bbaserdem/bb-underglow.h @@ -0,0 +1,28 @@ +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "bbaserdem.h" + +/* UNDERGLOW IMPLEMENTATION + */ + +// Used to initialize layer switching overlay +void keyboard_post_init_underglow(void); +// Used to change RGB underglow layers on keymap layer change +layer_state_t layer_state_set_underglow(layer_state_t state); +// Hook into shutdown to show effect on shutdown +void shutdown_underglow(void); diff --git a/users/bbaserdem/bbaserdem.c b/users/bbaserdem/bbaserdem.c index e0cf3d81d1..08346c3d64 100644 --- a/users/bbaserdem/bbaserdem.c +++ b/users/bbaserdem/bbaserdem.c @@ -1,633 +1,360 @@ -#include "bbaserdem.h" - -/*---------------*\ -|*-----MOUSE-----*| -\*---------------*/ -#ifdef MOUSEKEY_ENABLE -#include "mousekey.h" -#endif - -/*-------------*\ -|*-----RGB-----*| -\*-------------*/ -#ifdef RGBLIGHT_ENABLE -#include "rgblight.h" -#endif - -/*-------------*\ -|*---UNICODE---*| -\*-------------*/ -#ifdef UNICODE_ENABLE -#endif - -/*-----------------*\ -|*-----SECRETS-----*| -\*-----------------*/ -// Enabled by adding a non-tracked secrets.h to this dir. -#if (__has_include("secrets.h")) -#include "secrets.h" -#endif - -/*---------------*\ -|*-----MUSIC-----*| -\*---------------*/ -#ifdef AUDIO_ENABLE -float tone_game[][2] = SONG(ZELDA_PUZZLE); -float tone_return[][2] = SONG(ZELDA_TREASURE); -float tone_linux[][2] = SONG(UNICODE_LINUX); -float tone_windows[][2] = SONG(UNICODE_WINDOWS); -#endif - -/*-------------------*\ -|*-----TAP-DANCE-----*| -\*-------------------*/ -#ifdef TAP_DANCE_ENABLE -qk_tap_dance_action_t tap_dance_actions[] = { - // Shift on double tap of semicolon - [SCL] = ACTION_TAP_DANCE_DOUBLE( KC_SCLN, KC_COLN ) -}; -#endif - -/* In keymaps, instead of writing _user functions, write _keymap functions - * The __attribute__((weak)) allows for empty definitions here, and during - * compilation, if these functions are defined elsewhere, they are written - * over. This allows to include custom code from keymaps in the generic code - * in this file. +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -__attribute__ ((weak)) void matrix_init_keymap(void) { } -__attribute__ ((weak)) void matrix_scan_keymap(void) { } -__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - return true; -} -__attribute__ ((weak)) layer_state_t layer_state_set_keymap (layer_state_t state) { - return state; -} -__attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) { } -/* ----------------------- *\ - * -----RGB Functions----- * -\* ----------------------- */ -#ifdef RGBLIGHT_ENABLE -// Storage variables -extern rgblight_config_t rgblight_config; -bool base_sta; // Keeps track if in saveable state -bool base_tog; // Whether base state is active or not -int base_hue; // Hue value of base state -int base_sat; // Saturation value of base state -int base_val; // Brightness value of base state -uint8_t base_mod; // Animation mode of the base state +#include "bbaserdem.h" +// Language imports +#include +// Need memcpy and memcmp from string.h along with transfer stuff +#ifdef SPLIT_KEYBOARD +#include "transactions.h" +#include +#endif // SPLIT_KEYBOARD -// Save the current state of the rgb mode -void rgblight_saveBase(void) { - base_hue = rgblight_config.hue; - base_sat = rgblight_config.sat; - base_val = rgblight_config.val; - base_mod = rgblight_config.mode; - base_tog = rgblight_config.enable; - base_sta = false; // If saving, that means base layer is being left +/*-------------------------*\ +|*-----KEYBOARD CONFIG-----*| +\*-------------------------*/ +userspace_config_t userspace_config; +userspace_runtime_t userspace_runtime; + +/*---------------------------------*\ +|*----SPLIT KEYBOARD TRANSPORT-----*| +\*---------------------------------*/ +#ifdef SPLIT_KEYBOARD +userspace_config_t transport_userspace_config; +userspace_runtime_t transport_userspace_runtime; + +// Translate the RPC data to the local variable +void userspace_config_sync(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) { + // Copy incoming data to local variable + if (in_buflen == sizeof(transport_userspace_config)) { + memcpy(&transport_userspace_config, in_data, in_buflen); + } + // There is no data to send back; so no output handling +} +void userspace_runtime_sync(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) { + // Copy incoming data to local variable + if (in_buflen == sizeof(transport_userspace_runtime)) { + memcpy(&transport_userspace_runtime, in_data, in_buflen); + } + // There is no data to send back; so no output handling } -// Load the base state back -void rgblight_loadBase(void) { - // Don't do anything if not enabled - if ( !base_sta ) { - if ( base_tog ) { - rgblight_enable(); - rgblight_mode( base_mod ); - rgblight_sethsv( base_hue, base_sat, base_val ); - } else { - rgblight_disable(); +// Either send or receive the correct data +void userspace_transport_update(void) { + if (is_keyboard_master()) { + // If we are the main device; we want to send info. + transport_userspace_config.raw = userspace_config.raw; + transport_userspace_runtime.raw = userspace_runtime.raw; + } else { + // If we are the secondary device; we want to receive info, and save to eeprom. + userspace_config.raw = transport_userspace_config.raw; + userspace_runtime.raw = transport_userspace_runtime.raw; + } +} + +// Initiate the protocol on sync +void userspace_transport_sync(bool force_sync) { + if (is_keyboard_master()) { + // Keep track of the last state + static userspace_config_t last_userspace_config; + static userspace_runtime_t last_userspace_runtime; + bool needs_sync = false; + + // Check if the config values are different + if (memcmp(&transport_userspace_config, &last_userspace_config, sizeof(transport_userspace_config))) { + needs_sync = true; + memcpy(&last_userspace_config, &transport_userspace_config, sizeof(transport_userspace_config)); + } + // Perform the sync if requested + if (needs_sync || force_sync) { + transaction_rpc_send(RPC_ID_CONFIG_SYNC, sizeof(transport_userspace_config), &transport_userspace_config); + needs_sync = false; + } + + // Check if the runtime values are different + if (memcmp(&transport_userspace_runtime, &last_userspace_runtime, sizeof(transport_userspace_runtime))) { + needs_sync = true; + memcpy(&last_userspace_runtime, &transport_userspace_runtime, sizeof(transport_userspace_runtime)); + } + + // Perform the sync if requested + if (needs_sync || force_sync) { + transaction_rpc_send(RPC_ID_RUNTIME_SYNC, sizeof(transport_userspace_runtime), &transport_userspace_runtime); + needs_sync = false; } } - // Mark that base is loaded, and to be saved before leaving - base_sta = true; } +#endif // SPLIT_KEYBOARD -// Set to plain HSV color -void rgblight_colorStatic( int hu, int sa, int va ) { - // First, it must be enabled or color change is not written - rgblight_enable(); - rgblight_mode(1); - rgblight_sethsv(hu,sa,va); -} -/* HSV values - * white ( 0, 0, 255) - * red ( 0, 255, 255) - * coral ( 16, 176, 255) - * orange ( 39, 255, 255) - * goldenrod ( 43, 218, 218) - * gold ( 51, 255, 255) - * yellow ( 60, 255, 255) - * chartreuse ( 90, 255, 255) - * green (120, 255, 255) - * springgreen (150, 255, 255) - * turquoise (174, 90, 112) - * teal (180, 255, 128) - * cyan (180, 255, 255) - * azure (186, 102, 255) - * blue (240, 255, 255) - * purple (270, 255, 255) - * magenta (300, 255, 255) - * pink (330, 128, 255) +/*---------------------------*\ +|*-----KEYBOARD PRE INIT-----*| +\*---------------------------*/ +/* This code runs before anything is started. + * Good for early hardware setup */ - -// Set RGBLIGHT state depending on layer -void rgblight_change( uint8_t this_layer ) { - // Save state, if saving is requested - if ( base_sta ) { - rgblight_saveBase(); - } - // Change RGB light - switch ( this_layer ) { - case _DV: - // Load base layer - rgblight_loadBase(); - break; - case _AL: - // Do yellow for alternate - rgblight_colorStatic( 60,255,255); - break; - case _GA: - // Do purple for game - rgblight_colorStatic(285,255,255); - break; - case _NU: - // Do azure for number - rgblight_colorStatic(186,200,255); - break; - case _SE: - // Do red for settings - rgblight_colorStatic( 16,255,255); - break; - case _MO: - // Do green for mouse - rgblight_colorStatic(120,255,255); - break; - case _MU: - // Do orange for music - rgblight_colorStatic( 39,255,255); - break; - default: - // Something went wrong - rgblight_colorStatic( 0,255,255); - break; - } +__attribute__ ((weak)) void keyboard_pre_init_keymap(void) {} +__attribute__ ((weak)) void keyboard_pre_init_user(void) { + // Keymap specific stuff + keyboard_pre_init_keymap(); } -#endif - /*---------------------*\ |*-----MATRIX INIT-----*| \*---------------------*/ +/* This code runs once midway thru the firmware process. + * So far, sets the base layer and fixes unicode mode + */ +__attribute__ ((weak)) void matrix_init_keymap(void) {} void matrix_init_user (void) { - - // Keymap specific things, do it first thing to allow for delays etc + // Keymap specific things matrix_init_keymap(); +} - // Correct unicode -#ifdef UNICODE_ENABLE +/*----------------------------*\ +|*-----KEYBOARD POST INIT-----*| +\*----------------------------*/ +/* This code runs after anything is started. + * Good for late hardware setup, like setting up layer specifications + */ +__attribute__ ((weak)) void keyboard_post_init_keymap(void) {} +__attribute__ ((weak)) void keyboard_post_init_user(void) { + // Fix beginning base layer, in case some other firmware was flashed + // set_single_persistent_default_layer(_BASE); + + // Unicode mode +# ifdef UNICODEMAP_ENABLE set_unicode_input_mode(UC_LNX); -#endif +# endif // UNICODEMAP_ENABLE - // Make beginning layer DVORAK - set_single_persistent_default_layer(_DV); + // Split keyboard halves communication +# ifdef SPLIT_KEYBOARD + // Register the transactions + transaction_register_rpc( RPC_ID_CONFIG_SYNC, userspace_config_sync ); + transaction_register_rpc(RPC_ID_RUNTIME_SYNC, userspace_runtime_sync); + // Load default config values + if (is_keyboard_master()) { + // If we are main; load from eeconfig + userspace_config.raw = eeconfig_read_user(); + // And update the transport variable + userspace_transport_update(); + // Do one forced transfer to sync halves + userspace_transport_sync(true); + } else { + // Just sync the data received + userspace_transport_update(); + } +# else // SPLIT_KEYBOARD + // If we are not split; just load from eeprom + userspace_config.raw = eeconfig_read_user(); +# endif // SPLIT_KEYBOARD -//--RGB light initialize base layer -#ifdef RGBLIGHT_ENABLE - // Base hue is white, and RGB disabled - base_hue = 100; - base_sat = 0; - base_val = 255; - base_mod = 2; - base_tog = false; - rgblight_enable(); - rgblight_mode(base_mod); - rgblight_sethsv(base_hue,base_sat,base_val); - rgblight_disable(); - rgblight_loadBase(); -#endif + // Backlight LED +# ifdef BACKLIGHT_ENABLE + keyboard_post_init_backlight(); +# endif // BACKLIGHT_ENABLE + // RGB underglow +# ifdef RGBLIGHT_ENABLE + keyboard_post_init_underglow(); +# endif // RGBLIGHT_ENABLE + + // Keymap specific stuff + keyboard_post_init_keymap(); +} + +/*---------------------------*\ +|*-----HOUSEKEEPING TASK-----*| +\*---------------------------*/ +/* I have no idea what this does + */ +__attribute__ ((weak)) void housekeeping_task_keymap(void) {} +void housekeeping_task_user(void) { + // Check eeprom every now and then + static userspace_config_t prev_userspace_config; + static fast_timer_t throttle_timer = 0; + static bool init_flag = true; + + // Read this if we never read it before + if (init_flag) { + init_flag = false; + prev_userspace_config.raw = eeconfig_read_user(); + } + + // Throttled tasks here + if (timer_elapsed_fast(throttle_timer) >= HOUSEKEEPING_THROTTLE_INTERVAL_MS) { + // Refresh timer + throttle_timer = timer_read_fast(); + // Check userspace config for eeprom updates + if (memcmp(&prev_userspace_config, &userspace_config, sizeof(userspace_config))) { + memcpy(&prev_userspace_config, &userspace_config, sizeof(userspace_config)); + eeconfig_update_user(userspace_config.raw); + } + } + + // Do transport stuff +# ifdef SPLIT_KEYBOARD + userspace_transport_update(); + userspace_transport_sync(false); +# endif // SPLIT_KEYBOARD + + // Hook to keymap code + housekeeping_task_keymap(); +} + +/*-----------------------*\ +|*-----EECONFIG INIT-----*| +\*-----------------------*/ +/* Default values to send to the eeprom + */ +void eeconfig_init_user(void) { + // Set everything to default + userspace_config.raw = 0; + // Set encoder states to sane defaults if enabled +# ifdef ENCODER_ENABLE + reset_encoder_state(); +# endif // ENCODER_ENABLE +} + +/*------------------------*\ +|*-----PROCESS RECORD-----*| +\*------------------------*/ +/* Process record: custom keycodes to process here + * Allow also the following codes to hook here as well; + * Macro definitions + * Audio hooks + */ +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Return after running through all individual hooks + return + process_record_keymap(keycode, record) && +# ifdef AUDIO_ENABLE + process_record_audio(keycode, record) && +# endif // AUDIO_ENABLE +# ifdef ENCODER_ENABLE + process_record_encoder(keycode, record) && +# endif // ENCODER_ENABLE + process_record_macro(keycode, record); } /*---------------------*\ |*-----MATRIX SCAN-----*| \*---------------------*/ +/* This code runs every frame + * I used to check for layer switching here, but layer state is better used. + * Try to not put anything here; as it runs hundreds time per second-ish + */ +__attribute__ ((weak)) void matrix_scan_keymap(void) { } void matrix_scan_user (void) { - // Keymap specific, do it first + // Keymap specific scan function matrix_scan_keymap(); } -/*------------------*\ -|*-----KEYCODES-----*| -\*------------------*/ -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - - // Shift check - bool is_capital = ( keyboard_report->mods & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT)) ); - static bool lock_flag = false; - uint8_t layer = biton32 (layer_state); - - switch (keycode) { - // Secrets implementation -#if (__has_include("secrets.h")) - case SECRET1: - if( !record->event.pressed ) { - send_string_P( secret[ keycode - SECRET1 ] ); - } - return false; - break; - case SECRET2: - if( !record->event.pressed ) { - send_string_P( secret[ keycode - SECRET2 ] ); - } - return false; - break; - case SECRET3: - if( !record->event.pressed ) { - send_string_P( secret[ keycode - SECRET3 ] ); - } - return false; - break; -#endif - - // If these keys are pressed, load base layer config, and mark saving -#ifdef RGBLIGHT_ENABLE - case RGB_TOG: - case RGB_MOD: - case RGB_VAI: - case RGB_VAD: - case RGB_SAI: - case RGB_SAD: - case RGB_HUI: - case RGB_HUD: - if ( !base_sta ) { - rgblight_loadBase(); - } - return true; - break; -#endif - - // Lock functionality: These layers are locked if the LOCKED buttons are - // pressed. Otherwise, they are momentary toggles - case K_LOCK: - if (record->event.pressed) { - lock_flag = !lock_flag; - } - return false; - break; - case K_MOUSE: - if (record->event.pressed) { - layer_on(_MO); - lock_flag = false; - } else { - if ( lock_flag ) { - lock_flag = false; - } else { - layer_off(_MO); - } - } - return false; - break; - case K_NUMBR: - if (record->event.pressed) { - layer_on(_NU); - lock_flag = false; - } else { - if ( lock_flag ) { - lock_flag = false; - } else { - layer_off(_NU); - } - } - return false; - break; - - // Layer switches with sound - case K_GAMES: - if (record->event.pressed) { - // On press, turn off layer if active - if ( layer == _GA ) { -#ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_SONG(tone_return); -#endif - layer_off(_GA); - } - } else { - // After click, turn on layer if accessed from setting - if ( layer == _SE ) { -#ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_SONG(tone_game); -#endif - layer_on(_GA); - layer_off(_SE); - } - } - return false; - break; - case MU_TOG: - if (record->event.pressed) { - // On press, turn off layer if active - if ( layer == _SE ) { - layer_off(_SE); - layer_on(_MU); - } else { - layer_off(_MU); - } - } - return true; - break; - -//------UNICODE - // Unicode switches with sound -#ifdef UNICODE_ENABLE - case UNI_LI: - if (record->event.pressed) { -#ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_SONG(tone_linux); -#endif - set_unicode_input_mode(UC_LNX); - } - return false; - break; - case UNI_WN: - if (record->event.pressed) { -#ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_SONG(tone_windows); -#endif - set_unicode_input_mode(UC_WIN); - } - return false; - break; - - // Turkish letters, with capital functionality - case TUR_A: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); - register_hex(0x00c2); - unicode_input_finish(); - } else { - unicode_input_start(); - register_hex(0x00e2); - unicode_input_finish(); - } - } - return false; - break; - case TUR_O: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); - register_hex(0x00d6); - unicode_input_finish(); - } else { - unicode_input_start(); - register_hex(0x00f6); - unicode_input_finish(); - } - } - return false; - break; - case TUR_U: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); - register_hex(0x00dc); - unicode_input_finish(); - } else { - unicode_input_start(); - register_hex(0x00fc); - unicode_input_finish(); - } - } - return false; - break; - case TUR_I: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); - register_hex(0x0130); - unicode_input_finish(); - } else { - unicode_input_start(); - register_hex(0x0131); - unicode_input_finish(); - } - } - return false; - break; - case TUR_G: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); - register_hex(0x011e); - unicode_input_finish(); - } else { - unicode_input_start(); - register_hex(0x011f); - unicode_input_finish(); - } - } - return false; - break; - case TUR_C: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); - register_hex(0x00c7); - unicode_input_finish(); - } else { - unicode_input_start(); - register_hex(0x00e7); - unicode_input_finish(); - } - } - return false; - break; - case TUR_S: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); - register_hex(0x015e); - unicode_input_finish(); - } else { - unicode_input_start(); - register_hex(0x015f); - unicode_input_finish(); - } - } - return false; - break; -#endif - -//-------Diagonal mouse movements -#ifdef MOUSEKEY_ENABLE - case MO_NE: - if( record->event.pressed ) { - mousekey_on(MO_N); - mousekey_on(MO_E); - mousekey_send(); - } else { - mousekey_off(MO_N); - mousekey_off(MO_E); - mousekey_send(); - } - return false; - break; - case MO_NW: - if( record->event.pressed ) { - mousekey_on(MO_N); - mousekey_on(MO_W); - mousekey_send(); - } else { - mousekey_off(MO_N); - mousekey_off(MO_W); - mousekey_send(); - } - return false; - break; - case MO_SE: - if( record->event.pressed ) { - mousekey_on(MO_S); - mousekey_on(MO_E); - mousekey_send(); - } else { - mousekey_off(MO_S); - mousekey_off(MO_E); - mousekey_send(); - } - return false; - break; - case MO_SW: - if( record->event.pressed ) { - mousekey_on(MO_S); - mousekey_on(MO_W); - mousekey_send(); - } else { - mousekey_off(MO_S); - mousekey_off(MO_W); - mousekey_send(); - } - return false; - break; - case MO_S_NE: - if( record->event.pressed ) { - mousekey_on(MO_S_N); - mousekey_on(MO_S_E); - mousekey_send(); - } else { - mousekey_off(MO_S_N); - mousekey_off(MO_S_E); - mousekey_send(); - } - return false; - break; - case MO_S_NW: - if( record->event.pressed ) { - mousekey_on(MO_S_N); - mousekey_on(MO_S_W); - mousekey_send(); - } else { - mousekey_off(MO_S_N); - mousekey_off(MO_S_W); - mousekey_send(); - } - return false; - break; - case MO_S_SE: - if( record->event.pressed ) { - mousekey_on(MO_S_S); - mousekey_on(MO_S_E); - mousekey_send(); - } else { - mousekey_off(MO_S_S); - mousekey_off(MO_S_E); - mousekey_send(); - } - return false; - break; - case MO_S_SW: - if( record->event.pressed ) { - mousekey_on(MO_S_S); - mousekey_on(MO_S_W); - mousekey_send(); - } else { - mousekey_off(MO_S_S); - mousekey_off(MO_S_W); - mousekey_send(); - } - return false; - break; -#endif - -//------DOUBLE PRESS, with added left navigation - case DBL_SPC: - if( record->event.pressed ) { - SEND_STRING(" "SS_TAP(X_LEFT)); - } - return false; - break; - case DBL_ANG: - if( record->event.pressed ) { - SEND_STRING("<>"SS_TAP(X_LEFT)); - } - return false; - break; - case DBL_PAR: - if( record->event.pressed ) { - SEND_STRING("()"SS_TAP(X_LEFT)); - } - return false; - break; - case DBL_SQR: - if( record->event.pressed ) { - SEND_STRING("[]"SS_TAP(X_LEFT)); - } - return false; - break; - case DBL_BRC: - if( record->event.pressed ) { - SEND_STRING("{}"SS_TAP(X_LEFT)); - } - return false; - break; - case DBL_QUO: - if( record->event.pressed ) { - SEND_STRING("\'\'"SS_TAP(X_LEFT)); - } - return false; - break; - case DBL_DQT: - if( record->event.pressed ) { - SEND_STRING("\"\""SS_TAP(X_LEFT)); - } - return false; - break; - case DBL_GRV: - if( record->event.pressed ) { - SEND_STRING("``"SS_TAP(X_LEFT)); - } - return false; - break; -// END OF KEYCODES - } - return process_record_keymap(keycode, record); -} - -/*----------------------*\ -|*-----LAYER CHANGE-----*| -\*----------------------*/ - -layer_state_t layer_state_set_user(layer_state_t state) { - - state = layer_state_set_keymap (state); -#ifdef RGBLIGHT_ENABLE - // Change RGB lighting depending on the last layer activated - rgblight_change( get_highest_layer(state) ); -#endif +/*---------------------*\ +|*-----LAYER STATE-----*| +\*---------------------*/ +/* This code runs after every layer change + * State represents the new layer state. + */ +__attribute__ ((weak)) +layer_state_t layer_state_set_keymap (layer_state_t state) { return state; } +layer_state_t layer_state_set_user(layer_state_t state) { + // Keymap layer state setting + state = layer_state_set_keymap(state); + // For underglow stuff +# ifdef RGBLIGHT_ENABLE + state = layer_state_set_underglow(state); +# endif // RGBLIGHT_ENABLE + // Audio playback +# ifdef AUDIO_ENABLE + state = layer_state_set_audio(state); +# endif // AUDIO_ENABLE + + return state; +} + +/*-----------------------------*\ +|*-----DEFAULT LAYER STATE-----*| +\*-----------------------------*/ +/* This code runs after every time default base layer is changed + */ +__attribute__ ((weak)) +layer_state_t default_layer_state_set_keymap (layer_state_t state) { + return state; +} +layer_state_t default_layer_state_set_user(layer_state_t state) { + // Keymap level code + state = default_layer_state_set_keymap(state); + return state; +} + +/*------------------------*\ +|*-----LED SET KEYMAP-----*| +\*------------------------*/ +/* Code for LED indicators + * I'm not sure when exactly does this code run + */ +__attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) {} +void led_set_user(uint8_t usb_led) { + led_set_keymap(usb_led); +} + +/*-----------------*\ +|*-----SUSPEND-----*| +\*-----------------*/ +/* Suspend stuff here, mostly for the rgb lighting. + */ +__attribute__ ((weak)) void suspend_power_down_keymap (void) { } +void suspend_power_down_user(void) { + suspend_power_down_keymap(); + // RGB matrix sleep hook +# ifdef RGB_MATRIX_ENABLE + suspend_power_down_rgb(); +# endif // RGB_MATRIX_ENABLE +} +__attribute__ ((weak)) void suspend_wakeup_init_keymap (void) { } +void suspend_wakeup_init_user(void) { + suspend_wakeup_init_keymap(); + // RGB matrix sleep hook +# ifdef RGB_MATRIX_ENABLE + suspend_wakeup_init_rgb(); +# endif // RGB_MATRIX_ENABLE +} + +/*------------------*\ +|*-----SHUTDOWN-----*| +\*------------------*/ +/* Shutdown stuff here; for when entering bootmode. + */ +__attribute__ ((weak)) void shutdown_keymap (void) { } +void shutdown_user(void) { + // Underglow LED hook on boot +# ifdef RGBLIGHT_ENABLE + shutdown_underglow(); +# endif // RGBLIGHT_ENABLE + // Perkey led hook on boot +# ifdef RGB_MATRIX_ENABLE + shutdown_rgb(); +# endif // RGB_MATRIX_ENABLE + // Keymap hooks + shutdown_keymap(); +} diff --git a/users/bbaserdem/bbaserdem.h b/users/bbaserdem/bbaserdem.h index 3a405f2a47..4792d5c2d7 100644 --- a/users/bbaserdem/bbaserdem.h +++ b/users/bbaserdem/bbaserdem.h @@ -1,268 +1,573 @@ -#ifndef USERSPACE -#define USERSPACE - +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 #include "quantum.h" +#include "keymap_dvorak.h" -#define XXX KC_NO +/* Besides loading libraries and definitions, this file has my layout defs + * LAYOUTS: + * This file has a couple layouts I use; so that the general changes can be + * propagated by only editing this file. + */ -// Layers -#define _DV 0 // Base layer -#define _AL 1 // Alt char overlay -#define _GA 2 // Game layer -#define _NU 3 // Numbers layer -#define _SE 4 // Settings layer -#define _MO 5 // Mouse emulation -#define _MU 6 // Music mode +// Macros to use, this has base level code so not affected by enabled features +#include "bb-macro.h" +// Audio from onboard speakers +#ifdef AUDIO_ENABLE +#include "bb-audio.h" +#endif // AUDIO_ENABLE +// Keycap backlight using non-rgb LEDs +#ifdef BACKLIGHT_ENABLE +#include "bb-backlight.h" +#endif // BACKLIGHT_ENABLE +// Underglow light using rgb LEDs +#ifdef RGBLIGHT_ENABLE +#include "bb-underglow.h" +#endif // RGBLIGHT_ENABLE +// Keycap backlight using rgb LEDs +#ifdef RGB_MATRIX_ENABLE +#include "bb-rgb.h" +#endif // RGB_MATRIX_ENABLE +// Rotary encoder +#ifdef ENCODER_ENABLE +#include "bb-encoder.h" +#endif // ENCODER_ENABLE +// Oled screen +#ifdef OLED_ENABLE +#include "bb-oled.h" +#endif // OLED_ENABLE -// Define short macros -#define UNDO LCTL(KC_Z) -#define REDO LCTL(KC_Y) -#define COPY LCTL(KC_C) -#define CUT LCTL(KC_X) -#define PASTE LCTL(KC_V) +// Structure to keep runtime info on encoder state +typedef union { + uint32_t raw; + struct { + bool rgb_sleep; + }; +} userspace_runtime_t; -// Rename mouse keys with 7 letters -#ifdef MOUSEKEY_ENABLE -#define MO_S_N KC_MS_WH_UP -#define MO_S_S KC_MS_WH_DOWN -#define MO_S_E KC_MS_WH_RIGHT -#define MO_S_W KC_MS_WH_LEFT -#define MO_N KC_MS_UP -#define MO_S KC_MS_DOWN -#define MO_E KC_MS_RIGHT -#define MO_W KC_MS_LEFT -#define MO_CL_L KC_MS_BTN1 -#define MO_CL_R KC_MS_BTN2 -#define MO_CL_M KC_MS_BTN3 -#define MO_CL_4 KC_MS_BTN4 -#define MO_CL_5 KC_MS_BTN5 -#define MO_AC_0 KC_MS_ACCEL0 -#define MO_AC_1 KC_MS_ACCEL1 -#define MO_AC_2 KC_MS_ACCEL2 +typedef union { + uint32_t raw; + struct { + uint8_t e0base :4; // ( 4:0) The encoder state on most layers; regular function + uint8_t e1base :4; // ( 8:1) 9 states for this; 4 bits + uint8_t e0point :2; // (10:1) The encoder state on mouse layer; moves pointer + uint8_t e1point :2; // (12:1) 4 states for this; 2 bits + uint8_t e0rgb :4; // (16:2) The encoder state on media layer; controls light + uint8_t e1rgb :4; // (20:2) 5 states for this; 3 bits but 4 is better + uint8_t layout :2; // (22:2) Stores keymap layout; 3 states is good on 2 bits + uint16_t :10; // (32:3) Padding here, free space for 10 more bits + }; +} userspace_config_t; + +// Broadcast us to everyone else +extern userspace_runtime_t userspace_runtime; +extern userspace_config_t userspace_config; + +// Function definitions that can be accessed through specific keymaps +// Runs before all initialization +void keyboard_pre_init_keymap(void); +// For code that launches once midway through initialization +void matrix_init_keymap(void); +// For code that launches after initialization is finished. +void keyboard_post_init_keymap(void); +// These will be delegated to keymap specific stuff (weak definition) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record); +// This code runs on every tick +void matrix_scan_keymap(void); +// This code runs after every layer change +layer_state_t layer_state_set_keymap(layer_state_t state); +// This code runs when the default layer changes +layer_state_t default_layer_state_set_keymap (layer_state_t state); +// Some code +void housekeeping_task_user(void); +// This code runs to set LED states +void led_set_keymap(uint8_t usb_led); +// For code that runs on suspend +void suspend_power_down_keymap(void); +void suspend_wakeup_init_keymap(void); +// For code that runs on powerdown +void shutdown_keymap(void); + +// Make it so that keymaps can use KEYMAP_SAFE_RANGE for custom keycodes +#ifdef KEYMAP_SAFE_RANGE +#define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE #else -#define MO_S_N KC_NO -#define MO_S_S KC_NO -#define MO_S_E KC_NO -#define MO_S_W KC_NO -#define MO_N KC_NO -#define MO_S KC_NO -#define MO_E KC_NO -#define MO_W KC_NO -#define MO_CL_L KC_NO -#define MO_CL_R KC_NO -#define MO_CL_M KC_NO -#define MO_CL_1 KC_NO -#define MO_CL_2 KC_NO -#define MO_AC_0 KC_NO -#define MO_AC_1 KC_NO -#define MO_AC_2 KC_NO +#define PLACEHOLDER_SAFE_RANGE SAFE_RANGE #endif -// Rename music keys with <8 letters +// Custom macro keycode ranges +enum userspace_custom_keycodes { + // Safe stuff + BB_SAFE = PLACEHOLDER_SAFE_RANGE, + // Double entry macros + DBL_ANG, + DBL_PAR, + DBL_CBR, + DBL_BRC, + // Macro key + BB_PGPK, + // Unicode strings +# ifdef UNICODEMAP_ENABLE + BB_LENY, + BB_TABL, + TR_FLAG, +# endif // UNICODEMAP_ENABLE + // Encoder buttons +# ifdef ENCODER_ENABLE + BB_ENC0, + BB_ENC1, +# endif // ENCODER_ENABLE + // Oled editor +# ifdef OLED_ENABLE + BB_OLED, +# endif // OLED_ENABLE + //use for keymap specific codes + KEYMAP_SAFE_RANGE +}; +// Mask these keycodes if required features are not enabled +#ifndef UNICODEMAP_ENABLE +#define BB_LENY KC_NO +#define BB_TABL KC_NO +#define TR_FLAG KC_NO +#endif // UNICODEMAP_ENABLE +#ifndef ENCODER_ENABLE +#define BB_ENC0 KC_NO +#define BB_ENC1 KC_NO +#endif // ENCODER_ENABLE + +/// Enumerate of layers +enum userspace_layers { + _BASE = 0, // Base layer + _CHAR, // Characters layer + _GAME, // Game layer + _MEDI, // R3: Media layer + _NAVI, // R3: Navigation layer + _SYMB, // R1: Symbols layer + _NUMB, // L1: Numbers layer + _FUNC, // L2: Function keys layer + _MOUS, // L3: Mouse keys layer + _MUSI // Music overlay +}; + +// Use 7 wide characters for keymaps, to keep things aligned with 4 tabs +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// These defines allow multiple multi-parameter definitions to expand +// for these boards +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) +#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) +#define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__) +#define LAYOUT_ortho_3x10_wrapper(...) LAYOUT_ortho_3x10(__VA_ARGS__) +#define LAYOUT_split_3x6_3_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__) +#define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__) + +// Masks +#define ___1___ _______ +#define ___2___ _______,_______ +#define ___3___ _______,_______,_______ +#define ___4___ _______,_______,_______,_______ +#define ___5___ _______,_______,_______,_______,_______ +#define ___6___ _______,_______,_______,_______,_______,_______ +#define xxx1xxx KC_NO +#define xxx2xxx KC_NO, KC_NO +#define xxx3xxx KC_NO, KC_NO, KC_NO +#define xxx4xxx KC_NO, KC_NO, KC_NO, KC_NO +#define xxx5xxx KC_NO, KC_NO, KC_NO, KC_NO, KC_NO +#define xxx6xxx KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO +#define xxx1xxx KC_NO +#define xxx3xxx KC_NO, KC_NO, KC_NO +#define xxx5xxx KC_NO, KC_NO, KC_NO, KC_NO, KC_NO +#define xxx6xxx KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + +// Quick macros: in dvorak +#define BB_UNDO LCTL(KC_SLSH) // Ctrl + Z +#define BB_REDO LCTL(KC_T) // Ctrl + Y +#define BB_YANK LCTL(KC_I) // Ctrl + C +#define BB_CUT LCTL(KC_B) // Ctrl + X +#define BB_PSTE LCTL(KC_DOT) // Ctrl + V + +// Audio keys #ifdef AUDIO_ENABLE #define MU_REC KC_LCTL #define MU_STOP KC_LALT #define MU_PLAY KC_LGUI -#define MU_PLAY KC_LGUI #define MU_FAST KC_UP #define MU_SLOW KC_DOWN #define MU_MASK KC_A -#else +#define BB_SND MU_ON +#ifdef TAP_DANCE_ENABLE +#define MU_TEMP TD(TD_AUDIO_TEMPO) +#else // TAP_DANCE_ENABLE +#define MU_TEMP KC_DOWN +#endif // TAP_DANCE_ENABLE +#else // AUDIO_ENABLE #define MU_REC KC_NO #define MU_STOP KC_NO #define MU_PLAY KC_NO -#define MU_PLAY KC_NO #define MU_FAST KC_NO +#define MU_TEMP KC_NO #define MU_SLOW KC_NO #define MU_MASK KC_NO -#endif +#define BB_SND KC_MUTE +#endif // AUDIO_ENABLE -// Define non-capitalized UTF shortcuts here -#ifdef UNICODE_ENABLE -#define PHY_HBR UC(0x0127) -#define PHY_DEG UC(0x00b0) -#define CUR_LIR UC(0x20ba) -#define CUR_BIT UC(0x20bf) -#define CUR_EUR UC(0x20ac) -#define CUR_BPN UC(0x00a3) -#define CUR_YEN UC(0x00a5) -#else -#define PHY_HBR KC_NO -#define PHY_DEG KC_NO -#define CUR_LIR KC_NO -#define CUR_BIT KC_NO -#define CUR_EUR KC_NO -#define CUR_BPN KC_NO -#define CUR_YEN KC_NO -#endif +// Unicode keys +#ifdef UNICODEMAP_ENABLE +#define TR_ACIR XP(LOW_A_CIRC, UPC_A_CIRC ) +#define TR_CCED XP(LOW_C_CEDI, UPC_C_CEDI ) +#define TR_GBRE XP(LOW_G_BREV, LOW_G_BREV ) +#define TR_ICIR XP(LOW_I_CIRC, LOW_I_CIRC ) +#define TR_I_NO XP(LOW_I_DOTL, LOW_I_DOTL ) +#define TR_IDOT XP(LOW_I_DOTT, LOW_I_DOTT ) +#define TR_ODIA XP(LOW_O_DIAE, LOW_O_DIAE ) +#define TR_SCED XP(LOW_S_CEDI, LOW_S_CEDI ) +#define TR_UCIR XP(LOW_U_CIRC, LOW_U_CIRC ) +#define TR_UDIA XP(LOW_U_DIAE, LOW_U_DIAE ) +#define GR_ALP XP(LOW_ALPHA, UPC_ALPHA ) +#define GR_BET XP(LOW_BETA, UPC_BETA ) +#define GR_GAM XP(LOW_GAMMA, UPC_GAMMA ) +#define GR_DEL XP(LOW_DELTA, UPC_DELTA ) +#define GR_EPS XP(LOW_EPSILON,UPC_EPSILON) +#define GR_ZET XP(LOW_ZETA, UPC_ZETA ) +#define GR_ETA XP(LOW_ETA, UPC_ETA ) +#define GR_THE XP(LOW_THETA, UPC_THETA ) +#define GR_IOT XP(LOW_IOTA, UPC_IOTA ) +#define GR_KAP XP(LOW_KAPPA, UPC_KAPPA ) +#define GR_LAM XP(LOW_LAMBDA, UPC_LAMBDA ) +#define GR_MU XP(LOW_MU, UPC_MU ) +#define GR_NU XP(LOW_NU, UPC_NU ) +#define GR_XI XP(LOW_XI, UPC_XI ) +#define GR_OMI XP(LOW_OMICRON,UPC_OMICRON) +#define GR_PI XP(LOW_PI, UPC_PI ) +#define GR_RHO XP(LOW_RHO, UPC_RHO ) +#define GR_SIG XP(LOW_SIGMA, UPC_SIGMA ) +#define GR_TAU XP(LOW_TAU, UPC_TAU ) +#define GR_UPS XP(LOW_UPSILON,UPC_UPSILON) +#define GR_PHI XP(LOW_PHI, UPC_PHI ) +#define GR_CHI XP(LOW_CHI, UPC_CHI ) +#define GR_PSI XP(LOW_PSI, UPC_PSI ) +#define GR_OME XP(LOW_OMEGA, UPC_OMEGA ) +#define BB_ELLI X(ELLIPSIS) +#define BB_PLNK X(PLANCK_CON) +#define BB_ANGS X(ANGSTROM) +#define BB_BITC X(BITCOIN) +#else // UNICODEMAP_ENABLE +#define TR_ACIR KC_A +#define TR_CCED KC_C +#define TR_GBRE KC_G +#define TR_ICIR KC_I +#define TR_I_NO KC_I +#define TR_IDOT KC_I +#define TR_ODIA KC_O +#define TR_SCED KC_S +#define TR_UCIR KC_U +#define TR_UDIA KC_U +#define GR_ALP KC_NO +#define GR_BET KC_NO +#define GR_GAM KC_NO +#define GR_DEL KC_NO +#define GR_EPS KC_NO +#define GR_ZET KC_NO +#define GR_ETA KC_NO +#define GR_THE KC_NO +#define GR_IOT KC_NO +#define GR_KAP KC_NO +#define GR_LAM KC_NO +#define GR_MU KC_NO +#define GR_NU KC_NO +#define GR_XI KC_NO +#define GR_OMI KC_NO +#define GR_PI KC_NO +#define GR_RHO KC_NO +#define GR_SIG KC_NO +#define GR_TAU KC_NO +#define GR_UPS KC_NO +#define GR_PHI KC_NO +#define GR_CHI KC_NO +#define GR_PSI KC_NO +#define GR_OME KC_NO +#define BB_ELLI KC_NO +#define BB_PLNK KC_NO +#define BB_ANGS KC_NO +#define BB_BITC KC_NO +#endif // UNICODEMAP_ENABLE -// Custom keycodes -enum userspace_custom_keycodes { - // Turkish letters, with shifting - TUR_A = SAFE_RANGE, - TUR_C, - TUR_G, - TUR_I, - TUR_O, - TUR_S, - TUR_U, - // Unicode mode switch - UNI_LI, - UNI_WN, - // Double keys - DBL_SPC, - DBL_ANG, - DBL_PAR, - DBL_SQR, - DBL_BRC, - DBL_QUO, - DBL_DQT, - DBL_GRV, - // Diagonal mouse movements - MO_NE, - MO_NW, - MO_SE, - MO_SW, - MO_S_NE, - MO_S_NW, - MO_S_SE, - MO_S_SW, - // Layer switches and lock functionality - K_MOUSE, - K_NUMBR, - K_LOCK, - K_GAMES, - // Secret macros - SECRET1, - SECRET2, - SECRET3 -}; +// MOD-tap definitions +#define GUI_A MT(MOD_LGUI, DV_A) +#define ALT_O MT(MOD_LALT, DV_O) +#define CTRL_E MT(MOD_LCTL, DV_E) +#define SHIFT_U MT(MOD_LSFT, DV_U) +#define ALTGR_Q MT(MOD_RALT, DV_Q) +#define GUI_S MT(MOD_RGUI, DV_S) +#define ALT_N MT(MOD_LALT, DV_N) +#define CTRL_T MT(MOD_LCTL, DV_T) +#define SHIFT_H MT(MOD_LSFT, DV_H) +#define ALTGR_V MT(MOD_RALT, DV_V) -// Do tap dancable semicolon key if available -#ifdef TAP_DANCE_ENABLE -enum { - SCL = 0 -}; -#define MY_SCL TD(SCL) -#else -#define MY_SCL KC_SCLN -#endif +// Layer switches +#define MED_DEL LT(_MEDI, KC_DEL ) +#define NAV_TAB LT(_NAVI, KC_TAB ) +#define SYM_SPC LT(_SYMB, KC_SPC ) +#define NUM_ENT LT(_NUMB, KC_ENT ) +#define FUN_ESC LT(_FUNC, KC_ESC ) +#define MOU_BSP LT(_MOUS, KC_BSPC) -// Shared keymaps -#define LAYOUT_planck_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__) -#define LAYOUT_letssplit_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) +// Layer switches +#define BB_CHAR OSL(_CHAR) +#define BB_GAME TG(_GAME) -/* Dvorak - * ,------------------------------------------------------------------------. - * | Esc | ' " | , | . | P | Y || F | G | C | R | L | Bkp | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | Tab | A | O | E | U | I || D | H | T | N | S | / ? | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | SYM | ; : | Q | J | K | X || B | M | W | V | Z | SET | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | TUR | OS | Ctrl| Alt | Shf | Spc || Ent | Lft | Dwn | Up | Rght| MSE | - * `------------------------------------------------------------------------' */ -#define DVORAK \ - KC_ESC, KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ - KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ - K_NUMBR,MY_SCL, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_SE), \ - MO(_AL),KC_LGUI,KC_LCTL,KC_LALT,KC_LSFT,KC_SPC, KC_ENT, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,K_MOUSE +/* Depending on how the layouts change with language; the keys are shown as; + * ┌────────────────────────────────────────────────┐ + * │AltGr -none- Shift Shift+AltGr │ + * └────────────────────────────────────────────────┘ + * If there is an exclamation mark; it indicates a dead key on this map. + */ -/* Alternative character overlay - * ,------------------------------------------------------------------------. - * | | ' ' | Undo| Redo|Pound| Yen || | G | C | |TLira| Del | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | A | O | Euro| U | I ||Degre|Plank| | | S | Ins | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | " " | Cut | Copy|Paste| || BTC | < > | ( ) | [ ] | { } | PgUp| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | | | | | || | Home|PgDwn| PgUp| End | | - * `------------------------------------------------------------------------' */ -#define ALTCHAR \ - _______,DBL_QUO,UNDO, REDO, CUR_BPN,CUR_YEN,_______,TUR_G, TUR_C, _______,CUR_LIR,KC_DEL , \ - _______,TUR_A, TUR_O, CUR_EUR,TUR_U, TUR_I, PHY_DEG,PHY_HBR,_______,_______,TUR_S, KC_INS , \ - _______,DBL_DQT,CUT, COPY, PASTE, DBL_GRV,CUR_BIT,DBL_ANG,DBL_PAR,DBL_SQR,DBL_BRC,_______, \ - _______,_______,_______,_______,_______,DBL_SPC,_______,KC_HOME,KC_PGDN,KC_PGUP,KC_END, _______ +/* Base layout + * DVORAK + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * ` ~ │ ' " │ , < │ . > │ p P │ y Y │ │ f F │ g G │ c C │ r R │ l L │ < > + * ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ + * \ | │ a A │ o O │ e E │ u U │ i I │ │ d D │ h H │ t T │ n N │ s S │ - _ + * ├─Gui─┼─Alt─┼─Ctr─┼─Sft─┼─────┤ ├─────┼─Sft─┼─Ctr─┼─Alt─┼─Gui─┤ + * / ? │ ; : │ q Q │ j J │ k K │ x X │ │ b B │ m M │ w W │ v V │ z Z │ = + + * └─────┴AltGr┴─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┴AltGr┴─────┘ + * │ Del │ Tab │Space│ │Enter│ Esc │BkSpc│ + * └─Med─┴─Nav─┴─Sym─┘ └─Num─┴─Fun─┴─Mou─┘ + * TURKISH F + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * ¬+ *±│@f F │ g G │ ğ Ğ │¶ı I │ôo OÔ│ │¥d D │®r R │ n N │°h H │£p P │|< >¦ + * !├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼────!┤ ! + * `x Xà│ûu UÛ│îi İÎ│€e E │âa AÂ│ûü ÜÛ│ │₺t T │ k K │µm M │ l L │´y Yá│#ş Şǎ + * ! !├─Gui─┼─Alt─┼─Ctr─┼─Sft─┼─────┤ ├─────┼─Sft─┼─Ctr─┼─Alt!┼─Gui─┤ + * äq Qå│«j J<│»ö Ö>│“v V │¢c C©│”ç Ç │ │ z Z │§s S │×b B │÷. :ȧ│·, ; │~w W + * └─────┴AltGr┴─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┴AltGr┴─────┘ + * │ Del │ Tab │Space│ │Enter│ Esc │BkSpc│ + * └─Med─┴─Nav─┴─Sym─┘ └─Num─┴─Fun─┴─Mou─┘ + * The thing about this layout is that these will fit most boards I have. + */ +#define _BL1_5_ DV_QUOT,DV_COMM,DV_DOT, DV_P, DV_Y +#define _BR1_5_ DV_F, DV_G, DV_C, DV_R, DV_L +#define _BL2_5_ GUI_A, ALT_O, CTRL_E, SHIFT_U,DV_I +#define _BR2_5_ DV_D, SHIFT_H,CTRL_T, ALT_N, GUI_S +#define _BL3_5_ DV_SCLN,ALTGR_Q,DV_J, DV_K, DV_X +#define _BR3_5_ DV_B, DV_M, DV_W, ALTGR_V,DV_Z +#define _BL4_3_ MED_DEL,NAV_TAB,SYM_SPC +#define _BR4_3_ NUM_ENT,FUN_ESC,MOU_BSP +// The extra line for the 6th (or 0th) row +#define _BL1_1_ DV_GRV +#define _BR1_1_ KC_NUBS +#define _BL2_1_ DV_BSLS +#define _BR2_1_ DV_MINS +#define _BL3_1_ DV_SLSH +#define _BR3_1_ DV_EQL + +/* Extra characters layer + * This is accessed using unicode; so IBus compatible apps only. + * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ + * │TrFlg│Lenny│Table│ π │ υ │ │ φ │ γ │ χ │ ρ │ λ │ + * ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ + * │ α │ ο │ ε │ ψ │ ι │ │ δ │ η │ τ │ ν │ σ │ + * ├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤ + * │ ₿ │ θ │ ℏ │ κ │ ξ │ │ β │ μ │ ω │ Å │ ζ │ + * └─────┴─────┴─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┴─────┴─────┘ + * │ Shf │ ... │ GPG │ │ │ │ Shf │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + * + */ +#define _CL1_5_ TR_FLAG,BB_LENY,BB_TABL,GR_PI, GR_UPS +#define _CR1_5_ GR_PHI, GR_GAM, GR_CHI, GR_RHO, GR_LAM +#define _CL2_5_ GR_ALP, GR_OMI, GR_EPS, GR_PSI, GR_IOT +#define _CR2_5_ GR_DEL, GR_ETA, GR_TAU, GR_NU, GR_SIG +#define _CL3_5_ BB_BITC,GR_THE, BB_PLNK,GR_KAP, GR_XI +#define _CR3_5_ GR_BET, GR_MU, GR_OME, BB_ANGS,GR_ZET +#define _CL4_3_ KC_RSFT,BB_ELLI,BB_PGPK +#define _CR4_3_ XXXXXXX,XXXXXXX,KC_LSFT /* Game layer - * ,------------------------------------------------------------------------. - * | OFF | Q | W | E | R | T || Esc | 7 | 8 | 9 |NumLk|Bkspc| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | Tab | A | S | D | F | G || F1 | 4 | 5 | 6 | \ | Ent | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | Z | X | C | V | B || F2 | 1 | 2 | 3 | ^ | | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | / | ` | | | | Spc || Spc | Ent | 0 | < | v | > | - * `------------------------------------------------------------------------' */ -#define GAME \ - K_GAMES,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_P7, KC_P8, KC_P9, KC_NLCK,KC_BSPC, \ - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F1, KC_P4, KC_P5, KC_P6, KC_BSLS,KC_ENT , \ - _______,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F2, KC_P1, KC_P2, KC_P3, KC_UP, _______, \ - KC_SLSH,KC_GRV, _______,_______,_______,KC_SPC, KC_SPC, KC_ENT, KC_P0, KC_LEFT,KC_DOWN,KC_RGHT + * This layer turns off the tap-hold keys for the left half. + * ┌─────┬─────┬─────┬─────┬─────┐ + * │ Q │ W │ E │ R │ T │ + * ├─────┼─────┼─────┼─────┼─────┤ + * Tab │ A │ S │ D │ F │ G │ + * ├─────┼─────┼─────┼─────┼─────┤ + * Shift│ Z │ X │ C │ V │ B │ + * └─────┴─────┴─────┼─────┼─────┼─────┐ + * │ Esc │Enter│Space│ + * └─────┴─────┴─────┘ + */ +#define _GA1_5_ KC_Q, KC_W, KC_E, KC_R, KC_T +#define _GA1_1_ _______ +#define _GA2_5_ KC_A, KC_S, KC_D, KC_F, KC_G +#define _GA2_1_ KC_TAB +#define _GA3_5_ KC_Z, KC_X, KC_C, KC_V, KC_B +#define _GA3_1_ KC_LSFT +#define _GA4_3_ KC_ESC, KC_ENT, KC_SPC + +/* Media layer + * ┌─────┬─────┬─────┬─────┬─────┐ + * │Speed│ Mod │ Hue │ Sat │ Bri │ RGB light control + * ├─────┼─────┼─────┼─────┼─────┤ + * │Togg.│Prev.│MuTog│MuStp│Next │ Media control + * ├─────┼─────┼─────┼─────┼─────┤ + * │Sink │Vol -│ Mut │Eject│Vol +│ Volume control + * ┌─────┼─────┼─────┼─────┴─────┴─────┘ + * │OledL│Veloc│Music│ Feature control on keyboard + * └─────┴─────┴─────┘ + */ +#define _ME1_5_ RGB_SPI,RGB_MOD,RGB_HUI,RGB_SAI,RGB_VAI +#define _ME2_5_ RGB_TOG,KC_MPRV,KC_MPLY,KC_MSTP,KC_MNXT +#define _ME3_5_ KC_F13, KC_VOLD,KC_MUTE,KC_EJCT,KC_VOLU +#define _ME4_3_ BB_OLED,VLK_TOG,MU_TOG + +/* Navigation layer + * ┌─────┬─────┬─────┬─────┬─────┐ + * │Redo │Paste│Yank │ Cut │PrScr│ + * ├─────┼─────┼─────┼─────┼─────┤ + * │Undo │ < │ v │ ^ │ > │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ Ins │Home │PgDwn│PgUp │ End │ + * ┌─────┼─────┼─────┼─────┴─────┴─────┘ + * │Enter│ Esc │BkSpc│ + * └─────┴─────┴─────┘ + */ +#define _NA1_5_ BB_REDO,BB_PSTE,BB_YANK,BB_CUT, KC_PSCR +#define _NA2_5_ BB_UNDO,KC_LEFT,KC_DOWN,KC_UP, KC_RGHT +#define _NA3_5_ KC_INS, KC_HOME,KC_PGDN,KC_PGUP,KC_END +#define _NA4_3_ KC_ENT, KC_ESC, KC_BSPC /* Symbols layer - * ,------------------------------------------------------------------------. - * | OFF | ` | ~ | [ | ] | { || } | - | _ | = | + | | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | \ | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | ! | @ | # | $ | % || ^ | & | * | ( | ) | LCK | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | | | | | | || | | | | | | - * `------------------------------------------------------------------------' */ -#define NUMBERS \ - K_NUMBR,KC_GRV, KC_TILD,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_MINS,KC_UNDS,KC_EQL, KC_PLUS,_______, \ - _______,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \ - _______,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,K_LOCK , \ - KC_PIPE,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ + * This layer has the central columns shifted for convenience + * DVORAK + * ┌─────┬─────┬─────┬─────┬─────┐ + * │ ` │ { │ } │ / │ = │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ ~ │ [ │ ] │ ? │ + │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │CapsL│ ( │ ) │ \ │ | │ + * ┌─────┼─────┼─────┼─────┴─────┴─────┘ + * │Enter│ Esc │BkSpc│ + * └─────┴─────┴─────┘ + * Turkish F + * (AltGr is right on the central column, red. keys on main layer are omitted) + * ┌─────┬─────┬─────┬─────┬─────┐ + * │ + ¬ │ / \ │ - | │ │ │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ * ± │ ? ¿ │ _ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │CapsL│ │ │ │ │ + * ┌─────┼─────┼─────┼─────┴─────┴─────┘ + * │Enter│ Esc │BkSpc│ + * └─────┴─────┴─────┘ + * QWERTY + * ┌─────┬─────┬─────┬─────┬─────┐ + * │ ` │ - │ = │ { │ } │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ ~ │ _ │ + │ [ │ ] │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │CapsL│ ( │ ) │ \ │ | │ + * ┌─────┼─────┼─────┼─────┴─────┴─────┘ + * │Enter│ Esc │BkSpc│ + * └─────┴─────┴─────┘ + */ +#define _SY1_5_ DV_GRV, DV_LCBR,DV_RCBR,DV_SLSH,DV_EQL +#define _SY2_5_ DV_TILD,DV_LBRC,DV_RBRC,DV_QUES,DV_PLUS +#define _SY3_5_ KC_CAPS,DV_LPRN,DV_RPRN,DV_BSLS,DV_PIPE +#define _SY4_3_ KC_ENT, KC_ESC, KC_BSPC -/* Settings layer - * ,------------------------------------------------------------------------. - * |BLLed| F1 | F2 | F3 | F4 | Lin || Win | Wake| |Hue -|Hue +|Reset| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | F5 | F6 | F7 | F8 | || | |RGBto|Sat -|Sat +| | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | Game| F9 | F10 | F11 | F12 |Vol 0||PrtSc| |RGBan|Bri -|Bri +| | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * |Musir| | | | |Vol -||Vol +| Prev| Stop|TogMu| Next| | - * `------------------------------------------------------------------------' */ -#define SETTINGS \ - BL_STEP,KC_F1, KC_F2, KC_F3, KC_F4, UNI_LI, UNI_WN, KC_WAKE,_______,RGB_HUD,RGB_HUI,RESET , \ - _______,KC_F5, KC_F6, KC_F7, KC_F8, _______,_______,_______,RGB_TOG,RGB_SAD,RGB_SAI,_______, \ - K_GAMES,KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE,KC_PSCR,_______,RGB_MOD,RGB_VAD,RGB_VAI,_______, \ - MU_TOG, _______,_______,_______,_______,KC_VOLD,KC_VOLU,KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT,_______ +/* Numbers layer + * This layer contains numbers and the associated symbols. + * DVORAK + * ┌─────┬─────┬─────┬─────┬─────┐ + * │ < │ 7 & │ 8 * │ 9 ( │ 0 ) │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ _ │ 4 $ │ 5 % │ 6 ^ │ - │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ > │ 1 ! │ 2 @ │ 3 # │Char.│ + * └─────┴─────┴─────┼─────┼─────┼─────┐ + * │ Del │ Tab │Space│ + * └─────┴─────┴─────┘ + * Turkish F + * ┌─────┬─────┬─────┬─────┬─────┐ + * │ < | │{7 ' │[8 ( │]9 )±│}0 =°│ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ │¼4 $ │½5 %⅜│¾6 & │ │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ > ¦ │¹1 !¡│²2 " │#3 ^³│Char.│ + * └─────┴─────┴─────┼─────┼─────┼─────┐ + * │ Del │ Tab │Space│ + * └─────┴─────┴─────┘ + */ +#define _NU1_5_ KC_NUBS,KC_7, KC_8, KC_9, KC_0 +#define _NU2_5_ DV_UNDS,KC_4, KC_5, KC_6, DV_MINS +#define _NU3_5_ LSFT(KC_NUBS), KC_1, KC_2, KC_3, BB_CHAR +#define _NU4_3_ KC_DEL, KC_TAB, KC_SPC + +/* Function layer + * ┌─────┬─────┬─────┬─────┬─────┐ + * │ F01 │ F02 │ F03 │ F04 │EEPRM│ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ F05 │ F06 │ F07 │ F08 │EEPRM│ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ F09 │ F10 │ F11 │ F12 │GameL│ + * └─────┴─────┴─────┼─────┼─────┼─────┐ + * │ Del │ Tab │Space│ + * └─────┴─────┴─────┘ + */ +#define _FU1_5_ KC_F1, KC_F2, KC_F3, KC_F4, RESET +#define _FU2_5_ KC_F5, KC_F6, KC_F7, KC_F8, EEP_RST +#define _FU3_5_ KC_F9, KC_F10, KC_F11, KC_F12, BB_GAME +#define _FU4_3_ KC_DEL, KC_TAB, KC_SPC /* Mouse layer - * ,------------------------------------------------------------------------. - * |Ulock| \ | ^ | / |.....|.....||.....|.....| |\|.| |^| | |/|.| | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | < | Mid | > |Btn 4|.....||.....|Btn 5| <-- | Mid | --> | | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | / | v | \ |.....|.....||.....|.....| |/| | |v| | |\| | LCK | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | | | | | Left||Right| | |Accl0|Accl1|Accl2| - * `------------------------------------------------------------------------' */ -#define MOUSE \ - K_MOUSE,MO_NW, MO_N, MO_NE, XXX, XXX ,XXX, XXX, MO_S_NW,MO_S_N, MO_S_NE,_______, \ - _______,MO_W, MO_CL_M,MO_E, MO_CL_4,XXX ,XXX, MO_CL_5,MO_S_W, MO_CL_M,MO_S_E, _______, \ - _______,MO_SW, MO_S, MO_SE, XXX, XXX ,XXX, XXX, MO_S_SW,MO_S_S, MO_S_SE,K_LOCK , \ - _______,_______,_______,_______,_______,MO_CL_L,MO_CL_R,_______,MO_AC_0,MO_AC_1,MO_AC_2,_______ + * ┌─────┬─────┬─────┬─────┬─────┐ + * │Slow │Right│ Mid │ Lft │Fast │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ |<| │ |v| │ |^| │ |>| │ Bt4 │ + * ├─────┼─────┼─────┼─────┼─────┤ + * │ <<< │ vvv │ ^^^ │ >>> │ Bt5 │ + * └─────┴─────┴─────┼─────┼─────┼─────┐ + * │ Del │ Tab │Space│ + * └─────┴─────┴─────┘ + */ +#define _MO1_5_ KC_ACL0,KC_BTN1,KC_BTN2,KC_BTN3,KC_ACL2 +#define _MO2_5_ KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,KC_BTN4 +#define _MO3_5_ KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,KC_BTN5 +#define _MO4_3_ KC_DEL, KC_TAB, KC_SPC /* Music layer - * ,------------------------------------------------------------------------. - * |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | togg| rec | stop| play| slow| fast||modes|.....|.....|.....|.....|.....| - * `------------------------------------------------------------------------' + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └───┴───┴───┼───┼───┼───┼───┼───┼───┼───┴───┴───┘ + * │Rec│Stp│Ply│Tmp│Mod│Off│ + * └───┴───┴───┴───┴───┴───┘ */ -#define MUSIC \ - MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK, \ - MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK, \ - MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK, \ - MU_TOG, MU_REC, MU_STOP,MU_PLAY,MU_SLOW,MU_FAST,MU_MOD, MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK - -#endif +#define _MUL_3_ MU_REC, MU_STOP,MU_PLAY +#define _MUR_3_ MU_TEMP,MU_MOD, MU_TOG +#define _MU_01_ MU_MASK +#define _MU_02_ MU_MASK,MU_MASK +#define _MU_03_ MU_MASK,MU_MASK,MU_MASK +#define _MU_06_ MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK +#define _MU_08_ MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK +#define _MU_10_ MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK +#define _MU_12_ MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK diff --git a/users/bbaserdem/config.h b/users/bbaserdem/config.h index 3dde5772cc..477378102b 100644 --- a/users/bbaserdem/config.h +++ b/users/bbaserdem/config.h @@ -1,9 +1,134 @@ -#ifndef USERSPACE_CONFIG_H -#define USERSPACE_CONFIG_H +/* Copyright 2021 Batuhan Başerdem + * @bbaserdem + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 TAP_DANCE_ENABLE - #define TAPPING_TERM 300 - #define TAPPING_TOGGLE 1 +/* CONFIG + * Common hardware configuration accross my boards + */ +// Space saving +#ifdef LOCKING_SUPPORT_ENABLE +# undef LOCKING_SUPPORT_ENABLE +#endif +#ifdef LOCKING_RESYNC_ENABLE +# undef LOCKING_RESYNC_ENABLE +#endif +#ifndef NO_DEBUG +# define NO_DEBUG #endif -#endif // !USERSPACE_CONFIG_H +#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE) +# define NO_PRINT +#endif + +// Some of my own settings +# define HOUSEKEEPING_THROTTLE_INTERVAL_MS 250 + +// Split transport settings +#ifdef SPLIT_KEYBOARD +# define SPLIT_TRANSPORT_MIRROR +# define SPLIT_LAYER_STATE_ENABLE +# define SPLIT_MODS_ENABLE +# define SPLIT_TRANSACTION_IDS_USER RPC_ID_CONFIG_SYNC, RPC_ID_RUNTIME_SYNC, RPC_ID_KEYMAP_SYNC +# define SPLIT_LED_STATE_ENABLE +# ifdef WPM_ENABLE +# define SPLIT_WPM_ENABLE +# endif // WPM_ENABLE +# ifdef OLED_ENABLE +# define SPLIT_OLED_ENABLE +# endif // OLED_ENABLE +#endif // SPLIT_KEYBOARD + +// Unicode entry mode +#ifdef UNICODEMAP_ENABLE +# define UNICODE_SELECTED_MODES UC_LNX + // Adapt the unicode entry mode to dvorak +# ifdef UNICODE_KEY_LNX +# undef UNICODE_KEY_LNX +# endif +# define UNICODE_KEY_LNX LCTL(LSFT(KC_F)) +#endif // UNICODEMAP_ENABLE + +// Mousekey mode +#ifdef MOUSEKEY_ENABLE +# define MK_COMBINED +#endif // MOUSEKEY_ENABLE + +// Tap-hold settings +#define TAPPING_TERM 200 +#define TAP_CODE_DELAY 20 +#define IGNORE_MOD_TAP_INTERRUPT +#define PERMISSIVE_HOLD +#define TAPPING_FORCE_HOLD + +// Backlight settings +#ifdef BACKLIGHT_ENABLE +# define BACKLIGHT_BREATHING +# define BREATHING_PERIOD 5 +#endif // BACKLIGHT_ENABLE + +// Audio definitions +#ifdef AUDIO_ENABLE +//# define AUDIO_ENABLE_TONE_MULTIPLEXING + // Make findable songs as defaults +# ifdef HOROLOGY +# define STARTUP_SONG SONG(HOROLOGY) +# endif +# ifdef PEOPLE_VULTURES +# define GOODBYE_SONG SONG(PEOPLE_VULTURES) +# endif +# ifdef NONAGON_INFINITY +# define MUSIC_ON_SONG SONG(NONAGON_INFINITY) +# endif +# ifdef WAH_WAH +# define MUSIC_OFF_SONG SONG(WAH_WAH) +# endif + // Audio code expects these to be defined +# ifdef BIG_FIG_WASP +# define GAME_ON_SONG SONG(BIG_FIG_WASP) +# else +# define GAME_ON_SONG SONG(USSR_ANTHEM) +# endif +# ifdef POLYGONDWANALAND +# define GAME_OFF_SONG SONG(POLYGONDWANALAND) +# else +# define GAME_OFF_SONG SONG(NOCTURNE_OP_9_NO_1) +# endif +#endif // AUDIO_ENABLE + +// OLED definitions +#ifdef OLED_ENABLE + // Timeout does not work for split secondary board; i implemented it myself +# define OLED_TIMEOUT 30000 + // Fade out the screen when timing out +# define OLED_FADE_OUT +# define OLED_FADE_OUT_INTERVAL 15 +#endif // OLED_ENABLE + +// For perkey leds +#ifdef RGB_MATRIX_ENABLE +// This is not working +//# define RGB_DISABLE_TIMEOUT 1800000 +# define RGB_DISABLE_WHEN_USB_SUSPENDED true + // Start using this mode +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_RAINBOW_BEACON +# define RGB_MATRIX_STARTUP_HUE 100 +# define RGB_MATRIX_STARTUP_SAT 255 +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS + // Some config options +# define RGB_MATRIX_KEYRELEASES +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enable framebuffer effects +#endif // RGB_MATRIX_ENABLE diff --git a/users/bbaserdem/keymap-bitmaps/.gitignore b/users/bbaserdem/keymap-bitmaps/.gitignore new file mode 100644 index 0000000000..6448f593d6 --- /dev/null +++ b/users/bbaserdem/keymap-bitmaps/.gitignore @@ -0,0 +1,4 @@ +*.bmp +splitImages +templates +!.gitignore diff --git a/users/bbaserdem/keymap-bitmaps/cropBmp b/users/bbaserdem/keymap-bitmaps/cropBmp new file mode 100755 index 0000000000..4a322b4175 --- /dev/null +++ b/users/bbaserdem/keymap-bitmaps/cropBmp @@ -0,0 +1,38 @@ +#!/bin/bash + +# Copyright 2021 Batuhan Başerdem +# @bbaserdem +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Goes through all the files and turns them into strips in their respective folder +if [ -z "${1}" ] ; then + echo 'No argument; defaulting to script directory.' + target_dir="$(dirname "${0}")" +elif [ -d "${1}" ] ; then + echo "Targeting files in '${1}'." + target_dir="${1}" +else + echo 'Argument is not directory.' + exit 1 +fi + +output_dir="${target_dir}/splitImages" +mkdir -p "${output_dir}" + +for this_image in "${target_dir}/"*.bmp ; do + echo "Found '${this_image}'." + this_name="$(basename "${this_image%%.bmp}")" + convert "${this_image}" -crop 'x8' "${output_dir}/${this_name}"_%d.bmp +done diff --git a/users/bbaserdem/readme.md b/users/bbaserdem/readme.md new file mode 100644 index 0000000000..0a1b80cc74 --- /dev/null +++ b/users/bbaserdem/readme.md @@ -0,0 +1,131 @@ +# BBASERDEM userspace code for qmk + +My userspace code for my various keyboards; available here. + +## Builds + +These are my keyboard builds and info, it allows me to plan out my builds. + +### Planck SERVER + +* Board: `kprepublic/jj40` +* Microcontroller: Embedded +* Layout: `ortho_4x12` +* Functionality: Underglow RGB Lighting, LED diode lighting. +* Case: Clear Acrylic Top and Bottow, with Frosted Acrylic Diffuser (Smashing Acrylics) +* Switches: BOX Navy +* Keycaps: Datamancer Tall Deco Typewriter Keycaps + +Just a decorative planck replacement (for my rev4 PCB that died.) + +### Planck Light + +* Board: `planck/light` +* Microcontroller: Embedded +* Layout: `ortho_4x12` +* Functionality: Per-key RGB Lighting, Audio. +* Case: Clear Acrylic Top and Bottow, with Frosted Acrylic Diffuser (Smashing Acrylics) +* Switches: BOX Navy +* Keycaps: Datamancer Tall Deco Typewriter Keycaps + +Just a decorative planck replacement (for my rev4 PCB that died.) + +### Corne ARM + +* Board: `crkbd/rev1` +* Microcontroller: Proton C (x2) +* Layout: `split_3x6_3` +* Functionality: OLED, Audio, Per-key RGB Lighting, Rotary Encoder (x2) +* Case: IMK Corne Case v2 Polycarbonate +* Switches: Healios V2 +* Keycaps: POM Jelly + +PCB is actually [Proton-C Compatible crkbd PCB](https://github.com/ItsWaffIe/waffle_corne). + +### Corne Lite + +* Board: `crkbd/rev1` +* Microcontroller: Pro Micro (x2) +* Layout: `split_3x5_3` +* Functionality: Per-key RGB Lighting, OLED (No firmware space) +* Case: Custom +* Switches: Choc Low Burnt Orange +* Keycaps: [Scooped Choc Keycaps](https://mkultra.click/collections/keycaps/products/scooped-choc-keycaps?variant=31223543365730) + +Maybe try adding a trackpad for this, as detailed +[here](https://github.com/manna-harbour/crkbd/blob/master/trackpoint/readme.org). + +### Kyria + +* Board: `splitkb/kyria/rev1` +* Microcontroller: Pro Micro (x2) +* Layout: `split_3x6_6` +* Functionality: OLED, Underglow RGB Lighting (No firmware space), Rotary Encoder (x2) +* Case: Matte Black Acrylic High-Profile case +* Switches: Gateron Ink Silent Black +* Keycaps: Oblotzky SA Oblivion + +Main driver at work currently; love the switches and the board layout. + +# Firmware building + +## Archlinux + +On archlinux, the package *arm-none-eabi-gcc* is too new. +To fix; add to the environment `CFLAGS="-Wno-error=deprecated"` to compilation commands. +Also; says to run `avr-gcc` version `8.4.0` for smaller firmware, +but I find that it only saves a few bytes. + +## Bootloader + +Needed to type this out from the QMK website. +If I want to flash a new bootloader for a machine; here are steps; + +1. Flash the util/pro_micro_ISP_B6_10.hex to a spare promicro using; +`avrdude -p atmega32u4 -P "$(ls /dev/ttyACM*)" -c avr109 -D -U flash:w:pro_micro_ISP_B6_10.hex` +2. Wire the pins; (first is the ISP pro micro; second is the target) +``` +Pro Micro 10 (B6) <-> Keyboard RESET +Pro Micro 15 (B1) <-> Keyboard B1 (SCLK) +Pro Micro 16 (B2) <-> Keyboard B2 (MOSI) +Pro Micro 14 (B3) <-> Keyboard B3 (MISO) +Pro Micro VCC <-> Keyboard VCC +Pro Micro GND <-> Keyboard GND +``` +I do have this on hand I believe; from massdrop's planck light firmware updater. +3. Connect the flashed pro micro to my computer and run +`avrdude -c avrisp -P "$(ls /dev/ttyACM*)" -p atmega32u4 -U flash:w:bootloader_atmega32u4_1.0.0.hex:i -U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m` + +The avrisp here refers to the firmware on the ISP flasher pro micro. +The `atmega32u4` refers to the CPU used in the respective breakout boards. +The `avrdude` command interacts with catalina bootloader. +The shell call after the `-P` flag auto finds the port that the pro micro connects to. +The last few arguments are some jumpers apparently. + +# Features + +My userspace has a lot of shared code between different keyboards. +These files are prefixed with `sbp-` to remove any naming clash. + +* [bb-audio](bb-audio.c): Code dealing with audio playback using onboard sound. +* [bb-encoder](bb-encoder.c): Rotary encoder sutff. +* [bb-macro](bb-macro.c): My custom keycodes; macros, tap dances, etc. +* [bb-oled](bb-oled.c): Controls OLED displays. For higher memory; there is also [bb-oled-extra](bb-oled-extra.c). +* [bb-rgb](bb-rgb.c): Controls per-key RGB LED matrix stuff, and layer indication. Uses `RGB_MATRIX`. +* [bb-underglaw](bb-underglow.c): Controls RGB LED strip, and layer indication. Uses `RGBLIGHT`. + +# Layout + +My personal layout is mostly inspired by the +[Miryoku layout](../manna-harbour_miryoku/miryoku.org). +There are some changes to make it friendlier to international keyboards. +My board is compatible with software implementation of Dvorak and Turkish F. + +## Base + +Base layer uses tap-hold functionality to have access to modifiers. +The modifiers are mirrored on each half of the layout; +as to make those modifiers accessible to the keys that overlap them. +Besides the Alt key; each side has the proper L/R version of the modifier. +Since Right Alt key functions as AltGr key; +both the L and R versions are available on each side. diff --git a/users/bbaserdem/rules.mk b/users/bbaserdem/rules.mk index 9c7e78e2f8..58f72bb110 100644 --- a/users/bbaserdem/rules.mk +++ b/users/bbaserdem/rules.mk @@ -1,21 +1,87 @@ +# Copyright 2021 Batuhan Başerdem +# @bbaserdem +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Common compilation flags +LTO_ENABLE = yes + +# These should be enabled in all boards +MOUSEKEY_ENABLE = yes # Mouse emulation keys +EXTRAKEY_ENABLE = yes # OS signals like volume control +UNICODEMAP_ENABLE = yes # Used for unicode character emulation + +# These should be disabled in all boards +BOOTMAGIC_ENABLE = no # Access to EEPROM settings, not needed +CONSOLE_ENABLE = no # Allows console output with a command +COMMAND_ENABLE = no # Some bootmagic thing i dont use +SLEEP_LED_ENABLE = no # Breathes LED's when computer is asleep. Untested. +MIDI_ENABLE = no # Midi driver (untested) +UNICODE_ENABLE = no # We use unicodemap, not unicode +UCIS_ENABLE = no # We use unicodemap, not ucis +VARIABLE_TRACE = no # Allows debugging variables +KEY_LOCK_ENABLE = no # Allows locking any key. Not used in general +RGBLIGHT_ENABLE = no # LED strip, but there is RGB_MATRIX instead +TAP_DANCE_ENABLE = no # Tap dance keys; i don't use tap dance + +# These features can be disabled at whim +NKRO_ENABLE ?= yes # Default is 6KRO +VELOCIKEY_ENABLE ?= yes # Speed effects change with typing speed +WPM_ENABLE ?= yes # Get WPM reports as you type + +# Manually configure these on each keyboard individually +# AUDIO_ENABLE # Audio stuff +# BACKLIGHT_ENABLE # Switch LEDs +# ENCODER_ENABLE # Rotary encoder +# RGB_MATRIX_ENABLE # RGB LEDs +# OLED_ENABLE # For OLED + +# Userspace code SRC += bbaserdem.c -EXTRAFLAGS += -flto # Used to make code smaller -# ENABLE -UNICODE_ENABLE = yes # Used for unicode character emulation -EXTRAKEY_ENABLE = yes # OS signals like volume control +# Macros +SRC += bb-macro.c -# DISABLE -ifndef BLUETOOTH_ENABLE - BLUETOOTH_ENABLE = no # No bluetooth +# Audio code +ifeq ($(strip $(AUDIO_ENABLE)), yes) +SRC += bb-audio.c endif -COMMAND_ENABLE = no # Some bootmagic thing i dont use -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -CONSOLE_ENABLE = no # Allows console output with a command -SLEEP_LED_ENABLE = no # Breathes LED's when computer is asleep. Untested. -NKRO_ENABLE = no # Default is 6KRO which is plenty -MIDI_ENABLE = no # Untested feature -KEY_LOCK_ENABLE = no # Allows locking any key. Not used -# Disabling this makes it compile, i dont know why -# VARIABLE_TRACE = no # Allows debugging variables +# Rotary encoder stuff +ifeq ($(strip $(ENCODER_ENABLE)), yes) +SRC += bb-encoder.c +endif + +# RGB LED (Underglow) code +ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) +SRC += bb-underglow.c +endif + +# RGB LED (Perkey) code +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) +SRC += bb-rgb.c +endif + +# Backlight code +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) +SRC += bb-backlight.c +endif + +# OLED code +ifeq ($(strip $(OLED_ENABLE)), yes) + SRC += bb-oled.c + ifeq ($(strip $(CTPC)), yes) + SRC += bb-oled-extra.c + endif +endif diff --git a/users/bcat/rules.mk b/users/bcat/rules.mk index 090f7474eb..1ad2ee0aa8 100644 --- a/users/bcat/rules.mk +++ b/users/bcat/rules.mk @@ -47,6 +47,7 @@ endif COMMAND_ENABLE = no CONSOLE_ENABLE = no MOUSEKEY_ENABLE = no +TERMINAL_ENABLE = no # Disable unwanted hardware options on all keyboards. (Some keyboards turn # these features on by default even though they aren't actually required.) diff --git a/users/billypython/billypython.c b/users/billypython/billypython.c index f165d2e260..180b478d7a 100644 --- a/users/billypython/billypython.c +++ b/users/billypython/billypython.c @@ -23,7 +23,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } __attribute__((weak)) -layer_state_t layer_state_set_keymap(layer_state_t state) { +uint32_t layer_state_set_keymap(uint32_t state) { return state; } diff --git a/users/billypython/billypython.h b/users/billypython/billypython.h index cdf5121f2f..4a444e9787 100644 --- a/users/billypython/billypython.h +++ b/users/billypython/billypython.h @@ -31,4 +31,4 @@ enum layers_user { }; bool process_record_keymap(uint16_t keycode, keyrecord_t *record); -layer_state_t layer_state_set_keymap(layer_state_t state); +uint32_t layer_state_set_keymap(uint32_t state); diff --git a/users/charlesrocket/apl.c b/users/charlesrocket/apl.c new file mode 100644 index 0000000000..63d835c909 --- /dev/null +++ b/users/charlesrocket/apl.c @@ -0,0 +1,183 @@ +/* Copyright 2022 charlesrocket + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 unicode_names { + DIAMOND, + QUAD_DIAMOND, + DIAERESIS, + IBEAM, + MACRON, + DEL_TILDE, + LESS, + DEL_STILE, + LESS_EQUAL, + DELTA_STILE, + EQUALS, + CIRCLE_STILE, + GREATER_EQUAL, + CIRCLE_BACKSLASH, + GREATER, + CIRCLED_MINUS, + NOT_EQUAL, + CIRCLE_STAR, + OR, + DOWN_CARET_TILDE, + AND, + UP_CARET_TILDE, + MULT, + EXCL, + DIVISION, + QUAD_DIVIDE, + QUESTION_MARK, + OMEGA, + OMEGA_UNDERBAR, + EPSILON, + SMALL_ELEMENT, + EPSILON_UNDERBAR, + RHO, + TILDE, + TILDE_DIAERESIS, + UPWARDS_ARROW, + DOWNWARDS_ARROW, + IOTA, + IOTA_UNDERBAR, + WHITE_CIRCLE, + CIRCLE_DIAERESIS, + STAR_OPERATOR, + STAR_DIAERESIS, + LEFT_ARROW, + QUOTE_QUAD, + RIGHT_ARROW, + ZILDE, + ALPHA, + ALPHA_UNDERBAR, + LEFT_CEILING, + LEFT_FLOOR, + LOW_LINE, + NABLA, + INCREMENT, + DELTA_UNDERBAR, + RING_OPERATOR, + JOT_DIAERESIS, + APOSTROPHE, + QUAD_EQUAL, + QUAD, + SQUISH_QUAD, + DOWN_TACK_JOT, + IDENTICAL, + UP_TACK_JOT, + NOT_IDENTICAL, + RIGHT_TACK, + LEFT_TACK, + SUBSET, + SUPERSET, + CHI, + INTERSECTION, + UNION, + UP_TACK, + DOWN_TACK, + VERTICAL_LINE, + UP_SHOE_JOT, + COMMA_BAR, + BACKSLASH_BAR, + SLASH_BAR, + QUAD_COLON +}; + +const uint32_t PROGMEM unicode_map[] = { + [DIAMOND] = 0x25CA, // ◊ 0 + [QUAD_DIAMOND] = 0x233A, // ⌺ + [DIAERESIS] = 0x00A8, // ¨ + [IBEAM] = 0x2336, // ⌶ + [MACRON] = 0x00AF, // ¯ + [DEL_TILDE] = 0x236B, // ⍫ 5 + [LESS] = 0x003C, // < + [DEL_STILE] = 0x2352, // ⍒ + [LESS_EQUAL] = 0x2264, // ≤ + [DELTA_STILE] = 0x234B, // ⍋ + [EQUALS] = 0x003D, // = 10 + [CIRCLE_STILE] = 0x233D, // ⌽ + [GREATER_EQUAL] = 0x2265, // ≥ + [CIRCLE_BACKSLASH] = 0x2349, // ⍉ + [GREATER] = 0x003E, // > + [CIRCLED_MINUS] = 0x2296, // ⊖ 15 + [NOT_EQUAL] = 0x2260, // ≠ + [CIRCLE_STAR] = 0x235F, // ⍟ + [OR] = 0x2228, // ∨ + [DOWN_CARET_TILDE] = 0x2371, // ⍱ + [AND] = 0x2227, // ∧ 20 + [UP_CARET_TILDE] = 0x2372, // ⍲ + [MULT] = 0x00D7, // × + [EXCL] = 0x0021, // ! + [DIVISION] = 0x00F7, // ÷ + [QUAD_DIVIDE] = 0x2339, // ⌹ 25 + [QUESTION_MARK] = 0x003F, // ? + [OMEGA] = 0x2375, // ⍵ + [OMEGA_UNDERBAR] = 0x2379, // ⍹ + [EPSILON] = 0x03B5, // ε + [SMALL_ELEMENT] = 0x220A, // ∊ 30 + [EPSILON_UNDERBAR] = 0x2377, // ⍷ + [RHO] = 0x2374, // ⍴ + [TILDE] = 0x007E, // ~ + [TILDE_DIAERESIS] = 0x2368, // ⍨ + [UPWARDS_ARROW] = 0x2191, // ↑ 35 + [DOWNWARDS_ARROW] = 0x2193, // ↓ + [IOTA] = 0x2373, // ⍳ + [IOTA_UNDERBAR] = 0x2378, // ⍸ + [WHITE_CIRCLE] = 0x25CB, // ○ + [CIRCLE_DIAERESIS] = 0x2365, // ⍥ 40 + [STAR_OPERATOR] = 0x22C6, // ⋆ + [STAR_DIAERESIS] = 0x2363, // ⍣ + [LEFT_ARROW] = 0x2190, // ← + [QUOTE_QUAD] = 0x235E, // ⍞ + [RIGHT_ARROW] = 0x2192, // → 45 + [ZILDE] = 0x236C, // ⍬ + [ALPHA] = 0x237A, // ⍺ + [ALPHA_UNDERBAR] = 0x2376, // ⍶ + [LEFT_CEILING] = 0x2308, // ⌈ + [LEFT_FLOOR] = 0x230A, // ⌊ 50 + [LOW_LINE] = 0x005F, // _ + [NABLA] = 0x2207, // ∇ + [INCREMENT] = 0x2206, // ∆ + [DELTA_UNDERBAR] = 0x2359, // ⍙ + [RING_OPERATOR] = 0x2218, // ∘ 55 + [JOT_DIAERESIS] = 0x2364, // ⍤ + [APOSTROPHE] = 0x0027, // ' + [QUAD_EQUAL] = 0x2338, // ⌸ + [QUAD] = 0x2395, // ⎕ + [SQUISH_QUAD] = 0x2337, // ⌷ 60 + [DOWN_TACK_JOT] = 0x234E, // ⍎ + [IDENTICAL] = 0x2261, // ≡ + [UP_TACK_JOT] = 0x2355, // ⍕ + [NOT_IDENTICAL] = 0x2262, // ≢ + [RIGHT_TACK] = 0x22A2, // ⊢ 65 + [LEFT_TACK] = 0x22A3, // ⊣ + [SUBSET] = 0x2282, // ⊂ + [SUPERSET] = 0x2283, // ⊃ + [CHI] = 0x03C7, // χ + [INTERSECTION] = 0x2229, // ∩ 70 + [UNION] = 0x222A, // ∪ + [UP_TACK] = 0x22A5, // ⊥ + [DOWN_TACK] = 0x22A4, // ⊤ + [VERTICAL_LINE] = 0x007C, // | + [UP_SHOE_JOT] = 0x235D, // ⍝ 75 + [COMMA_BAR] = 0x236A, // ⍪ + [BACKSLASH_BAR] = 0x2340, // ⍀ + [SLASH_BAR] = 0x233F, // ⌿ + [QUAD_COLON] = 0x2360, // ⍠ 79 +}; diff --git a/users/charlesrocket/rules.mk b/users/charlesrocket/rules.mk new file mode 100644 index 0000000000..ec5aa5585d --- /dev/null +++ b/users/charlesrocket/rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(APL_ENABLE)), yes) + SRC += apl.c +endif diff --git a/users/davidkristoffersen/davidkristoffersen.h b/users/davidkristoffersen/davidkristoffersen.h new file mode 100644 index 0000000000..0485e00013 --- /dev/null +++ b/users/davidkristoffersen/davidkristoffersen.h @@ -0,0 +1,18 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include QMK_KEYBOARD_H + +#include "src/enums.h" + +#ifdef LAYER_NO +# include "macros/norwegian.h" +#endif + +#include "util/functions.h" + +#include "hardware/split_space.h" + +#include "macros/macros.h" diff --git a/users/davidkristoffersen/hardware/readme.md b/users/davidkristoffersen/hardware/readme.md new file mode 100644 index 0000000000..f31601812b --- /dev/null +++ b/users/davidkristoffersen/hardware/readme.md @@ -0,0 +1,3 @@ +# Hardware + +This directory contains hardware related macros. diff --git a/users/davidkristoffersen/hardware/split_space.c b/users/davidkristoffersen/hardware/split_space.c new file mode 100644 index 0000000000..da25343f3d --- /dev/null +++ b/users/davidkristoffersen/hardware/split_space.c @@ -0,0 +1,23 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "split_space.h" + +#ifdef SPLIT_SPACE +void handle_split_space(uint16_t keycode) { + // Disable modifiers when numpad is active + if (IS_LAYER_ON(NUMPAD)) clear_oneshot_mods(); + + if (keycode == KC_LSPC) { + // 2ng tap: Activate ctrl if shift is active + if (get_oneshot_mods() & MOD_MASK_SHIFT) { + clear_oneshot_mods(); + set_oneshot_mods(MOD_LCTL); + } + // 1st. tap: Activate shift if no modifier is active + else { + set_oneshot_mods(MOD_LSFT); + } + } +} +#endif diff --git a/users/davidkristoffersen/hardware/split_space.h b/users/davidkristoffersen/hardware/split_space.h new file mode 100644 index 0000000000..a9736b5ca1 --- /dev/null +++ b/users/davidkristoffersen/hardware/split_space.h @@ -0,0 +1,16 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include "davidkristoffersen.h" + +#define KC_RSPC KC_SPACE + +#ifdef SPLIT_SPACE +# define KC_LSPC LT(NUMPAD, KC_NO) +#else +# define KC_LSPC KC_SPACE +#endif + +void handle_split_space(uint16_t keycode); diff --git a/users/davidkristoffersen/macros/debug.c b/users/davidkristoffersen/macros/debug.c new file mode 100644 index 0000000000..64fdc4a702 --- /dev/null +++ b/users/davidkristoffersen/macros/debug.c @@ -0,0 +1,36 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "macros.h" + +// Replace key records with macros +bool handle_test(uint16_t keycode) { + switch (keycode) { + case KC_T0: { + // Test QK_MAKE command + SEND_STRING("qmk compile -kb " QMK_KEYBOARD " -km " QMK_KEYMAP); + break; + } + case KC_T1: + // Test ascii characters + SEND_STRING(" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"); + break; + case KC_T2: +#ifdef LAYER_NO + // Test other characters + tap_code16(NO_AE); + tap_code16(NO_OE); + tap_code16(NO_AA); + tap_code16(S(NO_AE)); + tap_code16(S(NO_OE)); + tap_code16(S(NO_AA)); +#endif + return false; + } + return true; +}; + +bool process_debug(uint16_t keycode, keyrecord_t* record) { + HANDLE_FALSE(handle_test(keycode)); + return true; +} diff --git a/users/davidkristoffersen/macros/language.c b/users/davidkristoffersen/macros/language.c new file mode 100644 index 0000000000..9b6dca79ca --- /dev/null +++ b/users/davidkristoffersen/macros/language.c @@ -0,0 +1,40 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "macros.h" + +bool handle_language(uint16_t keycode) { +#ifdef LAYER_NO + // Handle conversion of English to Norwegian codes + uint16_t org_keycode = keycode; + keycode = get_norwegian_code(keycode); +#endif + +#ifndef NO_SPECIAL_SHIFT + // Handle conversion of special shift codes + if (get_mods() & MOD_MASK_SHIFT) { + uint16_t shifted_key = get_special_shifted_code(keycode); + if (shifted_key != keycode) { + // Tap shifted key while shift is disabled + unregister_code(KC_LSFT); + tap_code16(shifted_key); + register_code(KC_LSFT); + return false; + } + } +#endif + +#ifdef LAYER_NO + // Tap new language key + if (keycode != org_keycode) { + tap_code16(keycode); + return false; + } +#endif + return true; +} + +bool process_language(uint16_t keycode, keyrecord_t* record) { + HANDLE_FALSE(handle_language(keycode)); + return true; +} diff --git a/users/davidkristoffersen/macros/macros.c b/users/davidkristoffersen/macros/macros.c new file mode 100644 index 0000000000..6d8c0b6f57 --- /dev/null +++ b/users/davidkristoffersen/macros/macros.c @@ -0,0 +1,16 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "macros.h" + +// Prepend key records with macros +bool process_record_user(uint16_t keycode, keyrecord_t* record) { + if (record->event.pressed) { +#ifdef SPLIT_SPACE + handle_split_space(keycode, record); +#endif + HANDLE_FALSE(process_debug(keycode, record)); + HANDLE_FALSE(process_language(keycode, record)); + } + return true; +} diff --git a/users/davidkristoffersen/macros/macros.h b/users/davidkristoffersen/macros/macros.h new file mode 100644 index 0000000000..fb1e5c862c --- /dev/null +++ b/users/davidkristoffersen/macros/macros.h @@ -0,0 +1,23 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include "davidkristoffersen.h" + +enum keycodes { + // Test keys + KC_T0 = SAFE_RANGE, + KC_T1, + KC_T2, + // Norwegian Æ, Ø, Å + KC_AE, + KC_OE, + KC_AA +}; + +bool process_debug(uint16_t keycode, keyrecord_t* record); +bool process_language(uint16_t keycode, keyrecord_t* record); + +// Prepend key records with macros +bool process_record_user(uint16_t keycode, keyrecord_t* record); diff --git a/users/davidkristoffersen/macros/norwegian.h b/users/davidkristoffersen/macros/norwegian.h new file mode 100644 index 0000000000..575d1e9f2f --- /dev/null +++ b/users/davidkristoffersen/macros/norwegian.h @@ -0,0 +1,19 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include "keymap_extras/keymap_norwegian.h" +#include "davidkristoffersen.h" + +// Better norwegian defines +#undef NO_LESS +#define NO_LESS KC_NUBS // < +#undef NO_GRTR +#define NO_GRTR S(NO_LESS) // > +#undef NO_AE +#define NO_AE KC_QUOT // Æ +#undef NO_OE +#define NO_OE KC_SCLN // Ø +#undef NO_AA +#define NO_AA KC_LBRC // Å diff --git a/users/davidkristoffersen/macros/readme.md b/users/davidkristoffersen/macros/readme.md new file mode 100644 index 0000000000..7c074b2bb5 --- /dev/null +++ b/users/davidkristoffersen/macros/readme.md @@ -0,0 +1,3 @@ +# Macros + +This directory contains any type of dynamic and static macros. diff --git a/users/davidkristoffersen/post_config.h b/users/davidkristoffersen/post_config.h new file mode 100644 index 0000000000..3d1f5a93f4 --- /dev/null +++ b/users/davidkristoffersen/post_config.h @@ -0,0 +1,8 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#ifndef LAYER_EN +# define LAYER_EN LAYER_DEFAULT +#endif diff --git a/users/davidkristoffersen/readme.md b/users/davidkristoffersen/readme.md new file mode 100644 index 0000000000..20ff58003e --- /dev/null +++ b/users/davidkristoffersen/readme.md @@ -0,0 +1,3 @@ +# Overview + +This userspace contains all the utility functions and macros related to my keymaps. diff --git a/users/davidkristoffersen/rules.mk b/users/davidkristoffersen/rules.mk new file mode 100644 index 0000000000..5901b68540 --- /dev/null +++ b/users/davidkristoffersen/rules.mk @@ -0,0 +1,12 @@ +SRC += $(USER_PATH)/util/functions.c \ + $(USER_PATH)/hardware/split_space.c \ + $(USER_PATH)/macros/macros.c \ + $(USER_PATH)/macros/debug.c \ + $(USER_PATH)/macros/language.c + +# Firmware size optimizations +ifeq ($(strip $(SIZE_OPTIMIZE)), yes) + CONSOLE_ENABLE := no # 1646: Console for debug + AUDIO_ENABLE := no # 8682: Audio output on port C6 + LTO_ENABLE := yes # 2772: Link time optimization +endif diff --git a/users/davidkristoffersen/util/functions.c b/users/davidkristoffersen/util/functions.c new file mode 100644 index 0000000000..781d8f214d --- /dev/null +++ b/users/davidkristoffersen/util/functions.c @@ -0,0 +1,111 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "functions.h" + +#ifndef NO_SPECIAL_SHIFT +// Code set to swap struct +typedef struct code_set { + uint16_t pre; + uint16_t post; +} code_set_t; + +// Shift codes conversion struct +typedef struct shift_code { + int lang; + int size; + code_set_t* codes; +} shift_code_t; + +#ifdef LAYER_NO +code_set_t NO_SHIFT_CODES [] = { + {NO_QUOT, NO_DQUO}, + {NO_BSLS, NO_PIPE}, +}; +#endif + +code_set_t EN_SHIFT_CODES [] = { + {KC_COMM, KC_SCLN}, + {KC_DOT, KC_COLN}, +}; + +// Array of shift code conversions +const shift_code_t SHIFT_CODES [] = { +#ifdef LAYER_NO + {.lang = LAYER_NO, + .size = ARR_LEN(NO_SHIFT_CODES), + .codes = NO_SHIFT_CODES}, +#endif + {.lang = LAYER_EN, + .size = ARR_LEN(EN_SHIFT_CODES), + .codes = EN_SHIFT_CODES}, +}; +const int SHIFT_CODES_SIZE = ARR_LEN(SHIFT_CODES); +#endif + +#ifdef LAYER_NO +// Array of English to Norwegian code translations +const code_set_t EN2NO_CODES [] = { + {KC_QUOT, NO_QUOT}, + {KC_MINS, NO_MINS}, + {KC_BSLS, NO_BSLS}, + {KC_LBRC, NO_LBRC}, + {KC_LCBR, NO_LCBR}, + {KC_LPRN, NO_LPRN}, + {KC_LT, NO_LESS}, + {KC_GT, NO_GRTR}, + {KC_RPRN, NO_RPRN}, + {KC_RCBR, NO_RCBR}, + {KC_RBRC, NO_RBRC}, + {KC_AMPR, NO_AMPR}, + {KC_EQL, NO_EQL}, + {KC_PLUS, NO_PLUS}, + {KC_ASTR, NO_ASTR}, + {KC_SLSH, NO_SLSH}, + {KC_TILD, NO_TILD}, + {KC_AE, NO_AE}, + {KC_OE, NO_OE}, + {KC_AA, NO_AA}, + {KC_QUES, NO_QUES}, + {KC_AT, NO_AT}, + {KC_CIRC, NO_CIRC}, + {KC_DLR, NO_DLR}, + {KC_GRV, NO_GRV} +}; +const int EN2NO_CODES_SIZE = ARR_LEN(EN2NO_CODES); +#endif + +// Check if layer is an active default layer +bool is_default_on(int layer) { + return layer == LAYER_DEFAULT + ? true + : layer_state_cmp(default_layer_state, layer); +} + +#ifndef NO_SPECIAL_SHIFT +// Get special shifted code +uint16_t get_special_shifted_code(uint16_t keycode) { + for (int i = 0; i < SHIFT_CODES_SIZE; i++) { + if (IS_DEFAULT_OFF(SHIFT_CODES[i].lang)) continue; + for (int j = 0; j < SHIFT_CODES[i].size; j++) { + if (keycode == SHIFT_CODES[i].codes[j].pre) + return SHIFT_CODES[i].codes[j].post; + } + } + return keycode; +} +#endif + +#ifdef LAYER_NO +// Get language specific code +uint16_t get_norwegian_code(uint16_t keycode) { + if (IS_DEFAULT_ON(LAYER_NO)) { + for (int i = 0; i < EN2NO_CODES_SIZE; i++) { + if (keycode == EN2NO_CODES[i].pre) { + return EN2NO_CODES[i].post; + } + } + } + return keycode; +} +#endif diff --git a/users/davidkristoffersen/util/functions.h b/users/davidkristoffersen/util/functions.h new file mode 100644 index 0000000000..eee1dadc57 --- /dev/null +++ b/users/davidkristoffersen/util/functions.h @@ -0,0 +1,32 @@ +// Copyright 2022 David Kristoffersen (@davidkristoffersen) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include "davidkristoffersen.h" + +// Default layer if none is specified +#define LAYER_DEFAULT -1 + +// Check if layer is an active default layer +#define IS_DEFAULT_ON(layer) is_default_on(layer) +// Check if layer is an inactive default layer +#define IS_DEFAULT_OFF(layer) !is_default_on(layer) + +// Return false if test equal false +#define HANDLE_FALSE(bool) if (!bool) return false; +// Generic array lenght define +#define ARR_LEN(arr) (sizeof(arr) / sizeof(arr)[0]) +// Printf-like functionality for send_string +#define SEND_VAR(str, ...) \ + do { \ + char var[128]; \ + sprintf(var, str, __VA_ARGS__); \ + send_string(var); \ + } while(0) + +// Get special shifted code +uint16_t get_special_shifted_code(uint16_t keycode); + +// Get language specific code +uint16_t get_norwegian_code(uint16_t keycode); diff --git a/users/davidkristoffersen/util/readme.md b/users/davidkristoffersen/util/readme.md new file mode 100644 index 0000000000..90635f30e5 --- /dev/null +++ b/users/davidkristoffersen/util/readme.md @@ -0,0 +1,3 @@ +# Utility + +This directory contains utility functions meant to assist the other files of the userspace. diff --git a/users/dhertz/dhertz.c b/users/dhertz/dhertz.c index 1a2b6e38f1..163b1cb644 100644 --- a/users/dhertz/dhertz.c +++ b/users/dhertz/dhertz.c @@ -18,7 +18,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } __attribute__ ((weak)) -layer_state_t layer_state_set_keymap (layer_state_t state) { +uint32_t layer_state_set_keymap (uint32_t state) { return state; } __attribute__ ((weak)) @@ -107,3 +107,4 @@ layer_state_t layer_state_set_user (layer_state_t state) { void led_set_user(uint8_t usb_led) { led_set_keymap(usb_led); } + diff --git a/users/doogle999/doogle999.c b/users/doogle999/doogle999.c index c9ee125741..320de7cff8 100644 --- a/users/doogle999/doogle999.c +++ b/users/doogle999/doogle999.c @@ -382,7 +382,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) static char text[CALC_BUFFER_SIZE + 1]; // Used to store input and then output when ready to print static char backspaceText[CALC_BUFFER_SIZE + 1]; // Pretty dumb waste of memory because only backspace characters, used with send_string to backspace and remove input - if((get_highest_layer(layer_state) == CALC_LAYER && CALC_FORCE_NUM_LOCK_INSIDE_CALC) || (get_highest_layer(layer_state) != CALC_LAYER && CALC_FORCE_NUM_LOCK_OUTSIDE_CALC)) + if((biton32(layer_state) == CALC_LAYER && CALC_FORCE_NUM_LOCK_INSIDE_CALC) || (biton32(layer_state) != CALC_LAYER && CALC_FORCE_NUM_LOCK_OUTSIDE_CALC)) { bool numpadKeyPressed = record->event.pressed && !(get_mods() & MODS_SHIFT_MASK) && @@ -397,7 +397,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) } } - if(get_highest_layer(layer_state) != CALC_LAYER) { return true; } + if(biton32(layer_state) != CALC_LAYER) { return true; } int action = process_input(keycode, get_mods(), record->event); switch(action) @@ -457,4 +457,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) send_string(characterToSend); } return false; -} +} \ No newline at end of file diff --git a/users/drashna/callbacks.c b/users/drashna/callbacks.c index 0ceb1aebe5..f9a3f598d3 100644 --- a/users/drashna/callbacks.c +++ b/users/drashna/callbacks.c @@ -55,11 +55,11 @@ void shutdown_user(void) { rgblight_enable_noeeprom(); rgblight_mode_noeeprom(1); rgblight_setrgb_red(); -#endif // RGBLIGHT_ENABLE +#endif // RGBLIGHT_ENABLE #ifdef RGB_MATRIX_ENABLE rgb_matrix_set_color_all(0xFF, 0x00, 0x00); rgb_matrix_update_pwm_buffers(); -#endif // RGB_MATRIX_ENABLE +#endif // RGB_MATRIX_ENABLE #ifdef OLED_ENABLE oled_off(); #endif @@ -88,7 +88,7 @@ void suspend_power_down_user(void) { __attribute__((weak)) void suspend_wakeup_init_keymap(void) {} void suspend_wakeup_init_user(void) { #ifdef OLED_ENABLE - oled_timer_reset(); + oled_timer_reset(); #endif suspend_wakeup_init_keymap(); } @@ -104,9 +104,9 @@ void matrix_scan_user(void) { startup_user(); } -#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. +#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. run_diablo_macro_check(); -#endif // TAP_DANCE_ENABLE +#endif // TAP_DANCE_ENABLE #ifdef CAPS_WORD_ENABLE caps_word_task(); #endif @@ -124,8 +124,10 @@ float doom_song[][2] = SONG(E1M1_DOOM); // on layer change, no matter where the change was initiated // Then runs keymap's layer change check -__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; } -layer_state_t layer_state_set_user(layer_state_t state) { +__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { + return state; +} +layer_state_t layer_state_set_user(layer_state_t state) { if (!is_keyboard_master()) { return state; } @@ -136,7 +138,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { #endif #if defined(CUSTOM_RGBLIGHT) state = layer_state_set_rgb_light(state); -#endif // CUSTOM_RGBLIGHT +#endif // CUSTOM_RGBLIGHT #if defined(AUDIO_ENABLE) && !defined(__arm__) static bool is_gamepad_on = false; if (layer_state_cmp(state, _GAMEPAD) != is_gamepad_on) { @@ -153,28 +155,31 @@ layer_state_t layer_state_set_user(layer_state_t state) { } // Runs state check and changes underglow color and animation -__attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t state) { return state; } -layer_state_t default_layer_state_set_user(layer_state_t state) { +__attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t state) { + return state; +} +layer_state_t default_layer_state_set_user(layer_state_t state) { if (!is_keyboard_master()) { return state; } state = default_layer_state_set_keymap(state); -#if 0 -# if defined(CUSTOM_RGBLIGHT) || defined(RGB_MATRIX_ENABLE) - state = default_layer_state_set_rgb(state); -# endif +#if defined(CUSTOM_RGBLIGHT) + state = default_layer_state_set_rgb_light(state); #endif return state; } __attribute__((weak)) void led_set_keymap(uint8_t usb_led) {} -void led_set_user(uint8_t usb_led) { led_set_keymap(usb_led); } +void led_set_user(uint8_t usb_led) { + led_set_keymap(usb_led); +} __attribute__((weak)) void eeconfig_init_keymap(void) {} void eeconfig_init_user(void) { userspace_config.raw = 0; userspace_config.rgb_layer_change = true; + userspace_config.autocorrection = true; eeconfig_update_user(userspace_config.raw); eeconfig_init_keymap(); } @@ -187,8 +192,8 @@ void matrix_slave_scan_user(void) { music_task(); # endif # ifdef AUDIO_INIT_DELAY - if (!is_keyboard_master()) { - static bool delayed_tasks_run = false; + if (!is_keyboard_master()) { + static bool delayed_tasks_run = false; static uint16_t delayed_task_timer = 0; if (!delayed_tasks_run) { if (!delayed_task_timer) { @@ -214,3 +219,11 @@ void matrix_slave_scan_user(void) { matrix_slave_scan_keymap(); } #endif + +__attribute__((weak)) void housekeeping_task_keymap(void) {} +void housekeeping_task_user(void) { +#if defined(SPLIT_KEYBOARD) && defined(SPLIT_TRANSACTION_IDS_USER) + housekeeping_task_transport_sync(); +#endif + housekeeping_task_keymap(); +} diff --git a/users/drashna/callbacks.h b/users/drashna/callbacks.h index f6ac6b88de..15f8997619 100644 --- a/users/drashna/callbacks.h +++ b/users/drashna/callbacks.h @@ -16,6 +16,7 @@ layer_state_t layer_state_set_keymap(layer_state_t state); layer_state_t default_layer_state_set_keymap(layer_state_t state); void led_set_keymap(uint8_t usb_led); void eeconfig_init_keymap(void); +void housekeeping_task_keymap(void); #ifdef CUSTOM_UNICODE_ENABLE void matrix_init_unicode(void); diff --git a/users/drashna/config.h b/users/drashna/config.h index 4a34f5d66a..fd1530a100 100644 --- a/users/drashna/config.h +++ b/users/drashna/config.h @@ -4,10 +4,10 @@ #pragma once // Use custom magic number so that when switching branches, EEPROM always gets reset -#define EECONFIG_MAGIC_NUMBER (uint16_t)0x1339 +#define EECONFIG_MAGIC_NUMBER (uint16_t)0x1339 #ifdef IS_COMMAND -#undef IS_COMMAND +# undef IS_COMMAND #endif #define IS_COMMAND() (((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) == MOD_MASK_SHIFT) @@ -37,8 +37,8 @@ // # define WPM_LAUNCH_CONTROL // # define WPM_ALLOW_COUNT_REGRESSOIN // # define WPM_UNFILTERED -# define WPM_SAMPLE_SECONDS 10 -# define WPM_SAMPLE_PERIODS 50 +# define WPM_SAMPLE_SECONDS 10 +# define WPM_SAMPLE_PERIODS 50 # define WPM_ESTIMATED_WORD_SIZE 5 #endif @@ -51,34 +51,34 @@ # define GOODBYE_SONG SONG(SONIC_RING) # define DEFAULT_LAYER_SONGS \ { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(OVERWATCH_THEME) } -# define UNICODE_SONG_MAC SONG(MARIO_THEME) -# define UNICODE_SONG_LNX SONG(MARIO_POWERUP) -# define UNICODE_SONG_WIN SONG(MARIO_ONEUP) -# define UNICODE_SONG_BSD SONG(RICK_ROLL) +# define UNICODE_SONG_MAC SONG(MARIO_THEME) +# define UNICODE_SONG_LNX SONG(MARIO_POWERUP) +# define UNICODE_SONG_WIN SONG(MARIO_ONEUP) +# define UNICODE_SONG_BSD SONG(RICK_ROLL) # define UNICODE_SONG_WINC SONG(RICK_ROLL) # else # define STARTUP_SONG SONG(STARTUP_SOUND) # define GOODBYE_SONG SONG(GOODBYE_SOUND) # define DEFAULT_LAYER_SONGS \ { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(WORKMAN_SOUND) } -# define UNICODE_SONG_MAC SONG(QWERTY_SOUND) -# define UNICODE_SONG_LNX SONG(COLEMAK_SOUND) -# define UNICODE_SONG_WIN SONG(DVORAK_SOUND) -# define UNICODE_SONG_BSD SONG(WORKMAN_SOUND) +# define UNICODE_SONG_MAC SONG(QWERTY_SOUND) +# define UNICODE_SONG_LNX SONG(COLEMAK_SOUND) +# define UNICODE_SONG_WIN SONG(DVORAK_SOUND) +# define UNICODE_SONG_BSD SONG(WORKMAN_SOUND) # define UNICODE_SONG_WINC SONG(PLOVER_GOODBYE_SOUND) # endif -#endif // !AUDIO_ENABLE +#endif // !AUDIO_ENABLE #define UNICODE_SELECTED_MODES UC_WINC, UC_MAC #ifdef RGBLIGHT_ENABLE # define RGBLIGHT_SLEEP -# define RGBLIGHT_EFFECT_TWINKLE_LIFE 250 +# define RGBLIGHT_EFFECT_TWINKLE_LIFE 250 # define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24 -#endif // RGBLIGHT_ENABLE +#endif // RGBLIGHT_ENABLE #ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) # define RGB_MATRIX_FRAMEBUFFER_EFFECTS // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects @@ -179,20 +179,26 @@ # define ENABLE_RGB_MATRIX_MULTISPLASH # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -# endif // AVR -#endif // RGB_MATRIX_ENABLE +# endif // AVR +#endif // RGB_MATRIX_ENABLE #ifdef OLED_ENABLE -# ifdef SPLIT_KEYBOARD -# define OLED_UPDATE_INTERVAL 60 -# else -# define OLED_UPDATE_INTERVAL 15 +# ifndef OLED_UPDATE_INTERVAL +# ifdef OLED_DRIVER_SH1107 +# define OLED_UPDATE_INTERVAL 75 +# else +# ifdef SPLIT_KEYBOARD +# define OLED_UPDATE_INTERVAL 60 +# else +# define OLED_UPDATE_INTERVAL 15 +# endif +# endif # endif # define OLED_DISABLE_TIMEOUT # ifdef OLED_FONT_H # undef OLED_FONT_H # endif -# define OLED_FONT_H "oled/drashna_font.h" +# define OLED_FONT_H "oled/drashna_font.h" # define OLED_FONT_END 255 // # define OLED_FONT_5X5 // # define OLED_FONT_AZTECH @@ -223,14 +229,13 @@ // #define WPM_SAMPLE_PERIODS 50 // #define WPM_LAUNCH_CONTROL - #ifndef ONESHOT_TAP_TOGGLE # define ONESHOT_TAP_TOGGLE 2 -#endif // !ONESHOT_TAP_TOGGLE +#endif // !ONESHOT_TAP_TOGGLE #ifndef ONESHOT_TIMEOUT # define ONESHOT_TIMEOUT 3000 -#endif // !ONESHOT_TIMEOUT +#endif // !ONESHOT_TIMEOUT #define IGNORE_MOD_TAP_INTERRUPT_PER_KEY #define PERMISSIVE_HOLD_PER_KEY @@ -238,7 +243,6 @@ #define RETRO_TAPPING_PER_KEY #define TAPPING_TERM_PER_KEY - #ifndef TAPPING_TOGGLE # define TAPPING_TOGGLE 1 #endif @@ -255,12 +259,12 @@ #ifdef CONVERT_TO_PROTON_C // pins that are available but not present on Pro Micro -# define A3 PAL_LINE(GPIOA, 3) -# define A4 PAL_LINE(GPIOA, 4) -# define A5 PAL_LINE(GPIOA, 5) -# define A6 PAL_LINE(GPIOA, 6) -# define A7 PAL_LINE(GPIOA, 7) -# define A8 PAL_LINE(GPIOA, 8) +# define A3 PAL_LINE(GPIOA, 3) +# define A4 PAL_LINE(GPIOA, 4) +# define A5 PAL_LINE(GPIOA, 5) +# define A6 PAL_LINE(GPIOA, 6) +# define A7 PAL_LINE(GPIOA, 7) +# define A8 PAL_LINE(GPIOA, 8) # define A13 PAL_LINE(GPIOA, 13) # define A14 PAL_LINE(GPIOA, 14) # define A15 PAL_LINE(GPIOA, 15) @@ -291,12 +295,22 @@ # ifndef OLED_BRIGHTNESS # define OLED_BRIGHTNESS 50 # endif -# if !defined(STM32F4XX) -# undef OLED_UPDATE_INTERVAL -# define OLED_UPDATE_INTERVAL 75 -# endif +#endif + +#ifdef USE_I2CV1 +# define I2C1_CLOCK_SPEED 400000 +# define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 #endif #define ENABLE_COMPILE_KEYCODE #define BOTH_SHIFTS_TURNS_ON_CAPS_WORD + +#ifndef SECURE_UNLOCK_SEQUENCE +# define SECURE_UNLOCK_SEQUENCE \ + { \ + {2, 1}, {2, 2}, {2, 3}, { \ + 2, 4 \ + } \ + } +#endif diff --git a/users/drashna/keyrecords/autocorrection/autocorrection.c b/users/drashna/keyrecords/autocorrection/autocorrection.c index 682d6fd49c..90fdba8f5e 100644 --- a/users/drashna/keyrecords/autocorrection/autocorrection.c +++ b/users/drashna/keyrecords/autocorrection/autocorrection.c @@ -52,7 +52,7 @@ void autocorrect_enable(void) { */ void autocorrect_disable(void) { userspace_config.autocorrection = false; - typo_buffer_size = 0; + typo_buffer_size = 0; eeconfig_update_user(userspace_config.raw); } @@ -62,7 +62,7 @@ void autocorrect_disable(void) { */ void autocorrect_toggle(void) { userspace_config.autocorrection = !userspace_config.autocorrection; - typo_buffer_size = 0; + typo_buffer_size = 0; eeconfig_update_user(userspace_config.raw); } @@ -98,15 +98,15 @@ __attribute__((weak)) bool process_autocorrect_user(uint16_t *keycode, keyrecord } *keycode &= 0xFF; // Get the basic keycode. return true; -#ifndef NO_ACTION_TAPPING +# ifndef NO_ACTION_TAPPING // Exclude tap-hold keys when they are held down // and mask for base keycode when they are tapped. case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: -# ifdef NO_ACTION_LAYER +# ifdef NO_ACTION_LAYER // Exclude Layer Tap, if layers are disabled // but action tapping is still enabled. return false; -# endif +# endif case QK_MOD_TAP ... QK_MOD_TAP_MAX: // Exclude hold keycode if (!record->tap.count) { @@ -114,25 +114,25 @@ __attribute__((weak)) bool process_autocorrect_user(uint16_t *keycode, keyrecord } *keycode &= 0xFF; break; -#else +# else case QK_MOD_TAP ... QK_MOD_TAP_MAX: case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: // Exclude if disabled return false; -#endif +# endif // Exclude swap hands keys when they are held down // and mask for base keycode when they are tapped. case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: -#ifdef SWAP_HANDS_ENABLE +# ifdef SWAP_HANDS_ENABLE if (*keycode >= 0x56F0 || !record->tap.count) { return false; } *keycode &= 0xFF; break; -#else +# else // Exclude if disabled return false; -#endif +# endif } // Disable autocorrect while a mod other than shift is active. @@ -166,9 +166,9 @@ __attribute__((weak)) bool apply_autocorrect(uint8_t backspaces, const char *str */ bool process_autocorrection(uint16_t keycode, keyrecord_t *record) { uint8_t mods = get_mods(); -#ifndef NO_ACTION_ONESHOT +# ifndef NO_ACTION_ONESHOT mods |= get_oneshot_mods(); -#endif +# endif if ((keycode >= AUTOCORRECT_ON && keycode <= AUTOCORRECT_TOGGLE) && record->event.pressed) { if (keycode == AUTOCORRECT_ON) { diff --git a/users/drashna/keyrecords/process_records.c b/users/drashna/keyrecords/process_records.c index 240156e816..c328451b75 100644 --- a/users/drashna/keyrecords/process_records.c +++ b/users/drashna/keyrecords/process_records.c @@ -20,8 +20,12 @@ bool host_driver_disabled = false; * * This handles the keycodes at the keymap level, useful for keyboard specific customization */ -__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; } +__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; +} /** * @brief Main user keycode handler @@ -46,10 +50,10 @@ 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 KEYLOGGER_ENABLE uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, 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 // KEYLOGGER_ENABLE +#endif // KEYLOGGER_ENABLE #if defined(OLED_ENABLE) && defined(CUSTOM_OLED_DRIVER) process_record_user_oled(keycode, record); -#endif // OLED +#endif // OLED if (!(process_record_keymap(keycode, record) && process_record_secrets(keycode, record) #ifdef CUSTOM_RGB_MATRIX @@ -90,34 +94,34 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } break; - case VRSN: // Prints firmware version + case VRSN: // Prints firmware version if (record->event.pressed) { send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); } break; - case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them + case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them #ifdef TAP_DANCE_ENABLE if (record->event.pressed) { for (uint8_t index = 0; index < 4; index++) { diablo_timer[index].key_interval = 0; } } -#endif // TAP_DANCE_ENABLE +#endif // TAP_DANCE_ENABLE break; - case KC_CCCV: // One key copy/paste + case KC_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 + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy tap_code16(LCTL(KC_C)); - } else { // Tap, paste + } else { // Tap, paste tap_code16(LCTL(KC_V)); } } break; - case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal + case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal #if defined(CUSTOM_RGBLIGHT) || defined(CUSTOM_RGB_MATRIX) if (record->event.pressed) { userspace_config.rgb_layer_change ^= 1; @@ -140,7 +144,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { # endif } } -#endif // CUSTOM_RGBLIGHT +#endif // CUSTOM_RGBLIGHT break; #if defined(CUSTOM_RGBLIGHT) || defined(CUSTOM_RGB_MATRIX) @@ -160,7 +164,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions + case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions if (record->event.pressed) { bool is_eeprom_updated; # if defined(CUSTOM_RGBLIGHT) && !defined(RGBLIGHT_DISABLE_KEYCODES) @@ -200,9 +204,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } break; } - } + } return true; } __attribute__((weak)) void post_process_record_keymap(uint16_t keycode, keyrecord_t *record) {} -void post_process_record_user(uint16_t keycode, keyrecord_t *record) { post_process_record_keymap(keycode, record); } +void post_process_record_user(uint16_t keycode, keyrecord_t *record) { + post_process_record_keymap(keycode, record); +} diff --git a/users/drashna/keyrecords/process_records.h b/users/drashna/keyrecords/process_records.h index e83e4ce308..be31f992cb 100644 --- a/users/drashna/keyrecords/process_records.h +++ b/users/drashna/keyrecords/process_records.h @@ -13,30 +13,30 @@ #endif enum userspace_custom_keycodes { - VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info - KC_QWERTY, // Sets default layer to QWERTY - FIRST_DEFAULT_LAYER_KEYCODE = KC_QWERTY, // Sets default layer to QWERTY - KC_COLEMAK_DH, // Sets default layer to COLEMAK - KC_COLEMAK, // Sets default layer to COLEMAK - KC_DVORAK, // Sets default layer to DVORAK - LAST_DEFAULT_LAYER_KEYCODE = KC_DVORAK, // Sets default layer to WORKMAN - KC_DIABLO_CLEAR, // Clears all Diablo Timers - KC_RGB_T, // Toggles RGB Layer Indication mode - RGB_IDL, // RGB Idling animations - KC_SECRET_1, // test1 - KC_SECRET_2, // test2 - KC_SECRET_3, // test3 - KC_SECRET_4, // test4 - KC_SECRET_5, // test5 - KC_CCCV, // Hold to copy, tap to paste - KC_NUKE, // NUCLEAR LAUNCH DETECTED!!! - UC_FLIP, // (ಠ痊ಠ)┻━┻ - UC_TABL, // ┬─┬ノ( º _ ºノ) - UC_SHRG, // ¯\_(ツ)_/¯ - UC_DISA, // ಠ_ಠ + VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info + KC_QWERTY, // Sets default layer to QWERTY + FIRST_DEFAULT_LAYER_KEYCODE = KC_QWERTY, // Sets default layer to QWERTY + KC_COLEMAK_DH, // Sets default layer to COLEMAK + KC_COLEMAK, // Sets default layer to COLEMAK + KC_DVORAK, // Sets default layer to DVORAK + LAST_DEFAULT_LAYER_KEYCODE = KC_DVORAK, // Sets default layer to WORKMAN + KC_DIABLO_CLEAR, // Clears all Diablo Timers + KC_RGB_T, // Toggles RGB Layer Indication mode + RGB_IDL, // RGB Idling animations + KC_SECRET_1, // test1 + KC_SECRET_2, // test2 + KC_SECRET_3, // test3 + KC_SECRET_4, // test4 + KC_SECRET_5, // test5 + KC_CCCV, // Hold to copy, tap to paste + KC_NUKE, // NUCLEAR LAUNCH DETECTED!!! + UC_FLIP, // (ಠ痊ಠ)┻━┻ + UC_TABL, // ┬─┬ノ( º _ ºノ) + UC_SHRG, // ¯\_(ツ)_/¯ + UC_DISA, // ಠ_ಠ UC_IRNY, UC_CLUE, - KEYLOCK, // Locks keyboard by unmounting driver + KEYLOCK, // Locks keyboard by unmounting driver KC_NOMODE, KC_WIDE, KC_SCRIPT, @@ -44,11 +44,12 @@ enum userspace_custom_keycodes { KC_REGIONAL, KC_AUSSIE, KC_ZALGO, + KC_SUPER, KC_ACCEL, AUTOCORRECT_ON, AUTOCORRECT_OFF, AUTOCORRECT_TOGGLE, - NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes + NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes }; bool process_record_secrets(uint16_t keycode, keyrecord_t *record); @@ -58,37 +59,37 @@ void post_process_record_keymap(uint16_t keycode, keyrecord_t *record); bool process_record_unicode(uint16_t keycode, keyrecord_t *record); #endif -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) -#define ADJUST MO(_ADJUST) -#define TG_MODS OS_TOGG -#define TG_GAME TG(_GAMEPAD) -#define TG_DBLO TG(_DIABLO) -#define OS_LWR OSL(_LOWER) -#define OS_RSE OSL(_RAISE) +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) +#define TG_MODS OS_TOGG +#define TG_GAME TG(_GAMEPAD) +#define TG_DBLO TG(_DIABLO) +#define OS_LWR OSL(_LOWER) +#define OS_RSE OSL(_RAISE) -#define KC_SEC1 KC_SECRET_1 -#define KC_SEC2 KC_SECRET_2 -#define KC_SEC3 KC_SECRET_3 -#define KC_SEC4 KC_SECRET_4 -#define KC_SEC5 KC_SECRET_5 +#define KC_SEC1 KC_SECRET_1 +#define KC_SEC2 KC_SECRET_2 +#define KC_SEC3 KC_SECRET_3 +#define KC_SEC4 KC_SECRET_4 +#define KC_SEC5 KC_SECRET_5 -#define QWERTY KC_QWERTY -#define DVORAK KC_DVORAK -#define COLEMAK KC_COLEMAK +#define QWERTY KC_QWERTY +#define DVORAK KC_DVORAK +#define COLEMAK KC_COLEMAK #define COLEMAKDH KC_COLEMAK_DH -#define DEFLYR1 FIRST_DEFAULT_LAYER_KEYCODE -#define DEFLYR2 (FIRST_DEFAULT_LAYER_KEYCODE + 1) -#define DEFLYR3 (FIRST_DEFAULT_LAYER_KEYCODE + 2) -#define DEFLYR4 (FIRST_DEFAULT_LAYER_KEYCODE + 3) +#define DEFLYR1 FIRST_DEFAULT_LAYER_KEYCODE +#define DEFLYR2 (FIRST_DEFAULT_LAYER_KEYCODE + 1) +#define DEFLYR3 (FIRST_DEFAULT_LAYER_KEYCODE + 2) +#define DEFLYR4 (FIRST_DEFAULT_LAYER_KEYCODE + 3) #if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 3) # define DEFLYR5 (FIRST_DEFAULT_LAYER_KEYCODE + 4) # define DEFLYR6 (FIRST_DEFAULT_LAYER_KEYCODE + 5) # define DEFLYR7 (FIRST_DEFAULT_LAYER_KEYCODE + 6) # define DEFLYR8 (FIRST_DEFAULT_LAYER_KEYCODE + 7) # if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 7) -# define DEFLYR9 (FIRST_DEFAULT_LAYER_KEYCODE + 8) +# define DEFLYR9 (FIRST_DEFAULT_LAYER_KEYCODE + 8) # define DEFLYR10 (FIRST_DEFAULT_LAYER_KEYCODE + 9) # define DEFLYR11 (FIRST_DEFAULT_LAYER_KEYCODE + 10) # define DEFLYR12 (FIRST_DEFAULT_LAYER_KEYCODE + 11) @@ -99,9 +100,9 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record); # define KC_C1R3 SH_T(KC_TAB) #elif defined(DRASHNA_LP) # define KC_C1R3 TG(_GAMEPAD) -#else // SWAP_HANDS_ENABLE +#else // SWAP_HANDS_ENABLE # define KC_C1R3 KC_TAB -#endif // SWAP_HANDS_ENABLE +#endif // SWAP_HANDS_ENABLE #define BK_LWER LT(_LOWER, KC_BSPC) #define SP_LWER LT(_LOWER, KC_SPC) @@ -120,7 +121,7 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record); #define OS_RCTL OSM(MOD_RCTL) #define OS_LALT OSM(MOD_LALT) #define OS_RALT OSM(MOD_RALT) -#define OS_MEH OSM(MOD_MEH) +#define OS_MEH OSM(MOD_MEH) #define OS_HYPR OSM(MOD_HYPR) #define ALT_APP ALT_T(KC_APP) @@ -138,9 +139,9 @@ We use custom codes here, so we can substitute the right stuff # define KC_D3_2 TD(TD_D3_2) # define KC_D3_3 TD(TD_D3_3) # define KC_D3_4 TD(TD_D3_4) -#else // TAP_DANCE_ENABLE +#else // TAP_DANCE_ENABLE # define KC_D3_1 KC_1 # define KC_D3_2 KC_2 # define KC_D3_3 KC_3 # define KC_D3_4 KC_4 -#endif // TAP_DANCE_ENABLE +#endif // TAP_DANCE_ENABLE diff --git a/users/drashna/keyrecords/tap_dances.c b/users/drashna/keyrecords/tap_dances.c index a1a7439164..6caf6b6b3e 100644 --- a/users/drashna/keyrecords/tap_dances.c +++ b/users/drashna/keyrecords/tap_dances.c @@ -26,7 +26,7 @@ void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) { if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t))) { diablo_timer[diablo_keys->index].key_interval = 0; reset_tap_dance(state); - } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one) + } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one) diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1]; } } diff --git a/users/drashna/keyrecords/tap_dances.h b/users/drashna/keyrecords/tap_dances.h index d9baedc867..81d1f07fe0 100644 --- a/users/drashna/keyrecords/tap_dances.h +++ b/users/drashna/keyrecords/tap_dances.h @@ -28,4 +28,4 @@ enum { TD_D3_3, TD_D3_4, }; -#endif // TAP_DANCE_ENABLE +#endif // TAP_DANCE_ENABLE diff --git a/users/drashna/keyrecords/tapping.c b/users/drashna/keyrecords/tapping.c index 9c4892b33d..daba25bd72 100644 --- a/users/drashna/keyrecords/tapping.c +++ b/users/drashna/keyrecords/tapping.c @@ -29,10 +29,10 @@ __attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyreco // Do not select the hold action when another key is pressed. // return false; switch (keycode) { - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: - return true; +// case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: +// return true; default: - return false; + return true; } } diff --git a/users/drashna/keyrecords/unicode.c b/users/drashna/keyrecords/unicode.c index c1fe8df2c3..ea51b26061 100644 --- a/users/drashna/keyrecords/unicode.c +++ b/users/drashna/keyrecords/unicode.c @@ -69,7 +69,7 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, tra } return false; } else if (KC_1 <= keycode && keycode <= KC_0) { - if (is_shifted) { // skip shifted numbers, so that we can still use symbols etc. + if (is_shifted) { // skip shifted numbers, so that we can still use symbols etc. return process_record_keymap(keycode, record); } if (record->event.pressed) { @@ -92,42 +92,81 @@ DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_boxes, 0x1F170, 0x1F170 DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_regional, 0x1F1E6, 0x1F1E6, '0', '1', 0x2003); DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_aussie, - 0x0250, // a - 'q', // b - 0x0254, // c - 'p', // d - 0x01DD, // e - 0x025F, // f - 0x0183, // g - 0x0265, // h - 0x1D09, // i - 0x027E, // j - 0x029E, // k - 'l', // l - 0x026F, // m - 'u', // n - 'o', // o - 'd', // p - 'b', // q - 0x0279, // r - 's', // s - 0x0287, // t - 'n', // u - 0x028C, // v - 0x028D, // w - 0x2717, // x - 0x028E, // y - 'z', // z - 0x0269, // 1 - 0x3139, // 2 - 0x0190, // 3 - 0x3123, // 4 - 0x03DB, // 5 - '9', // 6 - 0x3125, // 7 - '8', // 8 - '6', // 9 - '0' // 0 + 0x0250, // a + 'q', // b + 0x0254, // c + 'p', // d + 0x01DD, // e + 0x025F, // f + 0x0183, // g + 0x0265, // h + 0x1D09, // i + 0x027E, // j + 0x029E, // k + 'l', // l + 0x026F, // m + 'u', // n + 'o', // o + 'd', // p + 'b', // q + 0x0279, // r + 's', // s + 0x0287, // t + 'n', // u + 0x028C, // v + 0x028D, // w + 0x2717, // x + 0x028E, // y + 'z', // z + 0x0269, // 1 + 0x3139, // 2 + 0x0190, // 3 + 0x3123, // 4 + 0x03DB, // 5 + '9', // 6 + 0x3125, // 7 + '8', // 8 + '6', // 9 + '0' // 0 +); + +DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_super, + 0x1D43, // a + 0x1D47, // b + 0x1D9C, // c + 0x1D48, // d + 0x1D49, // e + 0x1DA0, // f + 0x1D4D, // g + 0x02B0, // h + 0x2071, // i + 0x02B2, // j + 0x1D4F, // k + 0x1D4F, // l + 0x1D50, // m + 0x207F, // n + 0x1D52, // o + 0x1D56, // p + 0x06F9, // q + 0x02B3, // r + 0x02E2, // s + 0x1D57, // t + 0x1D58, // u + 0x1D5B, // v + 0x02B7, // w + 0x02E3, // x + 0x02B8, // y + 0x1DBB, // z + 0x00B9, // 1 + 0x00B2, // 2 + 0x00B3, // 3 + 0x2074, // 4 + 0x2075, // 5 + 0x2076, // 6 + 0x2077, // 7 + 0x2078, // 8 + 0x2079, // 9 + 0x2070 // 0 ); bool process_record_aussie(uint16_t keycode, keyrecord_t *record) { @@ -207,41 +246,41 @@ bool process_record_zalgo(uint16_t keycode, keyrecord_t *record) { bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻ + case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻ if (record->event.pressed) { send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); } break; - case UC_TABL: // ┬─┬ノ( º _ ºノ) + case UC_TABL: // ┬─┬ノ( º _ ºノ) if (record->event.pressed) { send_unicode_string("┬─┬ノ( º _ ºノ)"); } break; - case UC_SHRG: // ¯\_(ツ)_/¯ + case UC_SHRG: // ¯\_(ツ)_/¯ if (record->event.pressed) { send_unicode_string("¯\\_(ツ)_/¯"); } break; - case UC_DISA: // ಠ_ಠ + case UC_DISA: // ಠ_ಠ if (record->event.pressed) { send_unicode_string("ಠ_ಠ"); } break; - case UC_IRNY: // ⸮ + case UC_IRNY: // ⸮ if (record->event.pressed) { register_unicode(0x2E2E); } break; - case UC_CLUE: // ‽ + case UC_CLUE: // ‽ if (record->event.pressed) { register_unicode(0x203D); } break; - case KC_NOMODE ... KC_ZALGO: + case KC_NOMODE ... KC_SUPER: if (record->event.pressed) { if (typing_mode != keycode - KC_NOMODE) { typing_mode = keycode - KC_NOMODE; @@ -280,6 +319,10 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { return false; } } + } else if (typing_mode == UCTM_SUPER) { + if (((KC_A <= keycode) && (keycode <= KC_0))) { + return process_record_glyph_replacement(keycode, record, unicode_lut_translator_super); + } } else if (typing_mode == UCTM_AUSSIE) { return process_record_aussie(keycode, record); } else if (typing_mode == UCTM_ZALGO) { @@ -292,4 +335,6 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { * @brief Initialize the default unicode mode on firmware startu * */ -void matrix_init_unicode(void) { unicode_input_mode_init(); } +void matrix_init_unicode(void) { + unicode_input_mode_init(); +} diff --git a/users/drashna/keyrecords/unicode.h b/users/drashna/keyrecords/unicode.h index dd261d3406..6885d4dd7f 100644 --- a/users/drashna/keyrecords/unicode.h +++ b/users/drashna/keyrecords/unicode.h @@ -11,6 +11,7 @@ enum unicode_typing_mode { UCTM_REGIONAL, UCTM_AUSSIE, UCTM_ZALGO, + UCTM_SUPER, }; extern uint8_t typing_mode; diff --git a/users/drashna/oled/oled_stuff.c b/users/drashna/oled/oled_stuff.c index 8c76897fba..5baf5b558b 100644 --- a/users/drashna/oled/oled_stuff.c +++ b/users/drashna/oled/oled_stuff.c @@ -34,7 +34,7 @@ uint32_t oled_timer = 0; char keylog_str[OLED_KEYLOGGER_LENGTH] = {0}; static uint16_t log_timer = 0; #ifdef OLED_DISPLAY_VERBOSE -static const char PROGMEM display_border[3] = {0x0, 0xFF, 0x0}; +const char PROGMEM display_border[3] = {0x0, 0xFF, 0x0}; #endif deferred_token kittoken; @@ -117,9 +117,9 @@ void oled_timer_reset(void) { * @brief Renders keylogger buffer to oled * */ -void render_keylogger_status(void) { +void render_keylogger_status(uint8_t col, uint8_t line) { #ifdef OLED_DISPLAY_VERBOSE - oled_set_cursor(1, 6); + oled_set_cursor(col, line); #endif oled_write_P(PSTR(OLED_RENDER_KEYLOGGER), false); oled_write(keylog_str, false); @@ -132,9 +132,9 @@ void render_keylogger_status(void) { * @brief Renders default layer state (aka layout) to oled * */ -void render_default_layer_state(void) { +void render_default_layer_state(uint8_t col, uint8_t line) { #ifdef OLED_DISPLAY_VERBOSE - oled_set_cursor(1, 1); + oled_set_cursor(col, line); #endif oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false); switch (get_highest_layer(default_layer_state)) { @@ -160,7 +160,7 @@ void render_default_layer_state(void) { * @brief Renders the active layers to the OLED * */ -void render_layer_state(void) { +void render_layer_state(uint8_t col, uint8_t line) { #ifdef OLED_DISPLAY_VERBOSE // clang-format off static const char PROGMEM tri_layer_image[][3][24] = { @@ -286,33 +286,33 @@ void render_layer_state(void) { layer_is[2] = 5; } - oled_set_cursor(1, 2); + oled_set_cursor(col, line); oled_write_raw_P(tri_layer_image[layer_is[0]][0], sizeof(tri_layer_image[0][0])); - oled_set_cursor(5, 2); + oled_set_cursor(col + 4, line); oled_write_raw_P(tri_layer_image[layer_is[1]][0], sizeof(tri_layer_image[0][0])); - oled_set_cursor(9, 2); + oled_set_cursor(col + 8, line); oled_write_raw_P(tri_layer_image[layer_is[2]][0], sizeof(tri_layer_image[0][0])); - oled_set_cursor(14, 2); + oled_set_cursor(col + 13, line); oled_write_P(PSTR("Diablo2"), layer_state_is(_DIABLOII)); oled_advance_page(true); - oled_set_cursor(1, 3); + oled_set_cursor(col, line + 1); oled_write_raw_P(tri_layer_image[layer_is[0]][1], sizeof(tri_layer_image[0][0])); - oled_set_cursor(5, 3); + oled_set_cursor(col + 4, line + 1); oled_write_raw_P(tri_layer_image[layer_is[1]][1], sizeof(tri_layer_image[0][0])); - oled_set_cursor(9, 3); + oled_set_cursor(col + 8, line + 1); oled_write_raw_P(tri_layer_image[layer_is[2]][1], sizeof(tri_layer_image[0][0])); - oled_set_cursor(14, 3); + oled_set_cursor(col + 13, line + 1); oled_write_P(PSTR("Diablo3"), layer_state_is(_DIABLO)); oled_advance_page(true); - oled_set_cursor(1, 4); + oled_set_cursor(col, line + 2); oled_write_raw_P(tri_layer_image[layer_is[0]][2], sizeof(tri_layer_image[0][0])); - oled_set_cursor(5, 4); + oled_set_cursor(col + 4, line + 2); oled_write_raw_P(tri_layer_image[layer_is[1]][2], sizeof(tri_layer_image[0][0])); - oled_set_cursor(9, 4); + oled_set_cursor(col + 8, line + 2); oled_write_raw_P(tri_layer_image[layer_is[2]][2], sizeof(tri_layer_image[0][0])); - oled_set_cursor(14, 4); + oled_set_cursor(col + 13, line + 2); oled_write_P(PSTR("Media"), layer_state_is(_MEDIA)); #else oled_write_P(PSTR(OLED_RENDER_LAYER_NAME), false); @@ -327,9 +327,12 @@ void render_layer_state(void) { * * @param led_usb_state Current keyboard led state */ -void render_keylock_status(led_t led_usb_state) { +void render_keylock_status(led_t led_usb_state, uint8_t col, uint8_t line) { #if defined(OLED_DISPLAY_VERBOSE) - oled_set_cursor(1, 6); + oled_set_cursor(col, line); +#endif +#ifdef CAPS_WORD_ENABLE + led_usb_state.caps_lock |= is_caps_word_on(); #endif oled_write_P(PSTR(OLED_RENDER_LOCK_NAME), false); #if !defined(OLED_DISPLAY_VERBOSE) @@ -348,8 +351,9 @@ void render_keylock_status(led_t led_usb_state) { * @brief Renders the matrix scan rate to the host system * */ -void render_matrix_scan_rate(uint8_t padding) { +void render_matrix_scan_rate(uint8_t padding, uint8_t col, uint8_t line) { #ifdef DEBUG_MATRIX_SCAN_RATE + oled_set_cursor(col, line); oled_write_P(PSTR("MS:"), false); if (padding) { for (uint8_t n = padding; n > 0; n--) { @@ -365,10 +369,10 @@ void render_matrix_scan_rate(uint8_t padding) { * * @param modifiers Modifiers to check against (real, weak, onesheot, etc;) */ -void render_mod_status(uint8_t modifiers) { +void render_mod_status(uint8_t modifiers, uint8_t col, uint8_t line) { static const char PROGMEM mod_status[5][3] = {{0xE8, 0xE9, 0}, {0xE4, 0xE5, 0}, {0xE6, 0xE7, 0}, {0xEA, 0xEB, 0}, {0xEC, 0xED, 0}}; #if defined(OLED_DISPLAY_VERBOSE) - oled_set_cursor(1, 5); + oled_set_cursor(col, line); #endif oled_write_P(PSTR(OLED_RENDER_MODS_NAME), false); #if defined(OLED_DISPLAY_VERBOSE) @@ -393,7 +397,7 @@ void render_mod_status(uint8_t modifiers) { extern bool swap_hands; #endif -void render_bootmagic_status(void) { +void render_bootmagic_status(uint8_t col, uint8_t line) { /* Show Ctrl-Gui Swap options */ static const char PROGMEM logo[][2][3] = { {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, @@ -402,7 +406,8 @@ void render_bootmagic_status(void) { bool is_bootmagic_on; #ifdef OLED_DISPLAY_VERBOSE - oled_set_cursor(7, 3); + oled_set_cursor(col, line); + // oled_set_cursor(7, 3); is_bootmagic_on = !keymap_config.swap_lctl_lgui; #else is_bootmagic_on = keymap_config.swap_lctl_lgui; @@ -435,7 +440,7 @@ void render_bootmagic_status(void) { oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NOGUI), keymap_config.no_gui); #endif #ifdef OLED_DISPLAY_VERBOSE - oled_set_cursor(7, 4); + oled_set_cursor(col, line + 1); if (keymap_config.swap_lctl_lgui) { oled_write_P(logo[1][1], is_bootmagic_on); } else { @@ -455,7 +460,7 @@ void render_bootmagic_status(void) { extern bool tap_toggling; #endif -void render_user_status(void) { +void render_user_status(uint8_t col, uint8_t line) { #ifdef AUDIO_ENABLE bool is_audio_on = false, l_is_clicky_on = false; # ifdef SPLIT_KEYBOARD @@ -472,7 +477,7 @@ void render_user_status(void) { # endif #endif #if defined(OLED_DISPLAY_VERBOSE) - oled_set_cursor(1, 5); + oled_set_cursor(col, line); #endif oled_write_P(PSTR(OLED_RENDER_USER_NAME), false); #if !defined(OLED_DISPLAY_VERBOSE) @@ -523,9 +528,27 @@ void render_user_status(void) { #endif } -void render_wpm(uint8_t padding) { -#ifdef WPM_ENABLE +void render_rgb_hsv(uint8_t col, uint8_t line) { + oled_set_cursor(col, line); + oled_write_P(PSTR("HSV: "), false); +#ifdef RGB_MATRIX_ENABLE + oled_write(get_u8_str(rgb_matrix_get_hue(), ' '), false); + oled_write_P(PSTR(", "), false); + oled_write(get_u8_str(rgb_matrix_get_sat(), ' '), false); + oled_write_P(PSTR(", "), false); + oled_write(get_u8_str(rgb_matrix_get_val(), ' '), false); +#elif RGBLIGHT_ENABLE + oled_write(get_u8_str(rgblight_get_hue(), ' '), false); + oled_write_P(PSTR(", "), false); + oled_write(get_u8_str(rgblight_get_sat(), ' '), false); + oled_write_P(PSTR(", "), false); + oled_write(get_u8_str(rgblight_get_val(), ' '), false); +#endif +} +void render_wpm(uint8_t padding, uint8_t col, uint8_t line) { +#ifdef WPM_ENABLE + oled_set_cursor(col, line); oled_write_P(PSTR(OLED_RENDER_WPM_COUNTER), false); if (padding) { for (uint8_t n = padding; n > 0; n--) { @@ -591,7 +614,8 @@ void render_wpm_graph(uint8_t max_lines_graph, uint8_t vertical_offset) { } #if defined(POINTING_DEVICE_ENABLE) -void render_pointing_dpi_status(uint16_t cpi, uint8_t padding) { +void render_pointing_dpi_status(uint16_t cpi, uint8_t padding, uint8_t col, uint8_t line) { + oled_set_cursor(col, line); oled_write_P(PSTR("CPI:"), false); if (padding) { for (uint8_t n = padding - 1; n > 0; n--) { @@ -603,13 +627,6 @@ void render_pointing_dpi_status(uint16_t cpi, uint8_t padding) { } #endif -__attribute__((weak)) void oled_driver_render_logo_right(void) { -#if defined(OLED_DISPLAY_VERBOSE) - oled_set_cursor(0, 1); -#endif - render_default_layer_state(); -} - // WPM-responsive animation stuff here #define OLED_SLEEP_FRAMES 2 #define OLED_SLEEP_SPEED 10 // below this wpm value your animation will idle @@ -635,7 +652,7 @@ __attribute__((weak)) void oled_driver_render_logo_right(void) { static uint8_t animation_frame = 0; static uint8_t animation_type = 0; -void render_kitty(void) { +void render_kitty(uint8_t col, uint8_t line) { // Images credit j-inc(/James Incandenza) and pixelbenny. // Credit to obosob for initial animation approach. // heavily modified by drashna because he's a glutton for punishment @@ -712,11 +729,44 @@ void render_kitty(void) { // clang-format on for (uint8_t i = 0; i < 4; i++) { - oled_set_cursor(1, i + 1); + oled_set_cursor(col, line + i); oled_write_raw_P(animation[animation_type][animation_frame][i], OLED_ANIM_SIZE); } } +void render_unicode_mode(uint8_t col, uint8_t line) { +#ifdef CUSTOM_UNICODE_ENABLE + oled_set_cursor(col, line); + oled_write_ln_P(PSTR("Unicode:"), false); + switch (typing_mode) { + case UCTM_WIDE: + oled_write_P(PSTR(" Wide"), false); + break; + case UCTM_SCRIPT: + oled_write_P(PSTR(" Script"), false); + break; + case UCTM_BLOCKS: + oled_write_P(PSTR(" Blocks"), false); + break; + case UCTM_REGIONAL: + oled_write_P(PSTR(" Regional"), false); + break; + case UCTM_AUSSIE: + oled_write_P(PSTR(" Aussie"), false); + break; + case UCTM_ZALGO: + oled_write_P(PSTR(" Zalgo"), false); + break; + case UCTM_NO_MODE: + oled_write_P(PSTR(" Normal"), false); + break; + default: + oled_write_P(PSTR(" Unknown"), false); + break; + } +#endif +} + uint32_t kitty_animation_phases(uint32_t triger_time, void *cb_arg) { static uint32_t anim_frame_duration = 500; #ifdef CUSTOM_POINTING_DEVICE @@ -748,34 +798,8 @@ uint32_t kitty_animation_phases(uint32_t triger_time, void *cb_arg) { return anim_frame_duration; } -void oled_driver_render_logo_left(void) { -#if defined(OLED_DISPLAY_VERBOSE) - oled_set_cursor(0, 1); - render_kitty(); - -# if defined(KEYBOARD_handwired_tractyl_manuform) - oled_set_cursor(7, 0); - oled_write_P(PSTR("Tractyl"), true); -# elif defined(KEYBOARD_bastardkb_charybdis) - oled_set_cursor(6, 0); - oled_write_P(PSTR("Charybdis"), true); -# elif defined(KEYBOARD_splitkb_kyria) - oled_set_cursor(7, 0); - oled_write_P(PSTR("SplitKB"), true); -# else - oled_set_cursor(8, 0); - oled_write_P(PSTR("Left"), true); -# endif - oled_set_cursor(7, 1); -# if defined(WPM_ENABLE) - render_wpm(1); -# elif defined(DEBUG_MATRIX_SCAN_RATE) - render_matrix_scan_rate(2); -# endif - oled_set_cursor(7, 2); -# if (defined(KEYBOARD_bastardkb_charybdis) || defined(KEYBOARD_handwired_tractyl_manuform)) && defined(POINTING_DEVICE_ENABLE) - render_pointing_dpi_status(charybdis_get_pointer_sniping_enabled() ? charybdis_get_pointer_sniping_dpi() : charybdis_get_pointer_default_dpi(), 1); - +void render_mouse_mode(uint8_t col, uint8_t line) { +#if (defined(KEYBOARD_bastardkb_charybdis) || defined(KEYBOARD_handwired_tractyl_manuform)) && defined(POINTING_DEVICE_ENABLE) // credit and thanks to jaspertandy on discord for these images static const char PROGMEM mouse_logo[3][2][16] = {// mouse icon {{0, 0, 0, 252, 2, 2, 2, 58, 2, 2, 2, 252, 0, 0, 0, 0}, {0, 0, 63, 96, 64, 64, 64, 64, 64, 64, 64, 96, 63, 0, 0, 0}}, @@ -785,27 +809,20 @@ void oled_driver_render_logo_left(void) { {{0, 0, 112, 136, 156, 2, 15, 1, 15, 2, 140, 68, 56, 0, 0, 0}, {0, 0, 2, 6, 15, 28, 60, 124, 60, 28, 15, 6, 2, 0, 0, 0}}}; uint8_t image_index = 0; -# ifdef OLED_DISPLAY_TEST +# ifdef OLED_DISPLAY_TEST image_index = animation_frame; -# else +# else if (charybdis_get_pointer_sniping_enabled()) { image_index = 1; } else if (charybdis_get_pointer_dragscroll_enabled()) { image_index = 2; } -# endif - - oled_set_cursor(17, 1); - oled_write_raw_P(mouse_logo[image_index][0], 16); - oled_set_cursor(17, 2); - oled_write_raw_P(mouse_logo[image_index][1], 16); -# elif defined(WPM_ENABLE) && defined(DEBUG_MATRIX_SCAN_RATE) - render_matrix_scan_rate(2); # endif - oled_set_cursor(0, 5); -#else - render_default_layer_state(); + oled_set_cursor(col, line); + oled_write_raw_P(mouse_logo[image_index][0], 16); + oled_set_cursor(col, line + 1); + oled_write_raw_P(mouse_logo[image_index][1], 16); #endif } @@ -823,27 +840,73 @@ void render_status_right(void) { oled_set_cursor(8, 0); oled_write_P(PSTR("Right"), true); #endif - oled_driver_render_logo_right(); +#if defined(OLED_DISPLAY_VERBOSE) + render_default_layer_state(1, 1); +#else + render_default_layer_state(0, 0); +#endif + /* Show Keyboard Layout */ - render_layer_state(); - render_mod_status(get_mods() | get_oneshot_mods()); -#if !defined(OLED_DISPLAY_VERBOSE) && defined(WPM_ENABLE) && !defined(CONVERT_TO_PROTON_C) + render_layer_state(1, 2); + render_mod_status(get_mods() | get_oneshot_mods(), 1, 5); +#if !defined(OLED_DISPLAY_VERBOSE) && defined(WPM_ENABLE) && !defined(STM32F303xC) render_wpm(2); #endif - render_keylock_status(host_keyboard_led_state()); + render_keylock_status(host_keyboard_led_state(), 1, 6); } void render_status_left(void) { - oled_driver_render_logo_left(); +#if defined(OLED_DISPLAY_VERBOSE) + render_kitty(0, 1); +# if defined(KEYBOARD_handwired_tractyl_manuform) + oled_set_cursor(7, 0); + oled_write_P(PSTR("Tractyl"), true); +# elif defined(KEYBOARD_bastardkb_charybdis) + oled_set_cursor(6, 0); + oled_write_P(PSTR("Charybdis"), true); +# elif defined(KEYBOARD_splitkb_kyria) + oled_set_cursor(7, 0); + oled_write_P(PSTR("SplitKB"), true); +# elif defined(KEYBOARD_handwired_fingerpunch_rockon) + oled_set_cursor(7, 0); + oled_write_P(PSTR("Rock On"), true); +# else + oled_set_cursor(8, 0); + oled_write_P(PSTR("Left"), true); +# endif + +# if defined(WPM_ENABLE) + render_wpm(1, 7, 1); +# elif defined(DEBUG_MATRIX_SCAN_RATE) + render_matrix_scan_rate(1, 7, 1); +# endif +# if (defined(KEYBOARD_bastardkb_charybdis) || defined(KEYBOARD_handwired_tractyl_manuform)) && defined(POINTING_DEVICE_ENABLE) + render_pointing_dpi_status(charybdis_get_pointer_sniping_enabled() ? charybdis_get_pointer_sniping_dpi() : charybdis_get_pointer_default_dpi(), 1, 7, 2); + render_mouse_mode(17, 1); +# elif defined(WPM_ENABLE) && defined(DEBUG_MATRIX_SCAN_RATE) + render_matrix_scan_rate(1, 7, 2); +# endif /* Show Keyboard Layout */ - render_bootmagic_status(); - render_user_status(); + render_bootmagic_status(7, 3); + render_user_status(1, 5); - render_keylogger_status(); + render_keylogger_status(1, 6); +#else + render_default_layer_state(0, 0); + /* Show Keyboard Layout */ + render_bootmagic_status(7, 3); + render_user_status(1, 5); + + render_keylogger_status(1, 6); +#endif } -__attribute__((weak)) void oled_render_large_display(bool side) {} +__attribute__((weak)) void oled_render_large_display(bool side) { + if (!side) { + render_unicode_mode(1, 14); + } +} __attribute__((weak)) oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return rotation; @@ -895,14 +958,12 @@ bool oled_task_user(void) { #endif render_status_left(); #if defined(OLED_DISPLAY_128X128) - oled_set_cursor(0, 7); oled_render_large_display(true); #endif #ifndef OLED_DISPLAY_TEST } else { render_status_right(); # if defined(OLED_DISPLAY_128X128) - oled_set_cursor(0, 7); oled_render_large_display(false); # endif } diff --git a/users/drashna/oled/oled_stuff.h b/users/drashna/oled/oled_stuff.h index 4dea4b7be4..17bd9319d1 100644 --- a/users/drashna/oled/oled_stuff.h +++ b/users/drashna/oled/oled_stuff.h @@ -18,132 +18,135 @@ #include "quantum.h" #include "oled_driver.h" +#ifdef DEFFERED_EXEC_ENABLE extern deferred_token kittoken; +#endif void oled_driver_render_logo(void); bool process_record_user_oled(uint16_t keycode, keyrecord_t *record); oled_rotation_t oled_init_keymap(oled_rotation_t rotation); void oled_timer_reset(void); -void render_keylogger_status(void); -void render_default_layer_state(void); -void render_layer_state(void); -void render_keylock_status(led_t led_usb_state); -void render_matrix_scan_rate(uint8_t padding); -void render_mod_status(uint8_t modifiers); -void render_bootmagic_status(void); -void render_user_status(void); +void render_keylogger_status(uint8_t col, uint8_t line); +void render_default_layer_state(uint8_t col, uint8_t line); +void render_layer_state(uint8_t col, uint8_t line); +void render_keylock_status(led_t led_usb_state, uint8_t col, uint8_t line); +void render_matrix_scan_rate(uint8_t padding, uint8_t col, uint8_t line); +void render_mod_status(uint8_t modifiers, uint8_t col, uint8_t line); +void render_bootmagic_status(uint8_t col, uint8_t line); +void render_user_status(uint8_t col, uint8_t line); void oled_driver_render_logo(void); -void render_wpm(uint8_t padding); -void render_pointing_dpi_status(uint16_t cpi, uint8_t padding); +void render_wpm(uint8_t padding, uint8_t col, uint8_t line); +void render_pointing_dpi_status(uint16_t cpi, uint8_t padding, uint8_t col, uint8_t line); void oled_driver_render_logo_left(void); void oled_driver_render_logo_right(void); void oled_render_large_display(bool side); -void render_wpm_graph(uint8_t max_lines_graph, uint8_t vertical_offset); +void render_wpm_graph(uint8_t max_lines_graph, uint8_t vertical_offset); +void render_kitty(uint8_t col, uint8_t line); +void render_unicode_mode(uint8_t col, uint8_t line); +void render_rgb_hsv(uint8_t col, uint8_t line); void oled_pan_section(bool left, uint16_t y_start, uint16_t y_end, uint16_t x_start, uint16_t x_end); - #if defined(OLED_DISPLAY_128X128) || defined(OLED_DISPLAY_128X64) # define OLED_DISPLAY_VERBOSE -# define OLED_RENDER_KEYLOGGER "Keylogger: " +# define OLED_RENDER_KEYLOGGER "Keylogger: " # ifndef OLED_KEYLOGGER_LENGTH -# define OLED_KEYLOGGER_LENGTH 9 +# define OLED_KEYLOGGER_LENGTH 9 # endif -# define OLED_RENDER_LAYOUT_NAME "Layout: " -# define OLED_RENDER_LAYOUT_QWERTY "Qwerty" +# define OLED_RENDER_LAYOUT_NAME "Layout: " +# define OLED_RENDER_LAYOUT_QWERTY "Qwerty" # define OLED_RENDER_LAYOUT_COLEMAK_DH "Colemak DH" -# define OLED_RENDER_LAYOUT_COLEMAK "Colemak" -# define OLED_RENDER_LAYOUT_DVORAK "Dvorak" -# define OLED_RENDER_LAYOUT_WORKMAN "Workman" -# define OLED_RENDER_LAYOUT_NORMAN "Norman" -# define OLED_RENDER_LAYOUT_MALTRON "Matron" -# define OLED_RENDER_LAYOUT_EUCALYN "Eucalyn" -# define OLED_RENDER_LAYOUT_CARPLAX "Carplax" +# define OLED_RENDER_LAYOUT_COLEMAK "Colemak" +# define OLED_RENDER_LAYOUT_DVORAK "Dvorak" +# define OLED_RENDER_LAYOUT_WORKMAN "Workman" +# define OLED_RENDER_LAYOUT_NORMAN "Norman" +# define OLED_RENDER_LAYOUT_MALTRON "Matron" +# define OLED_RENDER_LAYOUT_EUCALYN "Eucalyn" +# define OLED_RENDER_LAYOUT_CARPLAX "Carplax" -# define OLED_RENDER_LAYER_NAME "Layer:" -# define OLED_RENDER_LAYER_LOWER "Lower" -# define OLED_RENDER_LAYER_RAISE "Raise" -# define OLED_RENDER_LAYER_ADJUST "Adjust" -# define OLED_RENDER_LAYER_MODS "Mods" +# define OLED_RENDER_LAYER_NAME "Layer:" +# define OLED_RENDER_LAYER_LOWER "Lower" +# define OLED_RENDER_LAYER_RAISE "Raise" +# define OLED_RENDER_LAYER_ADJUST "Adjust" +# define OLED_RENDER_LAYER_MODS "Mods" -# define OLED_RENDER_LOCK_NAME "Lock: " -# define OLED_RENDER_LOCK_NUML "NUM" -# define OLED_RENDER_LOCK_CAPS "CAPS" -# define OLED_RENDER_LOCK_SCLK "SCLK" +# define OLED_RENDER_LOCK_NAME "Lock: " +# define OLED_RENDER_LOCK_NUML "NUM" +# define OLED_RENDER_LOCK_CAPS "CAPS" +# define OLED_RENDER_LOCK_SCLK "SCLK" -# define OLED_RENDER_MODS_NAME "Mods" -# define OLED_RENDER_MODS_SFT "Sft" -# define OLED_RENDER_MODS_CTL "Ctl" -# define OLED_RENDER_MODS_ALT "Alt" -# define OLED_RENDER_MODS_GUI "GUI" +# define OLED_RENDER_MODS_NAME "Mods" +# define OLED_RENDER_MODS_SFT "Sft" +# define OLED_RENDER_MODS_CTL "Ctl" +# define OLED_RENDER_MODS_ALT "Alt" +# define OLED_RENDER_MODS_GUI "GUI" -# define OLED_RENDER_BOOTMAGIC_NAME "Boot " -# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO" -# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI" -# define OLED_RENDER_BOOTMAGIC_GRV "GRV" +# define OLED_RENDER_BOOTMAGIC_NAME "Boot " +# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO" +# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI" +# define OLED_RENDER_BOOTMAGIC_GRV "GRV" # define OLED_RENDER_BOOTMAGIC_ONESHOT "1SHT" -# define OLED_RENDER_BOOTMAGIC_SWAP "SWAP" -# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS" +# define OLED_RENDER_BOOTMAGIC_SWAP "SWAP" +# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS" -# define OLED_RENDER_USER_NAME "USER:" -# define OLED_RENDER_USER_ANIM "Anim" -# define OLED_RENDER_USER_LAYR "Layr" -# define OLED_RENDER_USER_NUKE "Nuke" +# define OLED_RENDER_USER_NAME "USER:" +# define OLED_RENDER_USER_ANIM "Anim" +# define OLED_RENDER_USER_LAYR "Layr" +# define OLED_RENDER_USER_NUKE "Nuke" -# define OLED_RENDER_WPM_COUNTER "WPM: " +# define OLED_RENDER_WPM_COUNTER "WPM: " #else -# define OLED_RENDER_KEYLOGGER "KLogr" +# define OLED_RENDER_KEYLOGGER "KLogr" # ifndef OLED_KEYLOGGER_LENGTH -# define OLED_KEYLOGGER_LENGTH 5 +# define OLED_KEYLOGGER_LENGTH 5 # endif -# define OLED_RENDER_LAYOUT_NAME "Lyout" -# define OLED_RENDER_LAYOUT_QWERTY " QRTY" +# define OLED_RENDER_LAYOUT_NAME "Lyout" +# define OLED_RENDER_LAYOUT_QWERTY " QRTY" # define OLED_RENDER_LAYOUT_COLEMAK_DH " cmDH" -# define OLED_RENDER_LAYOUT_COLEMAK " COLE" -# define OLED_RENDER_LAYOUT_DVORAK " DVRK" -# define OLED_RENDER_LAYOUT_WORKMAN " WKMN" -# define OLED_RENDER_LAYOUT_NORMAN " NORM" -# define OLED_RENDER_LAYOUT_MALTRON " MLTN" -# define OLED_RENDER_LAYOUT_EUCALYN " ECLN" -# define OLED_RENDER_LAYOUT_CARPLAX " CRPX" +# define OLED_RENDER_LAYOUT_COLEMAK " COLE" +# define OLED_RENDER_LAYOUT_DVORAK " DVRK" +# define OLED_RENDER_LAYOUT_WORKMAN " WKMN" +# define OLED_RENDER_LAYOUT_NORMAN " NORM" +# define OLED_RENDER_LAYOUT_MALTRON " MLTN" +# define OLED_RENDER_LAYOUT_EUCALYN " ECLN" +# define OLED_RENDER_LAYOUT_CARPLAX " CRPX" -# define OLED_RENDER_LAYER_NAME "LAYER" -# define OLED_RENDER_LAYER_LOWER "Lower" -# define OLED_RENDER_LAYER_RAISE "Raise" -# define OLED_RENDER_LAYER_ADJUST "Adjst" -# define OLED_RENDER_LAYER_MODS " Mods" +# define OLED_RENDER_LAYER_NAME "LAYER" +# define OLED_RENDER_LAYER_LOWER "Lower" +# define OLED_RENDER_LAYER_RAISE "Raise" +# define OLED_RENDER_LAYER_ADJUST "Adjst" +# define OLED_RENDER_LAYER_MODS " Mods" -# define OLED_RENDER_LOCK_NAME "Lock:" -# define OLED_RENDER_LOCK_NUML "NumL" -# define OLED_RENDER_LOCK_CAPS "CapL" -# define OLED_RENDER_LOCK_SCLK "ScrL" +# define OLED_RENDER_LOCK_NAME "Lock:" +# define OLED_RENDER_LOCK_NUML "NumL" +# define OLED_RENDER_LOCK_CAPS "CapL" +# define OLED_RENDER_LOCK_SCLK "ScrL" -# define OLED_RENDER_MODS_NAME "Mods: " -# define OLED_RENDER_MODS_SFT "Shft" -# define OLED_RENDER_MODS_CTL "Ctrl" -# define OLED_RENDER_MODS_ALT "Alt\n" -# define OLED_RENDER_MODS_GUI "GUI\n" +# define OLED_RENDER_MODS_NAME "Mods: " +# define OLED_RENDER_MODS_SFT "Shft" +# define OLED_RENDER_MODS_CTL "Ctrl" +# define OLED_RENDER_MODS_ALT "Alt\n" +# define OLED_RENDER_MODS_GUI "GUI\n" -# define OLED_RENDER_BOOTMAGIC_NAME "BTMGK" -# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO" -# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI" -# define OLED_RENDER_BOOTMAGIC_GRV "GRV" +# define OLED_RENDER_BOOTMAGIC_NAME "BTMGK" +# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO" +# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI" +# define OLED_RENDER_BOOTMAGIC_GRV "GRV" # define OLED_RENDER_BOOTMAGIC_ONESHOT "1SHT" -# define OLED_RENDER_BOOTMAGIC_SWAP "SWAP" -# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS" +# define OLED_RENDER_BOOTMAGIC_SWAP "SWAP" +# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS" -# define OLED_RENDER_USER_NAME "USER:" -# define OLED_RENDER_USER_ANIM "Anim" -# define OLED_RENDER_USER_LAYR "Layr" -# define OLED_RENDER_USER_NUKE "Nuke" +# define OLED_RENDER_USER_NAME "USER:" +# define OLED_RENDER_USER_ANIM "Anim" +# define OLED_RENDER_USER_LAYR "Layr" +# define OLED_RENDER_USER_NUKE "Nuke" -# define OLED_RENDER_WPM_COUNTER "WPM: " +# define OLED_RENDER_WPM_COUNTER "WPM: " #endif - -extern char keylog_str[OLED_KEYLOGGER_LENGTH]; +extern char keylog_str[OLED_KEYLOGGER_LENGTH]; #ifndef OLED_WPM_GRAPH_MAX_WPM # define OLED_WPM_GRAPH_MAX_WPM 120 diff --git a/users/drashna/oled/sh110x.c b/users/drashna/oled/sh110x.c index aa081ca732..9fed5a9d1a 100644 --- a/users/drashna/oled/sh110x.c +++ b/users/drashna/oled/sh110x.c @@ -52,7 +52,7 @@ along with this program. If not, see . #define PAGE_ADDR 0x22 #define PAM_SETCOLUMN_LSB 0x00 #define PAM_SETCOLUMN_MSB 0x10 -#define PAM_PAGE_ADDR 0xB0 // 0xb0 -- 0xb7 +#define PAM_PAGE_ADDR 0xB0 // 0xb0 -- 0xb7 // Hardware Configuration Commands #define DISPLAY_START_LINE 0x40 @@ -109,9 +109,9 @@ along with this program. If not, see . #define I2C_DATA 0x40 #if defined(__AVR__) # define I2C_TRANSMIT_P(data) i2c_transmit_P((OLED_DISPLAY_ADDRESS << 1), &data[0], sizeof(data), OLED_I2C_TIMEOUT) -#else // defined(__AVR__) +#else // defined(__AVR__) # define I2C_TRANSMIT_P(data) i2c_transmit((OLED_DISPLAY_ADDRESS << 1), &data[0], sizeof(data), OLED_I2C_TIMEOUT) -#endif // defined(__AVR__) +#endif // defined(__AVR__) #define I2C_TRANSMIT(data) i2c_transmit((OLED_DISPLAY_ADDRESS << 1), &data[0], sizeof(data), OLED_I2C_TIMEOUT) #define I2C_WRITE_REG(mode, data, size) i2c_writeReg((OLED_DISPLAY_ADDRESS << 1), mode, data, size, OLED_I2C_TIMEOUT) @@ -122,7 +122,7 @@ along with this program. If not, see . // parts of the display unusable or don't get cleared correctly // and also allows for drawing & inverting uint8_t oled_buffer[OLED_MATRIX_SIZE]; -uint8_t * oled_cursor; +uint8_t *oled_cursor; OLED_BLOCK_TYPE oled_dirty = 0; bool oled_initialized = false; bool oled_active = false; @@ -131,7 +131,7 @@ bool oled_inverted = false; uint8_t oled_brightness = OLED_BRIGHTNESS; oled_rotation_t oled_rotation = 0; uint8_t oled_rotation_width = 0; -uint8_t oled_scroll_speed = 0; // this holds the speed after being remapped to ssd1306 internal values +uint8_t oled_scroll_speed = 0; // this holds the speed after being remapped to ssd1306 internal values uint8_t oled_scroll_start = 0; uint8_t oled_scroll_end = 7; #if OLED_TIMEOUT > 0 @@ -261,8 +261,12 @@ bool oled_init(oled_rotation_t rotation) { return true; } -__attribute__((weak)) oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return rotation; } -__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { return rotation; } +__attribute__((weak)) oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return rotation; +} +__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return rotation; +} void oled_clear(void) { memset(oled_buffer, 0, sizeof(oled_buffer)); @@ -299,9 +303,9 @@ static void calc_bounds_90(uint8_t update_start, uint8_t *cmd_array) { // Only the Page Addressing Mode is supported uint8_t start_page = bottom_block_top_page - (OLED_BLOCK_SIZE * update_start % OLED_DISPLAY_HEIGHT / 8); uint8_t start_column = OLED_BLOCK_SIZE * update_start / OLED_DISPLAY_HEIGHT * 8; - cmd_array[0] = PAM_PAGE_ADDR | start_page; - cmd_array[1] = PAM_SETCOLUMN_LSB | ((OLED_COLUMN_OFFSET + start_column) & 0x0f); - cmd_array[2] = PAM_SETCOLUMN_MSB | ((OLED_COLUMN_OFFSET + start_column) >> 4 & 0x0f); + cmd_array[0] = PAM_PAGE_ADDR | start_page; + cmd_array[1] = PAM_SETCOLUMN_LSB | ((OLED_COLUMN_OFFSET + start_column) & 0x0f); + cmd_array[2] = PAM_SETCOLUMN_MSB | ((OLED_COLUMN_OFFSET + start_column) >> 4 & 0x0f); } uint8_t crot(uint8_t a, int8_t n) { @@ -339,9 +343,9 @@ void oled_render(void) { // Set column & page position static uint8_t display_start[] = {I2C_CMD, PAM_PAGE_ADDR, PAM_SETCOLUMN_LSB, PAM_SETCOLUMN_MSB}; if (!HAS_FLAGS(oled_rotation, OLED_ROTATION_90)) { - calc_bounds(update_start, &display_start[1]); // Offset from I2C_CMD byte at the start + calc_bounds(update_start, &display_start[1]); // Offset from I2C_CMD byte at the start } else { - calc_bounds_90(update_start, &display_start[1]); // Offset from I2C_CMD byte at the start + calc_bounds_90(update_start, &display_start[1]); // Offset from I2C_CMD byte at the start } // Send column & page position @@ -369,7 +373,7 @@ void oled_render(void) { // For SH1106 or SH1107 the data chunk must be split into separate pieces for each page const uint8_t columns_in_block = (OLED_BLOCK_SIZE + OLED_DISPLAY_HEIGHT - 1) / OLED_DISPLAY_HEIGHT * 8; - const uint8_t num_pages = OLED_BLOCK_SIZE / columns_in_block; + const uint8_t num_pages = OLED_BLOCK_SIZE / columns_in_block; for (uint8_t i = 0; i < num_pages; ++i) { // Send column & page position for all pages except the first one if (i > 0) { @@ -414,7 +418,8 @@ void oled_advance_page(bool clearPageRemainder) { remaining = remaining / OLED_FONT_WIDTH; // Write empty character until next line - while (remaining--) oled_write_char(' ', false); + while (remaining--) + oled_write_char(' ', false); } else { // Next page index out of bounds? if (index + remaining >= OLED_MATRIX_SIZE) { @@ -465,7 +470,7 @@ void oled_write_char(const char data, bool invert) { _Static_assert(sizeof(font) >= ((OLED_FONT_END + 1 - OLED_FONT_START) * OLED_FONT_WIDTH), "OLED_FONT_END references outside array"); // set the reder buffer data - uint8_t cast_data = (uint8_t)data; // font based on unsigned type for index + uint8_t cast_data = (uint8_t)data; // font based on unsigned type for index if (cast_data < OLED_FONT_START || cast_data > OLED_FONT_END) { memset(oled_cursor, 0x00, OLED_FONT_WIDTH); } else { @@ -610,7 +615,7 @@ void oled_write_raw_P(const char *data, uint16_t size) { oled_dirty |= ((OLED_BLOCK_TYPE)1 << (i / OLED_BLOCK_SIZE)); } } -#endif // defined(__AVR__) +#endif // defined(__AVR__) bool oled_on(void) { if (!oled_initialized) { @@ -660,7 +665,9 @@ bool oled_off(void) { return !oled_active; } -bool is_oled_on(void) { return oled_active; } +bool is_oled_on(void) { + return oled_active; +} uint8_t oled_set_brightness(uint8_t level) { if (!oled_initialized) { @@ -678,7 +685,9 @@ uint8_t oled_set_brightness(uint8_t level) { return oled_brightness; } -uint8_t oled_get_brightness(void) { return oled_brightness; } +uint8_t oled_get_brightness(void) { + return oled_brightness; +} // Set the specific 8 lines rows of the screen to scroll. // 0 is the default for start, and 7 for end, which is the entire @@ -758,7 +767,9 @@ bool oled_scroll_off(void) { return !oled_scrolling; } -bool is_oled_scrolling(void) { return oled_scrolling; } +bool is_oled_scrolling(void) { + return oled_scrolling; +} bool oled_invert(bool invert) { if (!oled_initialized) { @@ -842,6 +853,9 @@ void oled_task(void) { #endif } - -__attribute__((weak)) bool oled_task_kb(void) { return oled_task_user(); } -__attribute__((weak)) bool oled_task_user(void) { return true; } +__attribute__((weak)) bool oled_task_kb(void) { + return oled_task_user(); +} +__attribute__((weak)) bool oled_task_user(void) { + return true; +} diff --git a/users/drashna/rgb/rgb_matrix_stuff.c b/users/drashna/rgb/rgb_matrix_stuff.c index 36a7502733..2c23c29784 100644 --- a/users/drashna/rgb/rgb_matrix_stuff.c +++ b/users/drashna/rgb/rgb_matrix_stuff.c @@ -15,7 +15,7 @@ void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode } switch (mode) { - case 1: // breathing + case 1: // breathing { uint16_t time = scale16by8(g_rgb_timer, speed / 8); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); @@ -27,7 +27,7 @@ void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode } break; } - default: // Solid Color + default: // Solid Color { RGB rgb = hsv_to_rgb(hsv); for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { @@ -59,6 +59,8 @@ void keyboard_post_init_rgb_matrix(void) { #endif if (userspace_config.rgb_layer_change) { rgb_matrix_set_flags(LED_FLAG_UNDERGLOW | LED_FLAG_KEYLIGHT | LED_FLAG_INDICATOR); + } else { + rgb_matrix_set_flags(LED_FLAG_ALL); } } @@ -70,7 +72,7 @@ bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) { } #endif switch (keycode) { - case RGB_IDL: // This allows me to use underglow as layer indication, or as normal + case RGB_IDL: // This allows me to use underglow as layer indication, or as normal #if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) if (record->event.pressed) { userspace_config.rgb_matrix_idle_anim ^= 1; @@ -86,9 +88,13 @@ bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) { return true; } -__attribute__((weak)) bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { return true; } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - if (!rgb_matrix_indicators_advanced_keymap(led_min, led_max)) { return; } +__attribute__((weak)) bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { + return true; +} +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_keymap(led_min, led_max)) { + return; + } #if defined(RGBLIGHT_ENABLE) if (!userspace_config.rgb_layer_change) @@ -96,19 +102,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, if (userspace_config.rgb_layer_change) #endif { - switch (get_highest_layer(layer_state | default_layer_state)) { - case _DEFAULT_LAYER_1: - rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); - break; - case _DEFAULT_LAYER_2: - rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); - break; - case _DEFAULT_LAYER_3: - rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); - break; - case _DEFAULT_LAYER_4: - rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); - break; + switch (get_highest_layer(layer_state & ~((layer_state_t)1 << _MOUSE))) { case _GAMEPAD: rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); break; @@ -124,9 +118,33 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, case _ADJUST: rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); break; + default: + if (layer_state_is(_MOUSE)) { + rgb_matrix_layer_helper(HSV_PURPLE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + } else { + switch (get_highest_layer(default_layer_state)) { + case _DEFAULT_LAYER_1: + rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_2: + rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_3: + rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + case _DEFAULT_LAYER_4: + rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); + break; + } + } + break; } } } -__attribute__((weak)) bool rgb_matrix_indicators_keymap(void) { return true; } -void rgb_matrix_indicators_user(void) { rgb_matrix_indicators_keymap(); } +__attribute__((weak)) bool rgb_matrix_indicators_keymap(void) { + return true; +} +void rgb_matrix_indicators_user(void) { + rgb_matrix_indicators_keymap(); +} diff --git a/users/drashna/rgb/rgb_stuff.c b/users/drashna/rgb/rgb_stuff.c index 7d2cf0c73d..c283e58d26 100644 --- a/users/drashna/rgb/rgb_stuff.c +++ b/users/drashna/rgb/rgb_stuff.c @@ -1,28 +1,30 @@ // Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) // SPDX-License-Identifier: GPL-2.0-or-later -#ifdef RGBLIGHT_ENABLE - -# include "drashna.h" -# include "rgb_stuff.h" -# include "eeprom.h" +#include "drashna.h" +#include "rgb_stuff.h" +#include "eeprom.h" bool has_initialized; -void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val(), index); } +void rgblight_sethsv_default_helper(uint8_t index) { + rgblight_sethsv_at(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val(), index); +} void rgblight_set_hsv_and_mode(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode) { rgblight_sethsv_noeeprom(hue, sat, val); // wait_us(175); // Add a slight delay between color and mode to ensure it's processed correctly rgblight_mode_noeeprom(mode); } -bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) { return true; } +bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) { + return true; +} -# if defined(RGBLIGHT_STARTUP_ANIMATION) -static bool is_enabled; -static bool is_rgblight_startup; -static HSV old_hsv; -static uint8_t old_mode; +#if defined(RGBLIGHT_STARTUP_ANIMATION) +static bool is_enabled; +static bool is_rgblight_startup; +static HSV old_hsv; +static uint8_t old_mode; deferred_token rgb_startup_token; uint32_t rgb_startup_animation(uint32_t triger_time, void *cb_arg) { @@ -44,10 +46,10 @@ uint32_t rgb_startup_animation(uint32_t triger_time, void *cb_arg) { } return is_rgblight_startup ? 10 : 0; } -# endif +#endif void keyboard_post_init_rgb_light(void) { -# if defined(RGBLIGHT_STARTUP_ANIMATION) +#if defined(RGBLIGHT_STARTUP_ANIMATION) is_enabled = rgblight_is_enabled(); if (userspace_config.rgb_layer_change) { layer_state_set_rgb_light(layer_state); @@ -56,27 +58,17 @@ void keyboard_post_init_rgb_light(void) { old_mode = rgblight_get_mode(); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); is_rgblight_startup = true; - rgb_startup_token = defer_exec(300, rgb_startup_animation, NULL); -# endif + rgb_startup_token = defer_exec(300, rgb_startup_animation, NULL); +#endif if (userspace_config.rgb_layer_change) { layer_state_set_rgb_light(layer_state); } - } layer_state_t layer_state_set_rgb_light(layer_state_t state) { -# ifdef RGBLIGHT_ENABLE +#ifdef RGBLIGHT_ENABLE if (userspace_config.rgb_layer_change) { - switch (get_highest_layer(state | default_layer_state)) { - case _MOUSE: // mouse - if (!layer_state_cmp(state, _GAMEPAD) && !layer_state_cmp(state, _DIABLO)) { -# if defined(RGBLIGHT_EFFECT_TWINKLE) - rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_TWINKLE + 5); -# else - rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3); -# endif - } - break; + switch (get_highest_layer(state & ~((layer_state_t)1 << _MOUSE))) { case _MEDIA: rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1); break; @@ -84,6 +76,7 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) { rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2); break; case _DIABLO: + case _DIABLOII: rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3); break; case _RAISE: @@ -95,23 +88,36 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) { case _ADJUST: rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2); break; - case _DEFAULT_LAYER_1: - rgblight_set_hsv_and_mode(DEFAULT_LAYER_1_HSV, RGBLIGHT_MODE_STATIC_LIGHT); - break; - case _DEFAULT_LAYER_2: - rgblight_set_hsv_and_mode(DEFAULT_LAYER_2_HSV, RGBLIGHT_MODE_STATIC_LIGHT); - break; - case _DEFAULT_LAYER_3: - rgblight_set_hsv_and_mode(DEFAULT_LAYER_3_HSV, RGBLIGHT_MODE_STATIC_LIGHT); - break; - case _DEFAULT_LAYER_4: - rgblight_set_hsv_and_mode(DEFAULT_LAYER_4_HSV, RGBLIGHT_MODE_STATIC_LIGHT); - break; + default: + if (layer_state_cmp(state, _MOUSE)) { +# if defined(RGBLIGHT_EFFECT_TWINKLE) + rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_TWINKLE + 5); +# else + rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3); +# endif + } else { + default_layer_state_set_rgb_light(default_layer_state); + } } +#endif // RGBLIGHT_ENABLE } -# endif // RGBLIGHT_ENABLE - return state; } -#endif +layer_state_t default_layer_state_set_rgb_light(layer_state_t state) { + switch (get_highest_layer(state)) { + case _DEFAULT_LAYER_1: + rgblight_set_hsv_and_mode(DEFAULT_LAYER_1_HSV, RGBLIGHT_MODE_STATIC_LIGHT); + break; + case _DEFAULT_LAYER_2: + rgblight_set_hsv_and_mode(DEFAULT_LAYER_2_HSV, RGBLIGHT_MODE_STATIC_LIGHT); + break; + case _DEFAULT_LAYER_3: + rgblight_set_hsv_and_mode(DEFAULT_LAYER_3_HSV, RGBLIGHT_MODE_STATIC_LIGHT); + break; + case _DEFAULT_LAYER_4: + rgblight_set_hsv_and_mode(DEFAULT_LAYER_4_HSV, RGBLIGHT_MODE_STATIC_LIGHT); + break; + } + return state; +} diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index b96e8a532b..38d34fb275 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -3,6 +3,8 @@ SRC += $(USER_PATH)/drashna.c \ $(USER_PATH)/keyrecords/process_records.c \ $(USER_PATH)/keyrecords/tapping.c +# TOP_SYMBOLS = yes + ifneq ($(PLATFORM),CHIBIOS) ifneq ($(strip $(LTO_SUPPORTED)), no) LTO_ENABLE = yes @@ -15,6 +17,7 @@ GRAVE_ESC_ENABLE = no ifneq ($(strip $(NO_SECRETS)), yes) ifneq ("$(wildcard $(USER_PATH)/../../../qmk_secrets/secrets.c)","") SRC += $(USER_PATH)/../../../qmk_secrets/secrets.c + $(shell touch $(USER_PATH)/../../../qmk_secrets/secrets.c) SECURE_ENABLE = yes endif ifeq ($(strip $(NO_SECRETS)), lite) @@ -103,7 +106,6 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) ifeq ($(strip $(CUSTOM_POINTING_DEVICE)), yes) SRC += $(USER_PATH)/pointing/pointing.c OPT_DEFS += -DCUSTOM_POINTING_DEVICE - OPT_DEFS += -DMOUSE_EXT_REPORT endif endif @@ -119,5 +121,6 @@ endif AUTOCORRECTION_ENABLE ?= no ifeq ($(strip $(AUTOCORRECTION_ENABLE)), yes) SRC += $(USER_PATH)/keyrecords/autocorrection/autocorrection.c + $(shell touch $(USER_PATH)/keyrecords/autocorrection/autocorrection.c) OPT_DEFS += -DAUTOCORRECTION_ENABLE endif diff --git a/users/drashna/split/transport_sync.c b/users/drashna/split/transport_sync.c index 38df8fda3f..2050d687ae 100644 --- a/users/drashna/split/transport_sync.c +++ b/users/drashna/split/transport_sync.c @@ -55,7 +55,9 @@ void user_config_sync(uint8_t initiator2target_buffer_size, const void* initiato } #if defined(SPLIT_WATCHDOG_TIMEOUT) -void watchdog_handler(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) { watchdog_ping_done = true; } +void watchdog_handler(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) { + watchdog_ping_done = true; +} #endif #ifdef CUSTOM_OLED_DRIVER @@ -97,7 +99,7 @@ void user_transport_update(void) { user_state.tap_toggling = tap_toggling; #endif #ifdef UNICODE_COMMON_ENABLE - user_state.unicode_mode = unicode_config.input_mode; + user_state.unicode_mode = unicode_config.input_mode; user_state.unicode_typing_mode = typing_mode; #endif #ifdef SWAP_HANDS_ENABLE @@ -112,7 +114,7 @@ void user_transport_update(void) { user_state.raw = transport_user_state; #ifdef UNICODE_COMMON_ENABLE unicode_config.input_mode = user_state.unicode_mode; - typing_mode = user_state.unicode_typing_mode; + typing_mode = user_state.unicode_typing_mode; #endif #if defined(CUSTOM_POINTING_DEVICE) tap_toggling = user_state.tap_toggling; @@ -216,7 +218,7 @@ void user_transport_sync(void) { if (timer_elapsed32(watchdog_timer) > 100) { uint8_t any_data = 1; if (transaction_rpc_send(RPC_ID_USER_WATCHDOG_SYNC, sizeof(any_data), &any_data)) { - watchdog_ping_done = true; // successful ping + watchdog_ping_done = true; // successful ping } else { dprint("Watchdog ping failed!\n"); } @@ -233,7 +235,7 @@ void user_transport_sync(void) { #endif } -void housekeeping_task_user(void) { +void housekeeping_task_transport_sync(void) { // Update kb_state so we can send to slave user_transport_update(); diff --git a/users/drashna/split/transport_sync.h b/users/drashna/split/transport_sync.h index 77e5140eda..ceb8f81875 100644 --- a/users/drashna/split/transport_sync.h +++ b/users/drashna/split/transport_sync.h @@ -12,16 +12,17 @@ extern char keylog_str[OLED_KEYLOGGER_LENGTH]; typedef union { uint32_t raw; struct { - bool audio_enable :1; - bool audio_clicky_enable :1; - bool tap_toggling :1; - uint8_t unicode_mode :3; - bool swap_hands :1; - bool host_driver_disabled :1; - uint8_t unicode_typing_mode :3; + bool audio_enable :1; + bool audio_clicky_enable :1; + bool tap_toggling :1; + uint8_t unicode_mode :3; + bool swap_hands :1; + bool host_driver_disabled :1; + uint8_t unicode_typing_mode :3; }; } user_runtime_config_t; extern user_runtime_config_t user_state; void keyboard_post_init_transport_sync(void); +void housekeeping_task_transport_sync(void); diff --git a/users/edvorakjp/edvorakjp.c b/users/edvorakjp/edvorakjp.c index c95b03d981..c44d8bb440 100644 --- a/users/edvorakjp/edvorakjp.c +++ b/users/edvorakjp/edvorakjp.c @@ -12,7 +12,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { return layer_state_set_keymap(state); } -__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; } +__attribute__((weak)) uint32_t layer_state_set_keymap(uint32_t state) { return state; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user_result = process_record_keymap(keycode, record) && process_record_edvorakjp_swap_scln(keycode, record) && process_record_edvorakjp_config(keycode, record) && process_record_layer(keycode, record) && process_record_ime(keycode, record); diff --git a/users/edvorakjp/edvorakjp.h b/users/edvorakjp/edvorakjp.h index a878f71ca8..93cd9851b7 100644 --- a/users/edvorakjp/edvorakjp.h +++ b/users/edvorakjp/edvorakjp.h @@ -68,7 +68,7 @@ enum tap_dance_code { void matrix_init_user(void); void matrix_init_keymap(void); layer_state_t layer_state_set_user(layer_state_t state); -layer_state_t layer_state_set_keymap(layer_state_t state); +uint32_t layer_state_set_keymap(uint32_t state); bool process_record_user(uint16_t keycode, keyrecord_t *record); bool process_record_keymap(uint16_t keycode, keyrecord_t *record); diff --git a/users/edvorakjp/edvorakjp_tap_dance.c b/users/edvorakjp/edvorakjp_tap_dance.c index 69fcbac1ca..cee10de693 100644 --- a/users/edvorakjp/edvorakjp_tap_dance.c +++ b/users/edvorakjp/edvorakjp_tap_dance.c @@ -64,15 +64,6 @@ void td_raise_reset(qk_tap_dance_state_t *state, void *user_data) { } qk_tap_dance_action_t tap_dance_actions[] = { - [TD_EDVORAKJP_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lower_finished, td_lower_reset), - [TD_EDVORAKJP_RAISE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_raise_finished, td_raise_reset), + [TD_EDVORAKJP_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_lower_finished, td_lower_reset, 150), + [TD_EDVORAKJP_RAISE] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_raise_finished, td_raise_reset, 150), }; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: - return 150; - default: - return TAPPING_TERM; - } -} diff --git a/users/ericgebhart/ericgebhart.c b/users/ericgebhart/ericgebhart.c index a071fb8c2e..2a34110ae2 100755 --- a/users/ericgebhart/ericgebhart.c +++ b/users/ericgebhart/ericgebhart.c @@ -40,7 +40,7 @@ __attribute__ ((weak)) void matrix_scan_keymap(void) {} __attribute__ ((weak)) -layer_state_t layer_state_set_keymap (layer_state_t state) { +uint32_t layer_state_set_keymap (uint32_t state) { return state; } diff --git a/users/ericgebhart/tap_dances.c b/users/ericgebhart/tap_dances.c index 8f9503a261..9f344986aa 100755 --- a/users/ericgebhart/tap_dances.c +++ b/users/ericgebhart/tap_dances.c @@ -47,7 +47,7 @@ void tap_dance_mouse_btns (qk_tap_dance_state_t *state, void *user_data) { // counting on all the qwerty layers to be less than dvorak_on_bepo int on_qwerty(){ - uint8_t deflayer = (get_highest_layer(default_layer_state)); + uint8_t deflayer = (biton32(default_layer_state)); return (deflayer < _DVORAK_BP); } @@ -58,7 +58,7 @@ static void switch_default_layer(uint8_t layer) { // so the keyboard remembers which layer it's in after power disconnect. /* - layer_state_t default_layer_state_set_kb(layer_state_t state) { + uint32_t default_layer_state_set_kb(uint32_t state) { eeconfig_update_default_layer(state); return state; } diff --git a/users/gourdo1/custom_double_taps.h b/users/gourdo1/custom_double_taps.h new file mode 100644 index 0000000000..4f551e1fa1 --- /dev/null +++ b/users/gourdo1/custom_double_taps.h @@ -0,0 +1,73 @@ +// Copyright 2022 Google LLC +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "gourdo1.h" + +static bool process_capsnum(uint16_t keycode, keyrecord_t * record) { + static bool toggled = false; + static bool tapped = false; + static uint16_t tap_timer = 0; + + if (keycode == CAPSNUM) { + if (user_config.double_tap_shift_for_capslock) { + // Act as TT(_NUMPADMOUSE) + if (record -> event.pressed) { // CAPSNUM key was pressed + // Check whether the key was recently tapped + if (tapped && !timer_expired(record -> event.time, tap_timer)) { + // This is a double tap (or possibly a triple tap or more) + // Toggle the layer on. + toggled = true; + } else if (toggled) { + // Otherwise if currently toggled, turn it off + toggled = false; + tapped = false; + layer_off(_NUMPADMOUSE); + } + // Set that the first tap occurred in a potential double tap + tapped = true; + tap_timer = record -> event.time + TAPPING_TERM; + layer_on(_NUMPADMOUSE); + } else if (!toggled) { + // If not currently toggled, turn off on key release + layer_off(_NUMPADMOUSE); + return false; + } + } else { // When double_tap_shift_for_capslock == false + // Act as KC_CAPS + if (record -> event.pressed) { + register_code(KC_CAPS); + } else { + unregister_code(KC_CAPS); + } + } + return false; + } else { + // On an event with any other key, reset the double tap state + tapped = false; + } + return true; +} + +static bool process_esc_to_base(uint16_t keycode, keyrecord_t * record) { + static bool tapped = false; + static uint16_t tap_timer = 0; + + if (keycode == KC_ESC) { + if (user_config.esc_double_tap_to_baselyr) { + if (record -> event.pressed) { + if (tapped && !timer_expired(record -> event.time, tap_timer)) { + // The key was double tapped. + layer_clear(); + } + tapped = true; + tap_timer = record -> event.time + TAPPING_TERM; + } + } + } else { + // On an event with any other key, reset the double tap state. + tapped = false; + } + return true; +} diff --git a/users/gourdo1/gourdo1.c b/users/gourdo1/gourdo1.c index 4e741ccc91..9062a452ff 100644 --- a/users/gourdo1/gourdo1.c +++ b/users/gourdo1/gourdo1.c @@ -1,6 +1,6 @@ /* Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 - + Copyright 2022 gourdo1 + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or @@ -19,35 +19,35 @@ along with this program. If not, see . #include "gourdo1.h" -#include "caps_word.h" +#include "custom_double_taps.h" -#ifdef TD_LSFT_CAPSLOCK_ENABLE -// Tap once for shift, twice for Caps Lock but only if Win Key in not disabled +// Tap once for shift, twice for Caps Lock but only if Win Key is not disabled (also disabled by user.config variable) void dance_LSFT_each_tap(qk_tap_dance_state_t * state, void * user_data) { - if (state -> count == 1 || keymap_config.no_gui) { - register_code16(KC_LSFT); + if (user_config.double_tap_shift_for_capslock) { + if (state -> count == 1 || keymap_config.no_gui) { + register_code(KC_LSFT); + } else { + register_code(KC_CAPS); + } } else { - register_code(KC_CAPS); + register_code(KC_LSFT); } } void dance_LSFT_reset(qk_tap_dance_state_t * state, void * user_data) { if (state -> count == 1 || keymap_config.no_gui) { - unregister_code16(KC_LSFT); + unregister_code(KC_LSFT); } else { unregister_code(KC_CAPS); - unregister_code16(KC_LSFT); + unregister_code(KC_LSFT); } } + // Tap Dance definitions qk_tap_dance_action_t tap_dance_actions[] = { // Tap once for shift, twice for Caps Lock - [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), - [TD_LSFT_CAPS_WIN] = ACTION_TAP_DANCE_FN_ADVANCED(dance_LSFT_each_tap, NULL, dance_LSFT_reset), - // Tap once for Escape, twice to reset to base layer - [TD_ESC_BASELYR] = ACTION_TAP_DANCE_LAYER_MOVE(KC_ESC, _BASE), + [TD_LSFT_CAPS_WIN] = ACTION_TAP_DANCE_FN_ADVANCED(dance_LSFT_each_tap, NULL, dance_LSFT_reset) }; -#endif // TD_LSFT_CAPSLOCK_ENABLE // RGB NIGHT MODE #ifdef RGB_MATRIX_ENABLE @@ -126,209 +126,373 @@ __attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t * bool process_record_user(uint16_t keycode, keyrecord_t * record) { mod_state = get_mods(); - if (!process_record_keymap(keycode, record)) { - return false; - } + if (!process_record_keymap(keycode, record)) { return false; } + if (!process_capsnum(keycode, record)) { return false; } + if (!process_esc_to_base(keycode, record)) { return false; } - if (!process_caps_word(keycode, record)) { - return false; - } - - // Your macros ... + // Key macros ... switch (keycode) { - // DotCom domain macros - case DOTCOM: - if (record -> event.pressed) { - SEND_STRING(".com"); - } else { - // when keycode is released + // User configuration toggles + case PRNCONF: // Print verbose status of all user_config toggles (open a text editor before engaging!!) + if (record->event.pressed) { + //send_string("Left bracket with alt numcodes "SS_LALT(SS_TAP(X_KP_0) SS_TAP(X_KP_0) SS_TAP(X_KP_9) SS_TAP(X_KP_1))"\n"); + send_string("\n\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x3C\x3C\x3C\x3C\x3C\x3C\x3C\x3C\x3C"); + send_string(" gourdo1\x27s GMMK Pro User Settings "); + send_string("\x3E\x3E\x3E\x3E\x3E\x3E\x3E\x3E\x3E\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\x2D\n"); + send_string("Hold \x5B \bFn\x5D and the number corresponding to a setting below to toggle.\n"); + send_string("Re-print this screen with \x5B \bFn\x5D \x5B`\x5D to see your changes reflected.\n"); + send_string("Config also visible as RGB under number keys by holding \x5B \bFn\x5D.\n"); + send_string("\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d"); + send_string("\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d"); + send_string("\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d"); + send_string("\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\n"); + send_string("1. CapsLock RGB highlight alpha keys................ "); + if (user_config.rgb_hilite_caps) { + send_string("\x5BON\x5D\n"); + } else { + send_string("\x5BOFF\x5D\n"); + } + send_string("2. Numpad RGB highlight layer keys.................. "); + if (user_config.rgb_hilite_numpad) { + send_string("\x5BON\x5D\n"); + } else { + send_string("\x5BOFF\x5D\n"); + } + send_string("3. Double tap ESC to revert to BASE layer........... "); + if (user_config.esc_double_tap_to_baselyr) { + send_string("\x5BON\x5D\n"); + } else { + send_string("\x5BOFF\x5D\n"); + } + send_string("4. DEL \x26 HOME key locations......................... "); + if (user_config.del_right_home_top) { + send_string("\x5BHOME on F13\x3B DEL right of BKSPC\x5D\n"); + } else { + send_string("\x5B \bDEL on F13\x3B HOME right of BKSPC\x5D\n"); + } + send_string("5. Numpad on CapsLock\x3B double tap LSHIFT for Caps... "); + if (user_config.double_tap_shift_for_capslock) { + send_string("\x5BON\x5D\n"); + } else { + send_string("\x5BOFF\x5D\n"); + } + send_string("6. Encoder button function.......................... "); + if (user_config.encoder_press_mute_or_media) { + send_string("\x5BMUTE\x5D\n"); + } else { + send_string("\x5BMEDIA PLAY\x2FPAUSE\x5D\n"); + } + send_string("7. Insert function accessed with.................... "); + if (user_config.ins_on_shft_bkspc_or_del) { + send_string("\x5BSHIFT\x2D \bBKSPC\x5D\n"); + } else { + send_string("\x5BSHIFT\x2D \bDEL\x5D\n"); + } + send_string("8. Force SHIFT \x26 CTRL\x2DSPACE to function like SPACE.. "); + if (user_config.disable_space_mods) { + send_string("\x5BON\x5D\n"); + } else { + send_string("\x5BOFF\x5D\n"); + } + send_string("\nThe latest firmware updates are always here\x3a https\x3a\x2F\x2Fgithub.com\x2Fgourdo1\x2Fgmmkpro\x2Dmedia\n"); } break; - case YAHOO: - if (record -> event.pressed) { - SEND_STRING("yahoo.com"); - } else { - // when keycode is released - } - break; - case OUTLOOK: - if (record -> event.pressed) { - SEND_STRING("outlook.com"); - } else { - // when keycode is released - } - break; - case GMAIL: - if (record -> event.pressed) { - SEND_STRING("gmail.com"); - } else { - // when keycode is released - } - break; - case HOTMAIL: - if (record -> event.pressed) { - SEND_STRING("hotmail.com"); - } else { - // when keycode is released - } - break; - -/* - case YAHOO: - if (record -> event.pressed) SEND_STRING("yahoo.com"); - else unregister_code16(keycode); - break; - case OUTLOOK: - if (record -> event.pressed) SEND_STRING("outlook.com"); - else unregister_code16(keycode); - break; - case GMAIL: - if (record -> event.pressed) SEND_STRING("gmail.com"); - else unregister_code16(keycode); - break; - case HOTMAIL: - if (record -> event.pressed) { - SEND_STRING("hotmail.com"); - } else unregister_code16(keycode); - break; - case DOTCOM: - if (record -> event.pressed) SEND_STRING(".com"); - else unregister_code16(keycode); - break; -*/ - // Windows key lock - case KC_WINLCK: + case TG_CAPS: // Toggle RGB highlighting of Capslock state + if (record->event.pressed) { + user_config.rgb_hilite_caps ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } + break; + case TG_PAD: // Toggle RGB highlighting of Numpad state + if (record->event.pressed) { + user_config.rgb_hilite_numpad ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } + break; + case TG_ESC: // Toggle alternate ESC functionality + if (record->event.pressed) { + user_config.esc_double_tap_to_baselyr ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } + break; + case TG_DEL: // Toggle alternate placement of DEL and HOME keys + if (record->event.pressed) { + user_config.del_right_home_top ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } + break; + case TG_TDCAP: // Toggle alternate Capslock/Numpad functionality + if (record->event.pressed) { + user_config.double_tap_shift_for_capslock ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } + break; + case TG_ENC: // Toggle Encoder function + if (record->event.pressed) { + user_config.encoder_press_mute_or_media ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } + break; + case TG_INS: // Toggle Encoder function + if (record->event.pressed) { + user_config.ins_on_shft_bkspc_or_del ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } + break; + case TG_SPCMOD: // Toggle forcing SHIFT&CTRL-SPACE to function like SPACE + if (record->event.pressed) { + user_config.disable_space_mods ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + } + break; + //return false; + + // Key to the left of encoder function (default HOME) + case LEFTOFENC: + if (!(user_config.del_right_home_top)) { + if (!(user_config.ins_on_shft_bkspc_or_del)) { + static bool inskey_registered; + if (record -> event.pressed) { + // Detect the activation of either shift keys + if (mod_state & MOD_MASK_SHIFT) { + // First temporarily canceling both shifts so that + // shift isn't applied to the KC_INS keycode + del_mods(MOD_MASK_SHIFT); + register_code(KC_INS); + // Update the boolean variable to reflect the status of KC_INS + inskey_registered = true; + // Reapplying modifier state so that the held shift key(s) + // still work even after having tapped the key. + set_mods(mod_state); + return false; + } else { + register_code(KC_DEL); + return false; + } + } else { // on release of KC_DEL + // In case KC_INS is still being sent even after the release of KC_DEL + if (inskey_registered) { + unregister_code(KC_INS); + inskey_registered = false; + return false; + } else { + unregister_code(KC_DEL); + return false; + } + } + } else { + if (record -> event.pressed) { + register_code(KC_DEL); + return false; + } else { + unregister_code(KC_DEL); + return false; + } + } + } else { + if (record -> event.pressed) { + register_code(KC_HOME); + return false; + } else { + unregister_code(KC_HOME); + return false; + } + } + break; + + // Key below encoder function (default DEL) + case BELOWENC: + if (user_config.del_right_home_top) { + if (!(user_config.ins_on_shft_bkspc_or_del)) { + static bool inskey_registered; + if (record -> event.pressed) { + // Detect the activation of either shift keys + if (mod_state & MOD_MASK_SHIFT) { + // First temporarily canceling both shifts so that + // shift isn't applied to the KC_INS keycode + del_mods(MOD_MASK_SHIFT); + register_code(KC_INS); + // Update the boolean variable to reflect the status of KC_INS + inskey_registered = true; + // Reapplying modifier state so that the held shift key(s) + // still work even after having tapped the key. + set_mods(mod_state); + return false; + } else { + register_code(KC_DEL); + return false; + } + } else { // on release of KC_DEL + // In case KC_INS is still being sent even after the release of KC_DEL + if (inskey_registered) { + unregister_code(KC_INS); + inskey_registered = false; + return false; + } else { + unregister_code(KC_DEL); + return false; + } + } + } else { + if (record -> event.pressed) { + register_code(KC_DEL); + return false; + } else { + unregister_code(KC_DEL); + return false; + } + } + } else { + if (record -> event.pressed) { + register_code(KC_HOME); + return false; + } else { + unregister_code(KC_HOME); + return false; + } + } + break; + + // Encoder button function + case ENCFUNC: + if (user_config.encoder_press_mute_or_media) { + if (record -> event.pressed) { + register_code(KC_MUTE); + } else unregister_code16(keycode); + } + else { + if (record -> event.pressed) { + register_code(KC_MPLY); + } else unregister_code16(keycode); + } + break; + + // DotCom domain macros + case DOTCOM: + if (record -> event.pressed) { + send_string(".com"); + } else { + // when keycode is released + } + break; + case YAHOO: + if (record -> event.pressed) { + send_string("yahoo.com"); + } else { + // when keycode is released + } + break; + case OUTLOOK: + if (record -> event.pressed) { + send_string("outlook.com"); + } else { + // when keycode is released + } + break; + case GMAIL: + if (record -> event.pressed) { + send_string("gmail.com"); + } else { + // when keycode is released + } + break; + case HOTMAIL: + if (record -> event.pressed) { + send_string("hotmail.com"); + } else { + // when keycode is released + } + break; + + // Windows Key lockout + case WINLOCK: if (record -> event.pressed) { keymap_config.no_gui = !keymap_config.no_gui; //toggle status } else unregister_code16(keycode); break; - // Double Zero + // Double Zero case KC_00: if (record -> event.pressed) { // when keycode KC_00 is pressed - SEND_STRING("00"); + send_string("00"); } else unregister_code16(keycode); break; - // Treat Control+Space as if regular Space - case KC_SPC: { - // Initialize a boolean variable that keeps track of the space key status: registered or not? - static bool spckey_registered; - if (record -> event.pressed) { - // Detect the activation of either ctrl keys - if (mod_state & MOD_MASK_CTRL) { - // First temporarily canceling both ctrls so that - // ctrl isn't applied to the KC_SPC keycode - del_mods(MOD_MASK_CTRL); - register_code(KC_SPC); - // Update the boolean variable to reflect the status of KC_SPC - spckey_registered = true; - // Reapplying modifier state so that the held ctrl key(s) - // still work even after having tapped the Space key. - set_mods(mod_state); - return false; + // Treat Control & Shift-Space as if regular Space + case KC_SPC: + if (user_config.disable_space_mods) { + // Initialize a boolean variable that keeps track of the space key status: registered or not? + static bool spckey_registered; + if (record -> event.pressed) { + // Detect the activation of either ctrl keys + if (mod_state & MOD_MASK_CTRL) { + // First temporarily canceling both ctrls so that + // ctrl isn't applied to the KC_SPC keycode + del_mods(MOD_MASK_CTRL); + register_code(KC_SPC); + // Update the boolean variable to reflect the status of KC_SPC + spckey_registered = true; + // Reapplying modifier state so that the held ctrl key(s) + // still work even after having tapped the Space key. + set_mods(mod_state); + return false; + } + else if (mod_state & MOD_MASK_SHIFT) { + // First temporarily canceling both shifts so that + // shift isn't applied to the KC_SPC keycode + del_mods(MOD_MASK_SHIFT); + register_code(KC_SPC); + // Update the boolean variable to reflect the status of KC_SPC + spckey_registered = true; + // Reapplying modifier state so that the held shift key(s) + // still work even after having tapped the Space key. + set_mods(mod_state); + return false; + } + } else { // on release of KC_SPC + // In case KC_SPC is still being sent even after the release of KC_SPC + if (spckey_registered) { + unregister_code(KC_SPC); + spckey_registered = false; + return false; + } } - } else { // on release of KC_SPC - // In case KC_SPC is still being sent even after the release of KC_SPC - if (spckey_registered) { - unregister_code(KC_SPC); - spckey_registered = false; - return false; - } - } } break; - // Treat Shift+Space as if regular Space - case KC_SHIFTSPC: { - // Initialize a boolean variable that keeps track of the space key status: registered or not? - static bool spc2key_registered; - if (record -> event.pressed) { - // Detect the activation of either shift keys - if (mod_state & MOD_MASK_SHIFT) { - // First temporarily canceling both shifts so that - // shift isn't applied to the KC_SPC keycode - del_mods(MOD_MASK_SHIFT); - register_code(KC_SPC); - // Update the boolean variable to reflect the status of KC_SPC - spc2key_registered = true; - // Reapplying modifier state so that the held shift key(s) - // still work even after having tapped the Space key. - set_mods(mod_state); - return false; - } - } else { // on release of KC_SPC - // In case KC_SPC is still being sent even after the release of KC_SPC - if (spc2key_registered) { - unregister_code(KC_SPC); - spc2key_registered = false; - return false; - } - } - } - break; - - // Add INS as SHIFT-modified BackSpace key + // INS as SHIFT-modified BackSpace key case KC_BSPC: { - // Initialize a boolean variable that keeps track of the delete key status: registered or not? - static bool inskey_registered; - if (record -> event.pressed) { - // Detect the activation of either shift keys - if (mod_state & MOD_MASK_SHIFT) { - // First temporarily canceling both shifts so that - // shift isn't applied to the KC_INS keycode - del_mods(MOD_MASK_SHIFT); - register_code(KC_INS); - // Update the boolean variable to reflect the status of KC_INS - inskey_registered = true; - // Reapplying modifier state so that the held shift key(s) - // still work even after having tapped the Delete/Insert key. - set_mods(mod_state); - return false; - } - } else { // on release of KC_BSPC - // In case KC_INS is still being sent even after the release of KC_BSPC - if (inskey_registered) { - unregister_code(KC_INS); - inskey_registered = false; - return false; + if (user_config.ins_on_shft_bkspc_or_del) { + // Initialize a boolean variable that keeps track of the ins key status: registered or not? + static bool inskey_registered; + if (record -> event.pressed) { + // Detect the activation of either shift keys + if (mod_state & MOD_MASK_SHIFT) { + // First temporarily canceling both shifts so that + // shift isn't applied to the KC_INS keycode + del_mods(MOD_MASK_SHIFT); + register_code(KC_INS); + // Update the boolean variable to reflect the status of KC_INS + inskey_registered = true; + // Reapplying modifier state so that the held shift key(s) + // still work even after having tapped the key. + set_mods(mod_state); + return false; + } + } else { // on release of KC_BSPC + // In case KC_INS is still being sent even after the release of KC_BSPC + if (inskey_registered) { + unregister_code(KC_INS); + inskey_registered = false; + return false; + } } } - } - break; - - /* Add INS as SHIFT-modified DEL key - case KC_DEL: { - // Initialize a boolean variable that keeps track of the delete key status: registered or not? - static bool inskey_registered; - if (record->event.pressed) { - // Detect the activation of either shift keys - if (mod_state & MOD_MASK_SHIFT) { - // First temporarily canceling both shifts so that - // shift isn't applied to the KC_INS keycode - del_mods(MOD_MASK_SHIFT); - register_code(KC_INS); - // Update the boolean variable to reflect the status of KC_INS - inskey_registered = true; - // Reapplying modifier state so that the held shift key(s) - // still work even after having tapped the Delete/Insert key. - set_mods(mod_state); - return false; - } - } else { // on release of KC_DEL - // In case KC_INS is still being sent even after the release of KC_DEL - if (inskey_registered) { - unregister_code(KC_INS); - inskey_registered = false; - return false; - } - } - } - break; - */ + } + break; #ifdef IDLE_TIMEOUT_ENABLE case RGB_TOI: @@ -352,27 +516,27 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) { #ifdef EMOTICON_ENABLE case EMO_SHRUG: - if (record -> event.pressed) SEND_STRING("`\\_(\"/)_/`"); + if (record -> event.pressed) send_string("`\\_(\"/)_/`"); else unregister_code16(keycode); break; case EMO_CONFUSE: - if (record -> event.pressed) SEND_STRING("(*_*)"); + if (record -> event.pressed) send_string("(*_*)"); else unregister_code16(keycode); break; case EMO_TEARS: - if (record -> event.pressed) SEND_STRING("(T_T)"); + if (record -> event.pressed) send_string("(T_T)"); else unregister_code16(keycode); break; case EMO_NERVOUS: - if (record -> event.pressed) SEND_STRING("(~_~;)"); + if (record -> event.pressed) send_string("(~_~;)"); else unregister_code16(keycode); break; case EMO_JOY: - if (record -> event.pressed) SEND_STRING("(^o^)"); + if (record -> event.pressed) send_string("(^o^)"); else unregister_code16(keycode); break; case EMO_SAD: - if (record -> event.pressed) SEND_STRING(":'-("); + if (record -> event.pressed) send_string(":'-("); else unregister_code16(keycode); break; #endif // EMOTICON_ENABLE @@ -398,15 +562,32 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) { return true; }; -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t * record) { +// Define custom Caps Word continuity characters +bool caps_word_press_user(uint16_t keycode) { switch (keycode) { - case KC_SFTUP: - return 300; - case KC_RAISESPC: - case KC_LOWERSPC: - return 450; - default: - return TAPPING_TERM; + // Keycodes that continue Caps Word, with shift applied. + case KC_A ... KC_Z: + case KC_TILD: + case KC_UNDS: + case KC_DQT: + case KC_COLN: + case KC_RSFT: + case LSFTCAPSWIN: + 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_GRV: + case KC_MINS: + case KC_QUOT: + case KC_SCLN: + case KC_BSPC: + case KC_DEL: + return true; + + default: + return false; // Deactivate Caps Word. } } @@ -418,15 +599,32 @@ void activate_numlock(bool turn_on) { } // INITIAL STARTUP - -__attribute__((weak)) void keyboard_post_init_keymap(void) {} +__attribute__((weak)) void keyboard_post_init_keymap(void) { +} void keyboard_post_init_user(void) { + // Read the user config from EEPROM + user_config.raw = eeconfig_read_user(); keyboard_post_init_keymap(); #ifdef STARTUP_NUMLOCK_ON activate_numlock(true); // turn on Num lock by default so that the numpad layer always has predictable results - #endif // STARTUP_NUMLOC_ON + #endif // STARTUP_NUMLOCK_ON #ifdef IDLE_TIMEOUT_ENABLE - timeout_timer = timer_read(); // set inital time for ide timeout + timeout_timer = timer_read(); // set initial time for idle timeout #endif -} \ No newline at end of file +} + +/* Set defaults for EEPROM user configuration variables */ +void eeconfig_init_user(void) { + user_config.raw = 0; + user_config.rgb_hilite_caps = true; + user_config.rgb_hilite_numpad = true; + user_config.double_tap_shift_for_capslock = true; + user_config.del_right_home_top = true; + user_config.encoder_press_mute_or_media = true; + user_config.esc_double_tap_to_baselyr = true; + user_config.ins_on_shft_bkspc_or_del = true; + user_config.disable_space_mods = true; + + eeconfig_update_user(user_config.raw); +} diff --git a/users/gourdo1/gourdo1.h b/users/gourdo1/gourdo1.h index c6861ca0ca..aa91a192d2 100644 --- a/users/gourdo1/gourdo1.h +++ b/users/gourdo1/gourdo1.h @@ -1,5 +1,5 @@ /* Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 + Copyright 2022 gourdo1 This 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,36 +20,49 @@ along with this program. If not, see . // DEFINE MACROS #define ARRAYSIZE(arr) sizeof(arr) / sizeof(arr[0]) -// LAYERS +// LAYERS -- Note: to avoid compile problems, make sure total layers matches DYNAMIC_KEYMAP_LAYER_COUNT defined in config.h (where _COLEMAK layer is defined) enum custom_user_layers { _BASE, _FN1, _NUMPADMOUSE, _MOUSEKEY, + #ifdef GAME_ENABLE + _GAME + #endif //GAME_ENABLE }; #define KC_CAD LALT(LCTL(KC_DEL)) +#define LOCKPC LGUI(KC_L) #define KC_AF4 LALT(KC_F4) #define KC_TASK LCTL(LSFT(KC_ESC)) #define CT_PGUP RCTL(KC_PGUP) #define CT_PGDN RCTL(KC_PGDN) #define CT_HOME RCTL(KC_HOME) #define CT_END RCTL(KC_END) -#define KC_SFTUP RSFT_T(KC_UP) // Shift when held, Up arrow when tapped -#define KC_RAISESPC LT(_MOUSEKEY, KC_SPC) // _MOUSEKEY layer mod when held, space when tapped -#define KC_LOWERSPC LT(_NUMPADMOUSE, KC_SPC) // _NUMPAD-MOUSE layer mod when held, space when tapped -#define KC_SHIFTSPC LSFT(KC_SPC) -#define SWAP_L SGUI(KC_LEFT) // Swap application to left display -#define SWAP_R SGUI(KC_RGHT) // Swap application to right display +#define SWAP_L SGUI(KC_LEFT) // Swap application to left display +#define SWAP_R SGUI(KC_RGHT) // Swap application to right display // KEYCODES enum custom_user_keycodes { KC_00 = SAFE_RANGE, - ENCFUNC, - KC_WINLCK, // Toggles Win key on and off + ENCFUNC, // Encoder function + CAPSNUM, // Capslock key function + LEFTOFENC, // Key to the left of the encoder (i.e. F13) + BELOWENC, // Key below encoder + PRNCONF, // Print verbose statuses of all user_config toggles + WINLOCK, // Toggles Windows key on and off RGB_TOI, // Timeout idle time up RGB_TOD, // Timeout idle time down - RGB_NITE, // Turns off all rgb but allow rgb indicators to work + RGB_NITE, // Disables RGB backlighting effects but allows RGB indicators to still work + + TG_CAPS, // Toggles RGB highlighting of alphas during capslock + TG_PAD, // Toggles RGB highlighting of keys on numpad+mousekeys layer + TG_TDCAP, // Toggles double tap shift (tapdance) for CapsLock + TG_DEL, // Swaps DEL and HOME key locations + TG_ENC, // Toggle Encoder functionality + TG_ESC, // Toggle ESC tapdance for _BASE layer + TG_INS, // Toggle location of INS + TG_SPCMOD, // Toggle disabling of modded-SPACE functions YAHOO, // yahoo.com OUTLOOK, // outlook.com @@ -66,24 +79,33 @@ enum custom_user_keycodes { KC_TSTOG, // Tab Scroll Toggle - NEW_SAFE_RANGE // new safe range for keymap level custom keycodes + NEW_SAFE_RANGE // New safe range for keymap level custom keycodes }; -#ifdef TD_LSFT_CAPSLOCK_ENABLE + // Tap Dance Definitions enum custom_tapdance { - TD_LSFT_CAPSLOCK, TD_LSFT_CAPS_WIN, - TD_ESC_BASELYR }; -#define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) -#define KC_LSFTCAPSWIN TD(TD_LSFT_CAPS_WIN) -#define KC_ESCLYR TD(TD_ESC_BASELYR) -#else // regular Shift -#define KC_LSFTCAPS KC_LSFT -// regular Escape -#define KC_ESCLYR KC_ESC -#endif // TD_LSFT_CAPSLOCK_ENABLE + +// Set up boolean variables to track user customizable configuration options +typedef union { + uint32_t raw; + struct { + bool rgb_hilite_caps :1; + bool rgb_hilite_numpad :1; + bool esc_double_tap_to_baselyr :1; + bool del_right_home_top :1; + bool double_tap_shift_for_capslock :1; + bool encoder_press_mute_or_media :1; + bool ins_on_shft_bkspc_or_del :1; + bool disable_space_mods :1; + }; +} user_config_t; + +user_config_t user_config; + +#define LSFTCAPSWIN TD(TD_LSFT_CAPS_WIN) // ENCODER ACTIONS #ifdef ENCODER_ENABLE diff --git a/users/gourdo1/gourdo1_encoder.c b/users/gourdo1/gourdo1_encoder.c index 72f8c3c354..5a19b63c6e 100644 --- a/users/gourdo1/gourdo1_encoder.c +++ b/users/gourdo1/gourdo1_encoder.c @@ -1,5 +1,5 @@ /* Copyright 2021 Jonavin Eng @Jonavin - Copyright 2022 gourdo1 + Copyright 2022 gourdo1 This 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,8 +15,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ - #include QMK_KEYBOARD_H + #include "gourdo1.h" #ifdef ENCODER_ENABLE diff --git a/users/hvp/config.h b/users/hvp/config.h index b7d0443bbc..68dd8b4828 100644 --- a/users/hvp/config.h +++ b/users/hvp/config.h @@ -15,5 +15,4 @@ */ #pragma once -#define LONG_TAPPING_TERM 1000 -#define PERMISSIVE_HOLD +#define LONG_TAPPING_TERM 1000 \ No newline at end of file diff --git a/users/kuchosauronad0/kuchosauronad0.c b/users/kuchosauronad0/kuchosauronad0.c index 820d84daad..a8f17b08ee 100644 --- a/users/kuchosauronad0/kuchosauronad0.c +++ b/users/kuchosauronad0/kuchosauronad0.c @@ -117,7 +117,7 @@ void matrix_scan_user(void){ } __attribute__ ((weak)) -layer_state_t layer_state_set_keymap (layer_state_t state) { +uint32_t layer_state_set_keymap (uint32_t state) { return state; } @@ -133,12 +133,12 @@ layer_state_t layer_state_set_user(layer_state_t state) { __attribute__ ((weak)) -layer_state_t default_layer_state_set_keymap (layer_state_t state) { +uint32_t default_layer_state_set_keymap (uint32_t state) { return state; } // Runs state check and changes underglow color and animation -layer_state_t default_layer_state_set_user(layer_state_t state) { +uint32_t default_layer_state_set_user(uint32_t state) { state = default_layer_state_set_keymap(state); #if 0 #ifdef RGBLIGHT_ENABLE diff --git a/users/kuchosauronad0/kuchosauronad0.h b/users/kuchosauronad0/kuchosauronad0.h index 5cbd517d67..da996457c6 100644 --- a/users/kuchosauronad0/kuchosauronad0.h +++ b/users/kuchosauronad0/kuchosauronad0.h @@ -65,8 +65,8 @@ void shutdown_keymap(void); void suspend_power_down_keymap(void); void suspend_wakeup_init_keymap(void); void matrix_scan_keymap(void); -layer_state_t layer_state_set_keymap (layer_state_t state); -layer_state_t default_layer_state_set_keymap (layer_state_t state); +uint32_t layer_state_set_keymap (uint32_t state); +uint32_t default_layer_state_set_keymap (uint32_t state); void led_set_keymap(uint8_t usb_led); void eeconfig_init_keymap(void); diff --git a/users/kuchosauronad0/rgblight_user.c b/users/kuchosauronad0/rgblight_user.c index feea0c412f..63e412c557 100644 --- a/users/kuchosauronad0/rgblight_user.c +++ b/users/kuchosauronad0/rgblight_user.c @@ -84,7 +84,7 @@ void matrix_scan_rgb(void) { layer_state_t layer_state_set_rgb(layer_state_t state) { # ifdef RGBLIGHT_ENABLE if (userspace_config.rgb_layer_change) { - switch (get_highest_layer(state)) { // _RAISE, _LOWER and _ADJUST use a custom color and the breathing effect + switch (biton32(state)) { // _RAISE, _LOWER and _ADJUST use a custom color and the breathing effect case _RAISE: rgblight_sethsv_noeeprom_green(); rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); @@ -98,7 +98,7 @@ layer_state_t layer_state_set_rgb(layer_state_t state) { rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 2); break; default: // Use a solid color for normal layers - switch (get_highest_layer(default_layer_state)) { + switch (biton32(default_layer_state)) { case _QWERTY: rgblight_sethsv_noeeprom_magenta(); break; @@ -118,7 +118,7 @@ layer_state_t layer_state_set_rgb(layer_state_t state) { rgblight_sethsv_noeeprom_white(); break; } - get_highest_layer(state) == _MODS ? rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING) : rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // if _MODS layer is on, then breath to denote it + biton32(state) == _MODS ? rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING) : rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // if _MODS layer is on, then breath to denote it break; } } @@ -135,7 +135,7 @@ void matrix_scan_indicator(void) { #endif // !INDICATOR_LIGHTS void rgblight_fade_helper(bool direction){ - // true: increase val = fade in + // true: increase val = fade in // false: decrease val = fade out for (uint8_t index = 0; index < RGBLIGHT_VAL_STEP ; index++) { direction ? rgblight_increase_val() : rgblight_decrease_val(); @@ -147,10 +147,10 @@ void fadeflash_leds(uint8_t hue, uint8_t sat, uint8_t val){ // fade out, set new hue and saturation, fade in, fade out, set old color, fade in // this is used in leader.c // TODO: come up with a better name maybe - rgblight_fade_helper(false); - rgblight_sethsv_noeeprom(hue, sat, 0); - rgblight_fade_helper(true); - rgblight_fade_helper(false); - rgblight_sethsv_noeeprom(base_hue, base_sat, 0); - rgblight_fade_helper(true); + rgblight_fade_helper(false); + rgblight_sethsv_noeeprom(hue, sat, 0); + rgblight_fade_helper(true); + rgblight_fade_helper(false); + rgblight_sethsv_noeeprom(base_hue, base_sat, 0); + rgblight_fade_helper(true); } diff --git a/users/kuchosauronad0/template.c b/users/kuchosauronad0/template.c index 76cc572be3..475e45d391 100644 --- a/users/kuchosauronad0/template.c +++ b/users/kuchosauronad0/template.c @@ -63,11 +63,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { __attribute__ ((weak)) -layer_state_t layer_state_set_keymap (layer_state_t state) { +uint32_t layer_state_set_keymap (uint32_t state) { return state; } -layer_state_t layer_state_set_user (layer_state_t state) { +uint32_t layer_state_set_user (uint32_t state) { return layer_state_set_keymap (state); } diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h index d24f52edae..c4538ee304 100644 --- a/users/manna-harbour_miryoku/config.h +++ b/users/manna-harbour_miryoku/config.h @@ -1,6 +1,5 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . @@ -21,9 +20,6 @@ #define AUTO_SHIFT_TIMEOUT TAPPING_TERM #define AUTO_SHIFT_NO_SETUP -// Recommended for heavy chording. -#define QMK_KEYS_PER_SCAN 4 - // Mouse key speed and acceleration. #undef MOUSEKEY_DELAY #define MOUSEKEY_DELAY 0 @@ -35,3 +31,13 @@ #define MOUSEKEY_MAX_SPEED 6 #undef MOUSEKEY_TIME_TO_MAX #define MOUSEKEY_TIME_TO_MAX 64 + +// Thumb Combos +#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS) + #define COMBO_COUNT 8 + #define COMBO_TERM 200 + #define EXTRA_SHORT_COMBOS +#endif + +#include "custom_config.h" + diff --git a/users/manna-harbour_miryoku/custom_config.h b/users/manna-harbour_miryoku/custom_config.h new file mode 100644 index 0000000000..f5ba5ab1b1 --- /dev/null +++ b/users/manna-harbour_miryoku/custom_config.h @@ -0,0 +1,7 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 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/users/manna-harbour_miryoku/custom_rules.mk b/users/manna-harbour_miryoku/custom_rules.mk new file mode 100644 index 0000000000..6e222bb11c --- /dev/null +++ b/users/manna-harbour_miryoku/custom_rules.mk @@ -0,0 +1,3 @@ +# Copyright 2019 Manna Harbour +# https://github.com/manna-harbour/miryoku + diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c index 6347183417..28ad18d1aa 100644 --- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.c @@ -1,229 +1,50 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 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 "manna-harbour_miryoku.h" +enum layers { MIRYOKU_LAYER_NAMES }; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -#if defined MIRYOKU_LAYERS_FLIP - [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_AZERTY - KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), - LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), - U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_COLEMAK - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, - LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_COLEMAKDHK - KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, - LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_DVORAK - KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, - LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), - LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, KC_Z), - U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_HALMAK - KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, - LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, KC_Y), - U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_WORKMAN - KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, - LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_QWERTY - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_QWERTZ - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, - LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), - LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP - #else - KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, - LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP - #endif - ), - #if defined MIRYOKU_NAV_INVERTEDT - [NAV] = LAYOUT_miryoku( - KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, U_NA, U_NA, U_NA, U_NA, RESET, - KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_CAPS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA, - U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP - ), - [MOUSE] = LAYOUT_miryoku( - KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, U_NU, U_NA, U_NA, U_NA, U_NA, RESET, - KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA, - U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, U_NA, U_NA, U_NA, U_NP, U_NP - ), - [MEDIA] = LAYOUT_miryoku( - U_NU, U_NU, KC_VOLU, U_NU, U_NU, U_NA, U_NA, U_NA, U_NA, RESET, - U_NU, KC_MPRV, KC_VOLD, KC_MNXT, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, U_NA, U_NA, U_NA, KC_ALGR, U_NA, - U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP - ), - #else - [NAV] = LAYOUT_miryoku( - KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, U_NA, U_NA, U_NA, U_NA, RESET, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAPS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA, - U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP - ), - [MOUSE] = LAYOUT_miryoku( - KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU, U_NA, U_NA, U_NA, U_NA, RESET, - KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA, - U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, U_NA, U_NA, U_NA, U_NP, U_NP - ), - [MEDIA] = LAYOUT_miryoku( - RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, U_NA, U_NA, U_NA, U_NA, RESET, - KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - U_NU, U_NU, U_NU, U_NU, U_NU, U_NA, U_NA, U_NA, KC_ALGR, U_NA, - U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP - ), - #endif - [NUM] = LAYOUT_miryoku( - RESET, U_NA, U_NA, U_NA, U_NA, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, - U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, - U_NP, U_NP, U_NA, U_NA, U_NA, KC_MINS, KC_0, KC_DOT, U_NP, U_NP - ), - [SYM] = LAYOUT_miryoku( - RESET, U_NA, U_NA, U_NA, U_NA, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_PLUS, KC_DLR, KC_PERC, KC_CIRC, KC_COLN, - U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_PIPE, KC_EXLM, KC_AT, KC_HASH, KC_TILD, - U_NP, U_NP, U_NA, U_NA, U_NA, KC_UNDS, KC_LPRN, KC_RPRN, U_NP, U_NP - ), - [FUN] = LAYOUT_miryoku( - RESET, U_NA, U_NA, U_NA, U_NA, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11, - U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, - U_NP, U_NP, U_NA, U_NA, U_NA, KC_TAB, KC_SPC, KC_APP, U_NP, U_NP - ), -#else - [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_AZERTY - KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), - LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), - U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_COLEMAK - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, - LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_COLEMAKDHK - KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, - LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_DVORAK - KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, - LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), - LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, KC_Z), - U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_HALMAK - KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, - LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, KC_Y), - U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_WORKMAN - KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, - LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_QWERTY - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - #elif defined MIRYOKU_ALPHAS_QWERTZ - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, - LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), - LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - #else - KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, - LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), - U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - #endif - ), - #if defined MIRYOKU_NAV_VI - [NAV] = LAYOUT_miryoku( - RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAPS, - U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, - U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP - ), - [MOUSE] = LAYOUT_miryoku( - RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU, - U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU, - U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - ), - [MEDIA] = LAYOUT_miryoku( - RESET, U_NA, U_NA, U_NA, U_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, U_NU, - U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU, - U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP - ), - #else - [NAV] = LAYOUT_miryoku( - RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, - U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP - ), - [MOUSE] = LAYOUT_miryoku( - RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, - U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, - U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - ), - [MEDIA] = LAYOUT_miryoku( - RESET, U_NA, U_NA, U_NA, U_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, - U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU, - U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP - ), - #endif - [NUM] = LAYOUT_miryoku( - KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, U_NA, U_NA, U_NA, U_NA, RESET, - KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, U_NA, U_NA, U_NA, KC_ALGR, U_NA, - U_NP, U_NP, KC_DOT, KC_0, KC_MINS, U_NA, U_NA, U_NA, U_NP, U_NP - ), - [SYM] = LAYOUT_miryoku( - KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, U_NA, U_NA, U_NA, U_NA, RESET, - KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, U_NA, U_NA, U_NA, KC_ALGR, U_NA, - U_NP, U_NP, KC_LPRN, KC_RPRN, KC_UNDS, U_NA, U_NA, U_NA, U_NP, U_NP - ), - [FUN] = LAYOUT_miryoku( - KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, U_NA, U_NA, U_NA, U_NA, RESET, - KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, U_NA, U_NA, U_NA, KC_ALGR, U_NA, - U_NP, U_NP, KC_APP, KC_SPC, KC_TAB, U_NA, U_NA, U_NA, U_NP, U_NP - ), -#endif - [BUTTON] = LAYOUT_miryoku( - U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - ) + [BASE] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_BASE), + [NAV] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_NAV), + [MOUSE] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_MOUSE), + [MEDIA] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_MEDIA), + [NUM] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_NUM), + [SYM] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_SYM), + [FUN] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_FUN), + [BUTTON] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_BUTTON) }; + +#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS) +const uint16_t PROGMEM thumbcombos_base_right[] = {LT(SYM, KC_ENT), LT(NUM, KC_BSPC), COMBO_END}; +const uint16_t PROGMEM thumbcombos_base_left[] = {LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), COMBO_END}; +const uint16_t PROGMEM thumbcombos_nav[] = {KC_ENT, KC_BSPC, COMBO_END}; +const uint16_t PROGMEM thumbcombos_mouse[] = {KC_BTN1, KC_BTN3, COMBO_END}; +const uint16_t PROGMEM thumbcombos_media[] = {KC_MSTP, KC_MPLY, COMBO_END}; +const uint16_t PROGMEM thumbcombos_num[] = {KC_0, KC_MINS, COMBO_END}; + #if defined (MIRYOKU_LAYERS_FLIP) +const uint16_t PROGMEM thumbcombos_sym[] = {KC_UNDS, KC_LPRN, COMBO_END}; + #else +const uint16_t PROGMEM thumbcombos_sym[] = {KC_RPRN, KC_UNDS, COMBO_END}; + #endif +const uint16_t PROGMEM thumbcombos_fun[] = {KC_SPC, KC_TAB, COMBO_END}; +combo_t key_combos[COMBO_COUNT] = { + COMBO(thumbcombos_base_right, LT(FUN, KC_DEL)), + COMBO(thumbcombos_base_left, LT(MEDIA, KC_ESC)), + COMBO(thumbcombos_nav, KC_DEL), + COMBO(thumbcombos_mouse, KC_BTN2), + COMBO(thumbcombos_media, KC_MUTE), + COMBO(thumbcombos_num, KC_DOT), + #if defined (MIRYOKU_LAYERS_FLIP) + COMBO(thumbcombos_sym, KC_RPRN), + #else + COMBO(thumbcombos_sym, KC_LPRN), + #endif + COMBO(thumbcombos_fun, KC_APP) +}; +#endif diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.h b/users/manna-harbour_miryoku/manna-harbour_miryoku.h index 1d14f61710..f6ef63c360 100644 --- a/users/manna-harbour_miryoku/manna-harbour_miryoku.h +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.h @@ -1,41 +1,41 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated -*- buffer-read-only: t -*- // This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 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 +#include "miryoku_babel/miryoku_layer_names.h" +#include "miryoku_babel/miryoku_layer.h" + +#define U_MACRO_VA_ARGS(macro, ...) macro(__VA_ARGS__) #define U_NP KC_NO // key is not present #define U_NA KC_NO // present but not available for use #define U_NU KC_NO // available but not used -enum layers { BASE, BUTTON, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; - -#if defined MIRYOKU_CLIPBOARD_FUN -#define U_RDO KC_AGIN -#define U_PST KC_PSTE -#define U_CPY KC_COPY -#define U_CUT KC_CUT -#define U_UND KC_UNDO -#elif defined MIRYOKU_CLIPBOARD_MAC -#define U_RDO SCMD(KC_Z) -#define U_PST LCMD(KC_V) -#define U_CPY LCMD(KC_C) -#define U_CUT LCMD(KC_X) -#define U_UND LCMD(KC_Z) -#elif defined MIRYOKU_CLIPBOARD_WIN -#define U_RDO C(KC_Y) -#define U_PST C(KC_V) -#define U_CPY C(KC_C) -#define U_CUT C(KC_X) -#define U_UND C(KC_Z) +#if defined (MIRYOKU_CLIPBOARD_FUN) + #define U_RDO KC_AGIN + #define U_PST KC_PSTE + #define U_CPY KC_COPY + #define U_CUT KC_CUT + #define U_UND KC_UNDO +#elif defined (MIRYOKU_CLIPBOARD_MAC) + #define U_RDO SCMD(KC_Z) + #define U_PST LCMD(KC_V) + #define U_CPY LCMD(KC_C) + #define U_CUT LCMD(KC_X) + #define U_UND LCMD(KC_Z) +#elif defined (MIRYOKU_CLIPBOARD_WIN) + #define U_RDO C(KC_Y) + #define U_PST C(KC_V) + #define U_CPY C(KC_C) + #define U_CUT C(KC_X) + #define U_UND C(KC_Z) #else -#define U_RDO KC_AGIN -#define U_PST S(KC_INS) -#define U_CPY C(KC_INS) -#define U_CUT S(KC_DEL) -#define U_UND KC_UNDO + #define U_RDO KC_AGIN + #define U_PST S(KC_INS) + #define U_CPY C(KC_INS) + #define U_CUT S(KC_DEL) + #define U_UND KC_UNDO #endif diff --git a/users/manna-harbour_miryoku/miryoku_babel/miryoku_alternatives.h b/users/manna-harbour_miryoku/miryoku_babel/miryoku_alternatives.h new file mode 100644 index 0000000000..8a0e70a6b5 --- /dev/null +++ b/users/manna-harbour_miryoku/miryoku_babel/miryoku_alternatives.h @@ -0,0 +1,267 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku +// generated -*- buffer-read-only: t -*- +// target: 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 MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP \ +KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ +LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), \ +LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP \ +KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \ +LGUI_T(KC_Y), LALT_T(KC_I), LCTL_T(KC_E), LSFT_T(KC_A), KC_DOT, KC_D, LSFT_T(KC_S), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_B), \ +LT(BUTTON, KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(BUTTON, KC_V), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP \ +KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \ +LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP \ +KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \ +LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP \ +KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \ +LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP \ +KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \ +LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), \ +LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, KC_Z), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP \ +KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \ +LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \ +LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, KC_Y), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP \ +KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \ +LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP \ +KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ +LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP \ +KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \ +LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), \ +LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_AZERTY \ +KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ +LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), \ +LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15 \ +KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \ +LGUI_T(KC_Y), LALT_T(KC_I), LCTL_T(KC_E), LSFT_T(KC_A), KC_DOT, KC_D, LSFT_T(KC_S), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_B), \ +LT(BUTTON, KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(BUTTON, KC_V), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK \ +KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \ +LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH \ +KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \ +LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK \ +KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \ +LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_DVORAK \ +KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \ +LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), \ +LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, KC_Z), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_HALMAK \ +KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \ +LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \ +LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, KC_Y), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN \ +KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \ +LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_QWERTY \ +KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ +LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), \ +LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ \ +KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \ +LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), \ +LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, KC_SLSH), \ +U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP + + +#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP \ +KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, U_NA, U_NA, U_NA, U_NA, RESET, \ +KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_CAPS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA, \ +U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_NAV_FLIP \ +KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, U_NA, U_NA, U_NA, U_NA, RESET, \ +KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAPS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA, \ +U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT \ +RESET, U_NA, U_NA, U_NA, U_NA, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_NAV_VI \ +RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAPS, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_NAV \ +RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP + + +#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP \ +KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, U_NU, U_NA, U_NA, U_NA, U_NA, RESET, \ +KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA, \ +U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, U_NA, U_NA, U_NA, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_MOUSE_FLIP \ +KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU, U_NA, U_NA, U_NA, U_NA, RESET, \ +KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA, \ +U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, U_NA, U_NA, U_NA, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT \ +RESET, U_NA, U_NA, U_NA, U_NA, U_NU, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_MOUSE_VI \ +RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_MOUSE \ +RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP + + +#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP \ +RGB_SAI, RGB_HUI, KC_VOLU, RGB_MOD, RGB_TOG, U_NA, U_NA, U_NA, U_NA, RESET, \ +RGB_VAI, KC_MPRV, KC_VOLD, KC_MNXT, OUT_AUTO, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +U_NU, U_NU, U_NU, U_NU, U_NU, U_NA, U_NA, U_NA, KC_ALGR, U_NA, \ +U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_MEDIA_FLIP \ +RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, U_NA, U_NA, U_NA, U_NA, RESET, \ +KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, OUT_AUTO, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +U_NU, U_NU, U_NU, U_NU, U_NU, U_NA, U_NA, U_NA, KC_ALGR, U_NA, \ +U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT \ +RESET, U_NA, U_NA, U_NA, U_NA, RGB_TOG, RGB_MOD, KC_VOLU, RGB_HUI, RGB_SAI, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, OUT_AUTO, KC_MPRV, KC_VOLD, KC_MNXT, RGB_VAI, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_MEDIA_VI \ +RESET, U_NA, U_NA, U_NA, U_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, OUT_AUTO, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_MEDIA \ +RESET, U_NA, U_NA, U_NA, U_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, OUT_AUTO, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP + + +#define MIRYOKU_ALTERNATIVES_NUM_FLIP \ +RESET, U_NA, U_NA, U_NA, U_NA, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_MINS, KC_0, KC_DOT, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_NUM \ +KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, U_NA, U_NA, U_NA, U_NA, RESET, \ +KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, U_NA, U_NA, U_NA, KC_ALGR, U_NA, \ +U_NP, U_NP, KC_DOT, KC_0, KC_MINS, U_NA, U_NA, U_NA, U_NP, U_NP + + +#define MIRYOKU_ALTERNATIVES_SYM_FLIP \ +RESET, U_NA, U_NA, U_NA, U_NA, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_PLUS, KC_DLR, KC_PERC, KC_CIRC, KC_COLN, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_PIPE, KC_EXLM, KC_AT, KC_HASH, KC_TILD, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_UNDS, KC_LPRN, KC_RPRN, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_SYM \ +KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, U_NA, U_NA, U_NA, U_NA, RESET, \ +KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, U_NA, U_NA, U_NA, KC_ALGR, U_NA, \ +U_NP, U_NP, KC_LPRN, KC_RPRN, KC_UNDS, U_NA, U_NA, U_NA, U_NP, U_NP + + +#define MIRYOKU_ALTERNATIVES_FUN_FLIP \ +RESET, U_NA, U_NA, U_NA, U_NA, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11, \ +U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, \ +U_NP, U_NP, U_NA, U_NA, U_NA, KC_TAB, KC_SPC, KC_APP, U_NP, U_NP + +#define MIRYOKU_ALTERNATIVES_FUN \ +KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, U_NA, U_NA, U_NA, U_NA, RESET, \ +KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, U_NA, U_NA, U_NA, KC_ALGR, U_NA, \ +U_NP, U_NP, KC_APP, KC_SPC, KC_TAB, U_NA, U_NA, U_NA, U_NP, U_NP + + +#define MIRYOKU_ALTERNATIVES_BUTTON \ +U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \ +KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NO, KC_NO, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \ +U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \ +U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP diff --git a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer.h b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer.h new file mode 100644 index 0000000000..025bf3914c --- /dev/null +++ b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer.h @@ -0,0 +1,139 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku +// generated -*- buffer-read-only: t -*- + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 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 "miryoku_alternatives.h" + +#if !defined(MIRYOKU_LAYER_BASE) + #if defined (MIRYOKU_LAYERS_FLIP) + #if defined (MIRYOKU_ALPHAS_AZERTY) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP + #elif defined (MIRYOKU_ALPHAS_BEAKL15) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP + #elif defined (MIRYOKU_ALPHAS_COLEMAK) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP + #elif defined (MIRYOKU_ALPHAS_COLEMAKDHK) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP + #elif defined (MIRYOKU_ALPHAS_DVORAK) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP + #elif defined (MIRYOKU_ALPHAS_HALMAK) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP + #elif defined (MIRYOKU_ALPHAS_WORKMAN) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP + #elif defined (MIRYOKU_ALPHAS_QWERTY) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP + #elif defined (MIRYOKU_ALPHAS_QWERTZ) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP + #else + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP + #endif + #else + #if defined (MIRYOKU_ALPHAS_AZERTY) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY + #elif defined (MIRYOKU_ALPHAS_BEAKL15) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15 + #elif defined (MIRYOKU_ALPHAS_COLEMAK) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK + #elif defined (MIRYOKU_ALPHAS_COLEMAKDHK) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK + #elif defined (MIRYOKU_ALPHAS_DVORAK) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK + #elif defined (MIRYOKU_ALPHAS_HALMAK) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK + #elif defined (MIRYOKU_ALPHAS_WORKMAN) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN + #elif defined (MIRYOKU_ALPHAS_QWERTY) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY + #elif defined (MIRYOKU_ALPHAS_QWERTZ) + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ + #else + #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH + #endif + #endif +#endif + +#if !defined(MIRYOKU_LAYER_NAV) + #if defined (MIRYOKU_LAYERS_FLIP) + #if defined (MIRYOKU_NAV_INVERTEDT) + #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP + #else + #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_FLIP + #endif + #else + #if defined (MIRYOKU_NAV_INVERTEDT) + #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT + #elif defined (MIRYOKU_NAV_VI) + #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_VI + #else + #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV + #endif + #endif +#endif + +#if !defined(MIRYOKU_LAYER_MOUSE) + #if defined (MIRYOKU_LAYERS_FLIP) + #if defined (MIRYOKU_NAV_INVERTEDT) + #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP + #else + #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_FLIP + #endif + #else + #if defined (MIRYOKU_NAV_INVERTEDT) + #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT + #elif defined (MIRYOKU_NAV_VI) + #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_VI + #else + #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE + #endif + #endif +#endif + +#if !defined(MIRYOKU_LAYER_MEDIA) + #if defined (MIRYOKU_LAYERS_FLIP) + #if defined (MIRYOKU_NAV_INVERTEDT) + #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP + #else + #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_FLIP + #endif + #else + #if defined (MIRYOKU_NAV_INVERTEDT) + #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT + #elif defined (MIRYOKU_NAV_VI) + #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_VI + #else + #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA + #endif + #endif +#endif + +#if !defined(MIRYOKU_LAYER_NUM) + #if defined (MIRYOKU_LAYERS_FLIP) + #define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM_FLIP + #else + #define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM + #endif +#endif + +#if !defined(MIRYOKU_LAYER_SYM) + #if defined (MIRYOKU_LAYERS_FLIP) + #define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM_FLIP + #else + #define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM + #endif +#endif + +#if !defined(MIRYOKU_LAYER_FUN) + #if defined (MIRYOKU_LAYERS_FLIP) + #define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN_FLIP + #else + #define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN + #endif +#endif + +#if !defined(MIRYOKU_LAYER_BUTTON) + #define MIRYOKU_LAYER_BUTTON MIRYOKU_ALTERNATIVES_BUTTON +#endif diff --git a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_names.h b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_names.h new file mode 100644 index 0000000000..87e1f18d8c --- /dev/null +++ b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_names.h @@ -0,0 +1,9 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku +// generated -*- buffer-read-only: t -*- + +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +#if !defined (MIRYOKU_LAYER_NAMES) + #define MIRYOKU_LAYER_NAMES BASE, BUTTON, NAV, MOUSE, MEDIA, NUM, SYM, FUN +#endif diff --git a/users/manna-harbour_miryoku/post_rules.mk b/users/manna-harbour_miryoku/post_rules.mk new file mode 100644 index 0000000000..c5b4b7d28e --- /dev/null +++ b/users/manna-harbour_miryoku/post_rules.mk @@ -0,0 +1,39 @@ +# Copyright 2019 Manna Harbour +# https://github.com/manna-harbour/miryoku + +SRC += manna-harbour_miryoku.c # keymaps + +# alternative layouts: + +# alphas +ifneq ($(strip $(MIRYOKU_ALPHAS)),) + OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS) +endif + +# nav +ifneq ($(strip $(MIRYOKU_NAV)),) + OPT_DEFS += -DMIRYOKU_NAV_$(MIRYOKU_NAV) +endif + +# clipboard +ifneq ($(strip $(MIRYOKU_CLIPBOARD)),) + OPT_DEFS += -DMIRYOKU_CLIPBOARD_$(MIRYOKU_CLIPBOARD) +endif + +# layers +ifneq ($(strip $(MIRYOKU_LAYERS)),) + OPT_DEFS += -DMIRYOKU_LAYERS_$(MIRYOKU_LAYERS) +endif + +# subset mappings +ifneq ($(strip $(MIRYOKU_MAPPING)),) + OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING) +endif + +# kludges: + +# thumb combos +ifeq ($(strip $(MIRYOKU_KLUDGE_THUMBCOMBOS)),yes) + COMBO_ENABLE = yes + OPT_DEFS += -DMIRYOKU_KLUDGE_THUMBCOMBOS +endif diff --git a/users/manna-harbour_miryoku/readme.org b/users/manna-harbour_miryoku/readme.org index b904738a67..9e3e587240 100644 --- a/users/manna-harbour_miryoku/readme.org +++ b/users/manna-harbour_miryoku/readme.org @@ -1,10 +1,11 @@ -# After making changes to code or tables call org-babel-tangle (C-c C-v t). +# Copyright 2022 Manna Harbour +# https://github.com/manna-harbour/miryoku * Miryoku QMK [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]] [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover.png]] -[[https://github.com/manna-harbour/miryoku/][Miryoku]] is an ergonomic, minimal, orthogonal, and universal keyboard layout. This is the Miryoku implementation for [[https://qmk.fm][QMK]]. +[[https://github.com/manna-harbour/miryoku/][Miryoku]] is an ergonomic, minimal, orthogonal, and universal keyboard layout. [[https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku][Miryoku QMK]] is the Miryoku implementation for [[https://qmk.fm][QMK]]. ** Branches @@ -33,835 +34,79 @@ git checkout --track miryoku_qmk/miryoku #+END_SRC -** Layout +** Building -*** General Principles -- Use layers instead of reaching. -- Use both hands instead of contortions. -- Use the home positions as much as possible. -- Make full use of the thumbs. -- Avoid unnecessary complication. +*** Local Builds +First [[https://docs.qmk.fm/#/newbs_getting_started][set up the QMK build environment and build the default keymap for your keyboard]]. -*** Details +Build with ~manna-harbour_miryoku~ as the keymap name. Customised defaults for [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options can be set in [[#userspace][custom_rules.mk]]. Options can also be set or overridden at build time. -- 5 columns, 3 rows, 3 thumb keys, 2 hands. -- Can be used on almost any split or non-split ergo or ortho keyboard. -- Includes all keys found on a US layout TKL keyboard, plus media keys and mouse - emulation. -- Home row is the middle row, home thumb key is the middle thumb key. -- Maximum 1-u movement from home position for fingers and thumbs, and only along - one axis (except for the inner index finger column which is deprioritised - compared with the home columns). -- Dual-function modifiers on home row, mirrored on both hands. -- Dual-function layer change on thumbs. -- Layers are designed orthogonally with a single purpose per hand and are - accessed by holding a thumb key on the opposite hand. -- All layers on the same hand are based on the same basic key arrangement. -- Holding layer change and modifiers on one hand combined with a single key - press on the other hand can produce any combination of modifiers and single - keys without any finger contortions. -- Single function mods are also defined on layers on the same hand as the layer - change thumb key so layer change and mods can be held in any order or - simultaneously without race conditions. -- As mods are only enabled on the opposite hand, auto-repeat is available on the - home row on layers for use with cursor and mouse keys. -- Tap-hold auto-repeat is disabled to permit faster tap-hold switching on - thumbs, but thumb tap keys are mirrored onto some layers for use with - auto-repeat. On other layers thumb keys are redefined with important - functions for that layer. -- Auto Shift for numbers and symbols. +**** qmk -*** Layers +Build with the ~qmk~ command. E.g. -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-reference.png]] - -The layers are maintained in tables. ~U_NP~ indicates the key is not present -and is used to fill in the table around the thumb keys. The grid arrangement of -the tables does not imply a particular physical layout. - -Basic keycodes are entered without the ~KC_~ prefix. Symbols can be entered -as-is, except for '-' (~MINS~), '.' (~DOT~), '|' (~PIPE~), and '"' (~DQUO~). -Empty cells are unused. - -The base layer is maintained as separate tables for tap alphas, tap thumbs, and -hold. Other layers are specified as a single hand including thumbs. Tables are -combined to produce the keymap for each layer. - -Mods (and reset) will be available on sub layers on the same hand as the layer -change thumb key. Unknown names are considered to be layer names. - - -**** Base - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-base.png]] - -The base layer alphas are Colemak Mod-DH. Dot, comma, slash, and apostrophe are -included with the alphas. The primary, secondary, and tertiary thumb keys are -backspace, enter, delete on the right and space, tab, escape on the left. - -Alternative alpha arrangements are also available. - - -***** Tap - - -****** Alphas - -#+NAME: colemakdh -| Q | W | F | P | B | J | L | U | Y | ' | -| A | R | S | T | G | M | N | E | I | O | -| Z | X | C | D | V | K | H | , | DOT | / | - - -****** Thumbs - -#+NAME: thumbs -| U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP | - - -***** Hold - -#+NAME: hold -| RESET | | | | | | | | | RESET | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| BUTTON | ALGR | | | | | | | ALGR | BUTTON | -| U_NP | U_NP | MEDIA | NAV | MOUSE | SYM | NUM | FUN | U_NP | U_NP | - - -**** Nav - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-nav.png]] - -Primary right-hand layer (left home thumb) is navigation and editing. Cursor -keys are on the home position, line and page movement below, clipboard above, -caps lock and insert on the inner column. Thumb keys are duplicated from the -base layer to avoid having to layer change mid edit and to enable auto-repeat. - -Alternative clipboard key mappings and navigation key arrangements are -available. - -#+NAME: nav-r -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| CAPS | LEFT | DOWN | UP | RGHT | -| INS | HOME | PGDN | PGUP | END | -| ENT | BSPC | DEL | U_NP | U_NP | - - -**** Mouse - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-mouse.png]] - -Secondary right-hand layer is mouse emulation. Mouse movement mirrors cursor -navigation on home and wheel mirrors line / page movement below. Buttons are on -the thumbs (L, M, R). Mouse movement, click, and drag, with modifiers, can be -performed from the home position. Clipboard keys are duplicated from the Nav -layer. - -#+NAME: mouse-r -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| | MS_L | MS_D | MS_U | MS_R | -| | WH_L | WH_D | WH_U | WH_R | -| BTN1 | BTN3 | BTN2 | U_NP | U_NP | - - -**** Button - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-button.png]] - -Provides mouse buttons, mods, and clipboard keys for use with integrated or -external pointing devices, used with either hand. The layer is available for -automatic activation depending on hardware and configuration. It can also be -activated manually by holding a bottom row pinkie key (however GUI and Undo will -be unavailable). - -#+NAME: button -| U_UND | U_CUT | U_CPY | U_PST | U_RDO | U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| U_UND | U_CUT | U_CPY | U_PST | U_RDO | U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| U_NP | U_NP | BTN2 | BTN3 | BTN1 | BTN1 | BTN3 | BTN2 | U_NP | U_NP | - - -**** Media - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-media.png]] - -Tertiary right-hand layer is media control, with volume up / down and next / -prev mirroring the navigation keys. Pause, stop and mute are on thumbs. RGB -control is on the top row (combine with shift to invert). Unused keys are -available for other related functions. - -#+NAME: media-r -| RGB_TOG | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | -| | MPRV | VOLD | VOLU | MNXT | -| | | | | | -| MSTP | MPLY | MUTE | U_NP | U_NP | - - -**** Num - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-num.png]] - -Primary left-hand layer (right home thumb) is numerals and symbols. Numerals -are in the standard numpad locations with symbols in the remaining positions. -Dot is duplicated from the base layer. - -#+NAME: num-l -| [ | 7 | 8 | 9 | ] | -| ; | 4 | 5 | 6 | = | -| ` | 1 | 2 | 3 | \ | -| U_NP | U_NP | DOT | 0 | MINS | - - -**** Sym - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-sym.png]] - -Secondary left-hand layer has shifted symbols in the same locations to reduce -chording when using mods with shifted symbols. Open parenthesis is duplicated -next to close parenthesis. - -#+NAME: sym-l -| { | & | * | ( | } | -| : | $ | % | ^ | + | -| ~ | ! | @ | # | PIPE | -| U_NP | U_NP | ( | ) | _ | - - -**** Fun - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-fun.png]] - -Tertiary left-hand layer has function keys mirroring the numerals on the primary -layer with extras on the pinkie column, plus system keys on the inner column. -App (menu) is on the tertiary thumb key and other thumb keys are duplicated from -the base layer to enable auto-repeat. - - -#+NAME: fun-l -| F12 | F7 | F8 | F9 | PSCR | -| F11 | F4 | F5 | F6 | SLCK | -| F10 | F1 | F2 | F3 | PAUS | -| U_NP | U_NP | APP | SPC | TAB | - - -**** Alternative Layouts - -The defaults are recommended, but alternative layouts are provided to -accommodate existing muscle memory and platform differences. - - -***** Alphas - -To select, append the corresponding option to the ~make~ command line when -building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. - - -****** AZERTY - -~MIRYOKU_ALPHAS=AZERTY~ - -#+NAME: azerty -| A | Z | E | R | T | Y | U | I | O | P | -| Q | S | D | F | G | H | J | K | L | M | -| W | X | C | V | B | N | , | DOT | / | ' | - - -****** Colemak - -~MIRYOKU_ALPHAS=COLEMAK~ - -#+NAME: 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 | , | DOT | / | - - -****** Colemak Mod-DHk - -~MIRYOKU_ALPHAS=COLEMAKDHK~ - -#+NAME: colemakdhk -| Q | W | F | P | B | J | L | U | Y | ' | -| A | R | S | T | G | K | N | E | I | O | -| Z | X | C | D | V | M | H | , | DOT | / | - - -****** Dvorak - -~MIRYOKU_ALPHAS=DVORAK~ - -#+NAME: dvorak -| ' | , | DOT | P | Y | F | G | C | R | L | -| A | O | E | U | I | D | H | T | N | S | -| / | Q | J | K | X | B | M | W | V | Z | - - -****** Halmak - -~MIRYOKU_ALPHAS=HALMAK~ - -#+NAME: halmak -| W | L | R | B | Z | ' | Q | U | D | J | -| S | H | N | T | , | DOT | A | E | O | I | -| F | M | V | C | / | G | P | X | K | Y | - - -****** Workman - -~MIRYOKU_ALPHAS=WORKMAN~ - -#+NAME: workman -| Q | D | R | W | B | J | F | U | P | ' | -| A | S | H | T | G | Y | N | E | O | I | -| Z | X | M | C | V | K | L | , | DOT | / | - - -****** QWERTY - -~MIRYOKU_ALPHAS=QWERTY~ - -#+NAME: 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 | , | DOT | / | - - -****** QWERTZ - -~MIRYOKU_ALPHAS=QWERTZ~ - -#+NAME: qwertz -| Q | W | E | R | T | Z | U | I | O | P | -| A | S | D | F | G | H | J | K | L | ' | -| Y | X | C | V | B | N | M | , | DOT | / | - - -***** Nav - - -****** vi-Style - -To select, append ~MIRYOKU_NAV=VI~ to the ~make~ command line when building. -Not available with ~MIRYOKU_LAYERS=FLIP~. - - -******* Nav - -#+NAME: nav-r-vi -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| LEFT | DOWN | UP | RGHT | CAPS | -| HOME | PGDN | PGUP | END | INS | -| ENT | BSPC | DEL | U_NP | U_NP | - - -******* Mouse - -#+NAME: mouse-r-vi -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| MS_L | MS_D | MS_U | MS_R | | -| WH_L | WH_D | WH_U | WH_R | | -| BTN1 | BTN3 | BTN2 | U_NP | U_NP | - - -******* Media - -#+NAME: media-r-vi -| RGB_TOG | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | -| MPRV | VOLD | VOLU | MNXT | | -| | | | | | -| MSTP | MPLY | MUTE | U_NP | U_NP | - - -****** Inverted-T - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-reference-flip-invertedt.png]] - -To select, append ~MIRYOKU_NAV=INVERTEDT~ to the ~make~ command line when -building. Only available with ~MIRYOKU_LAYERS=FLIP~. - - -******* Nav - -#+NAME: nav-l-invertedt -| PGUP | HOME | UP | END | INS | -| PGDN | LEFT | DOWN | RGHT | CAPS | -| U_UND | U_CUT | U_CPY | U_PST | U_RDO | -| U_NP | U_NP | DEL | BSPC | ENT | - - -******* Mouse - -#+NAME: mouse-l-invertedt -| WH_U | WH_L | MS_U | WH_R | | -| WH_D | MS_L | MS_D | MS_R | | -| U_UND | U_CUT | U_CPY | U_PST | U_RDO | -| U_NP | U_NP | BTN2 | BTN3 | BTN1 | - - -******* Media - -#+NAME: media-l-invertedt -| | | VOLU | | | -| | MPRV | VOLD | MNXT | | -| RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | RGB_TOG | -| U_NP | U_NP | MUTE | MPLY | MSTP | - - -***** Clipboard - -Keycodes are translated according to the following tables. - -By default, the main clipboard keys (cut, copy, and paste) use the CUA bindings -and should work in general unix and windows applications, emacs, and terminal -emulators. The additional keys (undo, redo) usually require rebinding in the -application. - -To select, append the corresponding option to the ~make~ command line when -building, e.g. ~MIRYOKU_CLIPBOARD=WIN~. - - -****** Default - -#+NAME: clipboard -| U_RDO | AGIN | -| U_PST | S(KC_INS) | -| U_CPY | C(KC_INS) | -| U_CUT | S(KC_DEL) | -| U_UND | UNDO | - - -****** Fun Cluster - -~MIRYOKU_CLIPBOARD=FUN~ - -#+NAME: clipboard-fun -| U_RDO | AGIN | -| U_PST | PSTE | -| U_CPY | COPY | -| U_CUT | CUT | -| U_UND | UNDO | - - -****** Mac - -~MIRYOKU_CLIPBOARD=MAC~ - -#+NAME: clipboard-mac -| U_RDO | SCMD(KC_Z) | -| U_PST | LCMD(KC_V) | -| U_CPY | LCMD(KC_C) | -| U_CUT | LCMD(KC_X) | -| U_UND | LCMD(KC_Z) | - - -****** Windows - -~MIRYOKU_CLIPBOARD=WIN~ - -#+NAME: clipboard-win -| U_RDO | C(KC_Y) | -| U_PST | C(KC_V) | -| U_CPY | C(KC_C) | -| U_CUT | C(KC_X) | -| U_UND | C(KC_Z) | - - -***** Layers - - -****** Flip - -Flip base layer thumb keys and sub layers between right and left hands. - -To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building. - - -******* Thumbs - -#+NAME: thumbs-flip -| U_NP | U_NP | DEL | BSPC | ENT | TAB | SPC | ESC | U_NP | U_NP | - - -******* Hold - -#+NAME: hold-flip -| RESET | | | | | | | | | RESET | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| BUTTON | ALGR | | | | | | | ALGR | BUTTON | -| U_NP | U_NP | FUN | NUM | SYM | MOUSE | NAV | MEDIA | U_NP | U_NP | - - -******* Nav - -#+NAME: nav-l -| HOME | PGDN | PGUP | END | INS | -| LEFT | DOWN | UP | RGHT | CAPS | -| U_UND | U_CUT | U_CPY | U_PST | U_RDO | -| U_NP | U_NP | DEL | BSPC | ENT | - - -******* Mouse - -#+NAME: mouse-l -| WH_L | WH_D | WH_U | WH_R | | -| MS_L | MS_D | MS_U | MS_R | | -| U_UND | U_CUT | U_CPY | U_PST | U_RDO | -| U_NP | U_NP | BTN2 | BTN3 | BTN1 | - - -******* Media - -#+NAME: media-l -| RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | RGB_TOG | -| MPRV | VOLD | VOLU | MNXT | | -| | | | | | -| U_NP | U_NP | MUTE | MPLY | MSTP | - - -******* Num - -#+NAME: num-r -| [ | 7 | 8 | 9 | ] | -| = | 4 | 5 | 6 | ; | -| \ | 1 | 2 | 3 | ` | -| MINS | 0 | DOT | U_NP | U_NP | - - -******* Sym - -#+NAME: sym-r -| { | & | * | ( | } | -| + | $ | % | ^ | : | -| PIPE | ! | @ | # | ~ | -| _ | ( | ) | U_NP | U_NP | - - -******* Fun - -#+NAME: fun-r -| PSCR | F7 | F8 | F9 | F12 | -| SLCK | F4 | F5 | F6 | F11 | -| PAUS | F1 | F2 | F3 | F10 | -| TAB | SPC | APP | U_NP | U_NP | - - -**** COMMENT Templates - -#+NAME: tem -| | | | | | | | | | | -|------+------+------+------+------+------+------+------+------+------| -| | | | | | | | | | | -| | | | | | | | | | | -| | | | | | | | | | | -| U_NP | U_NP | | | | | | | U_NP | U_NP | - - -Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat. - -#+NAME: tem-r -| | | | | | -|------+------+------+------+------| -| | | | | | -| | | | | | -| | | | | | -| ENT | BSPC | DEL | U_NP | U_NP | - -#+NAME: tem-l -| | | | | | -|------+------+------+------+------| -| | | | | | -| | | | | | -| | | | | | -| U_NP | U_NP | ESC | SPC | TAB | - - -** Code Generation - -The layout is maintained in emacs org-mode tables and converted to QMK keymap -data structures using embedded python scripts. - - -*** Table Conversion Scripts - - -**** table-layout-taphold - -Produce base layer from separate tap and hold tables. - -#+NAME: table-layout-taphold -#+BEGIN_SRC python :var alphas_table=colemakdh :var thumbs_table=thumbs :var hold_table=hold :var symbol_names_table=symbol-names :var mods_table=mods :var nonkc_table=nonkc :tangle no :results verbatim -width = 19 -mods_dict = dict.fromkeys(mods_table[0]) -nonkc_tuple = tuple(nonkc_table[0]) -symbol_names_dict = {} -for symbol, name, shifted_symbol, shifted_name in symbol_names_table: - symbol_names_dict[symbol] = name - symbol_names_dict[shifted_symbol] = shifted_name -results = '' -for tap_row, hold_row in zip(alphas_table + thumbs_table, hold_table): - results += ' ' - for tap, hold in zip(tap_row, hold_row): - if tap == '': - code = 'U_NU' - elif tap in symbol_names_dict: - code = symbol_names_dict[tap] - else: - code = tap - if not str(code).startswith(nonkc_tuple): - code = 'KC_' + str(code) - if hold in mods_dict: - code = str(hold) + '_T(' + code + ')' - elif hold != '' and hold != 'U_NP' and hold != 'RESET': - code = 'LT(' + str(hold) + ', ' + code + ')' - results += (code + ', ').ljust(width) - results = results.rstrip(' ') + '\n' -results = results.rstrip('\n, ') -return results -#+END_SRC - -#+RESULTS: table-layout-taphold -: KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, -: LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), -: KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, -: U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP - - -**** table-layout-half - -Produce sub layers given layer name and corresponding table for single hand and -incorporating mods and reset from base layer. Layer names must end with 'R' or -'L'. A layer with shifted symbols can also be generated. - -#+NAME: table-layout-half -#+BEGIN_SRC python :var hold_table=hold :var mode="r" :var half_table=nav-r :var symbol_names_table=symbol-names :var mods_table=mods :var nonkc_table=nonkc :var shift="false" :tangle no :results verbatim -width = 9 -mods_dict = dict.fromkeys(mods_table[0]) -nonkc_tuple = tuple(nonkc_table[0]) -symbol_names_dict = {} -shifted_symbol_names_dict = {} -for symbol, name, shifted_symbol, shifted_name in symbol_names_table: - symbol_names_dict[symbol] = name - symbol_names_dict[shifted_symbol] = shifted_name - shifted_symbol_names_dict[symbol] = shifted_name -length = len(half_table[0]) -results = '' -for half_row, hold_row in zip(half_table, hold_table): - results += ' ' - hold_row_l, hold_row_r = hold_row[:length], hold_row[length:] - for lr, hold_row_lr in ('l', hold_row_l), ('r', hold_row_r): - if lr == mode: - for half in half_row: - if half == '': - code = 'U_NU' - elif shift == "true" and half in shifted_symbol_names_dict: - code = shifted_symbol_names_dict[half] - elif half in symbol_names_dict: - code = symbol_names_dict[half] - else: - code = half - if not str(code).startswith(nonkc_tuple): - code = 'KC_' + str(code) - results += (str(code) + ', ').ljust(width) - else: - for hold in hold_row_lr: - if hold == '' or hold != 'U_NP' and hold != 'RESET' and hold not in mods_dict: - code = 'U_NA' - else: - code = hold - if not str(code).startswith(nonkc_tuple): - code = 'KC_' + str(code) - results += (str(code) + ', ').ljust(width) - results = results.rstrip(' ') + '\n' -results = results.rstrip('\n, ') -return results -#+END_SRC - -#+RESULTS: table-layout-half -: RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, -: KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, -: U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, -: U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP - - -**** table-layout-full - -Produce full layer from single table. Fill for unused keys is configurable. - -#+NAME: table-layout-full -#+BEGIN_SRC python :var table=button :var fill="TRNS" :var symbol_names_table=symbol-names :var nonkc_table=nonkc :tangle no :results verbatim -width = 9 -symbol_names_dict = {} -nonkc_tuple = tuple(nonkc_table[0]) -for symbol, name, shifted_symbol, shifted_name in symbol_names_table: - symbol_names_dict[symbol] = name - symbol_names_dict[shifted_symbol] = shifted_name -results = '' -for row in table: - results += ' ' - for key in row: - if key == '': - code = fill - elif key in symbol_names_dict: - code = symbol_names_dict[key] - else: - code = key - if not str(code).startswith(nonkc_tuple): - code = 'KC_' + str(code) - results += (code + ', ').ljust(width) - results = results.rstrip(' ') + '\n' -results = results.rstrip('\n, ') -return results -#+END_SRC - -#+RESULTS: table-layout-full -: U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, -: KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, -: U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, -: U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - - -**** table-enums - -Produce layer enums from layer names in hold table. - -#+NAME: table-enums -#+BEGIN_SRC python :var hold_table=hold :var mods_table=mods :tangle no -mods_dict = dict.fromkeys(mods_table[0]) -layers = [ 'BASE', 'BUTTON' ] -for hold_row in hold_table: - for hold in hold_row: - if hold not in mods_dict and hold != '' and hold != 'U_NP' and hold != 'RESET' and hold not in layers: - layers.append(hold) -results = 'enum layers { ' + ', '.join(layers) + ' };' -return results -#+END_SRC - -#+RESULTS: table-enums -: enum layers { BASE, BUTTON, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; - - -**** table-keycode-mappings - -Produce keycode mappings according to the provided table. - -#+NAME: table-keycode-mappings -#+BEGIN_SRC python :var table=clipboard :var symbol_names_table=symbol-names :var nonkc_table=nonkc :tangle no -nonkc_tuple = tuple(nonkc_table[0]) -symbol_names_dict = {} -for symbol, name, shifted_symbol, shifted_name in symbol_names_table: - symbol_names_dict[symbol] = name - symbol_names_dict[shifted_symbol] = shifted_name -results = '' -for f,t in table: - if t == '': - code = 'U_NU' - elif t in symbol_names_dict: - code = symbol_names_dict[t] - else: - code = t - if not str(code).startswith(nonkc_tuple): - code = 'KC_' + str(code) - results += '#define ' + f + ' ' + code + '\n' -return results -#+END_SRC - -#+RESULTS: table-keycode-mappings -: #define U_RDO KC_AGIN -: #define U_PST S(KC_INS) -: #define U_CPY C(KC_INS) -: #define U_CUT S(KC_DEL) -: #define U_UND KC_UNDO - - -**** COMMENT python-version - -C-c C-c in code block to update - -#+NAME: python-version -#+BEGIN_SRC python :tangle no -import sys -return sys.version -#+END_SRC - -#+RESULTS: python-version -: 3.9.4 (default, Apr 9 2021, 01:15:05) -: [GCC 5.4.0 20160609] - - -*** Data - - -**** symbol-names - -Symbol, name, and shifted symbol mappings for use in tables. - -#+NAME: symbol-names -| ` | GRV | ~ | TILD | -| "-" | MINS | _ | UNDS | -| = | EQL | + | PLUS | -| [ | LBRC | { | LCBR | -| ] | RBRC | } | RCBR | -| \ | BSLS | PIPE | PIPE | -| ; | SCLN | : | COLN | -| ' | QUOT | DQUO | DQUO | -| , | COMM | < | LT | -| "." | DOT | > | GT | -| / | SLSH | ? | QUES | -| 1 | 1 | ! | EXLM | -| 2 | 2 | @ | AT | -| 3 | 3 | # | HASH | -| 4 | 4 | $ | DLR | -| 5 | 5 | % | PERC | -| 6 | 6 | ^ | CIRC | -| 7 | 7 | & | AMPR | -| 8 | 8 | * | ASTR | -| 9 | 9 | ( | LPRN | -| 0 | 0 | ) | RPRN | - - -**** mods - -Modifiers usable in hold table. Need to have the same name for ~KC_~ and ~_T~ -versions. - -#+NAME: mods -| LSFT | LCTL | LALT | LGUI | ALGR | - - -**** nonkc - -Keycodes that match any of these prefixes will not have ~KC_~ automatically -prepended. - -#+NAME: nonkc -| U_ | RGB_ | RESET | S( | C( | SCMD( | LCMD( | - - -**** header - -Header for tangled files. - -#+NAME: header -#+BEGIN_SRC C :main no :tangle no -Copyright 2019 Manna Harbour -https://github.com/manna-harbour/miryoku -generated -*- buffer-read-only: t -*- +#+BEGIN_SRC sh :tangle no +qmk compile -c -kb crkbd -km manna-harbour_miryoku # build for crkbd +qmk flash -c -kb crkbd -km manna-harbour_miryoku # build for crkbd and flash +qmk compile -c -kb crkbd -km manna-harbour_miryoku -e MIRYOKU_ALPHAS=QWERTY -e MIRYOKU_NAV=INVERTEDT -e MIRYOKU_CLIPBOARD=WIN -e MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts #+END_SRC -**** license-qmk +**** make -License for tangled QMK C source files. +First ~cd~ to the repository root. Then build with ~make~. E.g. -#+NAME: license-qmk -#+BEGIN_SRC C :main no :tangle no -// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . +#+BEGIN_SRC sh :tangle no +make clean crkbd:manna-harbour_miryoku # build for crkbd +make clean crkbd:manna-harbour_miryoku:flash # build for crkbd and flash +make clean crkbd:manna-harbour_miryoku MIRYOKU_ALPHAS=QWERTY MIRYOKU_NAV=INVERTEDT MIRYOKU_CLIPBOARD=WIN MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts #+END_SRC +*** Workflow Builds + +Firmware can be built via GitHub Actions workflows without use of a local build environment. Local tools are still required for [[https://docs.qmk.fm/#/newbs_flashing][flashing]]. + +First log in to GitHub, fork the [[#miryoku-qmk-development-branch][Miryoku QMK development branch]] repository, and enable workflows. + +To access a workflow, visit the Actions tab and select the workflow. To download the firmware from a workflow run, select the workflow, select the workflow run, select the desired Artifacts, and unzip the downloaded zip file. + +Workflow files are in [[../../.github/workflows]]. + + +**** Build Examples + +Copy one of the included Build Example workflow files, edit the ~name~ value, and edit and add options and values as desired. Select Run workflow, select the Branch if desired, and activate Run workflow. + +Options are specified in the ~with~ section and are of the following form. +: option: '["value"]' + +For multiple values per option use the following form, and a matrix build will be performed for each combination of values across all options. +: option: '["value1","value2"]' + +The ~keyboard~ option specifies the keyboard and is required. All other options are optional. + +The ~alphas~, ~nav~, ~clipboard~, and ~layers~ options correspond to the [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options. The ~mapping~ option corresponds to the alternative [[#subset-mapping][mapping]] options. Alternative layout and mapping options are given in the documentation in the form ~MIRYOKU_OPTION=VALUE~. To use here, convert to the form specified above. Use ~default~ to represent the default value. Values for these five options are case-insensitive. See the [[../../.github/workflows/test-all-configs.yml][Test All Configs workflow file]] for all supported values. + +The ~rules~ and ~config~ options can be used to specify values to be appended to ~custom_rules.mk~ and ~custom_config.h~, respectively. Separate multiple lines with ~\n~. + + +**** Build Inputs + +The Build Inputs workflow can be used without editing workflow files. Select Run workflow, select the Branch and fill out the form as desired, and activate Run workflow. + +Options are specified by entering values directly in the corresponding field. Multiple comma separated values can be entered per option and a matrix build will be performed for each combination of values across all options. + +The ~Keyboard~ option specifies the keyboard and is required. All other options are optional. + +The ~Miryoku Alphas~, ~Miryoku Nav~, ~Miryoku Clipboard~, and ~Miryoku Layers~ options correspond to the [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options. The ~Miryoku Mapping~ option corresponds to the alternative [[#subset-mapping][mapping]] options. Alternative layout and mapping options are given in the documentation in the form ~MIRYOKU_OPTION=VALUE~. To use here, enter the ~value~ in the corresponding ~Miryoku Option~ field. Use ~default~ to represent the default value. Values for these five options are case-insensitive. + +The ~custom_rules.mk~ and ~custom_config.h~ options can be used to specify values to be appended to the corresponding files. Join multiple lines with ~\n~. + + ** Subset Mapping The keymap, build options, and configuration are shared between keyboards. The @@ -875,255 +120,26 @@ The keymap is defined for ~LAYOUT_miryoku~ which is 10x4, with the outer 2 positions on the bottom row unused and the rest of the bottom row being the thumb keys. +- [[./rules.mk]] :: Build options. Automatically included. -**** [[./rules.mk][users/manna-harbour_miryoku/rules.mk]] +- [[./custom_rules.mk]] :: Custom ~make~ options including customised defaults for alternative layout options, for local builds. Included from ~rules.mk~. -Build options. Automatically included. +- [[./post_rules.mk]] :: Handles Miryoku ~make~ options. Included from ~rules.mk~. -#+BEGIN_SRC makefile :noweb yes :padline no :tangle rules.mk -# <
> +- [[./config.h]] :: Config options. Automatically included. -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -AUTO_SHIFT_ENABLE = yes # Auto Shift +- [[./custom_config.h]] :: Custom config options for local builds. Included from ~config.h~. -SRC += manna-harbour_miryoku.c # keymap +- [[./manna-harbour_miryoku.h]] :: Keymap-related definitions. Included from ~manna-harbour_miryoku.c~. Layer data is generated by [[https://github.com/manna-harbour/miryoku_babel][Miryoku Babel]] and is included from files in the [[miryoku_babel]] directory. -# alternative layouts: - -# alphas -ifneq ($(strip $(MIRYOKU_ALPHAS)),) - OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS) -endif - -# nav -ifneq ($(strip $(MIRYOKU_NAV)),) - OPT_DEFS += -DMIRYOKU_NAV_$(MIRYOKU_NAV) -endif - -# clipboard -ifneq ($(strip $(MIRYOKU_CLIPBOARD)),) - OPT_DEFS += -DMIRYOKU_CLIPBOARD_$(MIRYOKU_CLIPBOARD) -endif - -# layers -ifneq ($(strip $(MIRYOKU_LAYERS)),) - OPT_DEFS += -DMIRYOKU_LAYERS_$(MIRYOKU_LAYERS) -endif - -# subset mappings -ifneq ($(strip $(MIRYOKU_MAPPING)),) - OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING) -endif -#+END_SRC +- [[./manna-harbour_miryoku.c]] :: Contains the keymap. Added from ~rules.mk~. -**** [[./config.h][users/manna-harbour_miryoku/config.h]] +*** Community Layouts -Config options. Automatically included. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle config.h -// <
> - -<> - -#pragma once - -// default but used in macros -#undef TAPPING_TERM -#define TAPPING_TERM 200 - -// Prevent normal rollover on alphas from accidentally triggering mods. -#define IGNORE_MOD_TAP_INTERRUPT - -// Enable rapid switch from tap to hold, disables double tap hold auto-repeat. -#define TAPPING_FORCE_HOLD - -// Auto Shift -#define NO_AUTO_SHIFT_ALPHA -#define AUTO_SHIFT_TIMEOUT TAPPING_TERM -#define AUTO_SHIFT_NO_SETUP - -// Recommended for heavy chording. -#define QMK_KEYS_PER_SCAN 4 - -// Mouse key speed and acceleration. -#undef MOUSEKEY_DELAY -#define MOUSEKEY_DELAY 0 -#undef MOUSEKEY_INTERVAL -#define MOUSEKEY_INTERVAL 16 -#undef MOUSEKEY_WHEEL_DELAY -#define MOUSEKEY_WHEEL_DELAY 0 -#undef MOUSEKEY_MAX_SPEED -#define MOUSEKEY_MAX_SPEED 6 -#undef MOUSEKEY_TIME_TO_MAX -#define MOUSEKEY_TIME_TO_MAX 64 -#+END_SRC - - -**** [[./manna-harbour_miryoku.h][users/manna-harbour_miryoku/manna-harbour_miryoku.h]] - -Keymap-related definitions. Included from ~manna-harbour_miryoku.c~. Can be -included from keymap or layout ~keymap.c~ if needed. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle manna-harbour_miryoku.h -// <
> - -<> - -#pragma once - -#include QMK_KEYBOARD_H - -#define U_NP KC_NO // key is not present -#define U_NA KC_NO // present but not available for use -#define U_NU KC_NO // available but not used - -<> - -#if defined MIRYOKU_CLIPBOARD_FUN -<> -#elif defined MIRYOKU_CLIPBOARD_MAC -<> -#elif defined MIRYOKU_CLIPBOARD_WIN -<> -#else -<> -#endif - - -#+END_SRC - - -**** [[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] - -Contains the keymap. Added from ~rules.mk~. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle manna-harbour_miryoku.c -// <
> - -<> - -#include "manna-harbour_miryoku.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -#if defined MIRYOKU_LAYERS_FLIP - [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_AZERTY -<> - #elif defined MIRYOKU_ALPHAS_COLEMAK -<> - #elif defined MIRYOKU_ALPHAS_COLEMAKDHK -<> - #elif defined MIRYOKU_ALPHAS_DVORAK -<> - #elif defined MIRYOKU_ALPHAS_HALMAK -<> - #elif defined MIRYOKU_ALPHAS_WORKMAN -<> - #elif defined MIRYOKU_ALPHAS_QWERTY -<> - #elif defined MIRYOKU_ALPHAS_QWERTZ -<> - #else -<> - #endif - ), - #if defined MIRYOKU_NAV_INVERTEDT - [NAV] = LAYOUT_miryoku( -<> - ), - [MOUSE] = LAYOUT_miryoku( -<> - ), - [MEDIA] = LAYOUT_miryoku( -<> - ), - #else - [NAV] = LAYOUT_miryoku( -<> - ), - [MOUSE] = LAYOUT_miryoku( -<> - ), - [MEDIA] = LAYOUT_miryoku( -<> - ), - #endif - [NUM] = LAYOUT_miryoku( -<> - ), - [SYM] = LAYOUT_miryoku( -<> - ), - [FUN] = LAYOUT_miryoku( -<> - ), -#else - [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_AZERTY -<> - #elif defined MIRYOKU_ALPHAS_COLEMAK -<> - #elif defined MIRYOKU_ALPHAS_COLEMAKDHK -<> - #elif defined MIRYOKU_ALPHAS_DVORAK -<> - #elif defined MIRYOKU_ALPHAS_HALMAK -<> - #elif defined MIRYOKU_ALPHAS_WORKMAN -<> - #elif defined MIRYOKU_ALPHAS_QWERTY -<> - #elif defined MIRYOKU_ALPHAS_QWERTZ -<> - #else -<> - #endif - ), - #if defined MIRYOKU_NAV_VI - [NAV] = LAYOUT_miryoku( -<> - ), - [MOUSE] = LAYOUT_miryoku( -<> - ), - [MEDIA] = LAYOUT_miryoku( -<> - ), - #else - [NAV] = LAYOUT_miryoku( -<> - ), - [MOUSE] = LAYOUT_miryoku( -<> - ), - [MEDIA] = LAYOUT_miryoku( -<> - ), - #endif - [NUM] = LAYOUT_miryoku( -<> - ), - [SYM] = LAYOUT_miryoku( -<> - ), - [FUN] = LAYOUT_miryoku( -<> - ), -#endif - [BUTTON] = LAYOUT_miryoku( -<> - ) -}; -#+END_SRC - - -*** Layouts - -To use the keymap on a keyboard supporting the layouts feature, ~LAYOUT_miryoku~ -is defined as a macro mapping onto the layout's own ~LAYOUT~ macro, leaving the -unused keys as ~KC_NO~. +To use the keymap on a keyboard supporting the community layouts feature, +~LAYOUT_miryoku~ is defined as a macro mapping onto the layout's own ~LAYOUT~ +macro, leaving the unused keys as ~KC_NO~. For keyboards supporting multiple layouts for which subset mappings are available, select the layout with ~FORCE_LAYOUT~ in the ~make~ command line when @@ -1166,90 +182,18 @@ make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=LITE # dz60, with lite ma #+END_SRC -***** [[../../layouts/community/60_ansi/manna-harbour_miryoku/config.h][layouts/community/60_ansi/manna-harbour_miryoku/config.h]] +**** alice -Contains subset mapping. +This is a hybrid mapping. Only the 3x10 alphas plus spacebars as primary thumb keys are mapped. The remaining keys are the same as the default keymap but with semicolon in place of quote. The keys adjacent to the spacebars are also mapped as corresponding thumb keys but may not be usable as such. -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/60_ansi/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#if defined MIRYOKU_MAPPING_NOREVERSEANGLE - #define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_60_ansi(\ -K00, K01, K02, K03, K04, XXX, XXX, XXX, K05, K06, K07, K08, K09, XXX,\ - K10, K11, K12, K13, K14, XXX, XXX, XXX, K15, K16, K17, K18, K19, XXX,\ - K20, K21, K22, K23, K24, XXX, XXX, XXX, K25, K26, K27, K28, K29,\ - XXX, K32, K33, K34, XXX, XXX, XXX, XXX, K35, K36, K37, XXX,\ - XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\ -) -#elif defined MIRYOKU_MAPPING_LITE - #if defined MIRYOKU_LAYERS_FLIP - #define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_60_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_BSPC, \ -KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ -KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ -KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ -KC_LCTL, KC_LGUI, KC_LALT, K36, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ -) - #else - #define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_60_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_BSPC, \ -KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \ -KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \ -KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \ -KC_LCTL, KC_LGUI, KC_LALT, K33, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \ -) - #endif -#else - #define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_60_ansi(\ -XXX, XXX, K00, K01, K02, K03, K04, XXX, K05, K06, K07, K08, K09, XXX,\ - XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\ - K20, K21, K22, K23, K24, XXX, XXX, XXX, K25, K26, K27, K28, K29,\ - XXX, XXX, K32, K33, K34, XXX, XXX, XXX, K35, K36, K37, XXX,\ - XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\ -) -#endif -#+END_SRC +Keyboards supporting this layout: cheshire/curiosity, handwired/owlet60, mechlovin/adelais, projectkb/alice, sck/osa, axolstudio/yeti, coarse/cordillera, edda, evyd13/wonderland, fallacy, kb_elmo/sesame, keebsforall/coarse60, ramonimbao/aelith, sneakbox/aliceclone, tkc/osav2, zoo/wampus. -***** [[../../layouts/community/60_ansi/manna-harbour_miryoku/keymap.c][layouts/community/60_ansi/manna-harbour_miryoku/keymap.c]] +**** alice_split_bs -Required by the build system. +This is a hybrid mapping. Only the 3x10 alphas plus spacebars as primary thumb keys are mapped. The remaining keys are the same as the default keymap but with semicolon in place of quote. The keys adjacent to the spacebars are also mapped as corresponding thumb keys but may not be usable as such. -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/60_ansi/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC +Keyboards supporting this layout: cheshire/curiosity, ergosaurus, handwired/colorlice, handwired/owlet60, mechlovin/adelais, projectkb/alice, sck/osa, tgr/alice, xelus/valor/rev1, xelus/valor/rev2, axolstudio/yeti, coarse/cordillera, edda, evyd13/wonderland, fallacy, kb_elmo/sesame, keebsforall/coarse60, nightly_boards/alter/rev1, ramonimbao/aelith, seigaiha, sneakbox/aliceclone, tkc/osav2, zoo/wampus. **** ergodox @@ -1261,6 +205,18 @@ are unused. [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox.png]] +An alternative subset mapping is provided with all keys shifted up one row creating thumb keys in the original alpha area. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS~ to the ~make~ command line when building. + +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows.png]] + +Another alternative subset mapping is provided as for ~MIRYOKU_MAPPING=SHIFTED_ROWS~ but with the thumb keys shifted one position in the direction of thumb extension. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS~ to the ~make~ command line when building. + +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows-extended_thumbs.png]] + +Another alternative subset mapping is provided as for ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS~ but with the pinkie column moved down one row. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER~ to the ~make~ command line when building. + +[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows-extended_thumbs-pinkie_stagger.png]] + Keyboards supporting this layout: ergodone, ergodox_ez, ergodox_infinity, hotdox. Example build command lines: @@ -1268,49 +224,10 @@ Example build command lines: #+BEGIN_SRC sh :tangle no make ergodox_infinity:manna-harbour_miryoku:flash # ergodox_infinity make ergodox_ez:manna-harbour_miryoku:flash # ergodox_ez -#+END_SRC +make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS # ergodox_ez, shifted rows +make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS # ergodox_ez, shifted rows, extended thumbs +make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER # ergodox_ez, shifted rows, extended thumbs, pinkie stagger - -***** [[../../layouts/community/ergodox/manna-harbour_miryoku/config.h][layouts/community/ergodox/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ergodox_pretty(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ -XXX, XXX, XXX, XXX, K32, K37, XXX, XXX, XXX, XXX,\ - XXX, XXX, XXX, XXX,\ - XXX, XXX,\ - K33, K34, XXX, XXX, K35, K36\ -) -#+END_SRC - - -***** [[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c -// <
> - -<> #+END_SRC @@ -1328,60 +245,6 @@ make pabile/p40:manna-harbour_miryoku:flash MIRYOKU_MAPPING=ROTATE # pabile/p40, #+END_SRC -***** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/config.h][layouts/community/ortho_4x10/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_4x10/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#if defined MIRYOKU_MAPPING_ROTATE -#define LAYOUT_miryoku( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_ortho_4x10( \ -XXX, XXX, K37, K36, K35, K34, K33, K32, XXX, XXX, \ -K29, K28, K27, K26, K25, K24, K23, K22, K21, K20, \ -K19, K18, K17, K16, K15, K14, K13, K12, K11, K10, \ -K09, K08, K07, K06, K05, K04, K03, K02, K01, K00 \ -) -#else -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_ortho_4x10( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ -XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ -) -#endif -#+END_SRC - - -***** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** ortho_4x12 For the ortho_4x12 layout, the middle two columns, and the 2 keys on each end of @@ -1419,71 +282,6 @@ make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS #+END_SRC -***** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h][layouts/community/ortho_4x12/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#if defined MIRYOKU_MAPPING_SPLIT -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_4x12(\ -KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\ -K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\ -K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\ -K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\ -) -#elif defined MIRYOKU_MAPPING_EXTENDED_THUMBS -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_4x12(\ -K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\ -KC_NO, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, KC_NO\ -) -#else -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_4x12(\ -K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\ -KC_NO, KC_NO, K32, K33, K34, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_NO\ -) -#endif -#+END_SRC - - -***** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** ortho_5x12 As per ortho_4x12 but the top row is unused. @@ -1501,74 +299,6 @@ make keebio/nyquist/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_TH #+END_SRC -***** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/config.h][layouts/community/ortho_5x12/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_5x12/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#if defined MIRYOKU_MAPPING_SPLIT -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_5x12(\ -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ -KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\ -K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\ -K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\ -K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\ -) -#elif defined MIRYOKU_MAPPING_EXTENDED_THUMBS -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_5x12(\ -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ -K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\ -KC_NO, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, KC_NO\ -) -#else -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_5x12(\ -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ -K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\ -KC_NO, KC_NO, K32, K33, K34, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_NO\ -) -#endif -#+END_SRC - - -***** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** ortho_5x15 For the ortho_5x15 layout, the top row, middle 5 columns, and the 2 keys on each @@ -1595,64 +325,6 @@ make idobo:manna-harbour_miryoku:flash # idobo #+END_SRC -***** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/config.h][layouts/community/ortho_5x15/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_5x15/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_5x15(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -K00, K01, K02, K03, K04, XXX, XXX, XXX, XXX, XXX, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, XXX, XXX, XXX, XXX, XXX, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29,\ -XXX, XXX, XXX, K32, K33, K34, XXX, XXX, XXX, K35, K36, K37, XXX, XXX, XXX\ -) -#else -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_ortho_5x15(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -K00, K01, K02, K03, K04, XXX, XXX, XXX, XXX, XXX, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, XXX, XXX, XXX, XXX, XXX, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29,\ -XXX, XXX, K32, K33, K34, XXX, XXX, XXX, XXX, XXX, K35, K36, K37, XXX, XXX\ -) -#endif -#+END_SRC - -#+RESULTS: - - -***** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** planck_mit The middle two columns including the middle 2u key, and the 2 keys on each end @@ -1668,42 +340,6 @@ make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=planck_mit # planck re #+END_SRC -***** [[../../layouts/community/planck_mit/manna-harbour_miryoku/config.h][layouts/community/planck_mit/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/planck_mit/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_planck_mit(\ -K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\ -KC_NO, KC_NO, K32, K33, K34, KC_NO, K35, K36, K37, KC_NO, KC_NO\ -) -#+END_SRC - - -***** [[../../layouts/community/planck_mit/manna-harbour_miryoku/keymap.c][layouts/community/planck_mit/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/planck_mit/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - **** split_3x5_3 @@ -1717,43 +353,6 @@ make minidox:manna-harbour_miryoku:flash # minidox #+END_SRC -***** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/config.h][layouts/community/split_3x5_3/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/split_3x5_3/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_split_3x5_3(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - K32, K33, K34, K35, K36, K37\ -) -#+END_SRC - - -***** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** split_3x6_3 The outer columns are unused. @@ -1768,42 +367,6 @@ make crkbd:manna-harbour_miryoku:flash # crkbd #+END_SRC -***** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/config.h][layouts/community/split_3x6_3/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/split_3x6_3/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_split_3x6_3(\ -KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO,\ -KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO,\ -KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO,\ - K32, K33, K34, K35, K36, K37\ -) -#+END_SRC - - -***** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - *** Keyboards @@ -1812,6 +375,17 @@ To use the keymap on a keyboard which does not support the layouts feature, macro, leaving the unused keys as ~KC_NO~. +**** a_dux + +[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard. + +To build for this keyboard, + +#+BEGIN_SRC sh :tangle no +make a_dux:manna-harbour_miryoku:flash +#+END_SRC + + **** atreus Only the main 5x3 alphas and the inner 3 thumb keys are used. @@ -1823,42 +397,25 @@ make atreus:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/atreus/keymaps/manna-harbour_miryoku/config.h]] +**** bastardkb/charybdis/3x5 -Contains subset mapping. +[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard. -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/atreus/keymaps/manna-harbour_miryoku/config.h -// <
> +To build for this keyboard, -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX\ -) +#+BEGIN_SRC sh :tangle no +make bastardkb/charybdis/3x5:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c]] +**** bastardkb/charybdis/4x6 -Required by the build system. +On the trackball side the bottom row thumb key is used as the tertiary thumb key. Additionally, [[#thumb-combos][thumb combos]] are enabled automatically for this keyboard. -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c -// <
> +To build for this keyboard, -<> +#+BEGIN_SRC sh :tangle no +make bastardkb/charybdis/4x6:manna-harbour_miryoku:flash #+END_SRC @@ -1871,44 +428,12 @@ make bastardkb/scylla:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h][keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h]] +**** draculad -Contains subset mapping. +To build for this keyboard, -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_split_4x6_5( \ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ - K32, K33, K34, K35, K36, K37, \ - XXX, XXX, XXX, XXX \ -) -#+END_SRC - - -***** [[../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c][keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> +#+BEGIN_SRC sh :tangle no +make draculad:manna-harbour_miryoku:flash #+END_SRC @@ -1921,42 +446,15 @@ make ergotravel:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h][keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h]] +**** ferris -Contains subset mapping. +[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard. -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h -// <
> +To build for this keyboard, -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ -XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \ -) -#+END_SRC - - -***** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c][keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> +#+BEGIN_SRC sh :tangle no +make ferris/0_2:manna-harbour_miryoku:flash # 0_2 +make ferris/sweep:manna-harbour_miryoku:flash # sweep #+END_SRC @@ -1971,43 +469,12 @@ make for_science:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/config.h][keyboards/for_science/keymaps/manna-harbour_miryoku/config.h]] +**** fortitude60 -Contains subset mapping. +To build for this keyboard, -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/for_science/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - K32, K33, K34, K35, K36, K37\ -) -#+END_SRC - - -***** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c][keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> +#+BEGIN_SRC sh :tangle no +make fortitude60:manna-harbour_miryoku:flash #+END_SRC @@ -2022,45 +489,6 @@ make gergo:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/config.h][keyboards/gergo/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/gergo/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_gergo(\ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ - K32, K33, K34, XXX, XXX, K35, K36, K37\ -) -#+END_SRC - - -***** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c][keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** handwired/dactyl_manuform/4x5 Only the main 5x3 alphas and the main 3 thumb keys are used. @@ -2072,48 +500,6 @@ make handwired/dactyl_manuform/4x5:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - XXX, XXX, XXX, XXX, \ - K32, K33, K36, K37, \ - K34, XXX, XXX, K35, \ - XXX, XXX, XXX, XXX \ -) -#+END_SRC - - -***** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** handwired/dactyl_manuform/5x6 Only the main 5x3 alphas and the main 3 thumb keys are used. @@ -2125,46 +511,12 @@ make handwired/dactyl_manuform/5x6:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h]] +**** jorne -Contains subset mapping. +To build for this keyboard, -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_5x6( \ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \ - XXX, XXX, XXX, XXX, \ - K32, K33, K36, K37, \ - K34, XXX, XXX, K35, \ - XXX, XXX, XXX, XXX \ -) -#+END_SRC - - -***** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> +#+BEGIN_SRC sh :tangle no +make jorne:manna-harbour_miryoku:flash #+END_SRC @@ -2179,46 +531,6 @@ make keebio/iris/rev4:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ - K32, K33, K34, K35, K36, K37\ -) -#+END_SRC - - -***** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** keyboardio/atreus Only the main 5x3 alphas and the inner 3 thumb keys are used. @@ -2230,45 +542,6 @@ make keyboardio/atreus:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ -N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ -K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ -K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, \ -XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \ -) -#+END_SRC - - -***** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** lily58 Only the main 5x3 alphas and the inner 3 thumb keys are used. @@ -2280,46 +553,6 @@ make lily58:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/config.h][keyboards/lily58/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/lily58/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ - XXX, K32, K33, K34, K35, K36, K37, XXX\ -) -#+END_SRC - - -***** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c][keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** moonlander The main 5x3 alphas are used as usual. The primary, secondary, and tertiary @@ -2333,44 +566,14 @@ make moonlander:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h][keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h]] +**** pluckey -Contains subset mapping. +Only the main 5x3 alphas and the main 3 thumb keys are used. -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h -// <
> +To build for this keyboard, -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT_moonlander(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX,\ -XXX, XXX, XXX, XXX, K32, XXX, XXX, K37, XXX, XXX, XXX, XXX,\ - K33, K34, XXX, XXX, K35, K36\ -) -#+END_SRC - - -***** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c][keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> +#+BEGIN_SRC sh :tangle no +make pluckey:manna-harbour_miryoku:flash #+END_SRC @@ -2385,48 +588,6 @@ make redox_w:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h][keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ -XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, XXX\ -) -#+END_SRC - -#+RESULTS: - - -***** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c][keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** sofle To build for this keyboard, @@ -2436,46 +597,6 @@ make sofle:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/config.h][keyboards/sofle/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/sofle/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#define LAYOUT_miryoku(\ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ -)\ -LAYOUT(\ -XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ -XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ - XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX\ -) -#+END_SRC - - -***** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c][keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** splitkb/kyria Only the main 5x3 alphas and the middle 3 lower thumb keys are used. @@ -2497,60 +618,6 @@ make splitkb/kyria:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # #+END_SRC -***** [[../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h][keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define XXX KC_NO - -#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ -) -#else -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \ -XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \ -XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \ - XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX \ -) -#endif -#+END_SRC - - -***** [[../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c][keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c]] - -Required by the build system. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - **** torn To build for this keyboard, @@ -2560,73 +627,14 @@ make torn:manna-harbour_miryoku:flash #+END_SRC -***** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/config.h][keyboards/torn/keymaps/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/torn/keymaps/manna-harbour_miryoku/config.h -// <
> - -<> - -#pragma once - -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT_split_3x6_4( \ -KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO, \ -KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \ -KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \ - KC_NO, K32, K33, K34, K35, K36, K37, KC_NO \ -) -#+END_SRC - -#+RESULTS: +** Additional and Experimental Features -***** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c][keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c]] +*** Thumb Combos -Required by the build system. +~MIRYOKU_KLUDGE_THUMBCOMBOS=yes~ -#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c -// <
> - -<> -#+END_SRC - - -*** Customisation - -To add customisations to a keyboard or layout while importing the miryoku -keymap, copy ~config.h~ and ~keymap.c~ from the keyboard or layout's -~manna-harbour_miryoku/~ directory to a new directory, and create ~rules.mk~ -containing ~USER_NAME := manna-harbour_miryoku~. The miryoku keymap will be -imported and customisations can be added to those files as usual. Keycodes can -be added to unused keys by editing ~LAYOUT_miryoku~ in ~config.h~. - -For an unsupported keyboard or layout, do as above with a similar keyboard or -layout and modify ~LAYOUT_miryoku~ in ~config.h~ referring to the keyboard or -layout's ~LAYOUT~ macro. - - -**** Examples - -To use any of the examples, create a new branch from the miryoku development -branch and follow the same steps as seen in the commit messages and code changes -in the examples, making the appropriate changes for your keyboard and desired -customisations. - - -***** Add Layers - -- https://github.com/manna-harbour/qmk_firmware/commits/miryoku-examples-add-layers/keyboards/crkbd/keymaps/miryoku-examples-add-layers - - -** Experimental Features +Combo the primary and secondary thumb keys to emulate the tertiary thumb key. Can be used on keyboards with missing or hard to reach tertiary thumb keys or for compatibility with same. Requires suitable keycaps to enable the thumb to press both keys simultaneously. *** Bilateral Combinations @@ -2639,33 +647,6 @@ customisations. - [[https://github.com/manna-harbour/qmk_firmware/issues/33][Retro Shift]] -** Documentation - - -*** QMK - -- https://docs.qmk.fm/ -- https://docs.qmk.fm/#/config_options -- https://docs.qmk.fm/#/feature_advanced_keycodes -- https://docs.qmk.fm/#/feature_auto_shift -- https://docs.qmk.fm/#/feature_layers -- https://docs.qmk.fm/#/feature_layouts -- https://docs.qmk.fm/#/feature_mouse_keys -- https://docs.qmk.fm/#/feature_userspace -- https://docs.qmk.fm/#/getting_started_introduction -- https://docs.qmk.fm/#/getting_started_make_guide -- https://docs.qmk.fm/#/keycodes -- https://docs.qmk.fm/#/mod_tap -- https://docs.qmk.fm/#/tap_hold - - -*** Org Mode - -- https://orgmode.org/ -- https://orgmode.org/manual/Tables.html -- https://orgmode.org/manual/Working-with-Source-Code.html - - ** [[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]] diff --git a/users/manna-harbour_miryoku/rules.mk b/users/manna-harbour_miryoku/rules.mk index 085f0b5019..879c7fc43e 100644 --- a/users/manna-harbour_miryoku/rules.mk +++ b/users/manna-harbour_miryoku/rules.mk @@ -1,36 +1,12 @@ # Copyright 2019 Manna Harbour # https://github.com/manna-harbour/miryoku -# generated -*- buffer-read-only: t -*- MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control AUTO_SHIFT_ENABLE = yes # Auto Shift -SRC += manna-harbour_miryoku.c # keymap +SRC += manna-harbour_miryoku.c # keymaps -# alternative layouts: +include users/manna-harbour_miryoku/custom_rules.mk -# alphas -ifneq ($(strip $(MIRYOKU_ALPHAS)),) - OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS) -endif - -# nav -ifneq ($(strip $(MIRYOKU_NAV)),) - OPT_DEFS += -DMIRYOKU_NAV_$(MIRYOKU_NAV) -endif - -# clipboard -ifneq ($(strip $(MIRYOKU_CLIPBOARD)),) - OPT_DEFS += -DMIRYOKU_CLIPBOARD_$(MIRYOKU_CLIPBOARD) -endif - -# layers -ifneq ($(strip $(MIRYOKU_LAYERS)),) - OPT_DEFS += -DMIRYOKU_LAYERS_$(MIRYOKU_LAYERS) -endif - -# subset mappings -ifneq ($(strip $(MIRYOKU_MAPPING)),) - OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING) -endif +include users/manna-harbour_miryoku/post_rules.mk diff --git a/users/mnil/config.h b/users/mnil/config.h index b471b9a818..3547785ff7 100644 --- a/users/mnil/config.h +++ b/users/mnil/config.h @@ -19,4 +19,3 @@ #define MK_3_SPEED #define MK_MOMENTARY_ACCEL #define PERMISSIVE_HOLD -#define TAPPING_TERM 250 diff --git a/users/mnil/mnil.c b/users/mnil/mnil.c index 00da6086ef..d5bd0ef0bb 100644 --- a/users/mnil/mnil.c +++ b/users/mnil/mnil.c @@ -140,7 +140,7 @@ void aa_reset(qk_tap_dance_state_t *state, void *user_data) { // clang-format off qk_tap_dance_action_t tap_dance_actions[] = { - [AAE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ae_finished, ae_reset), - [OAA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, aa_finished, aa_reset) + [AAE] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ae_finished, ae_reset, 250), + [OAA] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, aa_finished, aa_reset, 250) }; // clang-format on diff --git a/users/mtdjr/mtdjr.c b/users/mtdjr/mtdjr.c index cd67bf3b5f..9c6c26bc86 100644 --- a/users/mtdjr/mtdjr.c +++ b/users/mtdjr/mtdjr.c @@ -137,7 +137,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _RAISE: #ifdef RGBLIGHT_ENABLE rgblight_sethsv_noeeprom (240, 255, 255); diff --git a/users/muppetjones/.clang-format b/users/muppetjones/.clang-format new file mode 100644 index 0000000000..df3dbd17b4 --- /dev/null +++ b/users/muppetjones/.clang-format @@ -0,0 +1,26 @@ +--- +BasedOnStyle: Google +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: 'true' +AlignConsecutiveDeclarations: 'true' +AlignOperands: 'true' +AllowAllParametersOfDeclarationOnNextLine: 'false' +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: 'false' +BinPackArguments: 'true' +BinPackParameters: 'true' +ColumnLimit: '160' +IndentCaseLabels: 'true' +IndentPPDirectives: AfterHash +IndentWidth: '4' +MaxEmptyLinesToKeep: '1' +PointerAlignment: Right +SortIncludes: 'false' +SpaceBeforeAssignmentOperators: 'true' +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: 'false' +TabWidth: '4' +UseTab: Never + +... diff --git a/users/muppetjones/config.h b/users/muppetjones/config.h new file mode 100644 index 0000000000..e8afa9d8c5 --- /dev/null +++ b/users/muppetjones/config.h @@ -0,0 +1,44 @@ +/* Copyright 2020 Stephen J. Bush @muppetjones + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#ifdef RGBLIGHT_ENABLE +// # define RGBLIGHT_ANIMATIONS +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 16 +# define RGBLIGHT_VAL_STEP 16 +# define RGBLIGHT_LIMIT_VAL 150 +# define RGBLIGHT_SLEEP +// # define RGBLIGHT_LAYERS +#endif + +#ifdef TAP_DANCE_ENABLE +// Change "hold" time (default is 200 ms) +// -- used for tap dance and other tap mods +# define TAPPING_TERM 175 + +// Prevent normal rollover on alphas from accidentally triggering mods. +# define IGNORE_MOD_TAP_INTERRUPT + +// Enable rapid switch from tap to hold, disables double tap hold auto-repeat. +# define TAPPING_FORCE_HOLD + +#endif + + +#define COMBO_COUNT 3 +#define COMBO_TERM 40 diff --git a/users/muppetjones/features/casemodes.c b/users/muppetjones/features/casemodes.c new file mode 100644 index 0000000000..da7c5e8fa9 --- /dev/null +++ b/users/muppetjones/features/casemodes.c @@ -0,0 +1,247 @@ +/* Copyright 2021 Andrew Rae ajrae.nv@gmail.com @andrewjrae + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "casemodes.h" + +/* The caps word concept started with me @iaap on splitkb.com discord. + * However it has been implemented and extended by many splitkb.com users: + * - @theol0403 made many improvements to initial implementation + * - @precondition used caps lock rather than shifting + * - @dnaq his own implementation which also used caps lock + * - @sevanteri added underscores on spaces + * - @metheon extended on @sevanteri's work and added specific modes for + * snake_case and SCREAMING_SNAKE_CASE + * - @baffalop came up with the idea for xcase, which he implements in his own + * repo, however this is implemented by @iaap with support also for one-shot-shift. + * - @sevanteri + * - fixed xcase waiting mode to allow more modified keys and keys from other layers. + * - Added @baffalop's separator defaulting on first keypress, with a + * configurable default separator and overrideable function to determine + * if the default should be used. + */ + +#ifndef DEFAULT_XCASE_SEPARATOR +# define DEFAULT_XCASE_SEPARATOR KC_UNDS +#endif + +#define IS_OSM(keycode) (keycode >= QK_ONE_SHOT_MOD && keycode <= QK_ONE_SHOT_MOD_MAX) + +// bool to keep track of the caps word state +static bool caps_word_on = false; + +// enum to keep track of the xcase state +static enum xcase_state xcase_state = XCASE_OFF; +// the keycode of the xcase delimiter +static uint16_t xcase_delimiter; +// the number of keys to the last delimiter +static int8_t distance_to_last_delim = -1; + +// Check whether caps word is on +bool caps_word_enabled(void) { return caps_word_on; } + +// Enable caps word +void enable_caps_word(void) { + caps_word_on = true; +#ifndef CAPSWORD_USE_SHIFT + if (!host_keyboard_led_state().caps_lock) { + tap_code(KC_CAPS); + } +#endif +} + +// Disable caps word +void disable_caps_word(void) { + caps_word_on = false; +#ifndef CAPSWORD_USE_SHIFT + if (host_keyboard_led_state().caps_lock) { + tap_code(KC_CAPS); + } +#else + unregister_mods(MOD_LSFT); +#endif +} + +// Toggle caps word +void toggle_caps_word(void) { + if (caps_word_on) { + disable_caps_word(); + } else { + enable_caps_word(); + } +} + +// Get xcase state +enum xcase_state get_xcase_state(void) { return xcase_state; } + +// Enable xcase and pickup the next keystroke as the delimiter +void enable_xcase(void) { xcase_state = XCASE_WAIT; } + +// Enable xcase with the specified delimiter +void enable_xcase_with(uint16_t delimiter) { + xcase_state = XCASE_ON; + xcase_delimiter = delimiter; + distance_to_last_delim = -1; +} + +// Disable xcase +void disable_xcase(void) { xcase_state = XCASE_OFF; } + +// Place the current xcase delimiter +static void place_delimiter(void) { + if (IS_OSM(xcase_delimiter)) { + // apparently set_oneshot_mods() is dumb and doesn't deal with handedness for you + uint8_t mods = xcase_delimiter & 0x10 ? (xcase_delimiter & 0x0F) << 4 : xcase_delimiter & 0xFF; + set_oneshot_mods(mods); + } else { + tap_code16(xcase_delimiter); + } +} + +// Removes a delimiter, used for double tap space exit +static void remove_delimiter(void) { + if (IS_OSM(xcase_delimiter)) { + clear_oneshot_mods(); + } else { + tap_code(KC_BSPC); + } +} + +// overrideable function to determine whether the case mode should stop +__attribute__((weak)) bool terminate_case_modes(uint16_t keycode, const keyrecord_t *record) { + switch (keycode) { + // Keycodes to ignore (don't disable caps word) + case KC_A ... KC_Z: + case KC_1 ... KC_0: + case KC_MINS: + case KC_BSPC: + // If mod chording disable the mods + if (record->event.pressed && (get_mods() != 0)) { + return true; + } + break; + case KC_UNDS: + // Allow to be pressed with or without a modifier (prob w/ shift) + break; + default: + if (record->event.pressed) { + return true; + } + break; + } + return false; +} + +/* overrideable function to determine whether to use the default separator on + * first keypress when waiting for the separator. */ +__attribute__((weak)) bool use_default_xcase_separator(uint16_t keycode, const keyrecord_t *record) { + // for example: + /* switch (keycode) { */ + /* case KC_A ... KC_Z: */ + /* case KC_1 ... KC_0: */ + /* return true; */ + /* } */ + return false; +} + +bool process_case_modes(uint16_t keycode, const keyrecord_t *record) { + if (caps_word_on || xcase_state) { + if ((QK_MOD_TAP <= keycode && keycode <= QK_MOD_TAP_MAX) || (QK_LAYER_TAP <= keycode && keycode <= QK_LAYER_TAP_MAX)) { + // Earlier return if this has not been considered tapped yet + if (record->tap.count == 0) return true; + keycode = keycode & 0xFF; + } + + if (keycode >= QK_LAYER_TAP && keycode <= QK_ONE_SHOT_LAYER_MAX) { + // let special keys and normal modifiers go through + return true; + } + + if (xcase_state == XCASE_WAIT) { + // grab the next input to be the delimiter + if (use_default_xcase_separator(keycode, record)) { + enable_xcase_with(DEFAULT_XCASE_SEPARATOR); + } else if (record->event.pressed) { + // factor in mods + if (get_mods() & MOD_MASK_SHIFT) { + keycode = LSFT(keycode); + } else if (get_mods() & MOD_BIT(KC_RALT)) { + keycode = RALT(keycode); + } + enable_xcase_with(keycode); + return false; + } else { + if (IS_OSM(keycode)) { + // this catches the OSM release if no other key was pressed + set_oneshot_mods(0); + enable_xcase_with(keycode); + return false; + } + // let other special keys go through + return true; + } + } + + if (record->event.pressed) { + // handle xcase mode + if (xcase_state == XCASE_ON) { + // place the delimiter if space is tapped + if (keycode == KC_SPACE) { + if (distance_to_last_delim != 0) { + place_delimiter(); + distance_to_last_delim = 0; + return false; + } + // remove the delimiter and disable modes + else { + remove_delimiter(); + disable_xcase(); + disable_caps_word(); + return true; + } + } + // decrement distance to delimiter on back space + else if (keycode == KC_BSPC) { + --distance_to_last_delim; + } + // don't increment distance to last delim if negative + else if (distance_to_last_delim >= 0) { + // puts back a one shot delimiter if you we're back to the delimiter pos + if (distance_to_last_delim == 0 && (IS_OSM(xcase_delimiter))) { + place_delimiter(); + } + ++distance_to_last_delim; + } + + } // end XCASE_ON + + // check if the case modes have been terminated + if (terminate_case_modes(keycode, record)) { + disable_caps_word(); + disable_xcase(); + } +#ifdef CAPSWORD_USE_SHIFT + else if (keycode >= KC_A && keycode <= KC_Z) { + tap_code16(LSFT(keycode)); + return false; + } +#endif + + } // end if event.pressed + + return true; + } + return true; +} diff --git a/users/muppetjones/features/casemodes.h b/users/muppetjones/features/casemodes.h new file mode 100644 index 0000000000..4a8c00b3d2 --- /dev/null +++ b/users/muppetjones/features/casemodes.h @@ -0,0 +1,47 @@ +/* Copyright 2021 Andrew Rae ajrae.nv@gmail.com @andrewjrae + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 + +// Check whether caps word is on +bool caps_word_enabled(void); +// Enable caps word +void enable_caps_word(void); +// Disable caps word +void disable_caps_word(void); +// Toggle caps word +void toggle_caps_word(void); + +// enum for the xcase states +enum xcase_state { + XCASE_OFF = 0, // xcase is off + XCASE_ON, // xcase is actively on + XCASE_WAIT, // xcase is waiting for the delimiter input +}; + +// Get xcase state +enum xcase_state get_xcase_state(void); +// Enable xcase and pickup the next keystroke as the delimiter +void enable_xcase(void); +// Enable xcase with the specified delimiter +void enable_xcase_with(uint16_t delimiter); +// Disable xcase +void disable_xcase(void); + +// Function to be put in process user +bool process_case_modes(uint16_t keycode, const keyrecord_t *record); diff --git a/users/muppetjones/features/combos.c b/users/muppetjones/features/combos.c new file mode 100644 index 0000000000..a6d14bb25c --- /dev/null +++ b/users/muppetjones/features/combos.c @@ -0,0 +1,36 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifdef COMBO_ENABLE +# include QMK_KEYBOARD_H + +enum combos { + H_COMM_TAB, + L_U_SCLN, + J_M_CAPS, +}; + +const uint16_t PROGMEM h_comm_tab[] = {KC_H, KC_COMM, COMBO_END}; +const uint16_t PROGMEM l_u_scln[] = {KC_L, KC_U, COMBO_END}; +const uint16_t PROGMEM j_m_caps[] = {KC_J, KC_M, COMBO_END}; + +// COMBO_COUNT defined in config.h +combo_t key_combos[COMBO_COUNT] = { + [H_COMM_TAB] = COMBO(h_comm_tab, KC_TAB), + [L_U_SCLN] = COMBO(l_u_scln, KC_SCLN), + [J_M_CAPS] = COMBO(j_m_caps, KC_CAPS), +}; +#endif diff --git a/tests/tap_dance/config.h b/users/muppetjones/features/combos.h similarity index 91% rename from tests/tap_dance/config.h rename to users/muppetjones/features/combos.h index 6aada3efd3..af092904e4 100644 --- a/tests/tap_dance/config.h +++ b/users/muppetjones/features/combos.h @@ -1,4 +1,4 @@ -/* Copyright 2022 Jouke Witteveen +/* Copyright 2020 Stephen J. Bush * * This 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,5 +15,3 @@ */ #pragma once - -#include "test_common.h" diff --git a/users/muppetjones/features/dancelayers.c b/users/muppetjones/features/dancelayers.c new file mode 100644 index 0000000000..e7e5f2a6f2 --- /dev/null +++ b/users/muppetjones/features/dancelayers.c @@ -0,0 +1,98 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifdef TAP_DANCE_ENABLE + +# include QMK_KEYBOARD_H +# include "muppetjones.h" +# include "dancelayers.h" + +// Initialize tap structure associated with example tap dance key +static td_tap_t lyr_tap_state = {.is_press_action = true, .state = TD_NONE}; + +/* @brief Determine the current tap dance state + * @param A tap dance state struct. + * @return A struct. + */ +td_state_t cur_dance(qk_tap_dance_state_t *state) { + switch (state->count) { + case 1: + if (!state->pressed) + return TD_1X_TAP; + else + return TD_1X_HOLD; + case 2: + return TD_2X_TAP; + break; + case 3: + return TD_3X_TAP; + break; + case 4: + return TD_4X_TAP; + break; + default: + return TD_UNKNOWN; + } +} + +// Functions that control what our tap dance key does +__attribute__((weak)) void td_layer_finished(qk_tap_dance_state_t *state, void *user_data) { + lyr_tap_state.state = cur_dance(state); + switch (lyr_tap_state.state) { + case TD_1X_TAP: + if (layer_state_is(_MOUSE)) + layer_off(_MOUSE); + else + layer_on(_MOUSE); + break; + case TD_1X_HOLD: + layer_on(_ADJUST); + break; + case TD_2X_TAP: + // Toggle lower layer + if (layer_state_is(_LOWER)) + layer_off(_LOWER); + else + layer_on(_LOWER); + break; + case TD_3X_TAP: + // Toggle lower layer + if (layer_state_is(_RAISE)) + layer_off(_RAISE); + else + layer_on(_RAISE); + break; + case TD_4X_TAP: + // Toggle lower layer + if (layer_state_is(_ADJUST)) + layer_off(_ADJUST); + else + layer_on(_ADJUST); + break; + default: + break; + } +} + +__attribute__((weak)) void td_layer_reset(qk_tap_dance_state_t *state, void *user_data) { + // If the key was held down and now is released then switch off the layer + if (lyr_tap_state.state == TD_1X_HOLD) { + layer_off(_ADJUST); + } + lyr_tap_state.state = TD_NONE; +} + +#endif diff --git a/users/muppetjones/features/dancelayers.h b/users/muppetjones/features/dancelayers.h new file mode 100644 index 0000000000..23defcca92 --- /dev/null +++ b/users/muppetjones/features/dancelayers.h @@ -0,0 +1,82 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 TAP_DANCE_ENABLE +# include QMK_KEYBOARD_H + +/* + * TAP DANCE + * https://docs.qmk.fm/#/feature_tap_dance + */ + +// Define a type for as many tap dance states as you need +typedef enum { + TD_NONE = 0, + TD_UNKNOWN, + TD_1X_TAP, + TD_1X_HOLD, + TD_2X_TAP, + TD_3X_TAP, + TD_4X_TAP, +} td_state_t; + +// Our custom tap dance key; add any other tap dance keys to this enum +enum { + TD_LAYERS = 0, // NOTE: Start at 0 as this is also an array index +}; +# define TD_LAYR TD(TD_LAYERS) + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +// Declare the functions to be used with your tap dance key(s) + +/* @brief Determine the current tap dance state + * @param A tap dance state struct. + * @return A struct. + */ +td_state_t cur_dance(qk_tap_dance_state_t *state); + +// Functions associated with individual tap dances + +/* @brief Associate tap actions with layers. + * + * NOTE: Weak attribute. Can (and should) be defined in keymap.c + * + * @param state Pointer to a tap dance state object. + * @param user_data Pointer to user data. + * @return None. + */ +void td_layer_finished(qk_tap_dance_state_t *state, void *user_data); + +/* @brief Reset tap dance actions. + * + * NOTE: Weak attribute. Can (and should) be defined in keymap.c + * + * @param state Pointer to a tap dance state object. + * @param user_data Pointer to user data. + * @return None. + */ +void td_layer_reset(qk_tap_dance_state_t *state, void *user_data); + +/* Define tap dance actions. + */ +__attribute__((weak)) +qk_tap_dance_action_t tap_dance_actions[1] = {[TD_LAYERS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_layer_finished, td_layer_reset, 275)}; +#endif diff --git a/users/muppetjones/features/etchamouse.c b/users/muppetjones/features/etchamouse.c new file mode 100644 index 0000000000..e1d4c38e81 --- /dev/null +++ b/users/muppetjones/features/etchamouse.c @@ -0,0 +1,101 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "etchamouse.h" +#include "pointing_device.h" + +#if defined(POINTING_DEVICE_ENABLE) && defined(ENCODER_ENABLE) + +/** Track movement separately in both directions. This will allow us to + * smooth out the movement along diagonals + */ +typedef struct { + bool clockwise : 1; + uint8_t count : 7; + uint16_t timer : 16; + uint16_t elapsed : 16; +} key_tracker_t; + +static key_tracker_t tracker_x = {false, 0, 0, 0}; +static key_tracker_t tracker_y = {false, 0, 0, 0}; + +/** + * @brief Calculate the mouse move units for the given tracker. + * + * By using a key tracker rederence, we can minimize the amount of space + * required on the stack. As we will have the tracker object, we will also + * take the clockwise direction into account, which completely internalizes + * the movement unit logic within this single function. + * + * @param tracker: Pointer to a key tracker object. + * @return A integer from -127 to 127 + */ +static int8_t move_unit(key_tracker_t *tracker) { + if (0 == tracker->count) return 0; + + const uint16_t modifier = TAPPING_TERM_MOUSE_ENCODER < tracker->elapsed ? 1 : (TAPPING_TERM_MOUSE_ENCODER - tracker->elapsed) >> 1; + uint16_t speed = MOUSEKEY_INITIAL_SPEED + MOUSEKEY_MOVE_DELTA * modifier * (tracker->count >> 1); + + /* convert speed to USB mouse speed 1 to 127 */ + speed = (uint8_t)(speed / (1000.0f / MOUSEKEY_INTERVAL)); + speed = speed < 1 ? 1 : speed; + + return (tracker->clockwise ? 1 : -1) * (speed > MOUSEKEY_MOVE_MAX ? MOUSEKEY_MOVE_MAX : speed); +} + +/** + * @brief Update key press tracker + * + * Update the time elapsed since the last keypress. + * If the key has not been pressed since the tapping term, then reset the count to zero. + * If the key was pressed, update the timer and increment the count. + * Number of keypresses will degrade based on tapping term and zero out based + * on the persistenc term. + * + * @param tracker: The object to update + * @param pressed: A boolean indicating whether or not the key was pressed + * @return None. + */ +static void update_tracker(key_tracker_t *tracker, bool pressed, bool clockwise) { + tracker->elapsed = timer_elapsed(tracker->timer); + if (pressed) { + tracker->timer = timer_read(); + tracker->count += 1; + tracker->clockwise = clockwise; + } else if (TAPPING_TERM_PERSISTENCE < tracker->elapsed) { + tracker->count = 0; + } else if (TAPPING_TERM_MOUSE_ENCODER < tracker->elapsed) { + tracker->count >>= 1; + } +} + +bool encoder_update_mouse(uint8_t index, bool clockwise) { + report_mouse_t curr_report = pointing_device_get_report(); + + update_tracker(&tracker_x, 0 == index, clockwise); + update_tracker(&tracker_y, 1 == index, clockwise); + + curr_report.x += move_unit(&tracker_x); + curr_report.y += move_unit(&tracker_y); + + pointing_device_set_report(curr_report); + pointing_device_send(); + + return true; +} + +#endif diff --git a/users/muppetjones/features/etchamouse.h b/users/muppetjones/features/etchamouse.h new file mode 100644 index 0000000000..86b0d03c6e --- /dev/null +++ b/users/muppetjones/features/etchamouse.h @@ -0,0 +1,59 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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(POINTING_DEVICE_ENABLE) && defined(ENCODER_ENABLE) + +/* max value on report descriptor */ +# ifndef MOUSEKEY_MOVE_MAX +# define MOUSEKEY_MOVE_MAX 127 +# elif MOUSEKEY_MOVE_MAX > 127 +# error MOUSEKEY_MOVE_MAX needs to be smaller than 127 +# endif +# ifndef MOUSEKEY_MOVE_DELTA +# define MOUSEKEY_MOVE_DELTA 25 +# endif +# ifndef MOUSEKEY_INITIAL_SPEED +# define MOUSEKEY_INITIAL_SPEED 100 +# endif +# ifndef MOUSEKEY_INTERVAL +# define MOUSEKEY_INTERVAL 75 +# endif + +/** Amount of time (ms) before zeroing out the count. + * A higher value will result in smoother curves but may lower accuracy + */ +# ifndef TAPPING_TERM_PERSISTENCE +# define TAPPING_TERM_PERSISTENCE 150 +# endif + +/** Amount of time (ms) to register consecutive key presses + * A higher value will smooth out mouse movement and increase speed for + * consecutive presses. + */ +# ifndef TAPPING_TERM_MOUSE_ENCODER +# define TAPPING_TERM_MOUSE_ENCODER 50 +# endif + +/** @brief Update mouse position based on encoder movement. + * @param index The encoder index. 0 controls x-axis; 1 controls y-axis. + * @param clockwise Indicates direction encoder was turned. + * @returns None. + */ +bool encoder_update_mouse(uint8_t index, bool clockwise); + +#endif diff --git a/users/muppetjones/features/rgblayers.c b/users/muppetjones/features/rgblayers.c new file mode 100644 index 0000000000..46858ae671 --- /dev/null +++ b/users/muppetjones/features/rgblayers.c @@ -0,0 +1,69 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifdef RGBLIGHT_ENABLE +# include QMK_KEYBOARD_H +# include "rgblayers.h" + +static rgblight_config_t home_rgb; + +__attribute__((weak)) void set_layer_hsv(layer_state_t state, HSV* offset) {} + +/* Placeholder function + * If defined in a keymap.c, this will be ignored. + */ +__attribute__((weak)) void post_process_record_keymap(uint16_t keycode, keyrecord_t* record) { return; } + +void post_process_record_user(uint16_t keycode, keyrecord_t* record) { + // Regular user keycode case statement + switch (keycode) { +# ifdef RGBLIGHT_ENABLE + case RGB_HUD: + case RGB_HUI: + case RGB_SAD: + case RGB_SAI: + case RGB_VAD: + case RGB_VAI: + set_rgb_home(); + break; +# endif + default: + break; + } +} + +void set_rgb_home(void) { + home_rgb.raw = eeconfig_read_rgblight(); + // these get the current -- not eeprom + // home_rgb.hue = rgblight_get_hue(); + // home_rgb.sat = rgblight_get_sat(); + // home_rgb.val = rgblight_get_val(); +} + +void set_rgb_by_layer(layer_state_t state) { + if (!rgblight_is_enabled()) { + return; // lighting not enabled + } + + HSV layer_color = {home_rgb.hue, home_rgb.sat, home_rgb.val}; + set_layer_hsv(state, &layer_color); + rgblight_sethsv_noeeprom( // + layer_color.h, // all 3 MUST be btwn 0 and 255 + layer_color.s, // + layer_color.v // + ); +} +#endif diff --git a/users/muppetjones/features/rgblayers.h b/users/muppetjones/features/rgblayers.h new file mode 100644 index 0000000000..35be7d7fe4 --- /dev/null +++ b/users/muppetjones/features/rgblayers.h @@ -0,0 +1,22 @@ +/* Copyright 2020 Stephen J. Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 + +void set_rgb_by_layer(layer_state_t); +void set_rgb_home(void); +#endif diff --git a/users/muppetjones/muppetjones.c b/users/muppetjones/muppetjones.c new file mode 100644 index 0000000000..55051bdbcd --- /dev/null +++ b/users/muppetjones/muppetjones.c @@ -0,0 +1,57 @@ +/* Copyright 2020 Stephen J. Bush @muppetjones + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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 "muppetjones.h" +#include "tapmods.h" +#include "features/casemodes.h" + +/* Placeholder function + * If defined in a keymap.c, this will be ignored. + */ +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +/* Handle keypresses + */ +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_case_modes(keycode, record)) { + return false; + } + // Regular user keycode case statement + switch (keycode) { + case CLMK_DH: + if (record->event.pressed) { + set_single_persistent_default_layer(_CLMK_DH); + } + return false; + break; + 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 CAPSWRD: + if (record->event.pressed) { + toggle_caps_word(); + } + return false; + default: + break; + } + return process_record_keymap(keycode, record); +} diff --git a/users/muppetjones/muppetjones.h b/users/muppetjones/muppetjones.h new file mode 100644 index 0000000000..f5b2a3a465 --- /dev/null +++ b/users/muppetjones/muppetjones.h @@ -0,0 +1,56 @@ +/* Copyright 2020 Stephen J. Bush @muppetjones + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 + +#include "tapmods.h" +#include "wrappers.h" +#include "features/casemodes.h" + +#ifdef COMBO_ENABLE +# include "features/combos.h" +#endif + +#ifdef ENCODER_ENABLE +# include "features/etchamouse.h" +#endif + +#ifdef RGBLIGHT_ENABLE +# include "features/rgblayers.h" +#endif + +#ifdef TAP_DANCE_ENABLE +# include "features/dancelayers.h" +#endif + +/* Define layer names */ +enum userspace_layers { + _CLMK_DH = 0, + _QWERTY, + _MOUSE, // Intended for encoders. Mostly pass through. + _LOWER, + _RAISE, + _NAV, + _ADJUST, +}; + +// for casemodes +enum custom_keycodes { + CLMK_DH = SAFE_RANGE, + QWERTY, + CAPSWRD, +}; diff --git a/users/muppetjones/readme.md b/users/muppetjones/readme.md new file mode 100644 index 0000000000..6569c01d95 --- /dev/null +++ b/users/muppetjones/readme.md @@ -0,0 +1,23 @@ +# License + +Copyright 2020 Stephen J. Bush @muppetjones + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +# FEATURES + +- [Etch-a-sketch Encoders](readme/etchamouse.md) +- [RGB Layers](readme/rgblayers.md) +- [Tap Dance Layers](readme/dancelayers.md) +- [Tap Mods](readme/tapmods.md) diff --git a/users/muppetjones/readme/dancelayers.md b/users/muppetjones/readme/dancelayers.md new file mode 100644 index 0000000000..85c4b7cad9 --- /dev/null +++ b/users/muppetjones/readme/dancelayers.md @@ -0,0 +1,73 @@ +# Tap Dance Layers + +This feature creates a key that changes the current layer via tap dance. By +default, this assumes that you have the following layers defined: + +- `_ADJUST` +- `_LOWER` +- `_RAISE` +- `_MOUSE` + +And sets up the following tap dance: + +| Count | Action | Layer | +| ----- | ------ | --------- | +| 1x | hold | `_ADJUST` | +| 1x | tap | `_MOUSE` | +| 2x | tap | `_LOWER` | +| 3x | tap | `_RAISE` | +| 4x | tap | `_ADJUST` | + +## Usage + +> NOTE: If you use other tap-dance functions, you may require additonal setup. + +1. Copy `features/dancelayers.{c,h}` into your keymap or userspace directory. +2. Add the following to your `rules.mk` + + ``` + TAP_DANCE_ENABLE = yes + + SRC += ./features/dancelayers.c + ``` + +3. Add the following to your `keymap.c`: + + ``` + #ifdef TAP_DANCE_ENABLE + # include "features/dancelayers.h" + # define TD_LAYR TD(TD_LAYERS) + #else + # define TD_LAYR XXXXXXX + #endif + ``` + +4. Add `TD_LYR` to your keymap. + +## Functions and Enumerations + +The following functions are available for use: + +- `cur_dance` + +The following tap dance enumerations are defined: + +- `TD_1X_HOLD` +- `TD_1X_TAP` +- `TD_2X_TAP` +- `TD_3X_TAP` +- `TD_4X_TAP` + +## Overriding the Defaults + +If you want to define different layers to tap dance actions, you'll need to +define two additional functions in your `keymap.c`: + +- `td_lyr_finished` +- `td_lyr_reset` + +Both of these functions are necessary and require a certain pattern for each +layer. "Tap" actions are handled in `*_finished` while "hold" actions are +resolved in `*_finished` and `*_reset`. + +See the implementation in `dancelayers.c` for an example. diff --git a/users/muppetjones/readme/etchamouse.md b/users/muppetjones/readme/etchamouse.md new file mode 100644 index 0000000000..efcf718b22 --- /dev/null +++ b/users/muppetjones/readme/etchamouse.md @@ -0,0 +1,69 @@ +# Etch-a-Mouse + +Encoder-based mouse movement with acceleration! + +## Usage + +- Add the following to your rules.mk + + ``` + ENCODER_ENABLE = yes + POINTING_DEVICE_ENABLE = yes + ``` + +- Add the following block to your keymap.c + + ``` + #ifdef ENCODER_ENABLE + void encoder_update_user(uint8_t index, bool clockwise) { + # ifdef POINTING_DEVICE_ENABLE + encoder_update_mouse(index, clockwise); + # endif + return; + #endif + ``` + +> NOTE: I use the mousekey keycodes to add button one and two into my keymap. + +## How It Works + +> This implementation uses the pointing device library, but it reuses several +> of the same parameters from the mouse key acceleration. + +> The PD library is very light weight, but it does not animate cursor movement. +> tl;dr: The mouse movement will not be smooth! + +The acceleration has four parts: + +``` +initial speed + (delta * time * count) +``` + +1. **Initial Speed**. Uses the `MOUSEKEY_INITIAL_SPEED` parameter. +2. **Delta**. Uses the `MOUSEKEY_MOVE_DELTA` parameter. +3. **Time**. The faster you turn, the faster you move. + + Subtract the time elapsed since the last actuation from a tapping term, + defined by `TAPPING_TERM_MOUSE_ENCODER`†, with a minimum value of 1. + +4. **Count**. The more you turn, the faster you move. + + Count of the total number of actuations. This value will decay over time. + +† _I probably could and will eventually use `TAPPING_TERM`, but I did not want +to mess up my tap mods while experimenting with acceleration._ + +## Diagonal Movement + +Counting the number of actuations for a given axis allows us to persist movement +along a given axis to give us some diagonal movement when moving both axes, +which also helps with the acceleration a bit and makes the movement less blocky. + +## Time-based Decay (a.k.a., Deceleration) + +Originally, the actuation count zeroed out once the tapping term elapsed, but +this made the movement very choppy. Instead, the count will degrade on every +refresh after the tapping term has been exceeded; unfortunately, a refresh only +occurs on an actuation on either axis, so once the time elapsed exceeds the +persistence term, the count is cleared, which also removes any movement in that +axis. diff --git a/users/muppetjones/readme/rgblayers.md b/users/muppetjones/readme/rgblayers.md new file mode 100644 index 0000000000..fb69800177 --- /dev/null +++ b/users/muppetjones/readme/rgblayers.md @@ -0,0 +1,60 @@ +# Dynamic Underglow Lighting Per-Layer + +This bit of code allows you to define layer lighting that respects your current eeprom settings, e.g., brightness. It does this by storing the base state rgb + +## Setup + +1. Enable RGB underglow in your `rules.mk` + + ``` + RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + ``` + +2. (Optional) Add RGB configuration to your `config.h` + + ``` + #ifdef RGBLIGHT_ENABLE + // # define RGBLIGHT_ANIMATIONS + # define RGBLIGHT_HUE_STEP 8 + # define RGBLIGHT_SAT_STEP 16 + # define RGBLIGHT_VAL_STEP 16 + # define RGBLIGHT_LIMIT_VAL 150 + # define RGBLIGHT_SLEEP + // # define RGBLIGHT_LAYERS + #endif + ``` + +3. Add `set_layer_hsv` function. This is where you define your layer-specific colors by setting the HSV properties on the `layer_color` pointer. This example uses the QMK RGB configuration parameters to keep the layer colors offset based on the current EEPROM HSV. + + > NOTE: The HSV values should be between 0 and 255, but setting the modulus on saturation causes the lights to go white on my board. I _think_ this is due to overflow, but I haven't had the chance to try and resolve it yet. + + + ``` + #ifdef RGBLIGHT_ENABLE + void set_layer_hsv(layer_state_t state, HSV* layer_color) { + int32_t h = layer_color->h, s = layer_color->s, v = layer_color->v; + switch (get_highest_layer(state)) { + case _RAISE: + h += 2 * RGBLIGHT_HUE_STEP; + break; + case _LOWER: + h += -2 * RGBLIGHT_HUE_STEP; + break; + case _NAV: + h += 1 * RGBLIGHT_HUE_STEP; + break; + case _MOUSE: + h += -7 * RGBLIGHT_HUE_STEP; + break; + default: + break; + } + layer_color->h = h % 255; + layer_color->s = s; + layer_color->v = v % 255; + return; + } + #endif + ``` + +4. (Optional) If you're using `post_process_record_user`, you'll need to change the name in your keymap to `post_process_record_keymap`. We use the user function to update the HSV state after one of the RGB keycodes is pressed. diff --git a/users/muppetjones/readme/tapmods.md b/users/muppetjones/readme/tapmods.md new file mode 100644 index 0000000000..eb707e05d9 --- /dev/null +++ b/users/muppetjones/readme/tapmods.md @@ -0,0 +1,25 @@ +# Tap Mods + +## Standard Keys + +| Keycode | Tap | Hold | Description | +| -------- | ------- | ----- | ---------------------------------------------------- | +| `HY_ESC` | Esc | Hyper | Esc on tap; hyper when held | +| `HR_*` | A, O | LGUI | Home-row for Colemak mod-DH and right-handed numpad. | +| \'\' | R, I, 6 | LALT | Home-row for Colemak mod-DH and right-handed numpad. | +| \'\' | S, E, 5 | LCTL | Home-row for Colemak mod-DH and right-handed numpad. | +| \'\' | T, N, 4 | LSFT | Home-row for Colemak mod-DH and right-handed numpad. | + +## Layers + +| Keycode | Tap | Hold | Description | +| ------- | ----- | ----- | --------------------------- | +| LOWER | -- | Lower | Temporarily activate layer. | +| RAISE | -- | Raise | Temporarily activate layer. | +| NAV | -- | Nav | Temporarily activate layer. | +| LOW_ENT | Enter | Lower | | +| LOW_SPC | Space | Lower | | +| NAV_SPC | Space | Nav | | +| RAI_ENT | Enter | Raise | | +| RAI_SPC | Space | Raise | | +| RAI_TAB | Tab | Raise | | diff --git a/users/muppetjones/readme/wrappers.md b/users/muppetjones/readme/wrappers.md new file mode 100644 index 0000000000..e8365ab7ad --- /dev/null +++ b/users/muppetjones/readme/wrappers.md @@ -0,0 +1,153 @@ +# Keymap Wrappers + +> Pattern adapted from users/drashna/wrapper.h + +Defines several object macros for common keycode sets. Each macro typically +covers 5 keycodes with a left- or right-hand orientation, and macros are +generally grouped into rows of three or four. + +> TODO: Use keymap builder to generate images. + +## Example + +``` +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// clang-format off +[_MODS] = LAYOUT_wrapper( + _______, ___________________BLANK___________________, ... + ... +), +//clang-format on +} +``` + +Substitute the appropriate `LAYOUT` function, e.g., `LAYOUT_planck_grid` for your board. + +## Wrappers + +> **How to Read the Tables** +> +> - Headers are numbered when wrapper is not hand-specific +> - Headers use `L` and `R` to indicate handedness +> - Headers use `P`, `R`, `M`, and `I` to indicate pinky, ring, middle, and index, respectively +> - Wrappers define a maximum of **five** keycodes -- hands are shown on the same row for readability + +### Alpha: Colemak mod-DH + +| # | LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 1 | Q | W | F | P | B | J | L | U | Y | ;ˆ | +| 2 | A° | R° | S° | T° | G | M | N° | E° | I° | O° | +| 3 | Z | X | C | D | V˜ | K | H | , | . | / | + +- **ˆ:** (Optional) Replace `;` with `'` (top-right) +- **°:** (Optional) Home row modifiers on tap-hold (GACS, SCAG) +- **˜:** (Optional) Tap-hold `shift` on `v` + +### Alpha: QWERTY + +| # | LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 1 | Q | W | E | R | T | Y | U | I | O | P | +| 2 | A | S | D | F | G | H | J | K | L | ; | +| 3 | Z | X | C | V | B | N | M | , | . | / | + +### Blank(-ish) + +Defines macros for common filler. + +| 1 | 2 | 3 | 4 | 5 | +| ---- | ---- | ---- | ---- | ---- | +| TRNS | TRNS | TRNS | TRNS | TRNS | +| xxxx | xxxx | xxxx | xxxx | xxxx | + +| LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP | +| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | +| LGUI | LALT | LCTL | LSFT | TRNS | TRNS | RSFT | RCTL | LALT | RGUI | + +### Adjust + +| # | LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP | +| --- | ------ | ----- | ---- | ----- | ------ | ---- | ------ | ------ | ---- | ---- | +| 1 | Reset | Debug | xxxx | Term+ | Term- | xxxx | AGNORM | AGSWAP | xxxx | xxxx | +| 2 | RgbTog | Hue+ | Sat+ | Val+ | RgbMod | xxxx | CLMKDH | QWERTY | xxxx | xxxx | +| 3 | xxxx | Hue- | Sat- | Val- | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx | + +> Recommend: Define Right side per-board + +### Function + +| # | 1 | 2 | 3 | 4 | +| --- | --- | --- | --- | --- | +| 1 | F1 | F2 | F3 | F4 | +| 2 | F5 | F6 | F7 | F8 | +| 3 | F9 | F10 | F11 | F12 | + +### Media + +| # | 1 | 2 | 3 | 4 | 5 | +| --- | ----- | ----- | ----- | ---- | ---- | +| 1 | AuOn | MiOn | MuOn | Brm+ | Vol+ | +| 2 | AuOff | MiOff | MuOff | Brm- | Vol- | +| 3 | Play | Stop | Next | Prev | Mute | + +### Nav + +| # | RI+ | RI | RM | RR | RP | +| --- | ----- | ---- | ----- | ----- | ----- | +| 1 | Pg Up | Home | Wh Dn | Wh Up | End | +| 2 | Pg Dn | Left | Down | Up | Right | +| 3 | xxxx | xxxx | xxxx | xxxx | xxxx | + +### Numpad + +- `X Y` indicates the character `X` on keypress and character `Y` on `shift` keypress +- Second table shows characters with `alt` keypress + +| # | RI+ | RI | RM | RR | RP | +| --- | ----- | ----- | ----- | ----- | ----- | +| 1 | Del | `7 &` | `8 _` | `9 (` | | +| 2 | `- _` | `4 $` | `5 %` | `6 ^` | `*` | +| 3 | `= +` | `1 !` | `2 @` | `3 #` | `, <` | +| 4 | | `0 )` | `. >` | | | + +| # | RI+ | RI | RM | RR | RP | +| --- | ----- | ----- | ----- | ----- | ----- | +| 1 | | `¶ ‡` | `• °` | `ª ·` | `« »` | +| 2 | `– —` | `¢ ›` | `∞ fi` | `§ fl` | `° °` | +| 3 | `≠ ±` | `¡ ⁄` | `™ €` | `£ ‹` | `≤ ¯` | +| 4 | | | `º ‚` | | | + +### Symbols + +| # | LP | LR | LM | LI | LI+ | +| --- | ---- | ---- | ---- | ---- | ---- | +| 1 | ~ | \` | ( | ) | | +| 2 | LGUI | LALT | \[ ° | \] ° | \_ - | +| 3 | xxxx | xxxx | { | } | LSFT | + +- **°:** Home row modifiers on tap-hold (GACS, SCAG) + +### VIM + +| # | LP | LR | LM | LI | LI+ | +| --- | --- | --- | --- | --- | --- | +| 1 | Q° | W° | : | | | + +- **°:** Via transparency + +## Typical Layers + +My keymaps typically use the following layers. + +| # | Name | Via | Left | Right | +| --- | ---------- | ------------- | --------- | ------ | +| 0 | Colemak DH | Adjust | | | +| 1 | QWERTY | Adjust | | | +| 2 | Mouse | tap-dance | n/a | n/a | +| 3 | Lower | L home thumb | symbols | numpad | +| 4 | Raise | L outer thumb | | | +| 5 | Nav | R home thumb | home mods | nav | +| 6 | Adjust | tap-dance | RGB | MEDIA | diff --git a/users/muppetjones/rules.mk b/users/muppetjones/rules.mk new file mode 100644 index 0000000000..1decc2ed98 --- /dev/null +++ b/users/muppetjones/rules.mk @@ -0,0 +1,25 @@ +# Reduce firmware size +# https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ +# also requires in config.h +# NO_ACTION_MACRO +# NO_ACTION_FUNCTION +LTO_ENABLE = yes + +SRC += muppetjones.c +SRC += features/casemodes.c + +ifdef COMBO_ENABLE + SRC += ./features/combos.c +endif + +ifdef ENCODER_ENABLE + SRC += ./features/etchamouse.c +endif + +ifdef RGBLIGHT_ENABLE + SRC += ./features/rgblayers.c +endif + +ifdef TAP_DANCE_ENABLE + SRC += ./features/dancelayers.c +endif diff --git a/users/muppetjones/tapmods.h b/users/muppetjones/tapmods.h new file mode 100644 index 0000000000..af3d160c5b --- /dev/null +++ b/users/muppetjones/tapmods.h @@ -0,0 +1,77 @@ +/* Copyright 2020 Stephen Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 a stand-in from dancelayers.h in case tap-dance isn't enabled */ +#ifndef TAP_DANCE_ENABLE +# define TD_LAYR XXXXXXX +#endif + +/* Misc */ + +#define HY_ESC HYPR_T(KC_ESC) +#define HY_BSPC HYPR_T(KC_BSPC) + +/* Tap Mod Layers */ + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define NAV MO(_NAV) + +#define ADJ_DEL LT(_ADJUST, KC_DEL) +#define LOW_ENT LT(_LOWER, KC_ENT) +#define LOW_SPC LT(_LOWER, KC_SPC) +#define LOW_BSP LT(_LOWER, KC_BSPC) +#define NAV_SPC LT(_NAV, KC_SPC) +#define RAI_BSP LT(_RAISE, KC_BSPC) +#define RAI_ENT LT(_RAISE, KC_ENT) +#define RAI_SPC LT(_RAISE, KC_SPC) +#define RAI_TAB LT(_RAISE, KC_TAB) + +/* Miryoku Home-row Mods + +NOTE: Uses GACS. +*/ + +// Left-hand home row mods (colemak) +#define HR_A LGUI_T(KC_A) +#define HR_R LALT_T(KC_R) +#define HR_S LCTL_T(KC_S) +#define HR_T LSFT_T(KC_T) + +// Right-hand home row mods (colemak) +#define HR_N RSFT_T(KC_N) +#define HR_E RCTL_T(KC_E) +#define HR_I LALT_T(KC_I) +#define HR_O RGUI_T(KC_O) + +// Right-hand Numpad +#define HR_4 RSFT_T(KC_4) +#define HR_5 RCTL_T(KC_5) +#define HR_6 LALT_T(KC_6) + +// Layout-specific mods +#define TM_VSFT LSFT_T(KC_V) // For Using V in layer combos (e.g., planck) + +// GACS (Lower) +#define HR_LBRC LCTL_T(KC_LBRC) +#define HR_RBRC LSFT_T(KC_RBRC) + +// Left-hand home row mods (lower)--- +// #define HOME_UND LCTL_T(KC_UNDS) // NOTE: Mod-tap restricted to basic keycodes +#define HOME_MIN LSFT_T(KC_MINS) diff --git a/users/muppetjones/wrappers.h b/users/muppetjones/wrappers.h new file mode 100644 index 0000000000..301554f5d5 --- /dev/null +++ b/users/muppetjones/wrappers.h @@ -0,0 +1,249 @@ +/* Copyright 2020 Stephen Bush + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License 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 "muppetjones.h" +#include "tapmods.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___________________, ... + ... + ), + } +*/ + +#ifdef MOUSEKEY_ENABLE +# define MK_WH_D KC_WH_D +# define MK_WH_U KC_WH_U +#else +# define MK_WH_D XXXXXXX +# define MK_WH_U XXXXXXX +#endif + +// clang-format off +/* Blank-ish + * ,----------------------------------. * ,----------------------------------. + * | TRNS | TRNS | TRNS | TRNS | TRNS | * | xxxx | xxxx | xxxx | xxxx | xxxx | + * `----------------------------------' * `----------------------------------' + * ,----------------------------------. * ,----------------------------------. + * | LGUI | LALT | LCTL | LSFT | TRNS | * | TRNS | RSFT | RCTL | LALT | RGUI | + * `----------------------------------' * `----------------------------------' +*/ +#define __BLANK____________________________________ _______, _______, _______, _______, _______ +#define __BLANK_NOOP_______________________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#define __BLANK_W_GACS_____________________________ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______ +#define __BLANK_W_SCAG_____________________________ _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI + +/* Adjust LH + * ,----------------------------------. ,----------------------------------. + * |Reset |Debug | xxxx |Term+ |Term- | | xxxx |AGNORM|AGSWAP| xxxx | xxxx | + * |------+------+------+------+------| |------+------+------+------+------| + * |RgbTog| Hue+ | Sat+ | Val+ |RgbMod| | xxxx |CLMKDH|QWERTY| xxxx | xxxx | + * |------+------+------+------+------| |------+------+------+------+------| + * | xxxx | Hue- | Sat- | Val- | xxxx | | xxxx | xxxx | xxxx | xxxx | xxxx | + * `----------------------------------' `----------------------------------' + */ + // NOTE: The "BACKLIT" keycode is planck specific +#define __ADJUST_L1________________________________ RESET, DEBUG, XXXXXXX, TERM_ON, TERM_OFF +#define __ADJUST_L2________________________________ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD +#define __ADJUST_L3________________________________ XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX + +#define __ADJUST_R1________________________________ XXXXXXX, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX +#define __ADJUST_R2________________________________ XXXXXXX, CLMK_DH, QWERTY, XXXXXXX, XXXXXXX +#define __ADJUST_R3________________________________ __BLANK_NOOP_______________________________ + +/* Colemak mod-DH + * ,----------------------------------. ,----------------------------------. + * | Q | W | F | P | B | | J | L | U | Y | ;ˆ | + * |------+------+------+------+------| |------+------+------+------+------| + * | A | R | S | T | G | | M | N | E | I | O | + * |------+------+------+------+------| |------+------+------+------+------| + * | Z | X | C | D | V˜ | | K | H | , | . | / | + * `----------------------------------' `----------------------------------' + * ˆ Alternate: KC_QUOT + * ° Alternate: Home row mods (GASC, SCAG) + * ˜ Alternate: Hold for shift + * + * Colemak mod-DH (alt and alt+shift) + * ,----------------------------------. ,----------------------------------. + * | œ Œ | ∑ „ | | π ∏ | ı | | ∆ Ô | | | ¥ Á | æ Æ | + * |------+------+------+------+------| |------+------+------+------+------| + * | å Å | ® ‰ | ß Í | † ˇ | © ˝ | | µ  | ˜ ˜ | ´ ´ | ˆ ˆ | Ø | + * |------+------+------+------+------| |------+------+------+------+------| + * | Ω ¸ | ≈ ˛ | ç Ç | Î | √ ◊ | | ˚  | Ó | ≤ ¯ | ≥ ˘ | ÷ ¿ | + * `----------------------------------' `----------------------------------' + */ +#define __COLEMAK_MOD_DH_L1________________________ KC_Q, KC_W, KC_F, KC_P, KC_B +#define __COLEMAK_MOD_DH_L2_W_GACS_________________ HR_A, HR_R, HR_S, HR_T, KC_G +#define __COLEMAK_MOD_DH_L3________________________ KC_Z, KC_X, KC_C, KC_D, KC_V +#define __COLEMAK_MOD_DH_L3_W_SFTV_________________ KC_Z, KC_X, KC_C, KC_D, TM_VSFT + +#define __COLEMAK_MOD_DH_R1_W_QUOT_________________ KC_J, KC_L, KC_U, KC_Y, KC_QUOT +#define __COLEMAK_MOD_DH_R1________________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN +#define __COLEMAK_MOD_DH_R2_W_SCAG_________________ KC_M, HR_N, HR_E, HR_I, HR_O +#define __COLEMAK_MOD_DH_R3________________________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH + +/* Function (4 columns) + * ,---------------------------. + * | F1 | F2 | F3 | F4 | + * |------+------+------+------| + * | F5 | F6 | F7 | F8 | + * |------+------+------+------| + * | F9 | F10 | F11 | F12 | + * `---------------------------' + */ +#define __FUNC_X1_________________________ KC_F1, KC_F2, KC_F3, KC_F4 +#define __FUNC_X2_________________________ KC_F5, KC_F6, KC_F7, KC_F8 +#define __FUNC_X3_________________________ KC_F9, KC_F10, KC_F11, KC_F12 + +/* Game + */ +#define __GAME_L1__________________________________ KC_BTN3, KC_BTN2, KC_UP, KC_BTN1, KC_BTN5 +#define __GAME_L2__________________________________ KC_BTN4, KC_LEFT, KC_DOWN, KC_RIGHT,XXXXXXX +#define __GAME_L3__________________________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + +#define __GAME_R1__________________________________ KC_Q, KC_1, KC_2, KC_3, XXXXXXX +#define __GAME_R2__________________________________ XXXXXXX, KC_4, KC_5, KC_6, XXXXXXX +#define __GAME_R3__________________________________ XXXXXXX, KC_7, KC_8, KC_9, XXXXXXX + + +/* Guitar + * ,----------------------------------. ,----------------------------------. + * | E | F |• F♯ | G |• G♯ | | A |• A♯ | B |• C | C♯ | + * | A | A♯ |• B | C |• C♯ | | D |• D♯ | E |• F | F♯ | + * | D | D♯ |• E | F |• F♯ | | G |• G♯ | A |• A♯ | B | + * | G | G♯ |• A | A♯ |• B | | C |• C♯ | D |• D♯ | E | + * | B | C |• C♯ | D |• D♯ | | E |• F | F♯ |• G | G♯ | + * | E | F |• F♯ | G |• G♯ | | A |• A♯ | B |• C | C♯ | + * `----------------------------------' `----------------------------------' + */ +// Not sure why, but this does not work (possibly due to the lowercase 's'?) +// #ifdef MIDI_ADVANCED +// #define __GUITAR_1E_L______________________________ MI_E_1, MI_F_1, MI_Fs_1, MI_G_1, MI_Gs_1 +// #define __GUITAR_2A_L______________________________ MI_A_1, MI_As_1, MI_B_1, MI_C_2, MI_Cs_2 +// #define __GUITAR_3D_L______________________________ MI_D_2, MI_Ds_2, MI_E_2, MI_F_2, MI_Fs_2 +// #define __GUITAR_4G_L______________________________ MI_G_2, MI_Gs_2, MI_A_2, MI_As_2, MI_B_2 +// #define __GUITAR_5B_L______________________________ MI_B_2, MI_C_3, MI_Cs_3, MI_D_3, MI_Ds_3 +// #define __GUITAR_6E_L______________________________ MI_E_3, MI_F_3, MI_Fs_3, MI_G_3, MI_Gs_3 +// +// #define __GUITAR_1E_R______________________________ MI_A_1, MI_As_1, MI_B_1, MI_C_2, MI_Cs_2 +// #define __GUITAR_2A_R______________________________ MI_D_2, MI_Ds_2, MI_E_2, MI_F_2, MI_Fs_2 +// #define __GUITAR_3D_R______________________________ MI_G_2, MI_Gs_2, MI_A_2, MI_As_2, MI_B_2 +// #define __GUITAR_4G_R______________________________ MI_C_3, MI_Cs_3, MI_D_3, MI_Ds_3, MI_E_3 +// #define __GUITAR_5B_R______________________________ MI_E_3, MI_F_3, MI_Fs_3, MI_G_3, MI_Gs_3 +// #define __GUITAR_6E_R______________________________ MI_A_3, MI_As_3, MI_B_3, MI_C_4, MI_Cs_4 +// #endif + + +/* MEDIA + * ,----------------------------------. + * | AuOn | MiOn | MuOn | Brm+ | Vol+ | + * |------+------+------+------+------| + * | AuOff| MiOff| MuOff| Brm- | Vol- | + * |------+------+------+------+------| + * | Play | Stop | Next | Prev | Mute | + * `----------------------------------' + */ +// What it MUV_IN and MUV_DE (5C2A and B)? +// https://github.com/qmk/qmk_firmware/blob/7e832e46de26989b81f2fbf58a0f391b2b0c1aaf/quantum/quantum_keycodes.h#L135 +#define __MEDIA_R1_________________________________ AU_ON, MI_ON, MU_ON, KC_BRMU, KC_VOLU +#define __MEDIA_R2_________________________________ AU_OFF, MI_OFF, MU_OFF, KC_BRMD, KC_VOLD +#define __MEDIA_R3_________________________________ KC_MPLY, KC_MSTP, KC_MNXT, KC_MPRV, KC_MUTE + + +/* NAV + * ,----------------------------------. + * | Pg Up| Home | Wh Dn| Wh Up| End | + * |------+------+------+------+------| + * | Pg Dn| Left | Down | Up | Right| + * |------+------+------+------+------| + * | xxxx | xxxx | xxxx | xxxx | xxxx | + * `----------------------------------' + */ +#define __NAV_R1___________________________________ KC_PGUP, KC_HOME, KC_WH_D, KC_WH_U, KC_END +#define __NAV_R2___________________________________ KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT +#define __NAV_R3___________________________________ __BLANK_NOOP_______________________________ + +/* NUMPAD * (alt, alt+shift) + * ,----------------------------------. * ,----------------------------------. + * | Del | 7 & | 8 * | 9 ( | \ | | * | | ¶ ‡ | • ° | ª · | « » | + * |------+------+------+------+------| * |------+------+------+------+------| + * | - _ | 4 $ | 5 % | 6 ^ | * | * | – — | ¢ › | ∞ fi | § fl | ° ° | + * |------+------+------+------+------| * |------+------+------+------+------| + * | = + | 1 ! | 2 @ | 3 # | , | * | ≠ ± | ¡ ⁄ | ™ € | £ ‹ | ≤ ¯ | + * |------+------+------+------+------| * |------+------+------+------+------| + * | | 0 ) | . > | | | * | | | º ‚ | | | + * `----------------------------------' * `----------------------------------' + */ +#define __NUMPAD_R1________________________________ KC_GRV, KC_7, KC_8, KC_9, KC_BSLS +#define __NUMPAD_R2________________________________ KC_MINS, HR_4, HR_5, HR_6, KC_COMM +#define __NUMPAD_R3________________________________ KC_EQL, KC_1, KC_2, KC_3, KC_DOT +#define __NUMPAD_R4________________________________ _______, KC_0, KC_DOT, _______, _______ + +#define __NUMPAD_R3_ALT____________________________ KC_0, KC_1, KC_2, KC_3, KC_EQ + +/* 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 | , | . | / | + * `----------------------------------' `----------------------------------' + */ +#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________________________________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#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 +#define __QWERTY_R3________________________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH + +/* SYMBOLS + * ,----------------------------------. + * | ~ | ` | ( | ) | | + * |------+------+------+------+------| + * | LGUI | LALT |LCTL [|LSFT ]| _ - | + * |------+------+------+------+------| + * | xxxx | xxxx | { | } | LSFT | + * `----------------------------------' + */ +#define __SYMBOLS_L1_______________________________ KC_TILD, KC_GRV, KC_LPRN, KC_RPRN, XXXXXXX +#define __SYMBOLS_L2_______________________________ KC_LGUI, KC_LALT, HR_LBRC, HR_RBRC, KC_UNDS +#define __SYMBOLS_L3_______________________________ XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_LSFT + +#define __SYMBOLS_R1_______________________________ KC_TILD, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX +#define __SYMBOLS_R2_______________________________ KC_UNDS, HR_LBRC, HR_RBRC, XXXXXXX, XXXXXXX +#define __SYMBOLS_R3_______________________________ KC_PLUS, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX + +/* VIM + * -- Roll through ":wq" via transparency + * ,----------------------------------. + * | Q | W | : | | | + * `----------------------------------' + */ +#define __VIM_L1___________________________________ _______, _______, KC_COLN, _______, _______ + +// clang-format on +// __END__ diff --git a/users/ninjonas/config.h b/users/ninjonas/config.h index 565e40e841..025dbb541a 100644 --- a/users/ninjonas/config.h +++ b/users/ninjonas/config.h @@ -2,7 +2,6 @@ #undef TAPPING_TERM #define TAPPING_TERM 200 #endif -#define TAPPING_TERM_PER_KEY // Mouse Settings: Smoothing out mouse movement on keypress #ifndef MOUSEKEY_INTERVAL @@ -19,4 +18,4 @@ #undef COMBO_TERM #define COMBO_COUNT 5 #define COMBO_TERM 60 -#endif +#endif \ No newline at end of file diff --git a/users/ninjonas/oled.c b/users/ninjonas/oled.c index 463c6dfebb..55eaf88ccb 100644 --- a/users/ninjonas/oled.c +++ b/users/ninjonas/oled.c @@ -23,7 +23,7 @@ bool process_record_oled(uint16_t keycode, keyrecord_t *record) { void render_layout_state(void) { oled_write_P(PSTR("Layout: "), false); - switch (get_highest_layer(default_layer_state)) { + switch (biton32(default_layer_state)) { case _COLEMAK: oled_write_P(PSTR("Colemak"), false); break; diff --git a/users/ninjonas/tap_dances.c b/users/ninjonas/tap_dances.c index 3e4cec9133..63e4d3ba47 100644 --- a/users/ninjonas/tap_dances.c +++ b/users/ninjonas/tap_dances.c @@ -107,16 +107,6 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_GUI_GUISPC] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, LGUI(KC_SPC)), // Advanced Tap Dances - [TD_COPY_PASTE_APP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, copy_paste_app_finished, copy_paste_app_reset), - [TD_Y_NUMPAD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, y_numpad_finished, y_numpad_reset), -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_COPY_PASTE_APP): - case TD(TD_Y_NUMPAD): - return 300; - default: - return TAPPING_TERM; - } -} + [TD_COPY_PASTE_APP] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, copy_paste_app_finished, copy_paste_app_reset, 300), + [TD_Y_NUMPAD] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, y_numpad_finished, y_numpad_reset, 300), +}; \ No newline at end of file diff --git a/users/noroadsleft/noroadsleft.c b/users/noroadsleft/noroadsleft.c index 28bfa9e6c6..80d18f4026 100644 --- a/users/noroadsleft/noroadsleft.c +++ b/users/noroadsleft/noroadsleft.c @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 James Young (@noroadsleft) +/* Copyright 2020-2022 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 @@ -66,6 +66,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } }; return false; + case G_PWD: + if (record->event.pressed) { + clear_mods(); + SEND_STRING("$( pwd | sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')"); + }; + return false; case M_SALL: if (record->event.pressed) { tap_code16(C(KC_A)); diff --git a/users/noroadsleft/noroadsleft.h b/users/noroadsleft/noroadsleft.h index 12bb5b465a..1d1a547562 100644 --- a/users/noroadsleft/noroadsleft.h +++ b/users/noroadsleft/noroadsleft.h @@ -1,4 +1,4 @@ -/* Copyright 2020-2021 James Young (@noroadsleft) +/* Copyright 2020-2022 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 @@ -25,6 +25,7 @@ enum userspace_keycodes { G_PUSH, G_FTCH, G_BRCH, + G_PWD, M_SALL, M_UNDO, M_CUT, diff --git a/users/noroadsleft/readme.md b/users/noroadsleft/readme.md index e8279c0333..d32e66917f 100644 --- a/users/noroadsleft/readme.md +++ b/users/noroadsleft/readme.md @@ -19,25 +19,28 @@ Outputs a string that tells me the Git commit from which my flashed firmware was Some frequently used Git commands. -| Keycode | Output | Output with Shift | -| :---------------------------------- | :--------------------- | :--------------------------- | -| [`G_PUSH`](./noroadsleft.c#L44-L48) | `git push origin ` | `git push origin ` | -| [`G_FTCH`](./noroadsleft.c#L49-L58) | `git fetch upstream ` | `git pull upstream ` | -| [`G_BRCH`](./noroadsleft.c#L59-L68) | `master` | `$(git branch-name)` | +| Keycode | Output | Output with Shift | +| :---------------------------------- | :---------------------------------------------------- | :---------------------------------------------------- | +| [`G_PUSH`](./noroadsleft.c#L44-L48) | `git push origin ` | `git push origin ` | +| [`G_FTCH`](./noroadsleft.c#L49-L58) | `git fetch upstream ` | `git pull upstream ` | +| [`G_BRCH`](./noroadsleft.c#L59-L68) | `master` | `$(git branch-name)` | +| [`G_PWD`](./noroadsleft.c#L69-L74) | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')` | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')` | `$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally returns the name of the current branch. +The `G_PWD` macro outputs a shell expansion that returns the current working directory in relation to `qmk_firmware/keyboards/`, and with the slashes replaced with underscores. I do a lot of keyboard refactoring in QMK, and this is a string I use regularly. + ### Customized Keycodes I used to have a boolean variable that changed the functionality of these keycodes, but I no longer work in the environment that I wrote the functionality for, so I took it out. The keycodes still exist because all my `keymap.c` files reference the custom keycodes I defined. | Keycode | Action | | :------------------------------------ | :-------- | -| [`M_SALL`](./noroadsleft.c#L69-L73) | `Ctrl+A` | -| [`M_UNDO`](./noroadsleft.c#L74-L82) | `Ctrl+Z` | -| [`M_CUT`](./noroadsleft.c#L83-L87) | `Ctrl+X` | -| [`M_COPY`](./noroadsleft.c#L88-L92) | `Ctrl+C` | -| [`M_PASTE`](./noroadsleft.c#L93-L101) | `Ctrl+V` | +| [`M_SALL`](./noroadsleft.c#L75-L79) | `Ctrl+A` | +| [`M_UNDO`](./noroadsleft.c#L80-L88) | `Ctrl+Z` | +| [`M_CUT`](./noroadsleft.c#L89-L93) | `Ctrl+X` | +| [`M_COPY`](./noroadsleft.c#L94-L98) | `Ctrl+C` | +| [`M_PASTE`](./noroadsleft.c#L99-L107) | `Ctrl+V` | ### [Emulated Non-US Backslash](./noroadsleft.c#L27-L37) @@ -47,18 +50,18 @@ This macro simulates the Non-US Backslash key if I hold Right Alt and tap the ke Requires defining `ANSI_NUBS_ROW` and `ANSI_NUBS_COL` in `config.h` at the keymap level.[1](#footnotes) -### [Emulated Numeric Keypad](./noroadsleft.c#L102-L116) +### [Emulated Numeric Keypad](./noroadsleft.c#L108-L122) If I hold the Right Alt key, the number row (`KC_1` through `KC_0`) will output numpad keycodes instead of number row keycodes, enabling quicker access to characters like ™ and °. -### [Emulated Extended Function Keys](./noroadsleft.c#L117-L131) +### [Emulated Extended Function Keys](./noroadsleft.c#L123-L137) Similar to the emulated numpad, if I hold the Right Alt key with the Fn key, the function row (`KC_F1` through `KC_F12`) will output keycodes `KC_F13` throught `KC_F24`. ## License -Copyright 2020-2021 James Young (@noroadsleft) +Copyright 2020-2022 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 diff --git a/users/ollyhayes/ollyhayes.c b/users/ollyhayes/ollyhayes.c new file mode 100644 index 0000000000..6dfd61b263 --- /dev/null +++ b/users/ollyhayes/ollyhayes.c @@ -0,0 +1,153 @@ +/* Copyright 2022 Olly Hayes (@ollyhayes) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ollyhayes.h" + +#ifdef VIRTSER_ENABLE +# include "virtser.h" +#endif + +layer_state_t default_layer_state_set_kb(layer_state_t state) { + if (layer_state_cmp(state, BASE)) { + rgb_matrix_mode(3); + } else if (layer_state_cmp(state, GAMES)) { + rgb_matrix_mode(1); + } + return state; +} + +uint16_t key_presses = 0; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // for tab/number layer switch + static bool key_pressed_since_switch = false; + static uint16_t switch_down_time = 0; + + // for alt-tab on punc layer + static bool alt_tab_used = false; + + // for capital umlauts + static bool shift_held = false; + +#ifdef VIRTSER_ENABLE + if (record->event.pressed) { + uint8_t key_index = 40 + record->event.key.col + record->event.key.row * 6; + virtser_send(key_index); + } else { + uint8_t key_index = 90 + record->event.key.col + record->event.key.row * 6; + virtser_send(key_index); + } +#endif + + if (record->event.pressed) { + key_pressed_since_switch = true; + key_presses++; + } + + switch (keycode) { + case UP4: + if (record->event.pressed) { + tap_code(KC_UP); + tap_code(KC_UP); + tap_code(KC_UP); + tap_code(KC_UP); + return false; + } + break; + + case DOWN4: + if (record->event.pressed) { + tap_code(KC_DOWN); + tap_code(KC_DOWN); + tap_code(KC_DOWN); + tap_code(KC_DOWN); + return false; + } + break; + + case NUM_SWITCH: + if (record->event.pressed) { + layer_on(NUM); + key_pressed_since_switch = false; + switch_down_time = timer_read(); + } else { + layer_off(NUM); + + if (!key_pressed_since_switch && timer_elapsed(switch_down_time) < 200) { + tap_code(KC_TAB); + } + } + return false; + + case MO(PUNC): + if (!record->event.pressed) { + if (alt_tab_used) { + unregister_code(KC_LALT); + alt_tab_used = false; + } + } + return true; + + case MO(FUNCTIONS): + if (!record->event.pressed) { + // if NUM_SWITCH has been lifted first, toggle to that layer + // (4 = 2^NUM) + if ((layer_state & 4) != 0) { + layer_on(FUNCTIONS); + return false; + } + } + return true; + + case ALTTAB: + if (record->event.pressed) { + alt_tab_used = true; + register_code(KC_LALT); + tap_code(KC_TAB); + } + return false; + + case KC_LSFT: + case KC_RSFT: + shift_held = record->event.pressed; + break; + + case A_UMLAUT: + if (record->event.pressed) { + if (shift_held) + register_unicode(0x00c4); + else + register_unicode(0x00e4); + } + break; + case O_UMLAUT: + if (record->event.pressed) { + if (shift_held) + register_unicode(0x00d6); + else + register_unicode(0x00f6); + } + break; + case U_UMLAUT: + if (record->event.pressed) { + if (shift_held) + register_unicode(0x00dc); + else + register_unicode(0x00fc); + } + break; + } + return true; +} diff --git a/users/ollyhayes/ollyhayes.h b/users/ollyhayes/ollyhayes.h new file mode 100644 index 0000000000..c65422937c --- /dev/null +++ b/users/ollyhayes/ollyhayes.h @@ -0,0 +1,41 @@ +/* Copyright 2022 Olly Hayes (@ollyhayes) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more 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, + QWERTY, + GAMES, + NUM, + FUNCTIONS, + ARR, + PUNC, + DUBPUNC, + MEDIA, +}; + +enum custom_keycodes { + DOWN4 = SAFE_RANGE, + UP4, + NUM_SWITCH, + ALTTAB, + A_UMLAUT, + O_UMLAUT, + U_UMLAUT, +}; + +extern uint16_t key_presses; diff --git a/users/ollyhayes/rules.mk b/users/ollyhayes/rules.mk new file mode 100644 index 0000000000..27752a5dee --- /dev/null +++ b/users/ollyhayes/rules.mk @@ -0,0 +1 @@ +SRC += ollyhayes.c diff --git a/users/pvinis/pvinis.c b/users/pvinis/pvinis.c index 96b01bb461..71f9210aec 100644 --- a/users/pvinis/pvinis.c +++ b/users/pvinis/pvinis.c @@ -95,4 +95,4 @@ void keyboard_post_init_user(void) { // Default functions. __attribute__((weak)) void keyboard_post_init_user_keymap(void) {} -__attribute__((weak)) layer_state_t layer_state_set_user_keymap(layer_state_t state) { return state; } +__attribute__((weak)) uint32_t layer_state_set_user_keymap(uint32_t state) { return state; } diff --git a/users/pvinis/pvinis.h b/users/pvinis/pvinis.h index 5a11a6cb6f..c50033a440 100644 --- a/users/pvinis/pvinis.h +++ b/users/pvinis/pvinis.h @@ -169,4 +169,4 @@ enum { // Extra stuff that might be needed. void keyboard_post_init_user_keymap(void); -layer_state_t layer_state_set_user_keymap(layer_state_t state); +uint32_t layer_state_set_user_keymap(uint32_t state); diff --git a/users/romus/romus.c b/users/romus/romus.c index a41a6df578..f707bb8843 100644 --- a/users/romus/romus.c +++ b/users/romus/romus.c @@ -59,7 +59,7 @@ __attribute__ ((weak)) void matrix_scan_keymap(void) { } __attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } -__attribute__ ((weak)) layer_state_t layer_state_set_keymap (layer_state_t state) { +__attribute__ ((weak)) uint32_t layer_state_set_keymap (uint32_t state) { return state; } __attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) { } @@ -551,7 +551,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { state = layer_state_set_keymap (state); #ifdef RGBLIGHT_ENABLE // Change RGB lighting depending on the last layer activated - rgblight_change( get_highest_layer(state) ); + rgblight_change( biton32(state) ); #endif return state; } diff --git a/users/sigma/sigma.c b/users/sigma/sigma.c index 8470060a53..527925a63f 100644 --- a/users/sigma/sigma.c +++ b/users/sigma/sigma.c @@ -49,12 +49,12 @@ bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { __attribute__ ((weak)) -layer_state_t layer_state_set_keymap (layer_state_t state) { +uint32_t layer_state_set_keymap (uint32_t state) { return state; } __attribute__ ((weak)) -layer_state_t default_layer_state_set_keymap (layer_state_t state) { +uint32_t default_layer_state_set_keymap (uint32_t state) { return state; } diff --git a/users/stanrc85/config.h b/users/stanrc85/config.h index e12beedb90..d9600b8b3c 100644 --- a/users/stanrc85/config.h +++ b/users/stanrc85/config.h @@ -15,7 +15,7 @@ #define INDICATOR_PIN_2 D4 #endif -#ifdef KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_stm32f303 +#if defined(KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_stm32f303) || defined(KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_apm32f103) #define INDICATOR_PIN_0 B2 #define INDICATOR_PIN_1 C15 #define INDICATOR_PIN_2 B9 @@ -30,3 +30,9 @@ #define ENABLE_RGB_MATRIX_MULTISPLASH #define ENABLE_RGB_MATRIX_TYPING_HEATMAP #endif + +#ifdef KEYBOARD_nasu + #define INDICATOR_PIN_0 B1 + #define INDICATOR_PIN_1 B0 + #define INDICATOR_PIN_2 A7 +#endif diff --git a/users/stanrc85/layer_rgb.c b/users/stanrc85/layer_rgb.c index ad30c2ee65..6d57198f3b 100644 --- a/users/stanrc85/layer_rgb.c +++ b/users/stanrc85/layer_rgb.c @@ -5,7 +5,7 @@ void matrix_init_user(void) { }; layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case 0: rgblight_setrgb (0xFF, 0x00, 0x00); break; diff --git a/users/stanrc85/rules.mk b/users/stanrc85/rules.mk index 94f4027b96..141b4581a4 100644 --- a/users/stanrc85/rules.mk +++ b/users/stanrc85/rules.mk @@ -43,3 +43,13 @@ ifeq ($(strip $(KEYBOARD)), mechlovin/adelais/standard_led/arm/rev4/stm32f303) SRC += rgb_timeout.c SRC += indicator_layers_sneakbox.c endif +ifeq ($(strip $(KEYBOARD)), nasu) + SRC += indicator_layers_sneakbox.c + SRC += startup_fanfare.c + OPT_DEFS += -DHAS_INDICATORS +endif +ifeq ($(strip $(KEYBOARD)), mechlovin/adelais/standard_led/arm/rev4/apm32f103) + OPT_DEFS += -DHAS_INDICATORS + SRC += rgb_timeout.c + SRC += indicator_layers_sneakbox.c +endif diff --git a/users/talljoe/talljoe.c b/users/talljoe/talljoe.c index 6655170d4a..517f712ec8 100644 --- a/users/talljoe/talljoe.c +++ b/users/talljoe/talljoe.c @@ -138,7 +138,7 @@ void matrix_init_user(void) { } } -layer_state_t default_layer_state_set_kb(layer_state_t state) { +uint32_t default_layer_state_set_kb(uint32_t state) { // persist changes to default layers eeconfig_update_default_layer(state); return state; diff --git a/users/tominabox1/tominabox1.c b/users/tominabox1/tominabox1.c index b4ec224d07..7322ead0dc 100644 --- a/users/tominabox1/tominabox1.c +++ b/users/tominabox1/tominabox1.c @@ -128,7 +128,7 @@ layer_state_t layer_state_set_keymap (layer_state_t state) { layer_state_t layer_state_set_user(layer_state_t state) { state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _LOWER: break; case _RAISE: @@ -231,7 +231,7 @@ void render_status_main(void) { // Host Keyboard Layer Status oled_write_P(PSTR("Layer: "), false); - switch (get_highest_layer(layer_state)) { + switch (biton32(layer_state)) { case _BASE: oled_write_P(PSTR("Colemak\n"), false); break; diff --git a/users/turbomech/backupturbomech.c b/users/turbomech/backupturbomech.c index 3671d27ab4..aaea05df96 100644 --- a/users/turbomech/backupturbomech.c +++ b/users/turbomech/backupturbomech.c @@ -31,7 +31,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } __attribute__ ((weak)) -layer_state_t layer_state_set_keymap (layer_state_t state) { +uint32_t layer_state_set_keymap (uint32_t state) { return state; } __attribute__ ((weak)) @@ -300,7 +300,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { #ifdef RGBLIGHT_ENABLE uint8_t default_layer = eeconfig_read_default_layer(); if (rgb_layer_change) { - switch (get_highest_layer(state)) { + switch (biton32(state)) { case _FUNCTION: rgblight_set_blue; rgblight_mode(1); @@ -377,7 +377,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } __attribute__ ((weak)) -layer_state_t layer_state_set_keymap (layer_state_t state) { +uint32_t layer_state_set_keymap (uint32_t state) { return state; } __attribute__ ((weak)) diff --git a/users/xulkal/custom_oled.c b/users/xulkal/custom_oled.c index fd03033ad6..7fe8040927 100644 --- a/users/xulkal/custom_oled.c +++ b/users/xulkal/custom_oled.c @@ -37,7 +37,7 @@ static void render_icon(void) static void render_layer(void) { - uint8_t layer = layer_state ? get_highest_layer(layer_state) : get_highest_layer(default_layer_state); + uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state); #ifdef OLED_90ROTATION oled_write_P(PSTR("Layer"), false); #else diff --git a/users/zer09/zer09.c b/users/zer09/zer09.c index 78433b4c20..a6768f0a1a 100644 --- a/users/zer09/zer09.c +++ b/users/zer09/zer09.c @@ -43,7 +43,7 @@ void matrix_init_user(void) { void matrix_scan_user(void) { static uint8_t is_leds_changes = 1; - c_lyr = get_highest_layer(layer_state); + c_lyr = biton32(layer_state); is_leds_changes = is_leds_changes << set_layer_led(c_lyr); is_leds_changes = is_leds_changes << shifted_layer(); diff --git a/util/install/msys2.sh b/util/install/msys2.sh index c57c455eb4..fa422023ab 100755 --- a/util/install/msys2.sh +++ b/util/install/msys2.sh @@ -7,17 +7,14 @@ _qmk_install_prepare() { _qmk_install() { echo "Installing dependencies" - pacman --needed --noconfirm --disable-download-timeout -S pactoys-git + pacman --needed --noconfirm --disable-download-timeout -S pactoys pacboy sync --needed --noconfirm --disable-download-timeout \ - base-devel: toolchain:x clang:x git: unzip: python3-pip:x \ - avr-binutils:x avr-gcc:x avr-libc:x arm-none-eabi-binutils:x \ - arm-none-eabi-gcc:x arm-none-eabi-newlib:x avrdude:x bootloadhid:x \ - dfu-programmer:x dfu-util:x teensy-loader-cli:x hidapi:x \ - python-appdirs:x python-colorama:x python-jsonschema:x python-pillow:x python-pygments:x + base-devel: toolchain:x clang:x python-qmk:x hidapi:x \ + avr-binutils:x avr-gcc:x avr-libc:x \ + arm-none-eabi-binutils:x arm-none-eabi-gcc:x arm-none-eabi-newlib:x \ + avrdude:x bootloadhid:x dfu-programmer:x dfu-util:x hid-bootloader-cli:x mdloader:x teensy-loader-cli:x wb32-dfu-updater:x _qmk_install_drivers - - python3 -m pip install -r "$QMK_FIRMWARE_DIR/requirements.txt" } _qmk_install_drivers() { diff --git a/util/update_chibios_mirror.sh b/util/update_chibios_mirror.sh index bd4c5c1529..e6666c55c9 100755 --- a/util/update_chibios_mirror.sh +++ b/util/update_chibios_mirror.sh @@ -7,7 +7,7 @@ chibios_branches="trunk stable_20.3.x stable_21.11.x" # The ChibiOS tags to mirror -chibios_tags="ver20.3.1 ver20.3.2 ver20.3.3 ver20.3.4 ver21.11.1 ver21.11.2" +chibios_tags="ver20.3.1 ver20.3.2 ver20.3.3 ver20.3.4 ver21.11.1" # The ChibiOS-Contrib branches to mirror contrib_branches="chibios-20.3.x chibios-21.11.x"