Merge branch 'develop'
commit
f76cc320fd
|
@ -32,4 +32,4 @@ jobs:
|
|||
- name: Install dependencies
|
||||
run: pip3 install -r requirements-dev.txt
|
||||
- name: Run tests
|
||||
run: make test:all
|
||||
run: qmk test-c
|
||||
|
|
|
@ -37,6 +37,7 @@ quantum/version.h
|
|||
|
||||
# DD config at wrong location
|
||||
/keyboards/**/keymaps/*/info.json
|
||||
/keyboards/**/keymaps/*/keyboard.json
|
||||
|
||||
# Old-style QMK Makefiles
|
||||
/keyboards/**/Makefile
|
||||
|
|
|
@ -119,7 +119,7 @@ MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
|
|||
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
||||
|
||||
# Pull in rules from info.json
|
||||
# Pull in rules from DD keyboard config
|
||||
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk)
|
||||
include $(INFO_RULES_MK)
|
||||
|
||||
|
@ -221,7 +221,7 @@ include $(BUILDDEFS_PATH)/converters.mk
|
|||
MCU_ORIG := $(MCU)
|
||||
include $(wildcard $(PLATFORM_PATH)/*/mcu_selection.mk)
|
||||
|
||||
# PLATFORM_KEY should be detected in info.json via key 'processor' (or rules.mk 'MCU')
|
||||
# PLATFORM_KEY should be detected in DD keyboard config via key 'processor' (or rules.mk 'MCU')
|
||||
ifeq ($(PLATFORM_KEY),)
|
||||
$(call CATASTROPHIC_ERROR,Platform not defined)
|
||||
endif
|
||||
|
@ -335,38 +335,54 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","")
|
|||
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
|
||||
endif
|
||||
|
||||
# Pull in stuff from info.json
|
||||
INFO_JSON_FILES :=
|
||||
# Create dependencies on DD keyboard config - structure validated elsewhere
|
||||
DD_CONFIG_FILES :=
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_1)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_2)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_3)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_4)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_5)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json
|
||||
endif
|
||||
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
|
||||
endif
|
||||
|
||||
CONFIG_H += $(INTERMEDIATE_OUTPUT)/src/info_config.h
|
||||
KEYBOARD_SRC += $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c
|
||||
|
||||
$(INTERMEDIATE_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
|
||||
$(INTERMEDIATE_OUTPUT)/src/info_config.h: $(DD_CONFIG_FILES)
|
||||
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_config.h)
|
||||
@$(BUILD_CMD)
|
||||
|
||||
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.c: $(INFO_JSON_FILES)
|
||||
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.c: $(DD_CONFIG_FILES)
|
||||
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(QMK_BIN) generate-keyboard-c --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c)
|
||||
@$(BUILD_CMD)
|
||||
|
||||
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
|
||||
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h: $(DD_CONFIG_FILES)
|
||||
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --include $(FOUND_KEYBOARD_H) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.h)
|
||||
@$(BUILD_CMD)
|
||||
|
@ -505,22 +521,14 @@ ifeq ($(strip $(KEEP_INTERMEDIATES)), yes)
|
|||
OPT_DEFS += -save-temps=obj
|
||||
endif
|
||||
|
||||
# TODO: remove this bodge?
|
||||
PROJECT_DEFS := $(OPT_DEFS)
|
||||
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
|
||||
PROJECT_CONFIG := $(CONFIG_H)
|
||||
|
||||
CONFIG_H += $(POST_CONFIG_H)
|
||||
ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H)
|
||||
|
||||
OUTPUTS := $(INTERMEDIATE_OUTPUT)
|
||||
$(INTERMEDIATE_OUTPUT)_SRC := $(SRC) $(PLATFORM_SRC)
|
||||
$(INTERMEDIATE_OUTPUT)_DEFS := $(OPT_DEFS) \
|
||||
$(INTERMEDIATE_OUTPUT)_DEFS := \
|
||||
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h\" \
|
||||
-DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \
|
||||
$(PROJECT_DEFS)
|
||||
$(INTERMEDIATE_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(PROJECT_INC)
|
||||
$(INTERMEDIATE_OUTPUT)_CONFIG := $(CONFIG_H) $(PROJECT_CONFIG)
|
||||
$(OPT_DEFS)
|
||||
$(INTERMEDIATE_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
|
||||
$(INTERMEDIATE_OUTPUT)_CONFIG := $(CONFIG_H) $(POST_CONFIG_H)
|
||||
|
||||
# Default target.
|
||||
all: build check-size
|
||||
|
|
|
@ -340,7 +340,7 @@ LED_MATRIX_DRIVER := snled27351
|
|||
endif
|
||||
|
||||
LED_MATRIX_ENABLE ?= no
|
||||
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom
|
||||
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3236 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom
|
||||
|
||||
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
||||
ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
|
||||
|
@ -353,7 +353,7 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
|||
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations
|
||||
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations/runners
|
||||
POST_CONFIG_H += $(QUANTUM_DIR)/led_matrix/post_config.h
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_led_matrix.c
|
||||
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix.c
|
||||
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix_drivers.c
|
||||
LIB8TION_ENABLE := yes
|
||||
|
@ -365,6 +365,12 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
|||
SRC += is31fl3218-mono.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3236)
|
||||
I2C_DRIVER_REQUIRED = yes
|
||||
COMMON_VPATH += $(DRIVER_PATH)/led/issi
|
||||
SRC += is31fl3236-mono.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3729)
|
||||
I2C_DRIVER_REQUIRED = yes
|
||||
COMMON_VPATH += $(DRIVER_PATH)/led/issi
|
||||
|
@ -443,7 +449,7 @@ endif
|
|||
|
||||
RGB_MATRIX_ENABLE ?= no
|
||||
|
||||
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom
|
||||
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3236 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom
|
||||
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
|
||||
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
|
||||
$(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
|
||||
|
@ -474,6 +480,12 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
|
|||
SRC += is31fl3218.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3236)
|
||||
I2C_DRIVER_REQUIRED = yes
|
||||
COMMON_VPATH += $(DRIVER_PATH)/led/issi
|
||||
SRC += is31fl3236.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3729)
|
||||
I2C_DRIVER_REQUIRED = yes
|
||||
COMMON_VPATH += $(DRIVER_PATH)/led/issi
|
||||
|
|
|
@ -0,0 +1,580 @@
|
|||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ \ │ + │ ě │ š │ č │ ř │ ž │ ý │ á │ í │ é │ = │ ' │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ 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 │ , │ . │ - │ │
|
||||
* ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "CZ_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "CZ_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "CZ_ECAR",
|
||||
"label": "ě",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "CZ_SCAR",
|
||||
"label": "š",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "CZ_CCAR",
|
||||
"label": "č",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "CZ_RCAR",
|
||||
"label": "ř",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "CZ_ZCAR",
|
||||
"label": "ž",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "CZ_YACU",
|
||||
"label": "ý",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "CZ_AACU",
|
||||
"label": "á",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "CZ_IACU",
|
||||
"label": "í",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "CZ_EACU",
|
||||
"label": "é",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "CZ_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "CZ_ACUT",
|
||||
"label": "' (dead)",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "CZ_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "CZ_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "CZ_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "CZ_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "CZ_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "CZ_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "CZ_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "CZ_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "CZ_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "CZ_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "CZ_UACU",
|
||||
"label": "ú",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "CZ_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "CZ_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "CZ_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "CZ_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "CZ_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "CZ_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "CZ_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "CZ_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "CZ_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "CZ_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "CZ_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "CZ_URNG",
|
||||
"label": "ů",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "CZ_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "CZ_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "CZ_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "CZ_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "CZ_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "CZ_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "CZ_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "CZ_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "CZ_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "CZ_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "CZ_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ | │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ % │ ˇ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ / │ ( │ ` │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ " │ ! │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
|
||||
* │ │ │ │ │ │ │ │ │ ? │ : │ _ │ │
|
||||
* ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"S(CZ_BSLS)": {
|
||||
"key": "CZ_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"S(CZ_PLUS)": {
|
||||
"key": "CZ_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(CZ_ECAR)": {
|
||||
"key": "CZ_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(CZ_SCAR)": {
|
||||
"key": "CZ_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(CZ_CCAR)": {
|
||||
"key": "CZ_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(CZ_RCAR)": {
|
||||
"key": "CZ_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(CZ_ZCAR)": {
|
||||
"key": "CZ_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(CZ_YACU)": {
|
||||
"key": "CZ_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(CZ_AACU)": {
|
||||
"key": "CZ_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(CZ_IACU)": {
|
||||
"key": "CZ_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(CZ_EACU)": {
|
||||
"key": "CZ_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(CZ_EQL)": {
|
||||
"key": "CZ_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(CZ_ACUT)": {
|
||||
"key": "CZ_CARN",
|
||||
"label": "ˇ (dead)",
|
||||
}
|
||||
"S(CZ_UACU)": {
|
||||
"key": "CZ_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(CZ_RPRN)": {
|
||||
"key": "CZ_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(CZ_DIAE)": {
|
||||
"key": "CZ_GRV",
|
||||
"label": "`",
|
||||
}
|
||||
"S(CZ_URNG)": {
|
||||
"key": "CZ_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(CZ_SECT)": {
|
||||
"key": "CZ_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(CZ_COMM)": {
|
||||
"key": "CZ_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(CZ_DOT)": {
|
||||
"key": "CZ_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(CZ_MINS)": {
|
||||
"key": "CZ_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* Alted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ │ │ @ │ # │ $ │ ~ │ ^ │ & │ * │ { │ } │ ° │ ^ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ │ ė │ ę │ € │ │ │ │ │ │ │ [ │ ] │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
|
||||
* │ │ ą │ ß │ ∂ │ │ │ ‘ │ ’ │ │ ł │ ; │ ' │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
|
||||
* │ │ │ │ │ │ │ ‚ │ │ < │ > │ – │ │
|
||||
* ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"A(CZ_ECAR)": {
|
||||
"key": "CZ_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"A(CZ_SCAR)": {
|
||||
"key": "CZ_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"A(CZ_CCAR)": {
|
||||
"key": "CZ_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"A(CZ_RCAR)": {
|
||||
"key": "CZ_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"A(CZ_ZCAR)": {
|
||||
"key": "CZ_CIRC",
|
||||
"label": "^",
|
||||
}
|
||||
"A(CZ_YACU)": {
|
||||
"key": "CZ_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"A(CZ_AACU)": {
|
||||
"key": "CZ_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"A(CZ_IACU)": {
|
||||
"key": "CZ_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"A(CZ_EACU)": {
|
||||
"key": "CZ_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"A(CZ_EQL)": {
|
||||
"key": "CZ_RNGA",
|
||||
"label": "° (dead)",
|
||||
}
|
||||
"A(CZ_ACUT)": {
|
||||
"key": "CZ_DCIR",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"A(CZ_W)": {
|
||||
"key": "CZ_LEDT",
|
||||
"label": "ė",
|
||||
}
|
||||
"A(CZ_E)": {
|
||||
"key": "CZ_LEOG",
|
||||
"label": "ę",
|
||||
}
|
||||
"A(CZ_R)": {
|
||||
"key": "CZ_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"A(CZ_Z)": {
|
||||
"key": "CZ_LZDT",
|
||||
"label": "ż",
|
||||
}
|
||||
"A(CZ_UACU)": {
|
||||
"key": "CZ_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"A(CZ_RPRN)": {
|
||||
"key": "CZ_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"A(CZ_A)": {
|
||||
"key": "CZ_LAOG",
|
||||
"label": "ą",
|
||||
}
|
||||
"A(CZ_S)": {
|
||||
"key": "CZ_SS",
|
||||
"label": "ß",
|
||||
}
|
||||
"A(CZ_D)": {
|
||||
"key": "CZ_PDIF",
|
||||
"label": "∂",
|
||||
}
|
||||
"A(CZ_H)": {
|
||||
"key": "CZ_LSQU",
|
||||
"label": "‘",
|
||||
}
|
||||
"A(CZ_J)": {
|
||||
"key": "CZ_RSQU",
|
||||
"label": "’",
|
||||
}
|
||||
"A(CZ_L)": {
|
||||
"key": "CZ_LLST",
|
||||
"label": "ł",
|
||||
}
|
||||
"A(CZ_URNG)": {
|
||||
"key": "CZ_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"A(CZ_SECT)": {
|
||||
"key": "CZ_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"A(CZ_N)": {
|
||||
"key": "CZ_SLQU",
|
||||
"label": "‚",
|
||||
}
|
||||
"A(CZ_COMM)": {
|
||||
"key": "CZ_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"A(CZ_DOT)": {
|
||||
"key": "CZ_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"A(CZ_MINS)": {
|
||||
"key": "CZ_NDSH",
|
||||
"label": "–",
|
||||
}
|
||||
/* Shift+Alted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ │ ¬ │ • │ ≠ │ £ │ ◊ │ † │ ¶ │ ÷ │ « │ » │ , │ - │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ │ Ė │ Ę │ ® │ ™ │ Ż │ │ │ │ │ ‹ │ › │ " │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
|
||||
* │ │ Ą │ ∑ │ ∆ │ │ │ “ │ ” │ │ Ł │ … │ ~ │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
|
||||
* │ │ │ │ © │ √ │ │ „ │ │ ≤ │ ≥ │ — │ │
|
||||
* ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"S(A(CZ_1))": {
|
||||
"key": "CZ_NOT",
|
||||
"label": "¬",
|
||||
}
|
||||
"S(A(CZ_2))": {
|
||||
"key": "CZ_BULT",
|
||||
"label": "•",
|
||||
}
|
||||
"S(A(CZ_3))": {
|
||||
"key": "CZ_NEQL",
|
||||
"label": "≠",
|
||||
}
|
||||
"S(A(CZ_4))": {
|
||||
"key": "CZ_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"S(A(CZ_5))": {
|
||||
"key": "CZ_LOZN",
|
||||
"label": "◊",
|
||||
}
|
||||
"S(A(CZ_6))": {
|
||||
"key": "CZ_DAGG",
|
||||
"label": "†",
|
||||
}
|
||||
"S(A(CZ_7))": {
|
||||
"key": "CZ_PARA",
|
||||
"label": "¶",
|
||||
}
|
||||
"S(A(CZ_8))": {
|
||||
"key": "CZ_DIV",
|
||||
"label": "÷",
|
||||
}
|
||||
"S(A(CZ_9))": {
|
||||
"key": "CZ_LDAQ",
|
||||
"label": "«",
|
||||
}
|
||||
"S(A(CZ_0))": {
|
||||
"key": "CZ_RDAQ",
|
||||
"label": "»",
|
||||
}
|
||||
"S(A(CZ_EQL))": {
|
||||
"key": "CZ_DCOM",
|
||||
"label": ", (dead)",
|
||||
}
|
||||
"S(A(CZ_ACUT))": {
|
||||
"key": "CZ_DHPN",
|
||||
"label": "- (dead)",
|
||||
}
|
||||
"S(A(CZ_W))": {
|
||||
"key": "CZ_CEDT",
|
||||
"label": "Ė",
|
||||
}
|
||||
"S(A(CZ_E))": {
|
||||
"key": "CZ_CEOG",
|
||||
"label": "Ę",
|
||||
}
|
||||
"S(A(CZ_R))": {
|
||||
"key": "CZ_REGD",
|
||||
"label": "®",
|
||||
}
|
||||
"S(A(CZ_T))": {
|
||||
"key": "CZ_TM",
|
||||
"label": "™",
|
||||
}
|
||||
"S(A(CZ_Z))": {
|
||||
"key": "CZ_CZDT",
|
||||
"label": "Ż",
|
||||
}
|
||||
"S(A(CZ_UACU))": {
|
||||
"key": "CZ_LSAQ",
|
||||
"label": "‹",
|
||||
}
|
||||
"S(A(CZ_RPRN))": {
|
||||
"key": "CZ_RSAQ",
|
||||
"label": "›",
|
||||
}
|
||||
"S(A(CZ_DIAE))": {
|
||||
"key": "CZ_DDQT",
|
||||
"label": "\" (dead)",
|
||||
}
|
||||
"S(A(CZ_A))": {
|
||||
"key": "CZ_CAOG",
|
||||
"label": "Ą",
|
||||
}
|
||||
"S(A(CZ_S))": {
|
||||
"key": "CZ_NARS",
|
||||
"label": "∑",
|
||||
}
|
||||
"S(A(CZ_D))": {
|
||||
"key": "CZ_INCR",
|
||||
"label": "∆",
|
||||
}
|
||||
"S(A(CZ_H))": {
|
||||
"key": "CZ_LDQU",
|
||||
"label": "“",
|
||||
}
|
||||
"S(A(CZ_J))": {
|
||||
"key": "CZ_RDQU",
|
||||
"label": "”",
|
||||
}
|
||||
"S(A(CZ_L))": {
|
||||
"key": "CZ_CLST",
|
||||
"label": "Ł",
|
||||
}
|
||||
"S(A(CZ_URNG))": {
|
||||
"key": "CZ_ELLP",
|
||||
"label": "…",
|
||||
}
|
||||
"S(A(CZ_SECT))": {
|
||||
"key": "CZ_DTIL",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"S(A(CZ_C))": {
|
||||
"key": "CZ_COPY",
|
||||
"label": "©",
|
||||
}
|
||||
"S(A(CZ_V))": {
|
||||
"key": "CZ_SQRT",
|
||||
"label": "√",
|
||||
}
|
||||
"S(A(CZ_N))": {
|
||||
"key": "CZ_DLQU",
|
||||
"label": "„",
|
||||
}
|
||||
"S(A(CZ_COMM))": {
|
||||
"key": "CZ_LEQL",
|
||||
"label": "≤",
|
||||
}
|
||||
"S(A(CZ_DOT))": {
|
||||
"key": "CZ_GEQL",
|
||||
"label": "≥",
|
||||
}
|
||||
"S(A(CZ_MINS))": {
|
||||
"key": "CZ_MDSH",
|
||||
"label": "—",
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,580 @@
|
|||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ │ + │ ě │ š │ č │ ř │ ž │ ý │ á │ í │ é │ = │ ' │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ 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 │ , │ . │ - │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"KC_1": {
|
||||
"key": "CZ_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "CZ_ECAR",
|
||||
"label": "ě",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "CZ_SCAR",
|
||||
"label": "š",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "CZ_CCAR",
|
||||
"label": "č",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "CZ_RCAR",
|
||||
"label": "ř",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "CZ_ZCAR",
|
||||
"label": "ž",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "CZ_YACU",
|
||||
"label": "ý",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "CZ_AACU",
|
||||
"label": "á",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "CZ_IACU",
|
||||
"label": "í",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "CZ_EACU",
|
||||
"label": "é",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "CZ_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "CZ_ACUT",
|
||||
"label": "' (dead)",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "CZ_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "CZ_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "CZ_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "CZ_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "CZ_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "CZ_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "CZ_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "CZ_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "CZ_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "CZ_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "CZ_UACU",
|
||||
"label": "ú",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "CZ_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "CZ_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "CZ_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "CZ_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "CZ_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "CZ_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "CZ_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "CZ_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "CZ_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "CZ_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "CZ_URNG",
|
||||
"label": "ů",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "CZ_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "CZ_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "CZ_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "CZ_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "CZ_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "CZ_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "CZ_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "CZ_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "CZ_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "CZ_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "CZ_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "CZ_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "CZ_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ % │ ˇ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ / │ ( │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ " │ ! │ ` │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ | │ │ │ │ │ │ │ │ ? │ : │ _ │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"S(CZ_PLUS)": {
|
||||
"key": "CZ_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(CZ_ECAR)": {
|
||||
"key": "CZ_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(CZ_SCAR)": {
|
||||
"key": "CZ_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(CZ_CCAR)": {
|
||||
"key": "CZ_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(CZ_RCAR)": {
|
||||
"key": "CZ_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(CZ_ZCAR)": {
|
||||
"key": "CZ_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(CZ_YACU)": {
|
||||
"key": "CZ_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(CZ_AACU)": {
|
||||
"key": "CZ_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(CZ_IACU)": {
|
||||
"key": "CZ_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(CZ_EACU)": {
|
||||
"key": "CZ_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(CZ_EQL)": {
|
||||
"key": "CZ_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(CZ_ACUT)": {
|
||||
"key": "CZ_CARN",
|
||||
"label": "ˇ (dead)",
|
||||
}
|
||||
"S(CZ_UACU)": {
|
||||
"key": "CZ_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(CZ_RPRN)": {
|
||||
"key": "CZ_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(CZ_URNG)": {
|
||||
"key": "CZ_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(CZ_SECT)": {
|
||||
"key": "CZ_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(CZ_DIAE)": {
|
||||
"key": "CZ_GRV",
|
||||
"label": "`",
|
||||
}
|
||||
"S(CZ_BSLS)": {
|
||||
"key": "CZ_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"S(CZ_COMM)": {
|
||||
"key": "CZ_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(CZ_DOT)": {
|
||||
"key": "CZ_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(CZ_MINS)": {
|
||||
"key": "CZ_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* Alted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ │ │ @ │ # │ $ │ ~ │ ^ │ & │ * │ { │ } │ ° │ ^ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ │ ė │ ę │ € │ │ ż │ │ │ │ │ [ │ ] │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ ą │ ß │ ∂ │ │ │ ‘ │ ’ │ │ ł │ ; │ ' │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ │ │ │ │ │ │ ‚ │ │ < │ > │ – │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"A(CZ_ECAR)": {
|
||||
"key": "CZ_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"A(CZ_SCAR)": {
|
||||
"key": "CZ_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"A(CZ_CCAR)": {
|
||||
"key": "CZ_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"A(CZ_RCAR)": {
|
||||
"key": "CZ_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"A(CZ_ZCAR)": {
|
||||
"key": "CZ_CIRC",
|
||||
"label": "^",
|
||||
}
|
||||
"A(CZ_YACU)": {
|
||||
"key": "CZ_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"A(CZ_AACU)": {
|
||||
"key": "CZ_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"A(CZ_IACU)": {
|
||||
"key": "CZ_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"A(CZ_EACU)": {
|
||||
"key": "CZ_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"A(CZ_EQL)": {
|
||||
"key": "CZ_RNGA",
|
||||
"label": "° (dead)",
|
||||
}
|
||||
"A(CZ_ACUT)": {
|
||||
"key": "CZ_DCIR",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"A(CZ_W)": {
|
||||
"key": "CZ_LEDT",
|
||||
"label": "ė",
|
||||
}
|
||||
"A(CZ_E)": {
|
||||
"key": "CZ_LEOG",
|
||||
"label": "ę",
|
||||
}
|
||||
"A(CZ_R)": {
|
||||
"key": "CZ_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"A(CZ_Z)": {
|
||||
"key": "CZ_LZDT",
|
||||
"label": "ż",
|
||||
}
|
||||
"A(CZ_UACU)": {
|
||||
"key": "CZ_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"A(CZ_RPRN)": {
|
||||
"key": "CZ_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"A(CZ_A)": {
|
||||
"key": "CZ_LAOG",
|
||||
"label": "ą",
|
||||
}
|
||||
"A(CZ_S)": {
|
||||
"key": "CZ_SS",
|
||||
"label": "ß",
|
||||
}
|
||||
"A(CZ_D)": {
|
||||
"key": "CZ_PDIF",
|
||||
"label": "∂",
|
||||
}
|
||||
"A(CZ_H)": {
|
||||
"key": "CZ_LSQU",
|
||||
"label": "‘",
|
||||
}
|
||||
"A(CZ_J)": {
|
||||
"key": "CZ_RSQU",
|
||||
"label": "’",
|
||||
}
|
||||
"A(CZ_L)": {
|
||||
"key": "CZ_LLST",
|
||||
"label": "ł",
|
||||
}
|
||||
"A(CZ_URNG)": {
|
||||
"key": "CZ_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"A(CZ_SECT)": {
|
||||
"key": "CZ_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"A(CZ_N)": {
|
||||
"key": "CZ_SLQU",
|
||||
"label": "‚",
|
||||
}
|
||||
"A(CZ_COMM)": {
|
||||
"key": "CZ_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"A(CZ_DOT)": {
|
||||
"key": "CZ_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"A(CZ_MINS)": {
|
||||
"key": "CZ_NDSH",
|
||||
"label": "–",
|
||||
}
|
||||
/* Shift+Alted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ │ ¬ │ • │ ≠ │ £ │ ◊ │ † │ ¶ │ ÷ │ « │ » │ , │ - │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ │ Ė │ Ę │ ® │ ™ │ Ż │ │ │ │ │ ‹ │ › │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Ą │ ∑ │ ∆ │ │ │ “ │ ” │ │ Ł │ … │ ~ │ " │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ │ │ │ © │ √ │ │ „ │ │ ≤ │ ≥ │ — │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"S(A(CZ_1))": {
|
||||
"key": "CZ_NOT",
|
||||
"label": "¬",
|
||||
}
|
||||
"S(A(CZ_2))": {
|
||||
"key": "CZ_BULT",
|
||||
"label": "•",
|
||||
}
|
||||
"S(A(CZ_3))": {
|
||||
"key": "CZ_NEQL",
|
||||
"label": "≠",
|
||||
}
|
||||
"S(A(CZ_4))": {
|
||||
"key": "CZ_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"S(A(CZ_5))": {
|
||||
"key": "CZ_LOZN",
|
||||
"label": "◊",
|
||||
}
|
||||
"S(A(CZ_6))": {
|
||||
"key": "CZ_DAGG",
|
||||
"label": "†",
|
||||
}
|
||||
"S(A(CZ_7))": {
|
||||
"key": "CZ_PARA",
|
||||
"label": "¶",
|
||||
}
|
||||
"S(A(CZ_8))": {
|
||||
"key": "CZ_DIV",
|
||||
"label": "÷",
|
||||
}
|
||||
"S(A(CZ_9))": {
|
||||
"key": "CZ_LDAQ",
|
||||
"label": "«",
|
||||
}
|
||||
"S(A(CZ_0))": {
|
||||
"key": "CZ_RDAQ",
|
||||
"label": "»",
|
||||
}
|
||||
"S(A(CZ_EQL))": {
|
||||
"key": "CZ_DCOM",
|
||||
"label": ", (dead)",
|
||||
}
|
||||
"S(A(CZ_ACUT))": {
|
||||
"key": "CZ_DHPN",
|
||||
"label": "- (dead)",
|
||||
}
|
||||
"S(A(CZ_W))": {
|
||||
"key": "CZ_CEDT",
|
||||
"label": "Ė",
|
||||
}
|
||||
"S(A(CZ_E))": {
|
||||
"key": "CZ_CEOG",
|
||||
"label": "Ę",
|
||||
}
|
||||
"S(A(CZ_R))": {
|
||||
"key": "CZ_REGD",
|
||||
"label": "®",
|
||||
}
|
||||
"S(A(CZ_T))": {
|
||||
"key": "CZ_TM",
|
||||
"label": "™",
|
||||
}
|
||||
"S(A(CZ_Z))": {
|
||||
"key": "CZ_CZDT",
|
||||
"label": "Ż",
|
||||
}
|
||||
"S(A(CZ_UACU))": {
|
||||
"key": "CZ_LSAQ",
|
||||
"label": "‹",
|
||||
}
|
||||
"S(A(CZ_RPRN))": {
|
||||
"key": "CZ_RSAQ",
|
||||
"label": "›",
|
||||
}
|
||||
"S(A(CZ_A))": {
|
||||
"key": "CZ_CAOG",
|
||||
"label": "Ą",
|
||||
}
|
||||
"S(A(CZ_S))": {
|
||||
"key": "CZ_NARS",
|
||||
"label": "∑",
|
||||
}
|
||||
"S(A(CZ_D))": {
|
||||
"key": "CZ_INCR",
|
||||
"label": "∆",
|
||||
}
|
||||
"S(A(CZ_H))": {
|
||||
"key": "CZ_LDQU",
|
||||
"label": "“",
|
||||
}
|
||||
"S(A(CZ_J))": {
|
||||
"key": "CZ_RDQU",
|
||||
"label": "”",
|
||||
}
|
||||
"S(A(CZ_L))": {
|
||||
"key": "CZ_CLST",
|
||||
"label": "Ł",
|
||||
}
|
||||
"S(A(CZ_URNG))": {
|
||||
"key": "CZ_ELLP",
|
||||
"label": "…",
|
||||
}
|
||||
"S(A(CZ_SECT))": {
|
||||
"key": "CZ_DTIL",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"S(A(CZ_DIAE))": {
|
||||
"key": "CZ_DDQT",
|
||||
"label": "\" (dead)",
|
||||
}
|
||||
"S(A(CZ_C))": {
|
||||
"key": "CZ_COPY",
|
||||
"label": "©",
|
||||
}
|
||||
"S(A(CZ_V))": {
|
||||
"key": "CZ_SQRT",
|
||||
"label": "√",
|
||||
}
|
||||
"S(A(CZ_N))": {
|
||||
"key": "CZ_DLQU",
|
||||
"label": "„",
|
||||
}
|
||||
"S(A(CZ_COMM))": {
|
||||
"key": "CZ_LEQL",
|
||||
"label": "≤",
|
||||
}
|
||||
"S(A(CZ_DOT))": {
|
||||
"key": "CZ_GEQL",
|
||||
"label": "≥",
|
||||
}
|
||||
"S(A(CZ_MINS))": {
|
||||
"key": "CZ_MDSH",
|
||||
"label": "—",
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,239 @@
|
|||
{
|
||||
"keycodes": {
|
||||
"0x7810": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_ON",
|
||||
"aliases": [
|
||||
"LM_ON"
|
||||
]
|
||||
},
|
||||
"0x7811": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_OFF",
|
||||
"aliases": [
|
||||
"LM_OFF"
|
||||
]
|
||||
},
|
||||
"0x7812": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_TOGGLE",
|
||||
"aliases": [
|
||||
"LM_TOGG"
|
||||
]
|
||||
},
|
||||
"0x7813": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_MODE_NEXT",
|
||||
"aliases": [
|
||||
"LM_NEXT"
|
||||
]
|
||||
},
|
||||
"0x7814": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_MODE_PREVIOUS",
|
||||
"aliases": [
|
||||
"LM_PREV"
|
||||
]
|
||||
},
|
||||
"0x7815": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_BRIGHTNESS_UP",
|
||||
"aliases": [
|
||||
"LM_BRIU"
|
||||
]
|
||||
},
|
||||
"0x7816": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_BRIGHTNESS_DOWN",
|
||||
"aliases": [
|
||||
"LM_BRID"
|
||||
]
|
||||
},
|
||||
"0x7817": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_SPEED_UP",
|
||||
"aliases": [
|
||||
"LM_SPDU"
|
||||
]
|
||||
},
|
||||
"0x7818": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_SPEED_DOWN",
|
||||
"aliases": [
|
||||
"LM_SPDD"
|
||||
]
|
||||
},
|
||||
|
||||
"0x7820": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_TOGGLE",
|
||||
"aliases": [
|
||||
"UG_TOGG"
|
||||
]
|
||||
},
|
||||
"0x7821": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_MODE_NEXT",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"UG_NEXT"
|
||||
]
|
||||
},
|
||||
"0x7822": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_MODE_PREVIOUS",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"UG_PREV"
|
||||
]
|
||||
},
|
||||
"0x7823": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_HUE_UP",
|
||||
"aliases": [
|
||||
"UG_HUEU"
|
||||
]
|
||||
},
|
||||
"0x7824": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_HUE_DOWN",
|
||||
"aliases": [
|
||||
"UG_HUED"
|
||||
]
|
||||
},
|
||||
"0x7825": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SATURATION_UP",
|
||||
"aliases": [
|
||||
"UG_SATU"
|
||||
]
|
||||
},
|
||||
"0x7826": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SATURATION_DOWN",
|
||||
"aliases": [
|
||||
"UG_SATD"
|
||||
]
|
||||
},
|
||||
"0x7827": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_VALUE_UP",
|
||||
"aliases": [
|
||||
"UG_VALU"
|
||||
]
|
||||
},
|
||||
"0x7828": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_VALUE_DOWN",
|
||||
"aliases": [
|
||||
"UG_VALD"
|
||||
]
|
||||
},
|
||||
"0x7829": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SPEED_UP",
|
||||
"aliases": [
|
||||
"UG_SPDU"
|
||||
]
|
||||
},
|
||||
"0x782A": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SPEED_DOWN",
|
||||
"aliases": [
|
||||
"UG_SPDD"
|
||||
]
|
||||
},
|
||||
|
||||
"0x7840": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_ON",
|
||||
"aliases": [
|
||||
"RM_ON"
|
||||
]
|
||||
},
|
||||
"0x7841": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_OFF",
|
||||
"aliases": [
|
||||
"RM_OFF"
|
||||
]
|
||||
},
|
||||
"0x7842": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_TOGGLE",
|
||||
"aliases": [
|
||||
"RM_TOGG"
|
||||
]
|
||||
},
|
||||
"0x7843": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_MODE_NEXT",
|
||||
"aliases": [
|
||||
"RM_NEXT"
|
||||
]
|
||||
},
|
||||
"0x7844": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_MODE_PREVIOUS",
|
||||
"aliases": [
|
||||
"RM_PREV"
|
||||
]
|
||||
},
|
||||
"0x7845": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_HUE_UP",
|
||||
"aliases": [
|
||||
"RM_HUEU"
|
||||
]
|
||||
},
|
||||
"0x7846": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_HUE_DOWN",
|
||||
"aliases": [
|
||||
"RM_HUED"
|
||||
]
|
||||
},
|
||||
"0x7847": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SATURATION_UP",
|
||||
"aliases": [
|
||||
"RM_SATU"
|
||||
]
|
||||
},
|
||||
"0x7848": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SATURATION_DOWN",
|
||||
"aliases": [
|
||||
"RM_SATD"
|
||||
]
|
||||
},
|
||||
"0x7849": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_VALUE_UP",
|
||||
"aliases": [
|
||||
"RM_VALU"
|
||||
]
|
||||
},
|
||||
"0x784A": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_VALUE_DOWN",
|
||||
"aliases": [
|
||||
"RM_VALD"
|
||||
]
|
||||
},
|
||||
"0x784B": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SPEED_UP",
|
||||
"aliases": [
|
||||
"RM_SPDU"
|
||||
]
|
||||
},
|
||||
"0x784C": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SPEED_DOWN",
|
||||
"aliases": [
|
||||
"RM_SPDD"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -19,6 +19,8 @@
|
|||
// Audio
|
||||
"AUDIO_DEFAULT_ON": {"info_key": "audio.default.on", "value_type": "bool"},
|
||||
"AUDIO_DEFAULT_CLICKY_ON": {"info_key": "audio.default.clicky", "value_type": "bool"},
|
||||
"AUDIO_POWER_CONTROL_PIN": {"info_key": "audio.power_control.pin"},
|
||||
"AUDIO_POWER_CONTROL_PIN_ON_STATE": {"info_key": "audio.power_control.on_state", "value_type": "int" },
|
||||
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "flag"},
|
||||
"SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "flag"},
|
||||
|
||||
|
@ -162,7 +164,6 @@
|
|||
"RGBLIGHT_DEFAULT_SAT": {"info_key": "rgblight.default.sat", "value_type": "int"},
|
||||
"RGBLIGHT_DEFAULT_VAL": {"info_key": "rgblight.default.val", "value_type": "int"},
|
||||
"RGBLIGHT_DEFAULT_SPD": {"info_key": "rgblight.default.speed", "value_type": "int"},
|
||||
"RGBW": {"info_key": "rgblight.rgbw", "value_type": "flag"},
|
||||
|
||||
// Secure
|
||||
"SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"},
|
||||
|
@ -213,6 +214,7 @@
|
|||
"WS2812_DI_PIN": {"info_key": "ws2812.pin"},
|
||||
"WS2812_I2C_ADDRESS": {"info_key": "ws2812.i2c_address", "value_type": "hex"},
|
||||
"WS2812_I2C_TIMEOUT": {"info_key": "ws2812.i2c_timeout", "value_type": "int"},
|
||||
"WS2812_RGBW": {"info_key": "ws2812.rgbw", "value_type": "flag"},
|
||||
|
||||
"LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"},
|
||||
|
||||
|
@ -227,6 +229,7 @@
|
|||
"PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true},
|
||||
"QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true},
|
||||
"RGB_DI_PIN": {"info_key": "rgblight.pin", "invalid": true, "replace_with": "WS2812_DI_PIN or APA102_DI_PIN"},
|
||||
"RGBW": {"info_key": "rgblight.rgbw", "invalid": true, "replace_with": "WS2812_RGBW"},
|
||||
"RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "_invalid.rgb_matrix_sleep", "invalid": true, "replace_with": "RGB_MATRIX_SLEEP"},
|
||||
"RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "flag", "invalid": true},
|
||||
"TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "flag", "deprecated": true},
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
// invalid: Default `false`. Set to `true` to generate errors when a value exists
|
||||
// replace_with: use with a key marked deprecated or invalid to designate a replacement
|
||||
|
||||
"AUDIO_DRIVER": {"info_key": "audio.driver"},
|
||||
"BACKLIGHT_DRIVER": {"info_key": "backlight.driver"},
|
||||
"BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"},
|
||||
"BOARD": {"info_key": "board"},
|
||||
|
@ -23,6 +24,7 @@
|
|||
"ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"},
|
||||
"ENCODER_DRIVER": {"info_key": "encoder.driver"},
|
||||
"FIRMWARE_FORMAT": {"info_key": "build.firmware_format"},
|
||||
"HAPTIC_DRIVER": {"info_key": "haptic.driver"},
|
||||
"KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"},
|
||||
"LAYOUTS": {"info_key": "community_layouts", "value_type": "list"},
|
||||
"LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"},
|
||||
|
@ -43,7 +45,7 @@
|
|||
"SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false},
|
||||
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
|
||||
"STENO_PROTOCOL": {"info_key": "stenography.protocol"},
|
||||
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
|
||||
"USB_WAIT_FOR_ENUMERATION": {"info_key": "usb.wait_for_enumeration", "value_type": "bool"},
|
||||
"WEAR_LEVELING_DRIVER": {"info_key": "eeprom.wear_leveling.driver"},
|
||||
"WS2812_DRIVER": {"info_key": "ws2812.driver"},
|
||||
|
||||
|
|
|
@ -306,13 +306,13 @@
|
|||
"target": "jacky_studio/piggy60/rev1"
|
||||
},
|
||||
"jj40": {
|
||||
"target": "kprepublic/jj40"
|
||||
"target": "kprepublic/jj40/rev1"
|
||||
},
|
||||
"jj4x4": {
|
||||
"target": "kprepublic/jj4x4"
|
||||
},
|
||||
"jj50": {
|
||||
"target": "kprepublic/jj50"
|
||||
"target": "kprepublic/jj50/rev1"
|
||||
},
|
||||
"jm60": {
|
||||
"target": "kbdfans/jm60"
|
||||
|
@ -1518,5 +1518,12 @@
|
|||
// Moved during 2023 Q4 cycle
|
||||
"ymdk/melody96": {
|
||||
"target": "ymdk/melody96/soldered"
|
||||
},
|
||||
// Moved during 2024 Q2 cycle
|
||||
"kprepublic/jj40": {
|
||||
"target": "kprepublic/jj40/rev1"
|
||||
},
|
||||
"kprepublic/jj50": {
|
||||
"target": "kprepublic/jj50/rev1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -133,8 +133,20 @@
|
|||
"clicky": {"type": "boolean"}
|
||||
}
|
||||
},
|
||||
"driver": {
|
||||
"type": "string",
|
||||
"enum": ["dac_additive", "dac_basic", "pwm_software", "pwm_hardware"]
|
||||
},
|
||||
"macro_beep": {"type": "boolean"},
|
||||
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
|
||||
"power_control": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"on_state": {"$ref": "qmk.definitions.v1#/bit"},
|
||||
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
|
||||
}
|
||||
},
|
||||
"voices": {"type": "boolean"}
|
||||
}
|
||||
},
|
||||
|
@ -379,6 +391,15 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"haptic": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"driver": {
|
||||
"type": "string",
|
||||
"enum": ["drv2605l", "solenoid"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"leader_key": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
@ -445,6 +466,7 @@
|
|||
"enum": [
|
||||
"custom",
|
||||
"is31fl3218",
|
||||
"is31fl3236",
|
||||
"is31fl3729",
|
||||
"is31fl3731",
|
||||
"is31fl3733",
|
||||
|
@ -527,6 +549,7 @@
|
|||
"aw20216s",
|
||||
"custom",
|
||||
"is31fl3218",
|
||||
"is31fl3236",
|
||||
"is31fl3729",
|
||||
"is31fl3731",
|
||||
"is31fl3733",
|
||||
|
@ -638,7 +661,10 @@
|
|||
"$ref": "qmk.definitions.v1#/mcu_pin",
|
||||
"$comment": "Deprecated: use ws2812.pin instead"
|
||||
},
|
||||
"rgbw": {"type": "boolean"},
|
||||
"rgbw": {
|
||||
"type": "boolean",
|
||||
"$comment": "Deprecated: use ws2812.rgbw instead"
|
||||
},
|
||||
"saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
|
||||
"sleep": {"type": "boolean"},
|
||||
"split": {"type": "boolean"},
|
||||
|
@ -779,7 +805,7 @@
|
|||
"properties": {
|
||||
"protocol": {
|
||||
"type": "string",
|
||||
"enum": ["custom", "i2c", "serial", "serial_usart"]
|
||||
"enum": ["custom", "i2c", "serial"]
|
||||
},
|
||||
"sync": {
|
||||
"type": "object",
|
||||
|
@ -875,7 +901,7 @@
|
|||
}
|
||||
},
|
||||
"suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
|
||||
"wait_for": {"type": "boolean"}
|
||||
"wait_for_enumeration": {"type": "boolean"}
|
||||
}
|
||||
},
|
||||
"qmk": {
|
||||
|
@ -914,6 +940,7 @@
|
|||
"enum": ["bitbang", "custom", "i2c", "pwm", "spi", "vendor"]
|
||||
},
|
||||
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
|
||||
"rgbw": {"type": "boolean"},
|
||||
"i2c_address": {"$ref": "qmk.definitions.v1#/hex_number_2d"},
|
||||
"i2c_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
|
||||
}
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
// Copyright %YEAR% %REAL_NAME% (@%USER_NAME%)
|
||||
// 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
|
|
@ -0,0 +1,334 @@
|
|||
# QMK Breaking Changes - 2024 May 26 Changelog
|
||||
|
||||
## Notable Features :id=notable-features
|
||||
|
||||
May 2024 brings about another heavy maintenance release of QMK. Of the 209 PRs created this breaking changes cycle against the `develop` branch, 174 behind-the-scenes PRs (83%!) were aimed at converting, consolidating, and cleaning up keyboards and their configuration data. Not the most glamorous work, but it means QMK is in a much more manageable spot than what it was 3 months prior. The work steadily continues!
|
||||
|
||||
## Changes Requiring User Action :id=changes-requiring-user-action
|
||||
|
||||
### Updated Keyboard Codebases :id=updated-keyboard-codebases
|
||||
|
||||
One note with updated keyboard names -- historical keyboard names are still considered valid when using [External Userspace](newbs_external_userspace.md) for builds. If you're already using External Userspace, you do not need to move your keymap inside your repository.
|
||||
|
||||
| Old Keyboard Name | New Keyboard Name |
|
||||
|------------------------------|-----------------------------------|
|
||||
| adkb96 | adkb96/rev1 |
|
||||
| canary/canary60rgb | canary/canary60rgb/v1 |
|
||||
| handwired/meck_tkl | handwired/meck_tkl/blackpill_f401 |
|
||||
| handwired/qc60 | handwired/qc60/proto |
|
||||
| handwired/stef9998/split_5x7 | handwired/stef9998/split_5x7/rev1 |
|
||||
| junco | junco/rev1 |
|
||||
| keaboard | keaboard/rev1 |
|
||||
| kprepublic/jj40 | kprepublic/jj40/rev1 |
|
||||
| kprepublic/jj50 | kprepublic/jj50/rev1 |
|
||||
| melgeek/mj65 | melgeek/mj65/rev3 |
|
||||
| melgeek/mojo68 | melgeek/mojo68/rev1 |
|
||||
| melgeek/mojo75 | melgeek/mojo75/rev1 |
|
||||
| melgeek/tegic | melgeek/tegic/rev1 |
|
||||
| melgeek/z70ultra | melgeek/z70ultra/rev1 |
|
||||
| miiiw/blackio83 | miiiw/blackio83/rev_0100 |
|
||||
| murcielago | murcielago/rev1 |
|
||||
| polilla | polilla/rev1 |
|
||||
| qwertyydox | qwertyydox/rev1 |
|
||||
| spaceholdings/nebula68b | spaceholdings/nebula68b/solder |
|
||||
| splitty | splitty/rev1 |
|
||||
| xiudi/xd004 | xiudi/xd004/v1 |
|
||||
|
||||
### Remove deprecated quantum keycodes ([#23407](https://github.com/qmk/qmk_firmware/pull/23407))
|
||||
|
||||
A bunch of legacy keycodes have been removed -- check [the affected keycodes](https://github.com/qmk/qmk_firmware/blob/70e34e491c297231a3f987fd69760d38e79dbfa4/quantum/quantum_keycodes_legacy.h) if you run into compilation problems, as it'll show you what the problematic keycodes should be replaced with.
|
||||
|
||||
The latest of these were officially deprecated within QMK in the August 2023 breaking changes -- the new keycodes are the way forward.
|
||||
|
||||
### P3D Spacey Layout Updates ([#23329](https://github.com/qmk/qmk_firmware/pull/23329)) :id=spacey-layout-updates
|
||||
|
||||
This PR removed the `LAYOUT` macro that was configured for the Spacey.
|
||||
If you have a keymap for this keyboard, you will need to update your
|
||||
keymap using the following steps:
|
||||
|
||||
1. Change your layout macro to `LAYOUT_all`.
|
||||
2. Remove the two `KC_NO` keycodes following the Space and Delete keys
|
||||
on the bottom row.
|
||||
3. Move the keycode for the encoder pushbutton (customarily Mute) to the
|
||||
end of the top row, after the customary Backspace key.
|
||||
4. Move the keycode for the Right Arrow to the end of the Shift row,
|
||||
after the Down Arrow key.
|
||||
|
||||
### MechKeys ACR60 Layout Updates ([#23309](https://github.com/qmk/qmk_firmware/pull/23309)) :id=acr60-layout-updates
|
||||
|
||||
This PR removed and changed some of the layouts that were configured for the ACR60. If you use one of the following layouts, you will need to update your keymap:
|
||||
|
||||
- [`LAYOUT_hhkb`](#layout-hhkb)
|
||||
- [`LAYOUT_true_hhkb`](#layout-true-hhkb)
|
||||
- [`LAYOUT_directional`](#layout-directional)
|
||||
- [`LAYOUT_mitchsplit`](#layout-mitchsplit)
|
||||
|
||||
#### `LAYOUT_hhkb` :id=acr60-layout-hhkb
|
||||
|
||||
1. Change your layout macro to `LAYOUT_60_hhkb`.
|
||||
1. Remove any keycodes for the key between Left Shift and QWERTY Z.
|
||||
|
||||
#### `LAYOUT_true_hhkb` :id=acr60-layout-true-hhkb
|
||||
|
||||
1. Change your layout macro to `LAYOUT_60_true_hhkb`.
|
||||
1. Remove any keycodes for the key between Left Shift and QWERTY Z.
|
||||
|
||||
#### `LAYOUT_directional` :id=acr60-layout-directional
|
||||
|
||||
1. Change your layout macro to `LAYOUT_60_ansi_arrow_split_bs`.
|
||||
1. Remove any keycodes for the key between Left Shift and QWERTY Z.
|
||||
1. Remove any keycodes for the keys immediately before *and* after the 1.25u key of Split Spacebar.
|
||||
|
||||
If you need split spacebars, you may implement `LAYOUT_60_ansi_arrow_split_space_split_bs` and change your layout to it, removing the keycode between Left Shift and QWERTY Z.
|
||||
|
||||
#### `LAYOUT_mitchsplit` :id=acr60-layout-mitchsplit
|
||||
|
||||
1. Use `LAYOUT_60_ansi_split_space_split_rshift`.
|
||||
|
||||
## Notable core changes :id=notable-core
|
||||
|
||||
### Introduction of `keyboard.json` ([22891](https://github.com/qmk/qmk_firmware/pull/22891)) :id=keyboard-json
|
||||
|
||||
One longer term goal of QMK is increased maintainability.
|
||||
As part of the continued push towards [Data Driven Configuration](data_driven_config.md), the build system has been updated to simplify the existing codebase, and power future workflows.
|
||||
|
||||
The `keyboard.json` configuration file allows the support of a single data file for keyboard level config.
|
||||
|
||||
Additionally,
|
||||
* `info.json` now represents potential fragments of config that can be shared across keyboard revisions.
|
||||
* `rules.mk` is now optional - Completely blank files are no longer required.
|
||||
* Currently supported keyboards have been migrated to reflect this change.
|
||||
|
||||
Backwards compatibility of the old system has been maintained, but will be removed in a future breaking changes cycle.
|
||||
|
||||
### Refactor ChibiOS USB endpoints to be fully async ([#21656](https://github.com/qmk/qmk_firmware/pull/21656))
|
||||
|
||||
For most users, this change will mean suspend and resume on ARM-based boards works correctly. Others will notice that their keyboard now works correctly in BIOS/UEFI.
|
||||
|
||||
Essentially, changes were made in the internals of how QMK interacts with USB for ARM-based devices. Before this change, whenever a packet was attempted to be sent from the keyboard to the host machine, QMK would wait for the transmission to complete. After this change, those packets are queued and sent when opportune; this results in much better "correctness" as far as the USB protocol is concerned, and means far less likelihood of failure scenarios such as "stuck keys" or "random lockups" and the like.
|
||||
|
||||
Compliance checks were run against QMK firmwares for the most popular ARM microcontrollers, as well as suspend/resume tests. As far as we can tell, a whole host of hard-to-reproduce issues are mitigated by this change.
|
||||
|
||||
## Full changelist :id=full-changelist
|
||||
|
||||
Core:
|
||||
* Refactor vusb to protocol use pre/post task ([#14944](https://github.com/qmk/qmk_firmware/pull/14944))
|
||||
* Refactor ChibiOS USB endpoints to be fully async ([#21656](https://github.com/qmk/qmk_firmware/pull/21656))
|
||||
* Infer eeconfig identifiers ([#22135](https://github.com/qmk/qmk_firmware/pull/22135))
|
||||
* [Audio] Add support for audio shutdown pin ([#22731](https://github.com/qmk/qmk_firmware/pull/22731))
|
||||
* Enable 'keyboard.json' as a build target ([#22891](https://github.com/qmk/qmk_firmware/pull/22891))
|
||||
* Remove unuseful layer_on() call ([#23055](https://github.com/qmk/qmk_firmware/pull/23055))
|
||||
* Add init function to RGBLight driver struct ([#23076](https://github.com/qmk/qmk_firmware/pull/23076))
|
||||
* Add utility functions for Pointing Device Auto Mouse feature ([#23144](https://github.com/qmk/qmk_firmware/pull/23144))
|
||||
* Remove midi_ep_task from ChibiOS ([#23162](https://github.com/qmk/qmk_firmware/pull/23162))
|
||||
* LED drivers: add support for IS31FL3236 ([#23264](https://github.com/qmk/qmk_firmware/pull/23264))
|
||||
* Un-`extern` RGBLight `led[]` array ([#23322](https://github.com/qmk/qmk_firmware/pull/23322))
|
||||
* Update I2C API usage in keyboard code ([#23360](https://github.com/qmk/qmk_firmware/pull/23360))
|
||||
* Update GPIO expander API naming ([#23375](https://github.com/qmk/qmk_firmware/pull/23375))
|
||||
* Remove deprecated quantum keycodes ([#23407](https://github.com/qmk/qmk_firmware/pull/23407))
|
||||
* Add MacOS Czech ISO and ANSI keymaps #23346 ([#23412](https://github.com/qmk/qmk_firmware/pull/23412))
|
||||
* Rename `process_{led,rgb}_matrix()` ([#23422](https://github.com/qmk/qmk_firmware/pull/23422))
|
||||
* Separate keycode handling for LED Matrix and Backlight ([#23426](https://github.com/qmk/qmk_firmware/pull/23426))
|
||||
* Add new set of keycodes for LED Matrix ([#23432](https://github.com/qmk/qmk_firmware/pull/23432))
|
||||
* Oneshot locked mods split transaction ([#23434](https://github.com/qmk/qmk_firmware/pull/23434))
|
||||
* Bodge consolidation. ([#23448](https://github.com/qmk/qmk_firmware/pull/23448))
|
||||
* LED Matrix: replace backlight keycodes with newly added ones ([#23455](https://github.com/qmk/qmk_firmware/pull/23455))
|
||||
* Add new set of keycodes for RGB Matrix ([#23463](https://github.com/qmk/qmk_firmware/pull/23463))
|
||||
* Refactoring successive press() release() calls into tap_key() calls ([#23573](https://github.com/qmk/qmk_firmware/pull/23573))
|
||||
* Rename `RGBW` define to `WS2812_RGBW` ([#23585](https://github.com/qmk/qmk_firmware/pull/23585))
|
||||
* Normalise RGBLight (underglow) keycodes ([#23656](https://github.com/qmk/qmk_firmware/pull/23656))
|
||||
* split_util: rename `usbIsActive` to `usb_bus_detected` ([#23657](https://github.com/qmk/qmk_firmware/pull/23657))
|
||||
* Insert delay between shifted chars in send_string_with_delay for AVR ([#23673](https://github.com/qmk/qmk_firmware/pull/23673))
|
||||
* Remove useless `LED/RGB_MATRIX_ENABLE` ifdefs ([#23726](https://github.com/qmk/qmk_firmware/pull/23726))
|
||||
|
||||
CLI:
|
||||
* Some metadata on QGF/QFF files ([#20101](https://github.com/qmk/qmk_firmware/pull/20101))
|
||||
* `qmk new-keyboard` - detach community layout when selecting "none of the above" ([#20405](https://github.com/qmk/qmk_firmware/pull/20405))
|
||||
* Initial `qmk test-c` functionality ([#23038](https://github.com/qmk/qmk_firmware/pull/23038))
|
||||
* Reject duplicate matrix locations in LAYOUT macros ([#23273](https://github.com/qmk/qmk_firmware/pull/23273))
|
||||
* Align 'qmk lint' argument handling ([#23297](https://github.com/qmk/qmk_firmware/pull/23297))
|
||||
* Produce warning if keyboard is not configured via `keyboard.json` ([#23321](https://github.com/qmk/qmk_firmware/pull/23321))
|
||||
|
||||
Submodule updates:
|
||||
* Update ChibiOS submodules. ([#23405](https://github.com/qmk/qmk_firmware/pull/23405))
|
||||
|
||||
Keyboards:
|
||||
* Move `SPLIT_KEYBOARD` to data driven ([#21410](https://github.com/qmk/qmk_firmware/pull/21410))
|
||||
* Change to `development_board` ([#21695](https://github.com/qmk/qmk_firmware/pull/21695))
|
||||
* Add solid_reactive effects for MIIIW BlackIO83 ([#22251](https://github.com/qmk/qmk_firmware/pull/22251))
|
||||
* Migrate content where only parent info.json exists ([#22895](https://github.com/qmk/qmk_firmware/pull/22895))
|
||||
* Remove redundant disabling of features ([#22926](https://github.com/qmk/qmk_firmware/pull/22926))
|
||||
* Update ScottoAlp handwired keyboard to 12 column layout ([#22962](https://github.com/qmk/qmk_firmware/pull/22962))
|
||||
* Overhaul ploopyco devices ([#22967](https://github.com/qmk/qmk_firmware/pull/22967))
|
||||
* Add rp2040_ce option to lotus58 ([#23185](https://github.com/qmk/qmk_firmware/pull/23185))
|
||||
* Migrate features from rules.mk to data driven - 0-9 ([#23202](https://github.com/qmk/qmk_firmware/pull/23202))
|
||||
* Change default RGB effect for momokai keypads to solid white ([#23217](https://github.com/qmk/qmk_firmware/pull/23217))
|
||||
* Migrate annepro2 away from custom matrix ([#23221](https://github.com/qmk/qmk_firmware/pull/23221))
|
||||
* Update BAMFK-1 ([#23236](https://github.com/qmk/qmk_firmware/pull/23236))
|
||||
* Migrate features from rules.mk to data driven - ABCD ([#23247](https://github.com/qmk/qmk_firmware/pull/23247))
|
||||
* Migrate features from rules.mk to data driven - EFGH ([#23248](https://github.com/qmk/qmk_firmware/pull/23248))
|
||||
* Remove 60_ansi_arrow_split_bs_7u_spc Community Layout ([#23259](https://github.com/qmk/qmk_firmware/pull/23259))
|
||||
* Migrate features from rules.mk to data driven - IJK ([#23276](https://github.com/qmk/qmk_firmware/pull/23276))
|
||||
* Migrate features from rules.mk to data driven - LMN ([#23277](https://github.com/qmk/qmk_firmware/pull/23277))
|
||||
* Migrate features from rules.mk to data driven - OPQR ([#23285](https://github.com/qmk/qmk_firmware/pull/23285))
|
||||
* Migrate features from rules.mk to data driven - ST ([#23286](https://github.com/qmk/qmk_firmware/pull/23286))
|
||||
* Migrate features from rules.mk to data driven - UVWXYZ ([#23287](https://github.com/qmk/qmk_firmware/pull/23287))
|
||||
* Swift65 Hotswap Layout Name Standardization ([#23288](https://github.com/qmk/qmk_firmware/pull/23288))
|
||||
* Swift65 Solder Layout Name Standardization ([#23289](https://github.com/qmk/qmk_firmware/pull/23289))
|
||||
* Migrate build target markers to keyboard.json ([#23293](https://github.com/qmk/qmk_firmware/pull/23293))
|
||||
* KPRepublic JJ50 rev1 Refactor ([#23294](https://github.com/qmk/qmk_firmware/pull/23294))
|
||||
* KPRepublic JJ40 rev1 Refactor ([#23299](https://github.com/qmk/qmk_firmware/pull/23299))
|
||||
* Migrate features and LTO from rules.mk to data driven ([#23302](https://github.com/qmk/qmk_firmware/pull/23302))
|
||||
* Add RGB lighting for the PetruziaMini ([#23305](https://github.com/qmk/qmk_firmware/pull/23305))
|
||||
* Migrate features and LTO from rules.mk to data driven ([#23307](https://github.com/qmk/qmk_firmware/pull/23307))
|
||||
* MechKeys ACR60 Layout Updates ([#23309](https://github.com/qmk/qmk_firmware/pull/23309))
|
||||
* Remove RGBLight `led[]` references ([#23311](https://github.com/qmk/qmk_firmware/pull/23311))
|
||||
* Reduce firmware size of helix/rev3 ([#23324](https://github.com/qmk/qmk_firmware/pull/23324))
|
||||
* P3D Spacey Layout Updates ([#23329](https://github.com/qmk/qmk_firmware/pull/23329))
|
||||
* Data-Driven Keyboard Conversions: 0-9 ([#23357](https://github.com/qmk/qmk_firmware/pull/23357))
|
||||
* Update GPIO API usage in keyboard code ([#23361](https://github.com/qmk/qmk_firmware/pull/23361))
|
||||
* Remove "w": 1 from keyboards/ ([#23367](https://github.com/qmk/qmk_firmware/pull/23367))
|
||||
* Remove `quantum.h` includes from keyboard custom `matrix.c`s ([#23371](https://github.com/qmk/qmk_firmware/pull/23371))
|
||||
* refactor: mechwild/bbs ([#23373](https://github.com/qmk/qmk_firmware/pull/23373))
|
||||
* Remove 'NO_USB_STARTUP_CHECK = no' from keyboards ([#23376](https://github.com/qmk/qmk_firmware/pull/23376))
|
||||
* Remove completely redundant DEFAULT_FOLDER from keyboards ([#23377](https://github.com/qmk/qmk_firmware/pull/23377))
|
||||
* Miscellaneous keyboard.json migrations ([#23378](https://github.com/qmk/qmk_firmware/pull/23378))
|
||||
* Data-Driven Keyboard Conversions: A ([#23379](https://github.com/qmk/qmk_firmware/pull/23379))
|
||||
* refactor: flehrad/bigswitch ([#23384](https://github.com/qmk/qmk_firmware/pull/23384))
|
||||
* add second encoder to matrix info of arrowmechanics/wings ([#23390](https://github.com/qmk/qmk_firmware/pull/23390))
|
||||
* Change the VID and PID of the file kb38 info.json ([#23393](https://github.com/qmk/qmk_firmware/pull/23393))
|
||||
* Remove `quantum.h` includes from keyboard code ([#23394](https://github.com/qmk/qmk_firmware/pull/23394))
|
||||
* [ UPDATE 15PAD & 6PAD ] ([#23397](https://github.com/qmk/qmk_firmware/pull/23397))
|
||||
* Remove more unnecessary `quantum.h` includes ([#23402](https://github.com/qmk/qmk_firmware/pull/23402))
|
||||
* KB name change to Part.1-75-HS ([#23403](https://github.com/qmk/qmk_firmware/pull/23403))
|
||||
* Tidy up keyboards/zvecr ([#23418](https://github.com/qmk/qmk_firmware/pull/23418))
|
||||
* "features.split" is not a valid key ([#23419](https://github.com/qmk/qmk_firmware/pull/23419))
|
||||
* Migrate build target markers to keyboard.json - YZ ([#23421](https://github.com/qmk/qmk_firmware/pull/23421))
|
||||
* refactor: mechwild/waka60 ([#23423](https://github.com/qmk/qmk_firmware/pull/23423))
|
||||
* Convert some AVR GPIO operations to macros ([#23424](https://github.com/qmk/qmk_firmware/pull/23424))
|
||||
* Data-Driven Keyboard Conversions: B ([#23425](https://github.com/qmk/qmk_firmware/pull/23425))
|
||||
* Tidy up default layer handling in keymaps ([#23436](https://github.com/qmk/qmk_firmware/pull/23436))
|
||||
* Added Chapter1 ([#23452](https://github.com/qmk/qmk_firmware/pull/23452))
|
||||
* Data-driven Keyboard Conversions: C ([#23453](https://github.com/qmk/qmk_firmware/pull/23453))
|
||||
* Migrate build target markers to keyboard.json - X ([#23460](https://github.com/qmk/qmk_firmware/pull/23460))
|
||||
* Data-Driven Keyboard Conversions: D ([#23461](https://github.com/qmk/qmk_firmware/pull/23461))
|
||||
* Miscellaneous keyboard.json migrations ([#23486](https://github.com/qmk/qmk_firmware/pull/23486))
|
||||
* Migrate build target markers to keyboard.json - 0AB ([#23488](https://github.com/qmk/qmk_firmware/pull/23488))
|
||||
* Migrate build target markers to keyboard.json - W ([#23511](https://github.com/qmk/qmk_firmware/pull/23511))
|
||||
* Data-Driven Keyboard Conversions: E ([#23512](https://github.com/qmk/qmk_firmware/pull/23512))
|
||||
* Migrate build target markers to keyboard.json - TUV ([#23514](https://github.com/qmk/qmk_firmware/pull/23514))
|
||||
* Migrate build target markers to keyboard.json - DE ([#23515](https://github.com/qmk/qmk_firmware/pull/23515))
|
||||
* Data-Driven Keyboard Conversions: F ([#23516](https://github.com/qmk/qmk_firmware/pull/23516))
|
||||
* Data-Driven Keyboard Conversions: G ([#23522](https://github.com/qmk/qmk_firmware/pull/23522))
|
||||
* Data-Driven Keyboard Conversions: H, Part 1 ([#23524](https://github.com/qmk/qmk_firmware/pull/23524))
|
||||
* Data-Driven Keyboard Conversions: H, Part 2 ([#23525](https://github.com/qmk/qmk_firmware/pull/23525))
|
||||
* Migrate build target markers to keyboard.json - C ([#23529](https://github.com/qmk/qmk_firmware/pull/23529))
|
||||
* Data-Driven Keyboard Conversions: H, Part 3 ([#23530](https://github.com/qmk/qmk_firmware/pull/23530))
|
||||
* Migrate build target markers to keyboard.json - S ([#23532](https://github.com/qmk/qmk_firmware/pull/23532))
|
||||
* Data-Driven Keyboard Conversions: I ([#23533](https://github.com/qmk/qmk_firmware/pull/23533))
|
||||
* Migrate build target markers to keyboard.json - FG ([#23534](https://github.com/qmk/qmk_firmware/pull/23534))
|
||||
* Migrate build target markers to keyboard.json - HI ([#23540](https://github.com/qmk/qmk_firmware/pull/23540))
|
||||
* Remove *_SUPPORTED = yes ([#23541](https://github.com/qmk/qmk_firmware/pull/23541))
|
||||
* Migrate build target markers to keyboard.json - R ([#23542](https://github.com/qmk/qmk_firmware/pull/23542))
|
||||
* Data-Driven Keyboard Conversions: J ([#23547](https://github.com/qmk/qmk_firmware/pull/23547))
|
||||
* Data-Driven Keyboard Conversions: K, Part 1 ([#23556](https://github.com/qmk/qmk_firmware/pull/23556))
|
||||
* Tidy use of raw hid within keyboards ([#23557](https://github.com/qmk/qmk_firmware/pull/23557))
|
||||
* Data-Driven Keyboard Conversions: K, Part 2 ([#23562](https://github.com/qmk/qmk_firmware/pull/23562))
|
||||
* Migrate build target markers to keyboard.json - OQ ([#23564](https://github.com/qmk/qmk_firmware/pull/23564))
|
||||
* Migrate build target markers to keyboard.json - P ([#23565](https://github.com/qmk/qmk_firmware/pull/23565))
|
||||
* Data-Driven Keyboard Conversions: K, Part 3 ([#23566](https://github.com/qmk/qmk_firmware/pull/23566))
|
||||
* Data-Driven Keyboard Conversions: K, Part 4 ([#23567](https://github.com/qmk/qmk_firmware/pull/23567))
|
||||
* Data-Driven Keyboard Conversions: K, Part 5 ([#23569](https://github.com/qmk/qmk_firmware/pull/23569))
|
||||
* Data-Driven Keyboard Conversions: L ([#23576](https://github.com/qmk/qmk_firmware/pull/23576))
|
||||
* Migrate build target markers to keyboard.json - JK ([#23588](https://github.com/qmk/qmk_firmware/pull/23588))
|
||||
* Migrate build target markers to keyboard.json - N ([#23589](https://github.com/qmk/qmk_firmware/pull/23589))
|
||||
* Data-Driven Keyboard Conversions: M, Part 1 ([#23590](https://github.com/qmk/qmk_firmware/pull/23590))
|
||||
* Add haptic driver to keyboard.json schema ([#23591](https://github.com/qmk/qmk_firmware/pull/23591))
|
||||
* Migrate build target markers to keyboard.json - Keychron ([#23593](https://github.com/qmk/qmk_firmware/pull/23593))
|
||||
* Remove RGBLIGHT_SPLIT in rules.mk ([#23599](https://github.com/qmk/qmk_firmware/pull/23599))
|
||||
* Data-Driven Keyboard Conversions: M, Part 2 ([#23601](https://github.com/qmk/qmk_firmware/pull/23601))
|
||||
* Align NO_SUSPEND_POWER_DOWN keyboard config ([#23606](https://github.com/qmk/qmk_firmware/pull/23606))
|
||||
* Migrate build target markers to keyboard.json - L ([#23607](https://github.com/qmk/qmk_firmware/pull/23607))
|
||||
* Migrate build target markers to keyboard.json - Misc ([#23609](https://github.com/qmk/qmk_firmware/pull/23609))
|
||||
* Migrate build target markers to keyboard.json - Misc ([#23612](https://github.com/qmk/qmk_firmware/pull/23612))
|
||||
* Data-Driven Keyboard Conversions: M, Part 3 ([#23614](https://github.com/qmk/qmk_firmware/pull/23614))
|
||||
* Add audio driver to keyboard.json schema ([#23616](https://github.com/qmk/qmk_firmware/pull/23616))
|
||||
* Data-Driven Keyboard Conversions: BastardKB ([#23622](https://github.com/qmk/qmk_firmware/pull/23622))
|
||||
* Data-Driven Keyboard Conversions: Mechlovin ([#23624](https://github.com/qmk/qmk_firmware/pull/23624))
|
||||
* Migrate build target markers to keyboard.json - BM ([#23627](https://github.com/qmk/qmk_firmware/pull/23627))
|
||||
* gh80_3000 - Enable indicator LED functionality ([#23633](https://github.com/qmk/qmk_firmware/pull/23633))
|
||||
* Iris keymap update ([#23635](https://github.com/qmk/qmk_firmware/pull/23635))
|
||||
* Migrate build target markers to keyboard.json - Misc ([#23653](https://github.com/qmk/qmk_firmware/pull/23653))
|
||||
* Add via support for craftwalk ([#23658](https://github.com/qmk/qmk_firmware/pull/23658))
|
||||
* Align RGBKB keyboards to current standards ([#23663](https://github.com/qmk/qmk_firmware/pull/23663))
|
||||
* Remove 'split.transport.protocol=serial_usart' ([#23668](https://github.com/qmk/qmk_firmware/pull/23668))
|
||||
* Remove redundant keymap templates ([#23685](https://github.com/qmk/qmk_firmware/pull/23685))
|
||||
* Change all RGB mode keycodes to short aliases ([#23691](https://github.com/qmk/qmk_firmware/pull/23691))
|
||||
* Adjust keycode alignment around `QK_BOOT` ([#23697](https://github.com/qmk/qmk_firmware/pull/23697))
|
||||
* Remove RGB keycodes from boards with no RGB config ([#23709](https://github.com/qmk/qmk_firmware/pull/23709))
|
||||
* Miscellaneous Data-Driven Keyboard Conversions ([#23712](https://github.com/qmk/qmk_firmware/pull/23712))
|
||||
* Delete trivial keymap readmes ([#23714](https://github.com/qmk/qmk_firmware/pull/23714))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: 0-9 ([#23716](https://github.com/qmk/qmk_firmware/pull/23716))
|
||||
* Add media key support to Riot Pad ([#23719](https://github.com/qmk/qmk_firmware/pull/23719))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: A-C, Part 1 ([#23745](https://github.com/qmk/qmk_firmware/pull/23745))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: A-C, Part 2 ([#23746](https://github.com/qmk/qmk_firmware/pull/23746))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: A-C, Part 3 ([#23747](https://github.com/qmk/qmk_firmware/pull/23747))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: D, Part 1 ([#23749](https://github.com/qmk/qmk_firmware/pull/23749))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: D, Part 2 ([#23750](https://github.com/qmk/qmk_firmware/pull/23750))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: E ([#23751](https://github.com/qmk/qmk_firmware/pull/23751))
|
||||
* Move VIA config to keymap level ([#23754](https://github.com/qmk/qmk_firmware/pull/23754))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: F ([#23757](https://github.com/qmk/qmk_firmware/pull/23757))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: G ([#23758](https://github.com/qmk/qmk_firmware/pull/23758))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: H, Part 1 ([#23759](https://github.com/qmk/qmk_firmware/pull/23759))
|
||||
* Remove includes of config.h ([#23760](https://github.com/qmk/qmk_firmware/pull/23760))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: H, Part 2 ([#23762](https://github.com/qmk/qmk_firmware/pull/23762))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: H, Part 3 ([#23763](https://github.com/qmk/qmk_firmware/pull/23763))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: H, Part 4 ([#23764](https://github.com/qmk/qmk_firmware/pull/23764))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: I-J ([#23767](https://github.com/qmk/qmk_firmware/pull/23767))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: K, Part 1 ([#23768](https://github.com/qmk/qmk_firmware/pull/23768))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: K, Part 2 ([#23769](https://github.com/qmk/qmk_firmware/pull/23769))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: K, Part 3 ([#23770](https://github.com/qmk/qmk_firmware/pull/23770))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: L ([#23771](https://github.com/qmk/qmk_firmware/pull/23771))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: M, Part 1 ([#23772](https://github.com/qmk/qmk_firmware/pull/23772))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: M, Part 2 ([#23773](https://github.com/qmk/qmk_firmware/pull/23773))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: N ([#23774](https://github.com/qmk/qmk_firmware/pull/23774))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: O ([#23778](https://github.com/qmk/qmk_firmware/pull/23778))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: P, Part 1 ([#23779](https://github.com/qmk/qmk_firmware/pull/23779))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: P, Part 2 ([#23780](https://github.com/qmk/qmk_firmware/pull/23780))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: Q-R ([#23781](https://github.com/qmk/qmk_firmware/pull/23781))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: S, Part 1 ([#23783](https://github.com/qmk/qmk_firmware/pull/23783))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: S, Part 2 ([#23784](https://github.com/qmk/qmk_firmware/pull/23784))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: T ([#23785](https://github.com/qmk/qmk_firmware/pull/23785))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: U-V ([#23786](https://github.com/qmk/qmk_firmware/pull/23786))
|
||||
* Remove some useless code from keymaps ([#23787](https://github.com/qmk/qmk_firmware/pull/23787))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: W, Part 1 ([#23788](https://github.com/qmk/qmk_firmware/pull/23788))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: W, Part 2 ([#23789](https://github.com/qmk/qmk_firmware/pull/23789))
|
||||
* Migrate `LOCKING_*_ENABLE` to Data-Driven: X-Z ([#23790](https://github.com/qmk/qmk_firmware/pull/23790))
|
||||
* Update GPIO macros in keymaps ([#23792](https://github.com/qmk/qmk_firmware/pull/23792))
|
||||
* noroadsleft's 0.25.0 Changelogs and Touch-Ups ([#23793](https://github.com/qmk/qmk_firmware/pull/23793))
|
||||
|
||||
Keyboard fixes:
|
||||
* Fix mapping of GUI/ALT for Win/Mac layers ([#22662](https://github.com/qmk/qmk_firmware/pull/22662))
|
||||
* Adding standard keymap for wave keyboard to fix #22695 ([#22741](https://github.com/qmk/qmk_firmware/pull/22741))
|
||||
* Fixup qk100 (firmware size) ([#23169](https://github.com/qmk/qmk_firmware/pull/23169))
|
||||
* Fixup mechlovin/octagon ([#23179](https://github.com/qmk/qmk_firmware/pull/23179))
|
||||
* Fix up scanning for Djinn, post-asyncUSB. ([#23188](https://github.com/qmk/qmk_firmware/pull/23188))
|
||||
* Fixup annepro2 ([#23206](https://github.com/qmk/qmk_firmware/pull/23206))
|
||||
* Fixed keychron q1v1 led config for iso layout ([#23222](https://github.com/qmk/qmk_firmware/pull/23222))
|
||||
* Fixes for idobao vendor keymaps ([#23246](https://github.com/qmk/qmk_firmware/pull/23246))
|
||||
* Fixup work_board ([#23266](https://github.com/qmk/qmk_firmware/pull/23266))
|
||||
* Linworks FAve 87H Keymap Refactor/Bugfix ([#23292](https://github.com/qmk/qmk_firmware/pull/23292))
|
||||
* Align encoder layout validation with encoder.h logic ([#23330](https://github.com/qmk/qmk_firmware/pull/23330))
|
||||
* 0xcb/splaytoraid: remove `CONVERT_TO` at keyboard level ([#23395](https://github.com/qmk/qmk_firmware/pull/23395))
|
||||
* 40percentclub/gherkin: remove `CONVERT_TO` at keyboard level ([#23396](https://github.com/qmk/qmk_firmware/pull/23396))
|
||||
* Fix spaceholdings/nebula68b ([#23399](https://github.com/qmk/qmk_firmware/pull/23399))
|
||||
* Fix failing keyboards on develop ([#23406](https://github.com/qmk/qmk_firmware/pull/23406))
|
||||
* Corrections to split keyboard migrations ([#23462](https://github.com/qmk/qmk_firmware/pull/23462))
|
||||
* Fix iris via keymap ([#23652](https://github.com/qmk/qmk_firmware/pull/23652))
|
||||
* xiudi/xd75 - Fix backlight compilation issues ([#23655](https://github.com/qmk/qmk_firmware/pull/23655))
|
||||
|
||||
Bugs:
|
||||
* WS2812 PWM: prefix for DMA defines ([#23111](https://github.com/qmk/qmk_firmware/pull/23111))
|
||||
* Fix rgblight init ([#23335](https://github.com/qmk/qmk_firmware/pull/23335))
|
||||
* Fix WAIT_FOR_USB handling ([#23598](https://github.com/qmk/qmk_firmware/pull/23598))
|
||||
* Fix PS/2 Trackpoint mouse clicks (#22265) ([#23694](https://github.com/qmk/qmk_firmware/pull/23694))
|
|
@ -138,7 +138,7 @@
|
|||
* Breaking Changes
|
||||
* [Overview](breaking_changes.md)
|
||||
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
|
||||
* [Most Recent ChangeLog](ChangeLog/20240225.md "QMK v0.24.0 - 2024 Feb 25")
|
||||
* [Most Recent ChangeLog](ChangeLog/20240526.md "QMK v0.25.0 - 2024 May 26")
|
||||
* [Past Breaking Changes](breaking_changes_history.md)
|
||||
|
||||
* C Development
|
||||
|
|
|
@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch
|
|||
|
||||
## What has been included in past Breaking Changes?
|
||||
|
||||
* [2024 May 26](ChangeLog/20240526.md)
|
||||
* [2024 Feb 25](ChangeLog/20240225.md)
|
||||
* [2023 Nov 26](ChangeLog/20231126.md)
|
||||
* [2023 Aug 27](ChangeLog/20230827.md)
|
||||
* [Older Breaking Changes](breaking_changes_history.md)
|
||||
|
||||
## When is the next Breaking Change?
|
||||
|
||||
The next Breaking Change is scheduled for May 26, 2024.
|
||||
The next Breaking Change is scheduled for August 25, 2024.
|
||||
|
||||
### Important Dates
|
||||
|
||||
* 2024 Feb 25 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
||||
* 2024 Apr 28 - `develop` closed to new PRs.
|
||||
* 2024 Apr 28 - Call for testers.
|
||||
* 2024 May 5 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
||||
* 2024 May 19 - `develop` is locked, only critical bugfix PRs merged.
|
||||
* 2024 May 23 - `master` is locked, no PRs merged.
|
||||
* 2024 May 26 - Merge `develop` to `master`.
|
||||
* 2024 May 26 - `master` is unlocked. PRs can be merged again.
|
||||
* 2024 May 26 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
||||
* 2024 Jul 28 - `develop` closed to new PRs.
|
||||
* 2024 Jul 28 - Call for testers.
|
||||
* 2024 Aug 4 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
||||
* 2024 Aug 18 - `develop` is locked, only critical bugfix PRs merged.
|
||||
* 2024 Aug 22 - `master` is locked, no PRs merged.
|
||||
* 2024 Aug 25 - Merge `develop` to `master`.
|
||||
* 2024 Aug 25 - `master` is unlocked. PRs can be merged again.
|
||||
|
||||
## What changes will be included?
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
This page links to all previous changelogs from the QMK Breaking Changes process.
|
||||
|
||||
* [2024 May 26](ChangeLog/20240526.md) - version 0.25.0
|
||||
* [2024 Feb 25](ChangeLog/20240225.md) - version 0.24.0
|
||||
* [2023 Nov 26](ChangeLog/20231126.md) - version 0.23.0
|
||||
* [2023 Aug 27](ChangeLog/20230827.md) - version 0.22.0
|
||||
|
|
|
@ -803,3 +803,39 @@ This command converts a TTF font to an intermediate format for editing, before c
|
|||
|
||||
This command converts an intermediate font image to the QFF File Format. See the [Quantum Painter](quantum_painter.md?id=quantum-painter-cli) documentation for more information on this command.
|
||||
|
||||
## `qmk test-c`
|
||||
|
||||
This command runs the C unit test suite. If you make changes to C code you should ensure this runs successfully.
|
||||
|
||||
**Usage**:
|
||||
|
||||
```
|
||||
qmk test-c [-h] [-t TEST] [-l] [-c] [-e ENV] [-j PARALLEL]
|
||||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
-t TEST, --test TEST Test to run from the available list. Supports wildcard globs. May be passed multiple times.
|
||||
-l, --list List available tests.
|
||||
-c, --clean Remove object files before compiling.
|
||||
-e ENV, --env ENV Set a variable to be passed to make. May be passed multiple times.
|
||||
-j PARALLEL, --parallel PARALLEL
|
||||
Set the number of parallel make jobs; 0 means unlimited.
|
||||
```
|
||||
|
||||
**Examples**:
|
||||
|
||||
Run entire test suite:
|
||||
|
||||
qmk test-c
|
||||
|
||||
List available tests:
|
||||
|
||||
qmk test-c --list
|
||||
|
||||
Run matching test:
|
||||
|
||||
qmk test-c --test unicode*
|
||||
|
||||
Run single test:
|
||||
|
||||
qmk test-c --test basic
|
||||
|
|
|
@ -237,7 +237,7 @@ If you define these options you will enable the associated feature, which may in
|
|||
* units to step when in/decreasing saturation
|
||||
* `#define RGBLIGHT_VAL_STEP 12`
|
||||
* units to step when in/decreasing value (brightness)
|
||||
* `#define RGBW`
|
||||
* `#define WS2812_RGBW`
|
||||
* Enables RGBW LED support
|
||||
|
||||
## Mouse Key Options
|
||||
|
@ -446,7 +446,7 @@ Use these to enable or disable building certain features. The more you have enab
|
|||
* Allows replacing the standard matrix scanning routine with a custom one.
|
||||
* `DEBOUNCE_TYPE`
|
||||
* Allows replacing the standard key debouncing routine with an alternative or custom one.
|
||||
* `WAIT_FOR_USB`
|
||||
* `USB_WAIT_FOR_ENUMERATION`
|
||||
* Forces the keyboard to wait for a USB connection to be established before it starts up
|
||||
* `NO_USB_STARTUP_CHECK`
|
||||
* Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
|
||||
|
|
|
@ -172,12 +172,14 @@ The available keycodes for audio are:
|
|||
## Audio Config
|
||||
|
||||
| Settings | Default | Description |
|
||||
|---------------------------------|----------------------|-------------------------------------------------------------------------------|
|
||||
|----------------------------------|----------------------|---------------------------------------------------------------------------------------------|
|
||||
|`AUDIO_PIN` | *Not defined* |Configures the pin that the speaker is connected to. |
|
||||
|`AUDIO_PIN_ALT` | *Not defined* |Configures the pin for a second speaker or second pin connected to one speaker.|
|
||||
|`AUDIO_PIN_ALT` | *Not defined* |Configures the pin for a second speaker or second pin connected to one speaker. |
|
||||
|`AUDIO_PIN_ALT_AS_NEGATIVE` | *Not defined* |Enables support for one speaker connected to two pins. |
|
||||
|`AUDIO_INIT_DELAY` | *Not defined* |Enables delay during startup song to accomidate for USB startup issues. |
|
||||
|`AUDIO_ENABLE_TONE_MULTIPLEXING` | *Not defined* |Enables time splicing/multiplexing to create multiple tones simutaneously. |
|
||||
|`AUDIO_POWER_CONTROL_PIN` | *Not defined* |Enables power control code to enable or cut off power to speaker (such as with PAM8302 amp). |
|
||||
|`AUDIO_POWER_CONTROL_PIN_ON_STATE`| `1` |The state of the audio power control pin when audio is "on" - `1` for high, `0` for low. |
|
||||
|`STARTUP_SONG` | `STARTUP_SOUND` |Plays when the keyboard starts up (audio.c) |
|
||||
|`GOODBYE_SONG` | `GOODBYE_SOUND` |Plays when you press the QK_BOOT key (quantum.c) |
|
||||
|`AG_NORM_SONG` | `AG_NORM_SOUND` |Plays when you press AG_NORM (process_magic.c) |
|
||||
|
@ -192,7 +194,7 @@ The available keycodes for audio are:
|
|||
|`GUITAR_SONG` | `GUITAR_SOUND` |Plays when the guitar music mode is selected (process_music.c) |
|
||||
|`VIOLIN_SONG` | `VIOLIN_SOUND` |Plays when the violin music mode is selected (process_music.c) |
|
||||
|`MAJOR_SONG` | `MAJOR_SOUND` |Plays when the major music mode is selected (process_music.c) |
|
||||
|`DEFAULT_LAYER_SONGS` | *Not defined* |Plays song when switched default layers with [`set_single_persistent_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer)(quantum.c) |
|
||||
|`DEFAULT_LAYER_SONGS` | *Not defined* |Plays song when switched default layers with [`set_single_persistent_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer)(quantum.c). |
|
||||
|`SENDSTRING_BELL` | *Not defined* |Plays chime when the "enter" ("\a") character is sent (send_string.c) |
|
||||
|
||||
## Tempo
|
||||
|
|
|
@ -217,16 +217,17 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{
|
|||
|
||||
## Keycodes :id=keycodes
|
||||
|
||||
All LED matrix keycodes are currently shared with the [Backlight feature](feature_backlight.md).
|
||||
|
||||
| Key | Aliases | Description |
|
||||
|-------------------------|-----------|-------------------------------|
|
||||
| `QK_BACKLIGHT_TOGGLE` | `BL_TOGG` | Toggle LED Matrix on or off |
|
||||
| `QK_BACKLIGHT_STEP` | `BL_STEP` | Cycle through modes |
|
||||
| `QK_BACKLIGHT_ON` | `BL_ON` | Turn on LED Matrix |
|
||||
| `QK_BACKLIGHT_OFF` | `BL_OFF` | Turn off LED Matrix |
|
||||
| `QK_BACKLIGHT_UP` | `BL_UP` | Increase the brightness level |
|
||||
| `QK_BACKLIGHT_DOWN` | `BL_DOWN` | Decrease the brightness level |
|
||||
|Key |Aliases |Description |
|
||||
|-------------------------------|---------|-----------------------------------|
|
||||
|`QK_LED_MATRIX_ON` |`LM_ON` |Turn on LED Matrix |
|
||||
|`QK_LED_MATRIX_OFF` |`LM_OFF` |Turn off LED Matrix |
|
||||
|`QK_LED_MATRIX_TOGGLE` |`LM_TOGG`|Toggle LED Matrix on or off |
|
||||
|`QK_LED_MATRIX_MODE_NEXT` |`LM_NEXT`|Cycle through animations |
|
||||
|`QK_LED_MATRIX_MODE_PREVIOUS` |`LM_PREV`|Cycle through animations in reverse|
|
||||
|`QK_LED_MATRIX_BRIGHTNESS_UP` |`LM_BRIU`|Increase the brightness level |
|
||||
|`QK_LED_MATRIX_BRIGHTNESS_DOWN`|`LM_BRID`|Decrease the brightness level |
|
||||
|`QK_LED_MATRIX_SPEED_UP` |`LM_SPDU`|Increase the animation speed |
|
||||
|`QK_LED_MATRIX_SPEED_DOWN` |`LM_SPDD`|Decrease the animation speed |
|
||||
|
||||
## LED Matrix Effects :id=led-matrix-effects
|
||||
|
||||
|
|
|
@ -780,6 +780,9 @@ There are several functions that allow for more advanced interaction with the au
|
|||
| `get_auto_mouse_timeout(void)` | Return the current timeout for turing off the layer | | `uint16_t` |
|
||||
| `set_auto_mouse_debounce(uint16_t timeout)` | Change/set the debounce for preventing layer activation | | `void`(None) |
|
||||
| `get_auto_mouse_debounce(void)` | Return the current debounce for preventing layer activation | | `uint8_t` |
|
||||
| `is_auto_mouse_active(void)` | Returns the active state of the auto mouse layer (eg if the layer has been triggered)| | `bool` |
|
||||
| `get_auto_mouse_key_tracker(void)` | Gets the current count for the auto mouse key tracker. | | `int8_t` |
|
||||
| `set_auto_mouse_key_tracker(int8_t key_tracker)` | Sets/Overrides the current count for the auto mouse key tracker. | | `void`(None) |
|
||||
|
||||
_NOTES:_
|
||||
- _Due to the nature of how some functions work, the `auto_mouse_trigger_reset`, and `auto_mouse_layer_off` functions should never be called in the `layer_state_set_*` stack as this can cause indefinite loops._
|
||||
|
|
|
@ -6,7 +6,7 @@ QMK has the ability to control RGB LEDs attached to your keyboard. This is commo
|
|||
|
||||
Some keyboards come with RGB LEDs preinstalled. Others must have them installed after the fact. See the [Hardware Modification](#hardware-modification) section for information on adding RGB lighting to your keyboard.
|
||||
|
||||
Currently QMK supports the following addressable LEDs (however, the white LED in RGBW variants is not supported):
|
||||
Currently QMK supports the following addressable LEDs:
|
||||
|
||||
* WS2811, WS2812, WS2812B, WS2812C, etc.
|
||||
* SK6812, SK6812MINI, SK6805
|
||||
|
@ -356,27 +356,12 @@ Usually lighting layers apply their configured brightness once activated. If you
|
|||
|
||||
If you need to change your RGB lighting in code, for example in a macro to change the color whenever you switch layers, QMK provides a set of functions to assist you. See [`rgblight.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight/rgblight.h) for the full list, but the most commonly used functions include:
|
||||
|
||||
### Utility Functions
|
||||
|Function |Description |
|
||||
|--------------------------------------------|-------------------------------------------------------------------|
|
||||
|`sethsv(hue, sat, val, ledbuf)` |Set ledbuf to the given HSV value |
|
||||
|`sethsv_raw(hue, sat, val, ledbuf)` |Set ledbuf to the given HSV value without RGBLIGHT_LIMIT_VAL check |
|
||||
|`setrgb(r, g, b, ledbuf)` |Set ledbuf to the given RGB value where `r`/`g`/`b` |
|
||||
|
||||
### Low level Functions
|
||||
|Function |Description |
|
||||
|--------------------------------------------|-------------------------------------------|
|
||||
|`rgblight_set()` |Flush out led buffers to LEDs |
|
||||
|`rgblight_set_clipping_range(pos, num)` |Set clipping Range. see [Clipping Range](#clipping-range) |
|
||||
|
||||
Example:
|
||||
```c
|
||||
sethsv(HSV_WHITE, (rgb_led_t *)&led[0]); // led 0
|
||||
sethsv(HSV_RED, (rgb_led_t *)&led[1]); // led 1
|
||||
sethsv(HSV_GREEN, (rgb_led_t *)&led[2]); // led 2
|
||||
rgblight_set(); // Utility functions do not call rgblight_set() automatically, so they need to be called explicitly.
|
||||
```
|
||||
|
||||
### Effects and Animations Functions
|
||||
#### effect range setting
|
||||
|Function |Description |
|
||||
|
|
|
@ -44,7 +44,7 @@ While the tempo defines the absolute speed at which the sequencer goes through t
|
|||
|-------------------------------|---------|---------------------------------------------------|
|
||||
|`QK_SEQUENCER_ON` |`SQ_ON` |Start the step sequencer |
|
||||
|`QK_SEQUENCER_OFF` |`SQ_OFF` |Stop the step sequencer |
|
||||
|`QK_SEQUENCER_TOGGLE` |`SQ_TOG` |Toggle the step sequencer playback |
|
||||
|`QK_SEQUENCER_TOGGLE` |`SQ_TOGG`|Toggle the step sequencer playback |
|
||||
|`QK_SEQUENCER_STEPS_ALL` |`SQ_SALL`|Enable all the steps |
|
||||
|`QK_SEQUENCER_STEPS_CLEAR` |`SQ_SCLR`|Disable all the steps |
|
||||
|`QK_SEQUENCER_TEMPO_DOWN` |`SQ_TMPD`|Decrease the tempo |
|
||||
|
|
|
@ -266,7 +266,7 @@ This enables syncing of the Host LED status (caps lock, num lock, etc) between b
|
|||
#define SPLIT_MODS_ENABLE
|
||||
```
|
||||
|
||||
This enables transmitting modifier state (normal, weak and oneshot) to the non primary side of the split keyboard. The purpose of this feature is to support cosmetic use of modifer state (e.g. displaying status on an OLED screen).
|
||||
This enables transmitting modifier state (normal, weak, oneshot and oneshot locked) to the non primary side of the split keyboard. The purpose of this feature is to support cosmetic use of modifer state (e.g. displaying status on an OLED screen).
|
||||
|
||||
```c
|
||||
#define SPLIT_WPM_ENABLE
|
||||
|
|
|
@ -378,7 +378,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
|
|||
* 標準マトリックス走査ルーチンを独自のものに置き換えることができます。
|
||||
* `DEBOUNCE_TYPE`
|
||||
* 標準キーデバウンスルーチンを代替または独自のものに置き換えることができます。
|
||||
* `WAIT_FOR_USB`
|
||||
* `USB_WAIT_FOR_ENUMERATION`
|
||||
* キーボードが起動する前に、USB 接続が確立されるのをキーボードに待機させます
|
||||
* `NO_USB_STARTUP_CHECK`
|
||||
* キーボードの起動後の usb サスペンドチェックを無効にします。通常、キーボードはタスクが実行される前にホストがウェイク アップするのを待ちます。分割キーボードは半分はウェイクアップコールを取得できませんが、マスタにコマンドを送信する必要があるため、役に立ちます。
|
||||
|
|
|
@ -398,6 +398,22 @@ See also: [Leader Key](feature_leader_key.md)
|
|||
|---------|------------------------|
|
||||
|`QK_LEAD`|Begins a leader sequence|
|
||||
|
||||
## LED Matrix :id=led-matrix
|
||||
|
||||
See also: [LED Matrix](feature_led_matrix.md)
|
||||
|
||||
|Key |Aliases |Description |
|
||||
|-------------------------------|---------|-----------------------------------|
|
||||
|`QK_LED_MATRIX_ON` |`LM_ON` |Turn on LED Matrix |
|
||||
|`QK_LED_MATRIX_OFF` |`LM_OFF` |Turn off LED Matrix |
|
||||
|`QK_LED_MATRIX_TOGGLE` |`LM_TOGG`|Toggle LED Matrix on or off |
|
||||
|`QK_LED_MATRIX_MODE_NEXT` |`LM_NEXT`|Cycle through animations |
|
||||
|`QK_LED_MATRIX_MODE_PREVIOUS` |`LM_PREV`|Cycle through animations in reverse|
|
||||
|`QK_LED_MATRIX_BRIGHTNESS_UP` |`LM_BRIU`|Increase the brightness level |
|
||||
|`QK_LED_MATRIX_BRIGHTNESS_DOWN`|`LM_BRID`|Decrease the brightness level |
|
||||
|`QK_LED_MATRIX_SPEED_UP` |`LM_SPDU`|Increase the animation speed |
|
||||
|`QK_LED_MATRIX_SPEED_DOWN` |`LM_SPDD`|Decrease the animation speed |
|
||||
|
||||
## Magic Keycodes :id=magic-keycodes
|
||||
|
||||
See also: [Magic Keycodes](keycodes_magic.md)
|
||||
|
|
|
@ -118,15 +118,24 @@ Configures the [Audio](feature_audio.md) feature.
|
|||
* `clicky`
|
||||
* The default audio clicky enabled state.
|
||||
* Default: `true`
|
||||
* `driver`
|
||||
* The driver to use. Must be one of `dac_additive`, `dac_basic`, `pwm_software`, `pwm_hardware`.
|
||||
* `macro_beep`
|
||||
* Play a short beep for `\a` (ASCII `BEL`) characters in Send String macros.
|
||||
* Default: `false`
|
||||
* `pins` (Required)
|
||||
* The GPIO pin(s) connected to the speaker(s).
|
||||
* `power_control`
|
||||
* `on_state`
|
||||
* The logical GPIO state required to turn the speaker on.
|
||||
* Default: `1` (on = high)
|
||||
* `pin`
|
||||
* The GPIO pin connected to speaker power circuit.
|
||||
* `voices`
|
||||
* Use multiple audio voices.
|
||||
* Default: `false`
|
||||
|
||||
|
||||
## Backlight :id=backlight
|
||||
|
||||
Configures the [Backlight](feature_backlight.md) feature.
|
||||
|
@ -579,9 +588,6 @@ Configures the [RGB Lighting](feature_rgblight.md) feature.
|
|||
* `max_brightness`
|
||||
* The maximum value which the HSV "V" component is scaled to, from 0 to 255.
|
||||
* Default: `255`
|
||||
* `rgbw`
|
||||
* Enable RGBW LEDs.
|
||||
* Default: `false`
|
||||
* `saturation_steps`
|
||||
* The number of saturation adjustment steps.
|
||||
* Default: `17`
|
||||
|
@ -633,7 +639,7 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature.
|
|||
* The default animation speed.
|
||||
* Default: `128`
|
||||
* `driver` (Required)
|
||||
* The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3729`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`.
|
||||
* The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3236`, `is31fl3729`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`.
|
||||
* `hue_steps`
|
||||
* The number of hue adjustment steps.
|
||||
* Default: `8`
|
||||
|
@ -733,7 +739,7 @@ Configures the [Split Keyboard](feature_split_keyboard.md) feature.
|
|||
* Default: `1`
|
||||
* `transport`
|
||||
* `protocol`
|
||||
* The split transport protocol to use. Must be one of `custom`, `i2c`, `serial`, `serial_usart`.
|
||||
* The split transport protocol to use. Must be one of `custom`, `i2c`, `serial`.
|
||||
* `sync`
|
||||
* `activity`
|
||||
* Mirror the activity timestamps to the secondary half.
|
||||
|
@ -826,7 +832,7 @@ Configures the [Stenography](feature_stenography.md) feature.
|
|||
* `suspend_wakeup_delay`
|
||||
* The amount of time to wait after sending a wakeup packet, in milliseconds.
|
||||
* Default: `0` (disabled)
|
||||
* `wait_for`
|
||||
* `wait_for_enumeration`
|
||||
* Force the keyboard to wait for USB enumeration before starting up.
|
||||
* Default: `false`
|
||||
|
||||
|
@ -846,3 +852,6 @@ Configures the [WS2812](ws2812_driver.md) driver.
|
|||
* `i2c_timeout`
|
||||
* The I²C timeout in milliseconds (`i2c` driver only).
|
||||
* Default: `100` (100 ms)
|
||||
* `rgbw`
|
||||
* Enable RGBW LEDs.
|
||||
* Default: `false`
|
||||
|
|
|
@ -23,6 +23,8 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q
|
|||
|Canadian Multilingual (CSA) |`keymap_canadian_multilingual.h` |`sendstring_canadian_multilingual.h`|
|
||||
|Croatian |`keymap_croatian.h` |`sendstring_croatian.h` |
|
||||
|Czech |`keymap_czech.h` |`sendstring_czech.h` |
|
||||
|Czech (macOS, ANSI) |`keymap_czech_mac_ansi.h` |`sendstring_czech_mac_ansi.h` |
|
||||
|Czech (macOS, ISO) |`keymap_czech_mac_iso.h` |`sendstring_czech_mac_iso.h` |
|
||||
|Danish |`keymap_danish.h` |`sendstring_danish.h` |
|
||||
|Dutch (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` |
|
||||
|English (Ireland) |`keymap_irish.h` | |
|
||||
|
|
|
@ -33,6 +33,7 @@ Add the following to your `config.h`:
|
|||
|`WS2812_T0H` |`350` |The length of a "0" bit's high phase in nanoseconds |
|
||||
|`WS2812_TRST_US` |`280` |The length of the reset phase in microseconds |
|
||||
|`WS2812_BYTE_ORDER`|`WS2812_BYTE_ORDER_GRB`|The byte order of the RGB data |
|
||||
|`WS2812_RGBW` |*Not defined* |Enables RGBW support (except `i2c` driver) |
|
||||
|
||||
### Timing Adjustment :id=timing-adjustment
|
||||
|
||||
|
@ -58,6 +59,27 @@ Where the byte order may be one of:
|
|||
|`RGB` |WS2812B-2020 |
|
||||
|`BGR` |TM1812 |
|
||||
|
||||
### RGBW Support :id=rgbw-support
|
||||
|
||||
Rendering the color white with RGB LEDs is typically inconsistent due to inherent variations between each individual LED die. However, some WS2812 variants (such as SK6812RGBW) also possess a white LED along with the red, green, and blue channels, which allows for a more accurate white to be displayed.
|
||||
|
||||
QMK can automatically convert the RGB data to be sent to the LEDs to mix in the white channel:
|
||||
|
||||
```
|
||||
w = min(r, g, b)
|
||||
r -= w
|
||||
g -= w
|
||||
b -= w
|
||||
```
|
||||
|
||||
Thus, an RGB triplet of `255,255,255` will simply turn on the white LED fully (`0,0,0,255`).
|
||||
|
||||
To enable RGBW conversion, add the following to your `config.h`:
|
||||
|
||||
```c
|
||||
#define WS2812_RGBW
|
||||
```
|
||||
|
||||
## Driver Configuration :id=driver-configuration
|
||||
|
||||
Driver selection can be configured in `rules.mk` as `WS2812_DRIVER`, or in `info.json` as `ws2812.driver`. Valid values are `bitbang` (default), `i2c`, `spi`, `pwm`, `vendor`, or `custom`. See below for information on individual drivers.
|
||||
|
@ -208,9 +230,9 @@ The following `#define`s apply only to the `pwm` driver:
|
|||
|`WS2812_PWM_DRIVER` |`PWMD2` |The PWM driver to use |
|
||||
|`WS2812_PWM_CHANNEL` |`2` |The PWM channel to use |
|
||||
|`WS2812_PWM_PAL_MODE` |`2` |The pin alternative function to use |
|
||||
|`WS2812_DMA_STREAM` |`STM32_DMA1_STREAM2`|The DMA Stream for `TIMx_UP` |
|
||||
|`WS2812_DMA_CHANNEL` |`2` |The DMA Channel for `TIMx_UP` |
|
||||
|`WS2812_DMAMUX_ID` |*Not defined* |The DMAMUX configuration for `TIMx_UP` - only required if your MCU has a DMAMUX peripheral|
|
||||
|`WS2812_PWM_DMA_STREAM` |`STM32_DMA1_STREAM2`|The DMA Stream for `TIMx_UP` |
|
||||
|`WS2812_PWM_DMA_CHANNEL` |`2` |The DMA Channel for `TIMx_UP` |
|
||||
|`WS2812_PWM_DMAMUX_ID` |*Not defined* |The DMAMUX configuration for `TIMx_UP` - only required if your MCU has a DMAMUX peripheral|
|
||||
|`WS2812_PWM_COMPLEMENTARY_OUTPUT`|*Not defined* |Whether the PWM output is complementary (`TIMx_CHyN`) |
|
||||
|
||||
?> Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in `mcuconf.h` must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations.
|
||||
|
|
|
@ -74,20 +74,20 @@ bool mcp23018_set_output_all(uint8_t slave_addr, uint8_t confA, uint8_t confB) {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool mcp23018_readPins(uint8_t slave_addr, mcp23018_port_t port, uint8_t* out) {
|
||||
bool mcp23018_read_pins(uint8_t slave_addr, mcp23018_port_t port, uint8_t* out) {
|
||||
uint8_t addr = SLAVE_TO_ADDR(slave_addr);
|
||||
uint8_t cmd = port ? CMD_GPIOB : CMD_GPIOA;
|
||||
|
||||
i2c_status_t ret = i2c_read_register(addr, cmd, out, sizeof(uint8_t), TIMEOUT);
|
||||
if (ret != I2C_STATUS_SUCCESS) {
|
||||
dprintf("mcp23018_readPins::FAILED::%u\n", ret);
|
||||
dprintf("mcp23018_read_pins::FAILED::%u\n", ret);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool mcp23018_readPins_all(uint8_t slave_addr, uint16_t* out) {
|
||||
bool mcp23018_read_pins_all(uint8_t slave_addr, uint16_t* out) {
|
||||
uint8_t addr = SLAVE_TO_ADDR(slave_addr);
|
||||
|
||||
typedef union {
|
||||
|
@ -99,7 +99,7 @@ bool mcp23018_readPins_all(uint8_t slave_addr, uint16_t* out) {
|
|||
|
||||
i2c_status_t ret = i2c_read_register(addr, CMD_GPIOA, &data.u8[0], sizeof(data), TIMEOUT);
|
||||
if (ret != I2C_STATUS_SUCCESS) {
|
||||
dprintf("mcp23018_readPins::FAILED::%u\n", ret);
|
||||
dprintf("mcp23018_read_pins_all::FAILED::%u\n", ret);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -55,11 +55,16 @@ bool mcp23018_set_output_all(uint8_t slave_addr, uint8_t confA, uint8_t confB);
|
|||
/**
|
||||
* Read state of a given port
|
||||
*/
|
||||
bool mcp23018_readPins(uint8_t slave_addr, mcp23018_port_t port, uint8_t* ret);
|
||||
bool mcp23018_read_pins(uint8_t slave_addr, mcp23018_port_t port, uint8_t* ret);
|
||||
|
||||
/**
|
||||
* Read state of both ports sequentially
|
||||
*
|
||||
* - slightly faster than multiple readPins
|
||||
*/
|
||||
bool mcp23018_readPins_all(uint8_t slave_addr, uint16_t* ret);
|
||||
bool mcp23018_read_pins_all(uint8_t slave_addr, uint16_t* ret);
|
||||
|
||||
// DEPRECATED - DO NOT USE
|
||||
|
||||
#define mcp23018_readPins mcp23018_read_pins
|
||||
#define mcp23018_readPins_all mcp23018_read_pins_all
|
||||
|
|
|
@ -133,7 +133,7 @@ bool pca9505_set_output(uint8_t slave_addr, pca9505_port_t port, uint8_t conf) {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool pca9505_readPins(uint8_t slave_addr, pca9505_port_t port, uint8_t* out) {
|
||||
bool pca9505_read_pins(uint8_t slave_addr, pca9505_port_t port, uint8_t* out) {
|
||||
uint8_t addr = SLAVE_TO_ADDR(slave_addr);
|
||||
uint8_t cmd = 0;
|
||||
switch (port) {
|
||||
|
@ -156,7 +156,7 @@ bool pca9505_readPins(uint8_t slave_addr, pca9505_port_t port, uint8_t* out) {
|
|||
|
||||
i2c_status_t ret = i2c_read_register(addr, cmd, out, sizeof(uint8_t), TIMEOUT);
|
||||
if (ret != I2C_STATUS_SUCCESS) {
|
||||
print("pca9505_readPins::FAILED\n");
|
||||
print("pca9505_read_pins::FAILED\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -64,4 +64,8 @@ bool pca9505_set_output(uint8_t slave_addr, pca9505_port_t port, uint8_t conf);
|
|||
/**
|
||||
* Read state of a given port
|
||||
*/
|
||||
bool pca9505_readPins(uint8_t slave_addr, pca9505_port_t port, uint8_t* ret);
|
||||
bool pca9505_read_pins(uint8_t slave_addr, pca9505_port_t port, uint8_t* ret);
|
||||
|
||||
// DEPRECATED - DO NOT USE
|
||||
|
||||
#define pca9505_readPins pca9505_read_pins
|
||||
|
|
|
@ -70,20 +70,20 @@ bool pca9555_set_output_all(uint8_t slave_addr, uint8_t confA, uint8_t confB) {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool pca9555_readPins(uint8_t slave_addr, pca9555_port_t port, uint8_t* out) {
|
||||
bool pca9555_read_pins(uint8_t slave_addr, pca9555_port_t port, uint8_t* out) {
|
||||
uint8_t addr = SLAVE_TO_ADDR(slave_addr);
|
||||
uint8_t cmd = port ? CMD_INPUT_1 : CMD_INPUT_0;
|
||||
|
||||
i2c_status_t ret = i2c_read_register(addr, cmd, out, sizeof(uint8_t), TIMEOUT);
|
||||
if (ret != I2C_STATUS_SUCCESS) {
|
||||
print("pca9555_readPins::FAILED\n");
|
||||
print("pca9555_read_pins::FAILED\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool pca9555_readPins_all(uint8_t slave_addr, uint16_t* out) {
|
||||
bool pca9555_read_pins_all(uint8_t slave_addr, uint16_t* out) {
|
||||
uint8_t addr = SLAVE_TO_ADDR(slave_addr);
|
||||
|
||||
typedef union {
|
||||
|
@ -95,7 +95,7 @@ bool pca9555_readPins_all(uint8_t slave_addr, uint16_t* out) {
|
|||
|
||||
i2c_status_t ret = i2c_read_register(addr, CMD_INPUT_0, &data.u8[0], sizeof(data), TIMEOUT);
|
||||
if (ret != I2C_STATUS_SUCCESS) {
|
||||
print("pca9555_readPins_all::FAILED\n");
|
||||
print("pca9555_read_pins_all::FAILED\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -78,11 +78,16 @@ bool pca9555_set_output_all(uint8_t slave_addr, uint8_t confA, uint8_t confB);
|
|||
/**
|
||||
* Read state of a given port
|
||||
*/
|
||||
bool pca9555_readPins(uint8_t slave_addr, pca9555_port_t port, uint8_t* ret);
|
||||
bool pca9555_read_pins(uint8_t slave_addr, pca9555_port_t port, uint8_t* ret);
|
||||
|
||||
/**
|
||||
* Read state of both ports sequentially
|
||||
*
|
||||
* - slightly faster than multiple readPins
|
||||
*/
|
||||
bool pca9555_readPins_all(uint8_t slave_addr, uint16_t* ret);
|
||||
bool pca9555_read_pins_all(uint8_t slave_addr, uint16_t* ret);
|
||||
|
||||
// DEPRECATED - DO NOT USE
|
||||
|
||||
#define pca9555_readPins pca9555_read_pins
|
||||
#define pca9555_readPins_all pca9555_read_pins_all
|
||||
|
|
|
@ -67,7 +67,9 @@ static void apa102_send_byte(uint8_t byte) {
|
|||
}
|
||||
|
||||
static void apa102_start_frame(void) {
|
||||
apa102_init();
|
||||
gpio_write_pin_low(APA102_DI_PIN);
|
||||
gpio_write_pin_low(APA102_CI_PIN);
|
||||
|
||||
for (uint16_t i = 0; i < 4; i++) {
|
||||
apa102_send_byte(0);
|
||||
}
|
||||
|
@ -103,7 +105,8 @@ static void apa102_end_frame(uint16_t num_leds) {
|
|||
apa102_send_byte(0);
|
||||
}
|
||||
|
||||
apa102_init();
|
||||
gpio_write_pin_low(APA102_DI_PIN);
|
||||
gpio_write_pin_low(APA102_CI_PIN);
|
||||
}
|
||||
|
||||
static void apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness) {
|
||||
|
@ -116,9 +119,6 @@ static void apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t
|
|||
void apa102_init(void) {
|
||||
gpio_set_pin_output(APA102_DI_PIN);
|
||||
gpio_set_pin_output(APA102_CI_PIN);
|
||||
|
||||
gpio_write_pin_low(APA102_DI_PIN);
|
||||
gpio_write_pin_low(APA102_CI_PIN);
|
||||
}
|
||||
|
||||
void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds) {
|
||||
|
|
|
@ -0,0 +1,168 @@
|
|||
// Copyright 2024 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "is31fl3236-mono.h"
|
||||
#include "i2c_master.h"
|
||||
#include "gpio.h"
|
||||
|
||||
#define IS31FL3236_PWM_REGISTER_COUNT 36
|
||||
#define IS31FL3236_LED_CONTROL_REGISTER_COUNT 36
|
||||
|
||||
#ifndef IS31FL3236_I2C_TIMEOUT
|
||||
# define IS31FL3236_I2C_TIMEOUT 100
|
||||
#endif
|
||||
|
||||
#ifndef IS31FL3236_I2C_PERSISTENCE
|
||||
# define IS31FL3236_I2C_PERSISTENCE 0
|
||||
#endif
|
||||
|
||||
#ifndef IS31FL3236_PWM_FREQUENCY
|
||||
# define IS31FL3236_PWM_FREQUENCY IS31FL3236_PWM_FREQUENCY_3K_HZ // OFS - IS31FL3236A only
|
||||
#endif
|
||||
|
||||
const uint8_t i2c_addresses[IS31FL3236_DRIVER_COUNT] = {
|
||||
IS31FL3236_I2C_ADDRESS_1,
|
||||
#ifdef IS31FL3236_I2C_ADDRESS_2
|
||||
IS31FL3236_I2C_ADDRESS_2,
|
||||
# ifdef IS31FL3236_I2C_ADDRESS_3
|
||||
IS31FL3236_I2C_ADDRESS_3,
|
||||
# ifdef IS31FL3236_I2C_ADDRESS_4
|
||||
IS31FL3236_I2C_ADDRESS_4,
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef struct is31fl3236_driver_t {
|
||||
uint8_t pwm_buffer[IS31FL3236_PWM_REGISTER_COUNT];
|
||||
bool pwm_buffer_dirty;
|
||||
uint8_t led_control_buffer[IS31FL3236_LED_CONTROL_REGISTER_COUNT];
|
||||
bool led_control_buffer_dirty;
|
||||
} PACKED is31fl3236_driver_t;
|
||||
|
||||
is31fl3236_driver_t driver_buffers[IS31FL3236_DRIVER_COUNT] = {{
|
||||
.pwm_buffer = {0},
|
||||
.pwm_buffer_dirty = false,
|
||||
.led_control_buffer = {0},
|
||||
.led_control_buffer_dirty = false,
|
||||
}};
|
||||
|
||||
void is31fl3236_write_register(uint8_t index, uint8_t reg, uint8_t data) {
|
||||
#if IS31FL3236_I2C_PERSISTENCE > 0
|
||||
for (uint8_t i = 0; i < IS31FL3236_I2C_PERSISTENCE; i++) {
|
||||
if (i2c_write_register(i2c_addresses[index] << 1, reg, &data, 1, IS31FL3236_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
|
||||
}
|
||||
#else
|
||||
i2c_write_register(i2c_addresses[index] << 1, reg, &data, 1, IS31FL3236_I2C_TIMEOUT);
|
||||
#endif
|
||||
}
|
||||
|
||||
void is31fl3236_write_pwm_buffer(uint8_t index) {
|
||||
#if IS31FL3236_I2C_PERSISTENCE > 0
|
||||
for (uint8_t i = 0; i < IS31FL3236_I2C_PERSISTENCE; i++) {
|
||||
if (i2c_write_register(i2c_addresses[index] << 1, IS31FL3236_REG_PWM, driver_buffers[index].pwm_buffer, 36, IS31FL3236_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
|
||||
}
|
||||
#else
|
||||
i2c_write_register(i2c_addresses[index] << 1, IS31FL3236_REG_PWM, driver_buffers[index].pwm_buffer, 36, IS31FL3236_I2C_TIMEOUT);
|
||||
#endif
|
||||
}
|
||||
|
||||
void is31fl3236_init_drivers(void) {
|
||||
i2c_init();
|
||||
|
||||
#if defined(IS31FL3236_SDB_PIN)
|
||||
gpio_set_pin_output(IS31FL3236_SDB_PIN);
|
||||
gpio_write_pin_high(IS31FL3236_SDB_PIN);
|
||||
#endif
|
||||
|
||||
for (uint8_t i = 0; i < IS31FL3236_DRIVER_COUNT; i++) {
|
||||
is31fl3236_init(i);
|
||||
}
|
||||
|
||||
for (uint8_t i = 0; i < IS31FL3236_LED_COUNT; i++) {
|
||||
is31fl3236_set_led_control_register(i, true);
|
||||
}
|
||||
|
||||
for (uint8_t i = 0; i < IS31FL3236_DRIVER_COUNT; i++) {
|
||||
is31fl3236_update_led_control_registers(i);
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_init(uint8_t index) {
|
||||
// In case we ever want to reinitialize (?)
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_RESET, 0x00);
|
||||
|
||||
// Turn off software shutdown
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_SHUTDOWN, 0x01);
|
||||
|
||||
// Set all PWM values to zero
|
||||
for (uint8_t i = 0; i < IS31FL3236_PWM_REGISTER_COUNT; i++) {
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_PWM + i, 0x00);
|
||||
}
|
||||
|
||||
// turn off all LEDs in the LED control register
|
||||
for (uint8_t i = 0; i < IS31FL3236_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_LED_CONTROL + i, 0x00);
|
||||
}
|
||||
|
||||
// Set PWM frequency (IS31FL3236A)
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_PWM_FREQUENCY, IS31FL3236_PWM_FREQUENCY);
|
||||
|
||||
// Load PWM registers and LED Control register data
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_UPDATE, 0x01);
|
||||
}
|
||||
|
||||
void is31fl3236_set_value(int index, uint8_t value) {
|
||||
is31fl3236_led_t led;
|
||||
|
||||
if (index < IS31FL3236_LED_COUNT) {
|
||||
memcpy_P(&led, (&g_is31fl3236_leds[index]), sizeof(led));
|
||||
|
||||
if (driver_buffers[led.driver].pwm_buffer[led.v] == value) {
|
||||
return;
|
||||
}
|
||||
|
||||
driver_buffers[led.driver].pwm_buffer[led.v] = value;
|
||||
driver_buffers[led.driver].pwm_buffer_dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_set_value_all(uint8_t value) {
|
||||
for (uint8_t i = 0; i < IS31FL3236_LED_COUNT; i++) {
|
||||
is31fl3236_set_value(i, value);
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_set_led_control_register(uint8_t index, bool value) {
|
||||
is31fl3236_led_t led;
|
||||
memcpy_P(&led, (&g_is31fl3236_leds[index]), sizeof(led));
|
||||
|
||||
driver_buffers[led.driver].led_control_buffer[led.v] = value ? 0x01 : 0x00;
|
||||
driver_buffers[led.driver].led_control_buffer_dirty = true;
|
||||
}
|
||||
|
||||
void is31fl3236_update_pwm_buffers(uint8_t index) {
|
||||
if (driver_buffers[index].pwm_buffer_dirty) {
|
||||
is31fl3236_write_pwm_buffer(index);
|
||||
// Load PWM registers and LED Control register data
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_UPDATE, 0x01);
|
||||
|
||||
driver_buffers[index].pwm_buffer_dirty = false;
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_update_led_control_registers(uint8_t index) {
|
||||
if (driver_buffers[index].led_control_buffer_dirty) {
|
||||
for (uint8_t i = 0; i < IS31FL3236_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_LED_CONTROL + i, driver_buffers[index].led_control_buffer[i]);
|
||||
}
|
||||
|
||||
driver_buffers[index].led_control_buffer_dirty = false;
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_flush(void) {
|
||||
for (uint8_t i = 0; i < IS31FL3236_DRIVER_COUNT; i++) {
|
||||
is31fl3236_update_pwm_buffers(i);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
// Copyright 2024 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "progmem.h"
|
||||
#include "util.h"
|
||||
|
||||
#define IS31FL3236_REG_SHUTDOWN 0x00
|
||||
#define IS31FL3236_REG_PWM 0x01
|
||||
#define IS31FL3236_REG_UPDATE 0x25
|
||||
#define IS31FL3236_REG_LED_CONTROL 0x26
|
||||
#define IS31FL3236_REG_GLOBAL_CONTROL 0x4A
|
||||
#define IS31FL3236_REG_PWM_FREQUENCY 0x4B
|
||||
#define IS31FL3236_REG_RESET 0x4F
|
||||
|
||||
#define IS31FL3236_I2C_ADDRESS_GND 0x3C
|
||||
#define IS31FL3236_I2C_ADDRESS_SCL 0x3D
|
||||
#define IS31FL3236_I2C_ADDRESS_SDA 0x3E
|
||||
#define IS31FL3236_I2C_ADDRESS_VCC 0x3F
|
||||
|
||||
#if defined(LED_MATRIX_IS31FL3236)
|
||||
# define IS31FL3236_LED_COUNT LED_MATRIX_LED_COUNT
|
||||
#endif
|
||||
|
||||
#if defined(IS31FL3236_I2C_ADDRESS_4)
|
||||
# define IS31FL3236_DRIVER_COUNT 4
|
||||
#elif defined(IS31FL3236_I2C_ADDRESS_3)
|
||||
# define IS31FL3236_DRIVER_COUNT 3
|
||||
#elif defined(IS31FL3236_I2C_ADDRESS_2)
|
||||
# define IS31FL3236_DRIVER_COUNT 2
|
||||
#elif defined(IS31FL3236_I2C_ADDRESS_1)
|
||||
# define IS31FL3236_DRIVER_COUNT 1
|
||||
#endif
|
||||
|
||||
typedef struct is31fl3236_led_t {
|
||||
uint8_t driver : 2;
|
||||
uint8_t v;
|
||||
} PACKED is31fl3236_led_t;
|
||||
|
||||
extern const is31fl3236_led_t PROGMEM g_is31fl3236_leds[IS31FL3236_LED_COUNT];
|
||||
|
||||
void is31fl3236_init_drivers(void);
|
||||
|
||||
void is31fl3236_init(uint8_t index);
|
||||
|
||||
void is31fl3236_write_register(uint8_t index, uint8_t reg, uint8_t data);
|
||||
|
||||
void is31fl3236_set_value(int index, uint8_t value);
|
||||
|
||||
void is31fl3236_set_value_all(uint8_t value);
|
||||
|
||||
void is31fl3236_set_led_control_register(uint8_t index, bool value);
|
||||
|
||||
void is31fl3236_update_pwm_buffers(uint8_t index);
|
||||
|
||||
void is31fl3236_update_led_control_registers(uint8_t index);
|
||||
|
||||
void is31fl3236_flush(void);
|
||||
|
||||
#define IS31FL3236_PWM_FREQUENCY_3K_HZ 0b0
|
||||
#define IS31FL3236_PWM_FREQUENCY_22K_HZ 0b1
|
||||
|
||||
#define OUT1 0x00
|
||||
#define OUT2 0x01
|
||||
#define OUT3 0x02
|
||||
#define OUT4 0x03
|
||||
#define OUT5 0x04
|
||||
#define OUT6 0x05
|
||||
#define OUT7 0x06
|
||||
#define OUT8 0x07
|
||||
#define OUT9 0x08
|
||||
#define OUT10 0x09
|
||||
#define OUT11 0x0A
|
||||
#define OUT12 0x0B
|
||||
#define OUT13 0x0C
|
||||
#define OUT14 0x0D
|
||||
#define OUT15 0x0E
|
||||
#define OUT16 0x0F
|
||||
#define OUT17 0x10
|
||||
#define OUT18 0x11
|
||||
#define OUT19 0x12
|
||||
#define OUT20 0x13
|
||||
#define OUT21 0x14
|
||||
#define OUT22 0x15
|
||||
#define OUT23 0x16
|
||||
#define OUT24 0x17
|
||||
#define OUT25 0x18
|
||||
#define OUT26 0x19
|
||||
#define OUT27 0x1A
|
||||
#define OUT28 0x1B
|
||||
#define OUT29 0x1C
|
||||
#define OUT30 0x1D
|
||||
#define OUT31 0x1E
|
||||
#define OUT32 0x1F
|
||||
#define OUT33 0x20
|
||||
#define OUT34 0x21
|
||||
#define OUT35 0x22
|
||||
#define OUT36 0x23
|
|
@ -0,0 +1,172 @@
|
|||
// Copyright 2024 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "is31fl3236.h"
|
||||
#include "i2c_master.h"
|
||||
#include "gpio.h"
|
||||
|
||||
#define IS31FL3236_PWM_REGISTER_COUNT 36
|
||||
#define IS31FL3236_LED_CONTROL_REGISTER_COUNT 36
|
||||
|
||||
#ifndef IS31FL3236_I2C_TIMEOUT
|
||||
# define IS31FL3236_I2C_TIMEOUT 100
|
||||
#endif
|
||||
|
||||
#ifndef IS31FL3236_I2C_PERSISTENCE
|
||||
# define IS31FL3236_I2C_PERSISTENCE 0
|
||||
#endif
|
||||
|
||||
#ifndef IS31FL3236_PWM_FREQUENCY
|
||||
# define IS31FL3236_PWM_FREQUENCY IS31FL3236_PWM_FREQUENCY_3K_HZ // OFS - IS31FL3236A only
|
||||
#endif
|
||||
|
||||
const uint8_t i2c_addresses[IS31FL3236_DRIVER_COUNT] = {
|
||||
IS31FL3236_I2C_ADDRESS_1,
|
||||
#ifdef IS31FL3236_I2C_ADDRESS_2
|
||||
IS31FL3236_I2C_ADDRESS_2,
|
||||
# ifdef IS31FL3236_I2C_ADDRESS_3
|
||||
IS31FL3236_I2C_ADDRESS_3,
|
||||
# ifdef IS31FL3236_I2C_ADDRESS_4
|
||||
IS31FL3236_I2C_ADDRESS_4,
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef struct is31fl3236_driver_t {
|
||||
uint8_t pwm_buffer[IS31FL3236_PWM_REGISTER_COUNT];
|
||||
bool pwm_buffer_dirty;
|
||||
uint8_t led_control_buffer[IS31FL3236_LED_CONTROL_REGISTER_COUNT];
|
||||
bool led_control_buffer_dirty;
|
||||
} PACKED is31fl3236_driver_t;
|
||||
|
||||
is31fl3236_driver_t driver_buffers[IS31FL3236_DRIVER_COUNT] = {{
|
||||
.pwm_buffer = {0},
|
||||
.pwm_buffer_dirty = false,
|
||||
.led_control_buffer = {0},
|
||||
.led_control_buffer_dirty = false,
|
||||
}};
|
||||
|
||||
void is31fl3236_write_register(uint8_t index, uint8_t reg, uint8_t data) {
|
||||
#if IS31FL3236_I2C_PERSISTENCE > 0
|
||||
for (uint8_t i = 0; i < IS31FL3236_I2C_PERSISTENCE; i++) {
|
||||
if (i2c_write_register(i2c_addresses[index] << 1, reg, &data, 1, IS31FL3236_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
|
||||
}
|
||||
#else
|
||||
i2c_write_register(i2c_addresses[index] << 1, reg, &data, 1, IS31FL3236_I2C_TIMEOUT);
|
||||
#endif
|
||||
}
|
||||
|
||||
void is31fl3236_write_pwm_buffer(uint8_t index) {
|
||||
#if IS31FL3236_I2C_PERSISTENCE > 0
|
||||
for (uint8_t i = 0; i < IS31FL3236_I2C_PERSISTENCE; i++) {
|
||||
if (i2c_write_register(i2c_addresses[index] << 1, IS31FL3236_REG_PWM, driver_buffers[index].pwm_buffer, 36, IS31FL3236_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
|
||||
}
|
||||
#else
|
||||
i2c_write_register(i2c_addresses[index] << 1, IS31FL3236_REG_PWM, driver_buffers[index].pwm_buffer, 36, IS31FL3236_I2C_TIMEOUT);
|
||||
#endif
|
||||
}
|
||||
|
||||
void is31fl3236_init_drivers(void) {
|
||||
i2c_init();
|
||||
|
||||
#if defined(IS31FL3236_SDB_PIN)
|
||||
gpio_set_pin_output(IS31FL3236_SDB_PIN);
|
||||
gpio_write_pin_high(IS31FL3236_SDB_PIN);
|
||||
#endif
|
||||
|
||||
for (uint8_t i = 0; i < IS31FL3236_DRIVER_COUNT; i++) {
|
||||
is31fl3236_init(i);
|
||||
}
|
||||
|
||||
for (uint8_t i = 0; i < IS31FL3236_LED_COUNT; i++) {
|
||||
is31fl3236_set_led_control_register(i, true, true, true);
|
||||
}
|
||||
|
||||
for (uint8_t i = 0; i < IS31FL3236_DRIVER_COUNT; i++) {
|
||||
is31fl3236_update_led_control_registers(i);
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_init(uint8_t index) {
|
||||
// In case we ever want to reinitialize (?)
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_RESET, 0x00);
|
||||
|
||||
// Turn off software shutdown
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_SHUTDOWN, 0x01);
|
||||
|
||||
// Set all PWM values to zero
|
||||
for (uint8_t i = 0; i < IS31FL3236_PWM_REGISTER_COUNT; i++) {
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_PWM + i, 0x00);
|
||||
}
|
||||
|
||||
// turn off all LEDs in the LED control register
|
||||
for (uint8_t i = 0; i < IS31FL3236_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_LED_CONTROL + i, 0x00);
|
||||
}
|
||||
|
||||
// Set PWM frequency (IS31FL3236A)
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_PWM_FREQUENCY, IS31FL3236_PWM_FREQUENCY);
|
||||
|
||||
// Load PWM registers and LED Control register data
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_UPDATE, 0x01);
|
||||
}
|
||||
|
||||
void is31fl3236_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||
is31fl3236_led_t led;
|
||||
|
||||
if (index < IS31FL3236_LED_COUNT) {
|
||||
memcpy_P(&led, (&g_is31fl3236_leds[index]), sizeof(led));
|
||||
|
||||
if (driver_buffers[led.driver].pwm_buffer[led.r] == red && driver_buffers[led.driver].pwm_buffer[led.g] == green && driver_buffers[led.driver].pwm_buffer[led.b] == blue) {
|
||||
return;
|
||||
}
|
||||
|
||||
driver_buffers[led.driver].pwm_buffer[led.r] = red;
|
||||
driver_buffers[led.driver].pwm_buffer[led.g] = green;
|
||||
driver_buffers[led.driver].pwm_buffer[led.b] = blue;
|
||||
driver_buffers[led.driver].pwm_buffer_dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
|
||||
for (uint8_t i = 0; i < IS31FL3236_LED_COUNT; i++) {
|
||||
is31fl3236_set_color(i, red, green, blue);
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
|
||||
is31fl3236_led_t led;
|
||||
memcpy_P(&led, (&g_is31fl3236_leds[index]), sizeof(led));
|
||||
|
||||
driver_buffers[led.driver].led_control_buffer[led.r] = red ? 0x01 : 0x00;
|
||||
driver_buffers[led.driver].led_control_buffer[led.g] = green ? 0x01 : 0x00;
|
||||
driver_buffers[led.driver].led_control_buffer[led.b] = blue ? 0x01 : 0x00;
|
||||
driver_buffers[led.driver].led_control_buffer_dirty = true;
|
||||
}
|
||||
|
||||
void is31fl3236_update_pwm_buffers(uint8_t index) {
|
||||
if (driver_buffers[index].pwm_buffer_dirty) {
|
||||
is31fl3236_write_pwm_buffer(index);
|
||||
// Load PWM registers and LED Control register data
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_UPDATE, 0x01);
|
||||
|
||||
driver_buffers[index].pwm_buffer_dirty = false;
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_update_led_control_registers(uint8_t index) {
|
||||
if (driver_buffers[index].led_control_buffer_dirty) {
|
||||
for (uint8_t i = 0; i < IS31FL3236_LED_CONTROL_REGISTER_COUNT; i++) {
|
||||
is31fl3236_write_register(index, IS31FL3236_REG_LED_CONTROL + i, driver_buffers[index].led_control_buffer[i]);
|
||||
}
|
||||
|
||||
driver_buffers[index].led_control_buffer_dirty = false;
|
||||
}
|
||||
}
|
||||
|
||||
void is31fl3236_flush(void) {
|
||||
for (uint8_t i = 0; i < IS31FL3236_DRIVER_COUNT; i++) {
|
||||
is31fl3236_update_pwm_buffers(i);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
// Copyright 2024 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "progmem.h"
|
||||
#include "util.h"
|
||||
|
||||
#define IS31FL3236_REG_SHUTDOWN 0x00
|
||||
#define IS31FL3236_REG_PWM 0x01
|
||||
#define IS31FL3236_REG_UPDATE 0x25
|
||||
#define IS31FL3236_REG_LED_CONTROL 0x26
|
||||
#define IS31FL3236_REG_GLOBAL_CONTROL 0x4A
|
||||
#define IS31FL3236_REG_PWM_FREQUENCY 0x4B
|
||||
#define IS31FL3236_REG_RESET 0x4F
|
||||
|
||||
#define IS31FL3236_I2C_ADDRESS_GND 0x3C
|
||||
#define IS31FL3236_I2C_ADDRESS_SCL 0x3D
|
||||
#define IS31FL3236_I2C_ADDRESS_SDA 0x3E
|
||||
#define IS31FL3236_I2C_ADDRESS_VCC 0x3F
|
||||
|
||||
#if defined(RGB_MATRIX_IS31FL3236)
|
||||
# define IS31FL3236_LED_COUNT RGB_MATRIX_LED_COUNT
|
||||
#endif
|
||||
|
||||
#if defined(IS31FL3236_I2C_ADDRESS_4)
|
||||
# define IS31FL3236_DRIVER_COUNT 4
|
||||
#elif defined(IS31FL3236_I2C_ADDRESS_3)
|
||||
# define IS31FL3236_DRIVER_COUNT 3
|
||||
#elif defined(IS31FL3236_I2C_ADDRESS_2)
|
||||
# define IS31FL3236_DRIVER_COUNT 2
|
||||
#elif defined(IS31FL3236_I2C_ADDRESS_1)
|
||||
# define IS31FL3236_DRIVER_COUNT 1
|
||||
#endif
|
||||
|
||||
typedef struct is31fl3236_led_t {
|
||||
uint8_t driver : 2;
|
||||
uint8_t r;
|
||||
uint8_t g;
|
||||
uint8_t b;
|
||||
} PACKED is31fl3236_led_t;
|
||||
|
||||
extern const is31fl3236_led_t PROGMEM g_is31fl3236_leds[IS31FL3236_LED_COUNT];
|
||||
|
||||
void is31fl3236_init_drivers(void);
|
||||
|
||||
void is31fl3236_init(uint8_t index);
|
||||
|
||||
void is31fl3236_write_register(uint8_t index, uint8_t reg, uint8_t data);
|
||||
|
||||
void is31fl3236_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
|
||||
|
||||
void is31fl3236_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
|
||||
|
||||
void is31fl3236_set_led_control_register(uint8_t index, bool red, bool green, bool blue);
|
||||
|
||||
void is31fl3236_update_pwm_buffers(uint8_t index);
|
||||
|
||||
void is31fl3236_update_led_control_registers(uint8_t index);
|
||||
|
||||
void is31fl3236_flush(void);
|
||||
|
||||
#define IS31FL3236_PWM_FREQUENCY_3K_HZ 0b0
|
||||
#define IS31FL3236_PWM_FREQUENCY_22K_HZ 0b1
|
||||
|
||||
#define OUT1 0x00
|
||||
#define OUT2 0x01
|
||||
#define OUT3 0x02
|
||||
#define OUT4 0x03
|
||||
#define OUT5 0x04
|
||||
#define OUT6 0x05
|
||||
#define OUT7 0x06
|
||||
#define OUT8 0x07
|
||||
#define OUT9 0x08
|
||||
#define OUT10 0x09
|
||||
#define OUT11 0x0A
|
||||
#define OUT12 0x0B
|
||||
#define OUT13 0x0C
|
||||
#define OUT14 0x0D
|
||||
#define OUT15 0x0E
|
||||
#define OUT16 0x0F
|
||||
#define OUT17 0x10
|
||||
#define OUT18 0x11
|
||||
#define OUT19 0x12
|
||||
#define OUT20 0x13
|
||||
#define OUT21 0x14
|
||||
#define OUT22 0x15
|
||||
#define OUT23 0x16
|
||||
#define OUT24 0x17
|
||||
#define OUT25 0x18
|
||||
#define OUT26 0x19
|
||||
#define OUT27 0x1A
|
||||
#define OUT28 0x1B
|
||||
#define OUT29 0x1C
|
||||
#define OUT30 0x1D
|
||||
#define OUT31 0x1E
|
||||
#define OUT32 0x1F
|
||||
#define OUT33 0x20
|
||||
#define OUT34 0x21
|
||||
#define OUT35 0x22
|
||||
#define OUT36 0x23
|
|
@ -88,6 +88,8 @@ void ps2_mouse_task(void) {
|
|||
# endif
|
||||
} else {
|
||||
if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n");
|
||||
/* return here to avoid updating the mouse button state */
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if (pbuf_has_data()) {
|
||||
|
@ -99,6 +101,8 @@ void ps2_mouse_task(void) {
|
|||
# endif
|
||||
} else {
|
||||
if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n");
|
||||
/* return here to avoid updating the mouse button state */
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -62,6 +62,8 @@
|
|||
# define WS2812_LED_COUNT RGB_MATRIX_LED_COUNT
|
||||
#endif
|
||||
|
||||
void ws2812_init(void);
|
||||
|
||||
/* User Interface
|
||||
*
|
||||
* Input:
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
/* Copyright 2020 Vinam Arora <vinam@posteo.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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/*
|
||||
* 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
|
|
@ -20,6 +20,12 @@
|
|||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"layouts": {
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
# The default 0-Sixty layout - largely based on the Preonic's and Planck's
|
|
@ -1 +0,0 @@
|
|||
# The default via-supported 0-Sixty layout - largely based on the Preonic's and Planck's
|
|
@ -1,39 +0,0 @@
|
|||
/*
|
||||
Copyright 2021 0xC7
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* 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
|
|
@ -1,92 +0,0 @@
|
|||
{
|
||||
"keyboard_name": "61Key",
|
||||
"manufacturer": "0xC7",
|
||||
"url": "",
|
||||
"maintainer": "RealEmanGaming",
|
||||
"usb": {
|
||||
"vid": "0xE117",
|
||||
"pid": "0x6161",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "F7", "F6", "F5", "F4", "F1", "F0"],
|
||||
"rows": ["B0", "B1", "B2", "B3", "B7"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_60_ansi"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 8], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
{
|
||||
"keyboard_name": "61Key",
|
||||
"manufacturer": "0xC7",
|
||||
"url": "",
|
||||
"maintainer": "RealEmanGaming",
|
||||
"usb": {
|
||||
"vid": "0xE117",
|
||||
"pid": "0x6161",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": true,
|
||||
"console": false,
|
||||
"extrakey": false,
|
||||
"key_lock": true,
|
||||
"mousekey": false,
|
||||
"nkro": false
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "F7", "F6", "F5", "F4", "F1", "F0"],
|
||||
"rows": ["B0", "B1", "B2", "B3", "B7"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_60_ansi"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 8], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
# 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 = 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
|
||||
|
||||
LTO_ENABLE = yes
|
||||
KEY_LOCK_ENABLE = yes
|
|
@ -19,10 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
/* default setup after eeprom reset */
|
||||
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_EFFECT_BREATHING + 2
|
||||
|
||||
/* 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
|
||||
/* Oled Size */
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_FONT_END 255
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
{
|
||||
"keyboard_name": "1337",
|
||||
"manufacturer": "0xCB",
|
||||
"url": "https://0xCB.dev",
|
||||
"maintainer": "Conor-Burns",
|
||||
"usb": {
|
||||
"vid": "0xCB00",
|
||||
"pid": "0x1337",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"backlight": {
|
||||
"pin": "B5",
|
||||
"levels": 7,
|
||||
"breathing": true
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "F6", "pin_b": "F5"}
|
||||
]
|
||||
},
|
||||
"qmk": {
|
||||
"tap_keycode_delay": 10
|
||||
},
|
||||
"qmk_lufa_bootloader": {
|
||||
"led": "B0"
|
||||
},
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"brightness_steps": 8,
|
||||
"led_count": 4,
|
||||
"sleep": true,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"default": {
|
||||
"hue": 152,
|
||||
"sat": 232,
|
||||
"speed": 2
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "qmk-dfu",
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["D2", "D4", "F4"],
|
||||
["D7", "B1", "B3"],
|
||||
["E6", "B4", "B2"]
|
||||
]
|
||||
},
|
||||
"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": 0, "y": 1, "matrix": [1, 0]},
|
||||
{"x": 1, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 0, "y": 2, "matrix": [2, 0]},
|
||||
{"x": 1, "y": 2, "matrix": [2, 1]},
|
||||
{"x": 2, "y": 2, "matrix": [2, 2]}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,98 @@
|
|||
{
|
||||
"keyboard_name": "1337",
|
||||
"manufacturer": "0xCB",
|
||||
"url": "https://0xCB.dev",
|
||||
"maintainer": "Conor-Burns",
|
||||
"usb": {
|
||||
"vid": "0xCB00",
|
||||
"pid": "0x1337",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"backlight": {
|
||||
"pin": "B5",
|
||||
"levels": 7,
|
||||
"breathing": true
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "F6", "pin_b": "F5"}
|
||||
]
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
},
|
||||
"tap_keycode_delay": 10
|
||||
},
|
||||
"qmk_lufa_bootloader": {
|
||||
"led": "B0"
|
||||
},
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"brightness_steps": 8,
|
||||
"led_count": 4,
|
||||
"sleep": true,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"default": {
|
||||
"hue": 152,
|
||||
"sat": 232,
|
||||
"speed": 2
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "qmk-dfu",
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"features": {
|
||||
"backlight": true,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": false,
|
||||
"oled": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["D2", "D4", "F4"],
|
||||
["D7", "B1", "B3"],
|
||||
["E6", "B4", "B2"]
|
||||
]
|
||||
},
|
||||
"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": 0, "y": 1, "matrix": [1, 0]},
|
||||
{"x": 1, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2, "y": 1, "matrix": [1, 2]},
|
||||
|
||||
{"x": 0, "y": 2, "matrix": [2, 0]},
|
||||
{"x": 1, "y": 2, "matrix": [2, 1]},
|
||||
{"x": 2, "y": 2, "matrix": [2, 2]}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = no # 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
|
||||
LTO_ENABLE = yes
|
||||
OLED_ENABLE = yes
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"development_board": "promicro",
|
||||
"bootloader": "qmk-dfu",
|
||||
"matrix_pins": {
|
||||
"cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"],
|
||||
"rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"band_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"raindrops": true
|
||||
}
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "B5", "pin_b": "B6"}
|
||||
]
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D0"
|
||||
}
|
||||
}
|
|
@ -3,13 +3,6 @@
|
|||
"keyboard_name": "splaytoraid",
|
||||
"maintainer": "freya-irl",
|
||||
"url": "https://github.com/freya-irl/splaytoraid40",
|
||||
"development_board": "promicro",
|
||||
"bootloader": "qmk-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"],
|
||||
"rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"]
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0xCB00",
|
||||
|
@ -21,7 +14,8 @@
|
|||
"bootmagic": true,
|
||||
"console": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
"nkro": true,
|
||||
"encoder": true
|
||||
},
|
||||
"bootmagic": {
|
||||
"matrix": [1, 0]
|
||||
|
@ -29,21 +23,7 @@
|
|||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"encoder": {
|
||||
"enabled": true,
|
||||
"rotary": [
|
||||
{"pin_a": "B5", "pin_b": "B6", "resolution": 4}
|
||||
]
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"band_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"cycle_all": true,
|
||||
"raindrops": true,
|
||||
"cycle_left_right": true
|
||||
},
|
||||
"default": {
|
||||
"animation": "breathing",
|
||||
"hue": 152,
|
||||
|
@ -73,9 +53,6 @@
|
|||
],
|
||||
"max_brightness": 200
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D0"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_36": {
|
||||
"layout": [
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"cycle_up_down": true,
|
||||
"jellybean_raindrops": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"pixel_fractal": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_pinwheel": true,
|
||||
"pixel_rain": true,
|
||||
"dual_beacon": true,
|
||||
"hue_breathing": true,
|
||||
"typing_heatmap": true,
|
||||
"digital_rain": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"splash": true,
|
||||
"multisplash": true,
|
||||
"solid_splash": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"development_board": "promicro_rp2040",
|
||||
"matrix_pins": {
|
||||
"cols": ["GP28", "GP27", "GP26", "GP29", "GP20", "GP22", "GP23"],
|
||||
"rows": ["GP0", "GP1", "GP2", "GP4", "GP6", "GP7", "GP8", "GP5"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"band_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_up_down": true,
|
||||
"digital_rain": true,
|
||||
"dual_beacon": true,
|
||||
"hue_breathing": true,
|
||||
"jellybean_raindrops": true,
|
||||
"multisplash": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_rain": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"raindrops": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_splash": true,
|
||||
"splash": true,
|
||||
"typing_heatmap": true
|
||||
}
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "GP9", "pin_b": "GP21"}
|
||||
]
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "GP3",
|
||||
"driver": "vendor"
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
CONVERT_TO = rp2040_ce
|
|
@ -16,11 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/
|
||||
#pragma once
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* oled custom font */
|
||||
#define OLED_FONT_END 255
|
||||
#define OLED_FONT_H "gfxfont.c"
|
||||
|
|
|
@ -1,132 +0,0 @@
|
|||
{
|
||||
"keyboard_name": "Static",
|
||||
"manufacturer": "0xCB",
|
||||
"url": "https://0xCB.dev",
|
||||
"maintainer": "Conor-Burns",
|
||||
"usb": {
|
||||
"vid": "0xCB00",
|
||||
"pid": "0xA455",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B5", "D4", "C0", "C1", "C2", "C3"],
|
||||
"rows": ["D5", "D6", "D7", "B0", "B1", "B2", "B3", "B4"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "D0", "pin_b": "D1"}
|
||||
]
|
||||
},
|
||||
"qmk": {
|
||||
"tap_keycode_delay": 10
|
||||
},
|
||||
"processor": "atmega328p",
|
||||
"bootloader": "usbasploader",
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_all"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
|
||||
{"matrix": [0, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 0], "x": 1, "y": 1},
|
||||
{"matrix": [0, 1], "x": 2, "y": 1},
|
||||
{"matrix": [1, 1], "x": 3, "y": 1},
|
||||
{"matrix": [0, 2], "x": 4, "y": 1},
|
||||
{"matrix": [1, 2], "x": 5, "y": 1},
|
||||
{"matrix": [0, 3], "x": 6, "y": 1},
|
||||
{"matrix": [1, 3], "x": 7, "y": 1},
|
||||
{"matrix": [0, 4], "x": 8, "y": 1},
|
||||
{"matrix": [1, 4], "x": 9, "y": 1},
|
||||
{"matrix": [0, 5], "x": 10, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
||||
{"matrix": [3, 0], "x": 1.25, "y": 2},
|
||||
{"matrix": [2, 1], "x": 2.25, "y": 2},
|
||||
{"matrix": [3, 1], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 2], "x": 4.25, "y": 2},
|
||||
{"matrix": [3, 2], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 6.25, "y": 2},
|
||||
{"matrix": [3, 3], "x": 7.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 8.25, "y": 2},
|
||||
{"matrix": [3, 4], "x": 9.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 10.25, "y": 2, "w": 1.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75},
|
||||
{"matrix": [4, 1], "x": 1.75, "y": 3},
|
||||
{"matrix": [5, 1], "x": 2.75, "y": 3},
|
||||
{"matrix": [4, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [5, 2], "x": 4.75, "y": 3},
|
||||
{"matrix": [4, 3], "x": 5.75, "y": 3},
|
||||
{"matrix": [5, 3], "x": 6.75, "y": 3},
|
||||
{"matrix": [4, 4], "x": 7.75, "y": 3},
|
||||
{"matrix": [5, 4], "x": 8.75, "y": 3},
|
||||
{"matrix": [4, 5], "x": 9.75, "y": 3},
|
||||
{"matrix": [5, 5], "x": 10.75, "y": 3, "w": 1.25},
|
||||
|
||||
{"matrix": [6, 0], "x": 0, "y": 4},
|
||||
{"matrix": [7, 0], "x": 1, "y": 4},
|
||||
{"matrix": [6, 1], "x": 2, "y": 4},
|
||||
{"matrix": [7, 1], "x": 3, "y": 4, "w": 2.75},
|
||||
{"matrix": [7, 2], "x": 5.75, "y": 4},
|
||||
{"matrix": [6, 4], "x": 6.75, "y": 4, "w": 2.25},
|
||||
{"matrix": [7, 4], "x": 9, "y": 4},
|
||||
{"matrix": [6, 5], "x": 10, "y": 4},
|
||||
{"matrix": [7, 5], "x": 11, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_bigbar": {
|
||||
"layout": [
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
|
||||
{"matrix": [0, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 0], "x": 1, "y": 1},
|
||||
{"matrix": [0, 1], "x": 2, "y": 1},
|
||||
{"matrix": [1, 1], "x": 3, "y": 1},
|
||||
{"matrix": [0, 2], "x": 4, "y": 1},
|
||||
{"matrix": [1, 2], "x": 5, "y": 1},
|
||||
{"matrix": [0, 3], "x": 6, "y": 1},
|
||||
{"matrix": [1, 3], "x": 7, "y": 1},
|
||||
{"matrix": [0, 4], "x": 8, "y": 1},
|
||||
{"matrix": [1, 4], "x": 9, "y": 1},
|
||||
{"matrix": [0, 5], "x": 10, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
||||
{"matrix": [3, 0], "x": 1.25, "y": 2},
|
||||
{"matrix": [2, 1], "x": 2.25, "y": 2},
|
||||
{"matrix": [3, 1], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 2], "x": 4.25, "y": 2},
|
||||
{"matrix": [3, 2], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 6.25, "y": 2},
|
||||
{"matrix": [3, 3], "x": 7.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 8.25, "y": 2},
|
||||
{"matrix": [3, 4], "x": 9.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 10.25, "y": 2, "w": 1.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75},
|
||||
{"matrix": [4, 1], "x": 1.75, "y": 3},
|
||||
{"matrix": [5, 1], "x": 2.75, "y": 3},
|
||||
{"matrix": [4, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [5, 2], "x": 4.75, "y": 3},
|
||||
{"matrix": [4, 3], "x": 5.75, "y": 3},
|
||||
{"matrix": [5, 3], "x": 6.75, "y": 3},
|
||||
{"matrix": [4, 4], "x": 7.75, "y": 3},
|
||||
{"matrix": [5, 4], "x": 8.75, "y": 3},
|
||||
{"matrix": [4, 5], "x": 9.75, "y": 3},
|
||||
{"matrix": [5, 5], "x": 10.75, "y": 3, "w": 1.25},
|
||||
|
||||
{"matrix": [6, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 4},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 4},
|
||||
{"matrix": [7, 2], "x": 3.25, "y": 4, "w": 6.25},
|
||||
{"matrix": [6, 5], "x": 9.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [7, 5], "x": 10.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,149 @@
|
|||
{
|
||||
"keyboard_name": "Static",
|
||||
"manufacturer": "0xCB",
|
||||
"url": "https://0xCB.dev",
|
||||
"maintainer": "Conor-Burns",
|
||||
"usb": {
|
||||
"vid": "0xCB00",
|
||||
"pid": "0xA455",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": false,
|
||||
"oled": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B5", "D4", "C0", "C1", "C2", "C3"],
|
||||
"rows": ["D5", "D6", "D7", "B0", "B1", "B2", "B3", "B4"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "D0", "pin_b": "D1"}
|
||||
]
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
},
|
||||
"tap_keycode_delay": 10
|
||||
},
|
||||
"processor": "atmega328p",
|
||||
"bootloader": "usbasploader",
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_all"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
|
||||
{"matrix": [0, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 0], "x": 1, "y": 1},
|
||||
{"matrix": [0, 1], "x": 2, "y": 1},
|
||||
{"matrix": [1, 1], "x": 3, "y": 1},
|
||||
{"matrix": [0, 2], "x": 4, "y": 1},
|
||||
{"matrix": [1, 2], "x": 5, "y": 1},
|
||||
{"matrix": [0, 3], "x": 6, "y": 1},
|
||||
{"matrix": [1, 3], "x": 7, "y": 1},
|
||||
{"matrix": [0, 4], "x": 8, "y": 1},
|
||||
{"matrix": [1, 4], "x": 9, "y": 1},
|
||||
{"matrix": [0, 5], "x": 10, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
||||
{"matrix": [3, 0], "x": 1.25, "y": 2},
|
||||
{"matrix": [2, 1], "x": 2.25, "y": 2},
|
||||
{"matrix": [3, 1], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 2], "x": 4.25, "y": 2},
|
||||
{"matrix": [3, 2], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 6.25, "y": 2},
|
||||
{"matrix": [3, 3], "x": 7.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 8.25, "y": 2},
|
||||
{"matrix": [3, 4], "x": 9.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 10.25, "y": 2, "w": 1.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75},
|
||||
{"matrix": [4, 1], "x": 1.75, "y": 3},
|
||||
{"matrix": [5, 1], "x": 2.75, "y": 3},
|
||||
{"matrix": [4, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [5, 2], "x": 4.75, "y": 3},
|
||||
{"matrix": [4, 3], "x": 5.75, "y": 3},
|
||||
{"matrix": [5, 3], "x": 6.75, "y": 3},
|
||||
{"matrix": [4, 4], "x": 7.75, "y": 3},
|
||||
{"matrix": [5, 4], "x": 8.75, "y": 3},
|
||||
{"matrix": [4, 5], "x": 9.75, "y": 3},
|
||||
{"matrix": [5, 5], "x": 10.75, "y": 3, "w": 1.25},
|
||||
|
||||
{"matrix": [6, 0], "x": 0, "y": 4},
|
||||
{"matrix": [7, 0], "x": 1, "y": 4},
|
||||
{"matrix": [6, 1], "x": 2, "y": 4},
|
||||
{"matrix": [7, 1], "x": 3, "y": 4, "w": 2.75},
|
||||
{"matrix": [7, 2], "x": 5.75, "y": 4},
|
||||
{"matrix": [6, 4], "x": 6.75, "y": 4, "w": 2.25},
|
||||
{"matrix": [7, 4], "x": 9, "y": 4},
|
||||
{"matrix": [6, 5], "x": 10, "y": 4},
|
||||
{"matrix": [7, 5], "x": 11, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_bigbar": {
|
||||
"layout": [
|
||||
{"matrix": [1, 5], "x": 11, "y": 0},
|
||||
|
||||
{"matrix": [0, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 0], "x": 1, "y": 1},
|
||||
{"matrix": [0, 1], "x": 2, "y": 1},
|
||||
{"matrix": [1, 1], "x": 3, "y": 1},
|
||||
{"matrix": [0, 2], "x": 4, "y": 1},
|
||||
{"matrix": [1, 2], "x": 5, "y": 1},
|
||||
{"matrix": [0, 3], "x": 6, "y": 1},
|
||||
{"matrix": [1, 3], "x": 7, "y": 1},
|
||||
{"matrix": [0, 4], "x": 8, "y": 1},
|
||||
{"matrix": [1, 4], "x": 9, "y": 1},
|
||||
{"matrix": [0, 5], "x": 10, "y": 1},
|
||||
{"matrix": [3, 5], "x": 11, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
|
||||
{"matrix": [3, 0], "x": 1.25, "y": 2},
|
||||
{"matrix": [2, 1], "x": 2.25, "y": 2},
|
||||
{"matrix": [3, 1], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 2], "x": 4.25, "y": 2},
|
||||
{"matrix": [3, 2], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 6.25, "y": 2},
|
||||
{"matrix": [3, 3], "x": 7.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 8.25, "y": 2},
|
||||
{"matrix": [3, 4], "x": 9.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 10.25, "y": 2, "w": 1.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75},
|
||||
{"matrix": [4, 1], "x": 1.75, "y": 3},
|
||||
{"matrix": [5, 1], "x": 2.75, "y": 3},
|
||||
{"matrix": [4, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [5, 2], "x": 4.75, "y": 3},
|
||||
{"matrix": [4, 3], "x": 5.75, "y": 3},
|
||||
{"matrix": [5, 3], "x": 6.75, "y": 3},
|
||||
{"matrix": [4, 4], "x": 7.75, "y": 3},
|
||||
{"matrix": [5, 4], "x": 8.75, "y": 3},
|
||||
{"matrix": [4, 5], "x": 9.75, "y": 3},
|
||||
{"matrix": [5, 5], "x": 10.75, "y": 3, "w": 1.25},
|
||||
|
||||
{"matrix": [6, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [7, 0], "x": 1.25, "y": 4},
|
||||
{"matrix": [6, 1], "x": 2.25, "y": 4},
|
||||
{"matrix": [7, 2], "x": 3.25, "y": 4, "w": 6.25},
|
||||
{"matrix": [6, 5], "x": 9.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [7, 5], "x": 10.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = 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
|
||||
LTO_ENABLE = yes
|
||||
OLED_ENABLE = yes
|
|
@ -1,57 +0,0 @@
|
|||
{
|
||||
"keyboard_name": "TutelPad",
|
||||
"manufacturer": "ItsFiremanSam",
|
||||
"url": "",
|
||||
"maintainer": "ItsFiremanSam",
|
||||
"usb": {
|
||||
"vid": "0xCB00",
|
||||
"pid": "0xF09F",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"bootmagic": {
|
||||
"matrix": [1, 0]
|
||||
},
|
||||
"rgblight": {
|
||||
"hue_steps": 10,
|
||||
"led_count": 4,
|
||||
"sleep": true,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["E6", "D7", "B1", "B3"],
|
||||
["B5", "B4", "B2", "B6"]
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0, "matrix": [0, 0]},
|
||||
{"x": 1, "y": 0, "matrix": [0, 1]},
|
||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 3, "y": 0, "matrix": [0, 3]},
|
||||
|
||||
{"x": 0, "y": 1, "matrix": [1, 0]},
|
||||
{"x": 1, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 3, "y": 1, "matrix": [1, 3]}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"keyboard_name": "TutelPad",
|
||||
"manufacturer": "ItsFiremanSam",
|
||||
"url": "",
|
||||
"maintainer": "ItsFiremanSam",
|
||||
"usb": {
|
||||
"vid": "0xCB00",
|
||||
"pid": "0xF09F",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"bootmagic": {
|
||||
"matrix": [1, 0]
|
||||
},
|
||||
"rgblight": {
|
||||
"hue_steps": 10,
|
||||
"led_count": 4,
|
||||
"sleep": true,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": false,
|
||||
"nkro": false,
|
||||
"oled": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["E6", "D7", "B1", "B3"],
|
||||
["B5", "B4", "B2", "B6"]
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0, "matrix": [0, 0]},
|
||||
{"x": 1, "y": 0, "matrix": [0, 1]},
|
||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 3, "y": 0, "matrix": [0, 3]},
|
||||
|
||||
{"x": 0, "y": 1, "matrix": [1, 0]},
|
||||
{"x": 1, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 3, "y": 1, "matrix": [1, 3]}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
# 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
|
|
@ -1,63 +0,0 @@
|
|||
{
|
||||
"keyboard_name": "10bleoledhub",
|
||||
"manufacturer": "haierwangwei2005",
|
||||
"url": "https://github.com/haierwangwei2005/10BLE-OLED-HUB",
|
||||
"maintainer": "haierwangwei2005",
|
||||
"usb": {
|
||||
"vid": "0x7C88",
|
||||
"pid": "0x7C99",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"bluetooth": {
|
||||
"driver": "bluefruit_le"
|
||||
},
|
||||
"rgblight": {
|
||||
"led_count": 4,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B7"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D6", "D7", "B5"],
|
||||
"rows": ["F0", "F5", "F4", "F6"]
|
||||
},
|
||||
"diode_direction": "ROW2COL",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "C7", "pin_b": "F7"}
|
||||
]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "w": 0.8, "h": 0.8},
|
||||
|
||||
{"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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
{
|
||||
"keyboard_name": "10bleoledhub",
|
||||
"manufacturer": "haierwangwei2005",
|
||||
"url": "https://github.com/haierwangwei2005/10BLE-OLED-HUB",
|
||||
"maintainer": "haierwangwei2005",
|
||||
"usb": {
|
||||
"vid": "0x7C88",
|
||||
"pid": "0x7C99",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"bluetooth": true,
|
||||
"bootmagic": true,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": false,
|
||||
"oled": true
|
||||
},
|
||||
"bluetooth": {
|
||||
"driver": "bluefruit_le"
|
||||
},
|
||||
"rgblight": {
|
||||
"led_count": 4,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B7"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D6", "D7", "B5"],
|
||||
"rows": ["F0", "F5", "F4", "F6"]
|
||||
},
|
||||
"diode_direction": "ROW2COL",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "C7", "pin_b": "F7"}
|
||||
]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "w": 0.8, "h": 0.8},
|
||||
|
||||
{"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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,18 +1,2 @@
|
|||
# Processor frequency
|
||||
F_CPU = 8000000
|
||||
|
||||
# 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
|
||||
BLUETOOTH_ENABLE = yes
|
||||
OLED_ENABLE = yes
|
||||
ENCODER_ENABLE = yes
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"keyboard_name": "1K",
|
||||
"manufacturer": "MakotoKurauchi",
|
||||
"url": "",
|
||||
"maintainer": "MakotoKurauchi",
|
||||
"usb": {
|
||||
"vid": "0x0009",
|
||||
"pid": "0x0001",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"rgblight": {
|
||||
"led_count": 1
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B2"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["B0"]
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_1x1": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0, "matrix": [0, 0]}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"keyboard_name": "1K",
|
||||
"manufacturer": "MakotoKurauchi",
|
||||
"url": "",
|
||||
"maintainer": "MakotoKurauchi",
|
||||
"usb": {
|
||||
"vid": "0x0009",
|
||||
"pid": "0x0001",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"processor": "attiny85",
|
||||
"bootloader": "custom",
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"features": {
|
||||
"grave_esc": false,
|
||||
"magic": false,
|
||||
"space_cadet": false
|
||||
},
|
||||
"rgblight": {
|
||||
"led_count": 1
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B2"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["B0"]
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_1x1": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0, "matrix": [0, 0]}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -21,5 +21,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
rgblite_init();
|
||||
rgblite_increase_hue();
|
||||
}
|
||||
|
|
|
@ -6,6 +6,10 @@
|
|||
#include "ws2812.h"
|
||||
#include "color.h"
|
||||
|
||||
static inline void rgblite_init(void) {
|
||||
ws2812_init();
|
||||
}
|
||||
|
||||
static inline void rgblite_setrgb(RGB rgb) {
|
||||
rgb_led_t leds[RGBLIGHT_LED_COUNT] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}};
|
||||
ws2812_setleds(leds, RGBLIGHT_LED_COUNT);
|
||||
|
|
|
@ -1,26 +1,2 @@
|
|||
# MCU name
|
||||
MCU = attiny85
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = custom
|
||||
BOOTLOADER_SIZE = 1862
|
||||
PROGRAM_CMD = micronucleus --run $(BUILD_DIR)/$(TARGET).hex
|
||||
|
||||
# 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
|
||||
|
||||
# Save as much space as we can...
|
||||
LTO_ENABLE = yes
|
||||
GRAVE_ESC_ENABLE = no
|
||||
MAGIC_ENABLE = no
|
||||
SPACE_CADET_ENABLE = no
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/*
|
||||
* 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
|
|
@ -1,116 +0,0 @@
|
|||
{
|
||||
"keyboard_name": "1up60hse",
|
||||
"manufacturer": "1upkeyboards",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"usb": {
|
||||
"vid": "0x6F75",
|
||||
"pid": "0x6873",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["C7", "F7", "F6", "F5", "F4", "F1", "E6", "D1", "D0", "D2", "D3", "D5", "D6", "D7"],
|
||||
"rows": ["B3", "B2", "B1", "B0", "D4"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"backlight": {
|
||||
"pin": "B7",
|
||||
"levels": 5,
|
||||
"breathing": true
|
||||
},
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"brightness_steps": 8,
|
||||
"led_count": 14,
|
||||
"sleep": true,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "F0"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"community_layouts": ["60_ansi"],
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,135 @@
|
|||
{
|
||||
"keyboard_name": "1up60hse",
|
||||
"manufacturer": "1upkeyboards",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"usb": {
|
||||
"vid": "0x6F75",
|
||||
"pid": "0x6873",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"features": {
|
||||
"backlight": true,
|
||||
"bootmagic": true,
|
||||
"command": true,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": false,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["C7", "F7", "F6", "F5", "F4", "F1", "E6", "D1", "D0", "D2", "D3", "D5", "D6", "D7"],
|
||||
"rows": ["B3", "B2", "B1", "B0", "D4"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"backlight": {
|
||||
"pin": "B7",
|
||||
"levels": 5,
|
||||
"breathing": true
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"brightness_steps": 8,
|
||||
"led_count": 14,
|
||||
"sleep": true,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "F0"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"community_layouts": ["60_ansi"],
|
||||
"layouts": {
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
# 1up60hse default keymap generated by QMK Configurator
|
||||
|
||||
This is the keymap used by [QMK Configurator](https://config.qmk.fm/#/1upkeyboards/1up60hse/LAYOUT_60_ansi) as default.
|
||||
|
|
@ -1 +0,0 @@
|
|||
# 1up60hse via keymap
|
|
@ -1,13 +0,0 @@
|
|||
# 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 = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
LTO_ENABLE = yes
|
|
@ -1,25 +0,0 @@
|
|||
/*
|
||||
Copyright 2019 Bubnick
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
/* 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
|
|
@ -1,189 +0,0 @@
|
|||
{
|
||||
"keyboard_name": "1up60hte",
|
||||
"manufacturer": "1upkeyboards",
|
||||
"url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/",
|
||||
"maintainer": "1upkeyboards",
|
||||
"usb": {
|
||||
"vid": "0x6F75",
|
||||
"pid": "0x6874",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F6", "F5", "F4", "F1", "E6", "D0", "D1", "D2", "D3", "D5", "D6", "D7", "B4", "B5"],
|
||||
"rows": ["B3", "B2", "B1", "B0", "D4"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"backlight": {
|
||||
"pin": "B7"
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B6",
|
||||
"on_state": 0
|
||||
},
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"brightness_steps": 8,
|
||||
"led_count": 14,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "F0"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
|
||||
},
|
||||
"community_layouts": ["60_hhkb", "60_tsangan_hhkb"],
|
||||
"layouts": {
|
||||
"LAYOUT_60_tsangan_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [4, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 12], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [4, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 12], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,208 @@
|
|||
{
|
||||
"keyboard_name": "1up60hte",
|
||||
"manufacturer": "1upkeyboards",
|
||||
"url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/",
|
||||
"maintainer": "1upkeyboards",
|
||||
"usb": {
|
||||
"vid": "0x6F75",
|
||||
"pid": "0x6874",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"features": {
|
||||
"backlight": true,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F6", "F5", "F4", "F1", "E6", "D0", "D1", "D2", "D3", "D5", "D6", "D7", "B4", "B5"],
|
||||
"rows": ["B3", "B2", "B1", "B0", "D4"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"backlight": {
|
||||
"pin": "B7"
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B6",
|
||||
"on_state": 0
|
||||
},
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"brightness_steps": 8,
|
||||
"led_count": 14,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "F0"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
|
||||
},
|
||||
"community_layouts": ["60_hhkb", "60_tsangan_hhkb"],
|
||||
"layouts": {
|
||||
"LAYOUT_60_tsangan_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [4, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 12], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [4, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 12], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 12.5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LTO_ENABLE = yes
|
|
@ -1,7 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
|
@ -1,535 +0,0 @@
|
|||
{
|
||||
"keyboard_name": "1UP RGB Underglow PCB",
|
||||
"manufacturer": "1upkeyboards",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"usb": {
|
||||
"vid": "0x6F75",
|
||||
"pid": "0x7267",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F0", "F1", "E6", "C7", "C6", "B7", "D4", "B1", "B0", "B5", "B4", "D7", "D6", "B3", "F4"],
|
||||
"rows": ["D0", "D1", "D2", "D3", "D5"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"backlight": {
|
||||
"pin": "B6",
|
||||
"levels": 5
|
||||
},
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"brightness_steps": 8,
|
||||
"led_count": 16,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "E2"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"community_layouts": ["60_ansi", "60_iso", "60_ansi_split_bs_rshift", "60_hhkb"],
|
||||
"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": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 6},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 11.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan_split_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,551 @@
|
|||
{
|
||||
"keyboard_name": "1UP RGB Underglow PCB",
|
||||
"manufacturer": "1upkeyboards",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"usb": {
|
||||
"vid": "0x6F75",
|
||||
"pid": "0x7267",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"backlight": true,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F0", "F1", "E6", "C7", "C6", "B7", "D4", "B1", "B0", "B5", "B4", "D7", "D6", "B3", "F4"],
|
||||
"rows": ["D0", "D1", "D2", "D3", "D5"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"backlight": {
|
||||
"pin": "B6",
|
||||
"levels": 5
|
||||
},
|
||||
"rgblight": {
|
||||
"saturation_steps": 8,
|
||||
"brightness_steps": 8,
|
||||
"led_count": 16,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "E2"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"community_layouts": ["60_ansi", "60_iso", "60_ansi_split_bs_rshift", "60_hhkb"],
|
||||
"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": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 6},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 11.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan_split_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 12.5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -20,11 +20,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
bool led_update_user(led_t led_state) {
|
||||
if (led_state.caps_lock) {
|
||||
setPinOutput(B2);
|
||||
writePinLow(B2);
|
||||
gpio_set_pin_output(B2);
|
||||
gpio_write_pin_low(B2);
|
||||
} else {
|
||||
setPinInput(B2);
|
||||
writePinLow(B2);
|
||||
gpio_set_pin_input(B2);
|
||||
gpio_write_pin_low(B2);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -20,11 +20,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
bool led_update_user(led_t led_state) {
|
||||
if (led_state.caps_lock) {
|
||||
setPinOutput(B2);
|
||||
writePinLow(B2);
|
||||
gpio_set_pin_output(B2);
|
||||
gpio_write_pin_low(B2);
|
||||
} else {
|
||||
setPinInput(B2);
|
||||
writePinLow(B2);
|
||||
gpio_set_pin_input(B2);
|
||||
gpio_write_pin_low(B2);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -20,11 +20,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
bool led_update_user(led_t led_state) {
|
||||
if (led_state.caps_lock) {
|
||||
setPinOutput(B2);
|
||||
writePinLow(B2);
|
||||
gpio_set_pin_output(B2);
|
||||
gpio_write_pin_low(B2);
|
||||
} else {
|
||||
setPinInput(B2);
|
||||
writePinLow(B2);
|
||||
gpio_set_pin_input(B2);
|
||||
gpio_write_pin_low(B2);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
AUDIO_ENABLE = no
|
||||
RGBLIGHT_ENABLE = yes
|
|
@ -1,137 +0,0 @@
|
|||
{
|
||||
"manufacturer": "1upkeyboards",
|
||||
"keyboard_name": "1upocarina",
|
||||
"maintainer": "ziptyze",
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"board": "GENERIC_RP_RP2040",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x5607",
|
||||
"vid": "0x6F75"
|
||||
},
|
||||
"dynamic_keymap": {
|
||||
"layer_count": 10
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": false,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"encoder": {
|
||||
"enabled": true,
|
||||
"rotary": [
|
||||
{
|
||||
"pin_a": "GP25", "pin_b": "GP26"
|
||||
}
|
||||
]
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["GP28", "GP29", "GP27", "GP1", "GP2"]
|
||||
]
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP24"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"gradient_left_right": true,
|
||||
"breathing": true,
|
||||
"band_sat": true,
|
||||
"band_val": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"jellybean_raindrops": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"typing_heatmap": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"splash": true,
|
||||
"multisplash": true,
|
||||
"solid_splash": true,
|
||||
"solid_multisplash": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 23, "y": 26 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 62, "y": 26 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 112, "y": 34 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 161, "y": 26 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 200, "y": 26 },
|
||||
|
||||
{ "flags": 2, "x": 133, "y": 3 },
|
||||
{ "flags": 2, "x": 154, "y": 3 },
|
||||
{ "flags": 2, "x": 174, "y": 3 },
|
||||
{ "flags": 2, "x": 194, "y": 3 },
|
||||
{ "flags": 2, "x": 218, "y": 5 },
|
||||
|
||||
{ "flags": 2, "x": 221, "y": 19 },
|
||||
{ "flags": 2, "x": 221, "y": 31 },
|
||||
{ "flags": 2, "x": 221, "y": 44 },
|
||||
{ "flags": 2, "x": 217, "y": 58 },
|
||||
{ "flags": 2, "x": 195, "y": 61 },
|
||||
|
||||
{ "flags": 2, "x": 174, "y": 61 },
|
||||
{ "flags": 2, "x": 154, "y": 61 },
|
||||
{ "flags": 2, "x": 133, "y": 61 },
|
||||
{ "flags": 2, "x": 112, "y": 61 },
|
||||
{ "flags": 2, "x": 91, "y": 61 },
|
||||
|
||||
{ "flags": 2, "x": 70, "y": 61 },
|
||||
{ "flags": 2, "x": 49, "y": 61 },
|
||||
{ "flags": 2, "x": 28, "y": 61 },
|
||||
{ "flags": 2, "x": 5, "y": 58 },
|
||||
{ "flags": 2, "x": 2, "y": 44 },
|
||||
|
||||
{ "flags": 2, "x": 2, "y": 31 },
|
||||
{ "flags": 2, "x": 2, "y": 19 },
|
||||
{ "flags": 2, "x": 5, "y": 5 },
|
||||
{ "flags": 2, "x": 28, "y": 3 },
|
||||
{ "flags": 2, "x": 49, "y": 3 },
|
||||
|
||||
{ "flags": 2, "x": 70, "y": 3 },
|
||||
{ "flags": 2, "x": 91, "y": 3 }
|
||||
],
|
||||
"sleep": true
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_1x5": {
|
||||
"layout": [
|
||||
{ "label": "z", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 },
|
||||
{ "label": "x", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 },
|
||||
{ "label": "esc", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 },
|
||||
{ "label": "c", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 },
|
||||
{ "label": "v", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,137 @@
|
|||
{
|
||||
"manufacturer": "1upkeyboards",
|
||||
"keyboard_name": "1upocarina",
|
||||
"maintainer": "ziptyze",
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"board": "GENERIC_RP_RP2040",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x5607",
|
||||
"vid": "0x6F75"
|
||||
},
|
||||
"dynamic_keymap": {
|
||||
"layer_count": 10
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": false,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"encoder": {
|
||||
"enabled": true,
|
||||
"rotary": [
|
||||
{
|
||||
"pin_a": "GP25", "pin_b": "GP26"
|
||||
}
|
||||
]
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["GP28", "GP29", "GP27", "GP1", "GP2"]
|
||||
]
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP24"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"gradient_left_right": true,
|
||||
"breathing": true,
|
||||
"band_sat": true,
|
||||
"band_val": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"jellybean_raindrops": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"typing_heatmap": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"splash": true,
|
||||
"multisplash": true,
|
||||
"solid_splash": true,
|
||||
"solid_multisplash": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 23, "y": 26 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 62, "y": 26 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 112, "y": 34 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 161, "y": 26 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 200, "y": 26 },
|
||||
|
||||
{ "flags": 2, "x": 133, "y": 3 },
|
||||
{ "flags": 2, "x": 154, "y": 3 },
|
||||
{ "flags": 2, "x": 174, "y": 3 },
|
||||
{ "flags": 2, "x": 194, "y": 3 },
|
||||
{ "flags": 2, "x": 218, "y": 5 },
|
||||
|
||||
{ "flags": 2, "x": 221, "y": 19 },
|
||||
{ "flags": 2, "x": 221, "y": 31 },
|
||||
{ "flags": 2, "x": 221, "y": 44 },
|
||||
{ "flags": 2, "x": 217, "y": 58 },
|
||||
{ "flags": 2, "x": 195, "y": 61 },
|
||||
|
||||
{ "flags": 2, "x": 174, "y": 61 },
|
||||
{ "flags": 2, "x": 154, "y": 61 },
|
||||
{ "flags": 2, "x": 133, "y": 61 },
|
||||
{ "flags": 2, "x": 112, "y": 61 },
|
||||
{ "flags": 2, "x": 91, "y": 61 },
|
||||
|
||||
{ "flags": 2, "x": 70, "y": 61 },
|
||||
{ "flags": 2, "x": 49, "y": 61 },
|
||||
{ "flags": 2, "x": 28, "y": 61 },
|
||||
{ "flags": 2, "x": 5, "y": 58 },
|
||||
{ "flags": 2, "x": 2, "y": 44 },
|
||||
|
||||
{ "flags": 2, "x": 2, "y": 31 },
|
||||
{ "flags": 2, "x": 2, "y": 19 },
|
||||
{ "flags": 2, "x": 5, "y": 5 },
|
||||
{ "flags": 2, "x": 28, "y": 3 },
|
||||
{ "flags": 2, "x": 49, "y": 3 },
|
||||
|
||||
{ "flags": 2, "x": 70, "y": 3 },
|
||||
{ "flags": 2, "x": 91, "y": 3 }
|
||||
],
|
||||
"sleep": true
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_1x5": {
|
||||
"layout": [
|
||||
{ "label": "z", "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "label": "x", "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "label": "esc", "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "label": "c", "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "label": "v", "matrix": [0, 4], "x": 4, "y": 0 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
# This file intentionally left blank
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue