Compare commits

...

32 Commits

Author SHA1 Message Date
a5fd4fd83e Resolve alias within Makefile 2024-08-10 14:38:17 +01:00
af1f965c82 Deprecate DEFAULT_FOLDER 2024-08-10 14:12:07 +01:00
019b6f67b2 Remove keyboard level QK_BOOT implementations (#24231) 2024-08-10 13:50:36 +01:00
339b820520 Fixup handwired/dactyl_minidox (#24253)
* Initial

* Fix missing bracket

* Fix keymap name

* Fix rgb matrix coordinates

* Remove unncessary centre point
2024-08-07 21:48:44 -06:00
fc209e1c51 Merge remote-tracking branch 'origin/master' into develop 2024-08-07 20:44:32 +00:00
5acc3b2b7b Add extra compatibility to Sat75 HS PCB (#24156) 2024-08-07 14:40:31 -06:00
c0e2ecb825 Merge remote-tracking branch 'origin/master' into develop 2024-08-07 20:38:19 +00:00
78900720fd JJ50 v2 Support (#24212)
* add support for JJ50 V2 PCB

* fix bootloader config

* update mousekey setting

* run format-json

---------

Co-authored-by: Steve Jacobs <sjacobs@truefit.io>
2024-08-07 14:34:21 -06:00
142128740d Merge remote-tracking branch 'origin/master' into develop 2024-08-07 20:29:11 +00:00
c67c3d375b Add support for bunnygirl65 (#24244)
* Add support for bunnygirl65

* Update keyboard.json

* Update keymap.c

* Update keymap.c

* Update keyboards/sawnsprojects/bunnygirl65/readme.md

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/sawnsprojects/bunnygirl65/keyboard.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/sawnsprojects/bunnygirl65/keyboard.json

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
2024-08-07 14:28:41 -06:00
ac1b488170 Refactor printedpad (#24236) 2024-08-04 20:34:57 +01:00
b5b4e93857 Refactor orthocode (#24237) 2024-08-04 15:14:30 +01:00
1f942bb17e Small tweaks to keymap generation (#24240) 2024-08-04 12:28:40 +01:00
5c10bd3d8c Fixup changelog entry path. 2024-08-04 11:44:24 +10:00
0fbe150303 Remove unnecessary RGB Matrix shutdown hooks (#24238) 2024-08-04 02:07:02 +01:00
0b4065b50c hs60/v1: separate into ANSI and ISO revisions (#24136) 2024-08-04 02:03:54 +01:00
b04fee4ff7 Merge remote-tracking branch 'origin/master' into develop 2024-08-03 23:48:33 +00:00
75402109e9 Add Void65h (#24183) 2024-08-04 00:46:12 +01:00
ddc60da839 Merge remote-tracking branch 'origin/master' into develop 2024-08-03 23:38:27 +00:00
fa657fef70 atlantis/ak81_ve: move RGB Matrix LED config to data driven (#24115) 2024-08-04 00:38:26 +01:00
eb78ca1c1a handwired/p65rgb: move RGB Matrix LED config to data driven (#24124) 2024-08-04 00:37:57 +01:00
bb20093b24 Merge remote-tracking branch 'origin/master' into develop 2024-08-03 22:17:52 +00:00
d28a50e176 FX19 Support (#24220) 2024-08-03 23:11:49 +01:00
8808fffc2f Refactor opendeck/32 (#24233) 2024-08-03 23:10:09 +01:00
9f387f525c Remove handwired/pytest/has_template (#24232) 2024-08-03 16:55:02 +01:00
807ba71c89 Merge remote-tracking branch 'origin/master' into develop 2024-07-31 00:08:24 +00:00
c7662e4f36 [Keyboard] Add archerkeyboard/desire65 (#23776)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-07-31 10:07:51 +10:00
5439507f5e Merge remote-tracking branch 'origin/master' into develop 2024-07-30 21:22:14 +00:00
73cb6fd89f cipulot/ec_60x: Fix VIA layout options (#24217)
This fixes the issue of one layout option not being applied correctly because it was out of bound.
2024-07-30 22:21:42 +01:00
8ca082892a Eliminate use of #include "../default/keymap.c". (#24215) 2024-07-30 13:06:15 +10:00
9c1e1d1fee Merge remote-tracking branch 'origin/master' into develop 2024-07-28 18:16:45 +00:00
d538451adb Remove AVR GCC version warning (#24206) 2024-07-28 19:16:15 +01:00
152 changed files with 3558 additions and 2113 deletions

View File

@ -110,8 +110,27 @@ define TRY_TO_MATCH_RULE_FROM_LIST_HELPER
endif
endef
define TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB
# Split on ":", padding with empty strings to avoid indexing issues
TOKEN1:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[0])" $$(RULE))
TOKENr:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[1])" $$(RULE))
TOKEN1:=$$(shell $(QMK_BIN) resolve-alias $$(TOKEN1))
FOUNDx:=$$(shell echo $1 | tr " " "\n" | grep -Fx $$(TOKEN1))
ifneq ($$(FOUNDx),)
RULE := $$(TOKENr)
RULE_FOUND := true
MATCHED_ITEM := $$(TOKEN1)
else
RULE_FOUND := false
MATCHED_ITEM :=
endif
endef
# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST
TRY_TO_MATCH_RULE_FROM_LIST = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER,$1))$(RULE_FOUND)
TRY_TO_MATCH_RULE_FROM_LIST_KB = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB,$1))$(RULE_FOUND)
define ALL_IN_LIST_LOOP
OLD_RULE$1 := $$(RULE)
@ -138,7 +157,7 @@ define PARSE_RULE
$$(eval $$(call PARSE_TEST))
# If the rule starts with the name of a known keyboard, then continue
# the parsing from PARSE_KEYBOARD
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)),true)
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST_KB,$$(shell $(QMK_BIN) list-keyboards)),true)
KEYBOARD_RULE=$$(MATCHED_ITEM)
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
else
@ -172,15 +191,6 @@ define PARSE_KEYBOARD
# KEYBOARD_FOLDERS := $$(subst /, , $(CURRENT_KB))
DEFAULT_FOLDER := $$(CURRENT_KB)
# We assume that every rules.mk will contain the full default value
$$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk)
ifneq ($$(DEFAULT_FOLDER),$$(CURRENT_KB))
$$(eval include $(ROOT_DIR)/keyboards/$$(DEFAULT_FOLDER)/rules.mk)
endif
CURRENT_KB := $$(DEFAULT_FOLDER)
# 5/4/3/2/1
KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB)
KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1)))
@ -242,7 +252,7 @@ endef
# if we are going to compile all keyboards, match the rest of the rule
# for each of them
define PARSE_ALL_KEYBOARDS
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)))
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards)))
endef
# Prints a list of all known keymaps for the given keyboard
@ -434,7 +444,7 @@ git-submodules: git-submodule
.PHONY: list-keyboards
list-keyboards:
$(QMK_BIN) list-keyboards --no-resolve-defaults | tr '\n' ' '
$(QMK_BIN) list-keyboards | tr '\n' ' '
.PHONY: list-tests
list-tests:
@ -442,7 +452,7 @@ list-tests:
.PHONY: generate-keyboards-file
generate-keyboards-file:
$(QMK_BIN) list-keyboards --no-resolve-defaults
$(QMK_BIN) list-keyboards
.PHONY: clean
clean:

View File

@ -55,5 +55,6 @@
// Items we want flagged in lint
"CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"DEFAULT_FOLDER": {"info_key": "_deprecated.default_folder", "deprecated": true}
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}
}

View File

@ -0,0 +1,192 @@
{
"manufacturer": "archerkeyboard",
"keyboard_name": "desire65",
"maintainer": "akyp",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"indicators": {
"caps_lock": "GP18"
},
"matrix_pins": {
"cols": ["GP21", "GP29", "GP1", "GP0", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP2", "GP5", "GP4", "GP3"],
"rows": ["GP24", "GP25", "GP19", "GP16", "GP17"]
},
"processor": "RP2040",
"rgblight": {
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"static_gradient": true,
"twinkle": true
},
"default": {
"animation": "rainbow_mood",
"val": 128
},
"driver": "ws2812",
"led_count": 17,
"sleep": true
},
"url": "https://archerkeyboard.com",
"usb": {
"device_version": "0.0.1",
"pid": "0x0002",
"vid": "0x0361"
},
"ws2812": {
"driver": "vendor",
"pin": "GP26"
},
"community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"],
"layouts": {
"LAYOUT_65_ansi_blocker_tsangan": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
{"label": "Home", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 12], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 13], "x": 12.5, "y": 1},
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
{"label": "End", "matrix": [1, 15], "x": 15, "y": 1},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
{"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 11], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 12], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
{"label": "PgUp", "matrix": [2, 15], "x": 15, "y": 2},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Up", "matrix": [3, 14], "x": 14, "y": 3},
{"label": "PgDn", "matrix": [3, 15], "x": 15, "y": 3},
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "Left", "matrix": [4, 13], "x": 13, "y": 4},
{"label": "Down", "matrix": [4, 14], "x": 14, "y": 4},
{"label": "Right", "matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_tsangan_split_bs": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"label": "Home", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 12], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 13], "x": 12.5, "y": 1},
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
{"label": "End", "matrix": [1, 15], "x": 15, "y": 1},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
{"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 11], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 12], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
{"label": "PgUp", "matrix": [2, 15], "x": 15, "y": 2},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Up", "matrix": [3, 14], "x": 14, "y": 3},
{"label": "PgDn", "matrix": [3, 15], "x": 15, "y": 3},
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "Left", "matrix": [4, 13], "x": 13, "y": 4},
{"label": "Down", "matrix": [4, 14], "x": 14, "y": 4},
{"label": "Right", "matrix": [4, 15], "x": 15, "y": 4}
]
}
}
}

View File

@ -0,0 +1,24 @@
// Copyright 2024 ArcherKeyboard (archerkeyboard2022@gmail.com)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______,
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
),
};

View File

@ -0,0 +1,24 @@
// Copyright 2024 ArcherKeyboard (archerkeyboard2022@gmail.com)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______,
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
),
};

View File

@ -0,0 +1,27 @@
# desire65
![desire65](https://i.imgur.com/bTjvGzC.jpg)
A desirable 65% keyboard
* Keyboard Maintainer: [ArcherKeyboard](https://github.com/akyp)
* Hardware Supported: Desire65 PCB
* Hardware Availability: [Open source on GitHub](https://github.com/akyp/desire65-pcb)
Make example for this keyboard (after setting up your build environment):
make archerkeyboard/desire65:default
Flashing example for this keyboard:
make archerkeyboard/desire65:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Hold the "USB_BOOT" button on the back of the PCB (the one closest to the MCU) and briefly press the "RESET" button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -16,36 +16,6 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
// Key Matrix to LED Index
{ 12, 11, 10, 9, 8, 7, 6, 5, 4, NO_LED, 3, 2, 1, 0 }, // 13 keys
{ 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13 }, // 15 keys
{ 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28 }, // 15 keys
{ 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED, 43 }, // 14 keys
{ 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, NO_LED, 58, 57 }, // 14 keys
{ 79, 78, 77, NO_LED, NO_LED, NO_LED, 76, NO_LED, NO_LED, NO_LED, 75, 74, 73, 72, 71 } // 9 keys
}, {
// LED Index to Physical Positon
{ 240, 0 }, { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 32, 0 },
{ 240, 13 }, { 224, 13 }, { 208, 13 }, { 192 , 13 }, { 176, 13 }, { 160, 13 }, { 144, 13 }, { 128, 13 }, { 112, 13 }, { 96, 13 }, { 80, 13 }, { 64, 13}, { 48, 13 }, { 32, 13 }, { 16, 13 },
{ 240, 26 }, { 224, 26 }, { 208, 26 }, { 192 , 26 }, { 176, 26 }, { 160, 26 }, { 144, 26 }, { 128, 26 }, { 112, 26 }, { 96, 26 }, { 80, 26 }, { 64, 26}, { 48, 26 }, { 32, 26 }, { 16, 26 },
{ 240, 39 }, { 216, 39 }, { 192 , 39 }, { 176, 39 }, { 160, 39 }, { 144, 39 }, { 128, 39 }, { 112, 39 }, { 96, 39 }, { 80, 39 }, { 64, 39}, { 48, 39 }, { 32, 39 }, { 16, 39 },
{ 240, 52 }, { 224, 52 }, { 208, 52 }, { 192 , 52 }, { 176, 52 }, { 160, 52 }, { 144, 52 }, { 128, 52 }, { 112, 52 }, { 96, 52 }, { 80, 52 }, { 64, 52}, { 48, 52 }, { 24, 52 },
{ 240, 64 }, { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 112, 64 }, { 48, 64 }, { 32, 64 }, { 16, 64 },
{ 0, 26 }, { 0, 46 }, { 0, 64 }, { 48, 64 }, { 72, 64 }, { 104, 64 }, { 136, 64 }, { 168, 64 }, { 208, 64 }, { 232, 58 }, { 232, 45 }, { 232, 32 }, { 232, 20 }, { 232, 7 }, { 176, 0 }, { 112, 0 }
}, {
// LED Index to Flag
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
} };
#endif
#if defined(ENCODER_ENABLE) && !defined(ENCODER_MAP_ENABLE)
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) {

View File

@ -58,7 +58,123 @@
},
"driver": "ws2812",
"max_brightness": 130,
"sleep": true
"sleep": true,
"layout": [
{"matrix": [0, 13], "x": 193, "y": 0, "flags": 4},
{"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
{"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
{"matrix": [0, 10], "x": 152, "y": 0, "flags": 4},
{"matrix": [0, 8], "x": 131, "y": 0, "flags": 4},
{"matrix": [0, 7], "x": 117, "y": 0, "flags": 4},
{"matrix": [0, 6], "x": 103, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 90, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 55, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 41, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 28, "y": 0, "flags": 4},
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
{"matrix": [1, 14], "x": 224, "y": 12, "flags": 1},
{"matrix": [1, 13], "x": 186, "y": 12, "flags": 1},
{"matrix": [1, 12], "x": 165, "y": 12, "flags": 4},
{"matrix": [1, 11], "x": 152, "y": 12, "flags": 4},
{"matrix": [1, 10], "x": 138, "y": 12, "flags": 4},
{"matrix": [1, 9], "x": 124, "y": 12, "flags": 4},
{"matrix": [1, 8], "x": 110, "y": 12, "flags": 4},
{"matrix": [1, 7], "x": 96, "y": 12, "flags": 4},
{"matrix": [1, 6], "x": 83, "y": 12, "flags": 4},
{"matrix": [1, 5], "x": 69, "y": 12, "flags": 4},
{"matrix": [1, 4], "x": 55, "y": 12, "flags": 4},
{"matrix": [1, 3], "x": 41, "y": 12, "flags": 4},
{"matrix": [1, 2], "x": 28, "y": 12, "flags": 4},
{"matrix": [1, 1], "x": 14, "y": 12, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
{"matrix": [2, 14], "x": 224, "y": 24, "flags": 1},
{"matrix": [2, 13], "x": 190, "y": 24, "flags": 1},
{"matrix": [2, 12], "x": 172, "y": 24, "flags": 4},
{"matrix": [2, 11], "x": 159, "y": 24, "flags": 4},
{"matrix": [2, 10], "x": 145, "y": 24, "flags": 4},
{"matrix": [2, 9], "x": 131, "y": 24, "flags": 4},
{"matrix": [2, 8], "x": 117, "y": 24, "flags": 4},
{"matrix": [2, 7], "x": 103, "y": 24, "flags": 4},
{"matrix": [2, 6], "x": 90, "y": 24, "flags": 4},
{"matrix": [2, 5], "x": 76, "y": 24, "flags": 4},
{"matrix": [2, 4], "x": 62, "y": 24, "flags": 4},
{"matrix": [2, 3], "x": 48, "y": 24, "flags": 4},
{"matrix": [2, 2], "x": 34, "y": 24, "flags": 4},
{"matrix": [2, 1], "x": 21, "y": 24, "flags": 4},
{"matrix": [2, 0], "x": 3, "y": 24, "flags": 1},
{"matrix": [3, 14], "x": 224, "y": 37, "flags": 1},
{"matrix": [3, 12], "x": 184, "y": 37, "flags": 1},
{"matrix": [3, 11], "x": 162, "y": 37, "flags": 4},
{"matrix": [3, 10], "x": 148, "y": 37, "flags": 4},
{"matrix": [3, 9], "x": 134, "y": 37, "flags": 4},
{"matrix": [3, 8], "x": 121, "y": 37, "flags": 4},
{"matrix": [3, 7], "x": 107, "y": 37, "flags": 4},
{"matrix": [3, 6], "x": 93, "y": 37, "flags": 4},
{"matrix": [3, 5], "x": 79, "y": 37, "flags": 4},
{"matrix": [3, 4], "x": 65, "y": 37, "flags": 4},
{"matrix": [3, 3], "x": 52, "y": 37, "flags": 4},
{"matrix": [3, 2], "x": 38, "y": 37, "flags": 4},
{"matrix": [3, 1], "x": 24, "y": 37, "flags": 4},
{"matrix": [3, 0], "x": 5, "y": 37, "flags": 1},
{"matrix": [4, 14], "x": 224, "y": 49, "flags": 1},
{"matrix": [4, 13], "x": 196, "y": 52, "flags": 4},
{"matrix": [4, 11], "x": 174, "y": 49, "flags": 1},
{"matrix": [4, 10], "x": 155, "y": 49, "flags": 4},
{"matrix": [4, 9], "x": 141, "y": 49, "flags": 4},
{"matrix": [4, 8], "x": 128, "y": 49, "flags": 4},
{"matrix": [4, 7], "x": 114, "y": 49, "flags": 4},
{"matrix": [4, 6], "x": 100, "y": 49, "flags": 4},
{"matrix": [4, 5], "x": 86, "y": 49, "flags": 4},
{"matrix": [4, 4], "x": 72, "y": 49, "flags": 4},
{"matrix": [4, 3], "x": 59, "y": 49, "flags": 4},
{"matrix": [4, 2], "x": 45, "y": 49, "flags": 4},
{"matrix": [4, 1], "x": 31, "y": 49, "flags": 4},
{"matrix": [4, 0], "x": 9, "y": 49, "flags": 1},
{"matrix": [5, 14], "x": 210, "y": 64, "flags": 4},
{"matrix": [5, 13], "x": 196, "y": 64, "flags": 4},
{"matrix": [5, 12], "x": 183, "y": 64, "flags": 4},
{"matrix": [5, 11], "x": 157, "y": 61, "flags": 1},
{"matrix": [5, 10], "x": 140, "y": 61, "flags": 1},
{"matrix": [5, 6], "x": 88, "y": 61, "flags": 4},
{"matrix": [5, 2], "x": 36, "y": 61, "flags": 1},
{"matrix": [5, 1], "x": 19, "y": 61, "flags": 1},
{"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
{"x": 28, "y": 61, "flags": 2},
{"x": 56, "y": 61, "flags": 2},
{"x": 79, "y": 61, "flags": 2},
{"x": 107, "y": 61, "flags": 2},
{"x": 128, "y": 61, "flags": 2},
{"x": 170, "y": 61, "flags": 2},
{"x": 220, "y": 55, "flags": 2},
{"x": 220, "y": 43, "flags": 2},
{"x": 220, "y": 30, "flags": 2},
{"x": 220, "y": 18, "flags": 2},
{"x": 220, "y": 6, "flags": 2},
{"x": 141, "y": 0, "flags": 2},
{"x": 79, "y": 0, "flags": 2},
{"x": 0, "y": 24, "flags": 2},
{"x": 0, "y": 43, "flags": 2},
{"x": 0, "y": 61, "flags": 2}
]
},
"build": {
"lto": true

View File

@ -112,8 +112,9 @@
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.5},
{"matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1},
{"matrix": [5, 9], "x": 12, "y": 5.25, "w": 1},
{"matrix": [5, 12], "x": 13.25, "y": 5.5},
{"matrix": [5, 13], "x": 14.25, "y": 5.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.5}

View File

@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OLED_TOGG,
@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLOCK_SET,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OLED_TOGG,
@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLOCK_SET,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@ -54,17 +54,19 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record)
if (click_toggle && record->event.pressed){
click(click_hz, click_time);
}
if (keycode == QK_BOOT) {
reset_keyboard_kb();
}
return process_record_user(keycode, record);
}
void reset_keyboard_kb(void){
bool shutdown_kb(bool jump_to_bootloader) {
#ifdef WATCHDOG_ENABLE
// Unconditionally run so shutdown_user can't mess up watchdog
MCUSR = 0;
wdt_disable();
wdt_reset();
#endif
reset_keyboard();
if (!shutdown_user(jump_to_bootloader)) {
return false;
}
return true;
}

View File

@ -1,8 +1,8 @@
/* Copyright 2022 @fOmey
/* Copyright 2024 Cipulot
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
@ -16,4 +16,4 @@
#pragma once
#define RGB_MATRIX_LED_COUNT 96
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2

View File

@ -0,0 +1,6 @@
// Copyright 2024 Eason
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define WS2812_SPI_DRIVER SPID2

View File

@ -0,0 +1,8 @@
// Copyright 2024 Eason
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SPI TRUE
#include_next <halconf.h>

View File

@ -0,0 +1,177 @@
{
"keyboard_name": "Void65h",
"manufacturer": "Eason",
"url": "",
"maintainer": "Eason",
"usb": {
"vid": "0x51D7",
"pid": "0x5517",
"device_version": "0.0.1",
"force_nkro": true
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"indicators": {
"caps_lock": "C13"
},
"matrix_pins": {
"rows": ["A15", "B3", "B4", "B5", "B6"],
"cols": ["A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B10", "B11", "B12", "B13", "B14", "B15", "A8"]
},
"diode_direction": "ROW2COL",
"processor": "STM32F103",
"bootloader": "uf2boot",
"layout_aliases": {
"LAYOUT_all": "LAYOUT_65_ansi_blocker_tsangan_split_bs"
},
"community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"]
"layouts": {
"LAYOUT_65_ansi_blocker_tsangan_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 14], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [3, 14], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 14], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [3, 14], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
}
}
}

View File

@ -0,0 +1,21 @@
// Copyright 2024 Eason
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@ -0,0 +1,21 @@
// Copyright 2024 Eason
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes

View File

@ -0,0 +1,9 @@
// Copyright 2024 Eason
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef STM32_SPI_USE_SPI2
#define STM32_SPI_USE_SPI2 TRUE

View File

@ -0,0 +1,27 @@
# void65h
![void65h](https://i.imgur.com/3Z3jNAS.jpg)
A customizable hotswap 65% keyboard.
* Keyboard Maintainer: [EASON](https://github.com/EasonQian1)
* Hardware Supported: void65h
* Hardware Availability: [anorexus](https://anorexus.design/project/void)
Make example for this keyboard (after setting up your build environment):
make eason/void65h:default
Flashing example for this keyboard:
make eason/void65h:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down ESC in the keyboard then replug
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT`

View File

@ -0,0 +1,68 @@
{
"manufacturer": "Falsonix",
"keyboard_name": "falsonix/fx19",
"maintainer": "falsonix",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"rgblight": {
"led_count": 5,
"animations": {
"rainbow_mood": true,
"rainbow_swirl": true
},
"default": {
"animation": "rainbow_swirl"
}
},
"ws2812": {
"pin": "F7"
},
"matrix_pins": {
"cols": ["C7", "C6", "B6", "B5"],
"rows": ["F0", "F1", "F4", "F5", "F6"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0x4658"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x":0, "y":0},
{"matrix": [0, 1], "x":1, "y":0},
{"matrix": [0, 2], "x":2, "y":0},
{"matrix": [0, 3], "x":3, "y":0},
{"matrix": [1, 0], "x":0, "y":1},
{"matrix": [1, 1], "x":1, "y":1},
{"matrix": [1, 2], "x":2, "y":1},
{"matrix": [2, 0], "x":0, "y":2},
{"matrix": [2, 1], "x":1, "y":2},
{"matrix": [2, 2], "x":2, "y":2},
{"matrix": [2, 3], "x":3, "y":2, "h": 2},
{"matrix": [3, 0], "x":0, "y":3},
{"matrix": [3, 1], "x":1, "y":3},
{"matrix": [3, 2], "x":2, "y":3},
{"matrix": [4, 0], "x":0, "y":4},
{"matrix": [4, 1], "x":1, "y":4},
{"matrix": [4, 2], "x":2, "y":4},
{"matrix": [4, 3], "x":3, "y":4, "h": 2}
]
}
}
}

View File

@ -0,0 +1,27 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*┌───┬───┬───┬───┐
* Num│ / │ * │ - │
*├───┼───┼───┼───┤
*│ 7 │ 8 │ 9 │ + │
*├───┼───┼───┤ │
*│ 4 │ 5 │ 6 │ │
*├───┼───┼───┤───┤
*│ 1 │ 2 │ 3 │ │
*├───┼───┼───┤Ent│
*│Win│ 0 │ . │ │
*┴───┴───┴───┴───┘
*/
[0] = LAYOUT(
KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3,
KC_RWIN, KC_P0, KC_PDOT, KC_PENT
)
};

View File

@ -0,0 +1,26 @@
# falsonix/fx19
![falsonix/fx19](https://i.imgur.com/UGExzJl.png)
A small, 18-key number pad for use with modern computers. (Yes, the name says 19 and this is due to me miscounting the keys and realizing only after I'd named everything in firmware and hardware). Includes RGB for maximum performance.
* Keyboard Maintainer: [falsonix](https://github.com/falsonix)
* Hardware Supported: *FX19 Numpads*
* Hardware Availability: *DIY by the enduser*
Make example for this keyboard (after setting up your build environment):
make falsonix/fx19:default
Flashing example for this keyboard:
make falsonix/fx19:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 2 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the front of the PCB

View File

@ -53,13 +53,4 @@ led_config_t g_led_config = { {
2, 2, 2
} };
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}
#endif

View File

@ -50,7 +50,8 @@
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true
},
"driver": "is31fl3731"
"driver": "is31fl3731",
"sleep": true
},
"features": {
"bootmagic": true,

View File

@ -29,13 +29,3 @@ led_config_t g_led_config = {
4, 4, 4, 4, 4, 4, 4, 4
}
};
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}

View File

@ -37,17 +37,3 @@ led_config_t g_led_config = { {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1
} };
#endif
#ifdef RGB_MATRIX_ENABLE
void suspend_power_down_kb(void)
{
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void)
{
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}
#endif

Some files were not shown because too many files have changed in this diff Show More