Compare commits

..

10 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
54 changed files with 646 additions and 1162 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

@ -881,7 +881,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]'))
NO_USB_STARTUP_CHECK := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
SRC += outputselect.c process_connection.c
SRC += outputselect.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
SPI_DRIVER_REQUIRED = yes

View File

@ -1,109 +0,0 @@
{
"ranges": {
"0x7780/0x003F": {
"define": "QK_CONNECTION"
}
}
"keycodes": {
"0x7780": {
"group": "connection",
"key": "QK_OUTPUT_NEXT",
"aliases": [
"OU_NEXT",
"OU_AUTO"
]
},
"0x7781": {
"group": "connection",
"key": "QK_OUTPUT_PREV",
"aliases": [
"OU_PREV"
]
},
"0x7782": {
"group": "connection",
"key": "QK_OUTPUT_NONE",
"aliases": [
"OU_NONE"
]
},
"0x7783": {
"group": "connection",
"key": "QK_OUTPUT_USB",
"aliases": [
"OU_USB"
]
},
"0x7784": {
"group": "connection",
"key": "QK_OUTPUT_2P4GHZ",
"aliases": [
"OU_2P4G"
]
},
"0x7785": {
"group": "connection",
"key": "QK_OUTPUT_BLUETOOTH",
"aliases": [
"OU_BT"
]
},
"0x7790": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE_NEXT",
"aliases": [
"BT_NEXT"
]
},
"0x7791": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE_PREV",
"aliases": [
"BT_PREV"
]
},
"0x7792": {
"group": "connection",
"key": "QK_BLUETOOTH_UNPAIR",
"aliases": [
"BT_UNPR"
]
}
"0x7793": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE1",
"aliases": [
"BT_PRF1"
]
},
"0x7794": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE2",
"aliases": [
"BT_PRF2"
]
},
"0x7795": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE3",
"aliases": [
"BT_PRF3"
]
},
"0x7796": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE4",
"aliases": [
"BT_PRF4"
]
},
"0x7797": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE5",
"aliases": [
"BT_PRF5"
]
},
}
}

View File

@ -1,7 +0,0 @@
{
"keycodes": {
"0x7C20": "!delete!", // old QK_OUTPUT_AUTO
"0x7C21": "!delete!", // old QK_OUTPUT_USB
"0x7C22": "!delete!", // old QK_OUTPUT_BLUETOOTH
}
}

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

@ -39,8 +39,8 @@ BLUETOOTH_DRIVER = bluefruit_le # or rn42
This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both.
| Key | Aliases | Description |
|-----------------------|----------------------|------------------------------------------------|
| `QK_OUTPUT_NEXT` | `OU_NEXT`, `OU_AUTO` | Automatically switch between USB and Bluetooth |
| `QK_OUTPUT_USB` | `OU_USB` | USB only |
| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Bluetooth only |
|Key |Aliases |Description |
|---------------------|---------|----------------------------------------------|
|`QK_OUTPUT_AUTO` |`OU_AUTO`|Automatically switch between USB and Bluetooth|
|`QK_OUTPUT_USB` |`OU_USB` |USB only |
|`QK_OUTPUT_BLUETOOTH`|`OU_BT` |Bluetooth only |

View File

@ -294,11 +294,11 @@ See also: [Backlighting](features/backlight)
See also: [Bluetooth](features/bluetooth)
| Key | Aliases | Description |
|-----------------------|----------------------|------------------------------------------------|
| `QK_OUTPUT_NEXT` | `OU_NEXT`, `OU_AUTO` | Automatically switch between USB and Bluetooth |
| `QK_OUTPUT_USB` | `OU_USB` | USB only |
| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Bluetooth only |
|Key |Aliases |Description |
|---------------------|---------|----------------------------------------------|
|`QK_OUTPUT_AUTO` |`OU_AUTO`|Automatically switch between USB and Bluetooth|
|`QK_OUTPUT_USB` |`OU_USB` |USB only |
|`QK_OUTPUT_BLUETOOTH`|`OU_BT` |Bluetooth only |
## Caps Word {#caps-word}

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,25 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2021 @dlford
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#undef LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#undef LOCKING_RESYNC_ENABLE
/* Enables This makes it easier for fast typists to use dual-function keys */
#undef PERMISSIVE_HOLD

View File

@ -1,66 +0,0 @@
/*
Copyright 2021 @dlford
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
// LED Layout
// Columns
// 0 1 2 3 4 5 6 7 8 9 10 11
// Physical (Center: 133)
// 20 41 61 81 102 122 143 163 183 204 224 244
// Rows Physical (Center: 54)
// 17 12 11 06 05 23 24 29 30 35 0 21
// 16 13 10 07 04 22 25 28 31 34 1 43
// 15 14 09 08 03 21 26 27 32 33 2 64
// 02 01 00 18 19 20 3 85
led_config_t g_led_config = { {
// Key matrix to LED index
// Left 1-18
{17, 12, 11, 6, 5},
{16, 13, 10, 7, 4},
{15, 14, 9, 8, 3},
{NO_LED, NO_LED, 2, 1, 0},
// Right 1-18
{23, 24, 29, 30, 35},
{22, 25, 28, 31, 34},
{21, 26, 27, 32, 33},
{18, 19, 20, NO_LED, NO_LED},
}, {
// LED index to physical position
// Left 1-18
{122,85},{102,85},{81,85},{102,64},{102,43},{102,21},
{81,21},{81,43},{81,64},{61,64},{61,43},{61,21},
{41,21},{41,43},{41,64},{20,64},{20,43},{20,21},
// Right 1-18
{143,85},{163,85},{183,85},{163,64},{163,43},{163,21},
{183,21},{183,43},{183,64},{204,64},{204,43},{204,21},
{224,21},{224,43},{224,64},{244,64},{244,43},{244,21}
}, {
// LED index to flag
// Left 1-18
4,4,4,4,4,4,
4,4,4,4,4,4,
4,4,4,4,4,4,
// Right 1-18
4,4,4,4,4,4,
4,4,4,4,4,4,
4,4,4,4,4,4
} };
#endif

View File

@ -10,19 +10,55 @@
},
"features": {
"bootmagic": true,
"console": false,
"command": false,
"extrakey": true,
"mousekey": true,
"nkro": true
"nkro": true,
"rgb_matrix": true
},
"ws2812": {
"pin": "D3"
},
"rgb_matrix": {
"center_point": [133, 54],
"driver": "ws2812",
"split_count": [18, 18]
"split_count": [18, 18],
"layout": [
{"matrix": [3, 4], "x": 102, "y": 64, "flags": 4},
{"matrix": [3, 3], "x": 82, "y": 64, "flags": 4},
{"matrix": [3, 2], "x": 61, "y": 64, "flags": 4},
{"matrix": [2, 4], "x": 82, "y": 43, "flags": 4},
{"matrix": [1, 4], "x": 82, "y": 22, "flags": 4},
{"matrix": [0, 4], "x": 82, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
{"matrix": [1, 3], "x": 61, "y": 22, "flags": 4},
{"matrix": [2, 3], "x": 61, "y": 43, "flags": 4},
{"matrix": [2, 2], "x": 41, "y": 43, "flags": 4},
{"matrix": [1, 2], "x": 41, "y": 22, "flags": 4},
{"matrix": [0, 2], "x": 41, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 21, "y": 0, "flags": 4},
{"matrix": [1, 1], "x": 21, "y": 22, "flags": 4},
{"matrix": [2, 1], "x": 21, "y": 43, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 43, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 22, "flags": 4},
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [7, 0], "x": 123, "y": 64, "flags": 4},
{"matrix": [7, 1], "x": 143, "y": 64, "flags": 4},
{"matrix": [7, 2], "x": 163, "y": 64, "flags": 4},
{"matrix": [6, 0], "x": 143, "y": 43, "flags": 4},
{"matrix": [5, 0], "x": 143, "y": 22, "flags": 4},
{"matrix": [4, 0], "x": 143, "y": 0, "flags": 4},
{"matrix": [4, 1], "x": 163, "y": 0, "flags": 4},
{"matrix": [5, 1], "x": 163, "y": 22, "flags": 4},
{"matrix": [6, 1], "x": 163, "y": 43, "flags": 4},
{"matrix": [6, 2], "x": 184, "y": 43, "flags": 4},
{"matrix": [5, 2], "x": 184, "y": 22, "flags": 4},
{"matrix": [4, 2], "x": 184, "y": 0, "flags": 4},
{"matrix": [4, 3], "x": 204, "y": 0, "flags": 4},
{"matrix": [5, 3], "x": 204, "y": 22, "flags": 4},
{"matrix": [6, 3], "x": 204, "y": 43, "flags": 4},
{"matrix": [6, 4], "x": 224, "y": 43, "flags": 4},
{"matrix": [5, 4], "x": 224, "y": 22, "flags": 4},
{"matrix": [4, 4], "x": 224, "y": 0, "flags": 4}
]
},
"matrix_pins": {
"cols": ["C6", "D7", "E6", "B4", "B5"],
@ -34,9 +70,6 @@
"soft_serial_pin": "D0"
},
"development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_split_3x5_3"
},
"community_layouts": ["split_3x5_3"],
"layouts": {
"LAYOUT_split_3x5_3": {
@ -46,41 +79,34 @@
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [4, 0], "x": 10, "y": 0},
{"matrix": [4, 1], "x": 11, "y": 0},
{"matrix": [4, 2], "x": 12, "y": 0},
{"matrix": [4, 3], "x": 13, "y": 0},
{"matrix": [4, 4], "x": 14, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [5, 0], "x": 10, "y": 1},
{"matrix": [5, 1], "x": 11, "y": 1},
{"matrix": [5, 2], "x": 12, "y": 1},
{"matrix": [5, 3], "x": 13, "y": 1},
{"matrix": [5, 4], "x": 14, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [6, 0], "x": 10, "y": 2},
{"matrix": [6, 1], "x": 11, "y": 2},
{"matrix": [6, 2], "x": 12, "y": 2},
{"matrix": [6, 3], "x": 13, "y": 2},
{"matrix": [6, 4], "x": 14, "y": 2},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [7, 0], "x": 10, "y": 3},
{"matrix": [7, 1], "x": 11, "y": 3},
{"matrix": [7, 2], "x": 12, "y": 3}

View File

@ -1,26 +0,0 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
* │ 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 │ , │ . │ / │
* └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
* ┌───┐ ┌───┐
* │GUI├───┐ ┌───┤Alt│
* └───┤Bsp├───┐ ┌───┤Ent├───┘
* └───┤ │ │ ├───┘
* └───┘ └───┘
*/
[0] = LAYOUT_split_3x5_3(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT
)
};

View File

@ -0,0 +1,13 @@
{
"keyboard": "handwired/dactyl_minidox",
"keymap": "default",
"layout": "LAYOUT_split_3x5_3",
"layers": [
[
"KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P",
"KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN",
"KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH",
"KC_LGUI", "KC_BSPC", "KC_SPC", "KC_SPC", "KC_ENT", "KC_RALT"
]
]
}

View File

@ -1,102 +0,0 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2021 @dlford
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define EE_HANDS // ./util/docker_build.sh crkbd:dlford:dfu-split-[left|right] (or avrdude-split[left|right])
#define TAPPING_TOGGLE 2 // number of taps to toggle TT
#define TAPPING_TERM_PER_KEY // milliseconds from tap to hold for mod tap per key
#define PERMISSIVE_HOLD_PER_KEY // activate mod top hold earlier if another key is pressed AND released per key
#define QUICK_TAP_TERM_PER_KEY // disable double tap hold key repeat per key
#undef MOUSEKEY_INTERVAL
#undef MOUSEKEY_DELAY
#undef MOUSEKEY_TIME_TO_MAX
#undef MOUSEKEY_MAX_SPEED
#undef MOUSEKEY_WHEEL_DELAY
#define MK_KINETIC_SPEED
#define MOUSEKEY_DELAY 100
#define MOUSEKEY_INTERVAL 35
#define MOUSEKEY_MOVE_DELTA 5
#define MOUSEKEY_INITIAL_SPEED 1
#define MOUSEKEY_DECELERATED_SPEED 10
#define MOUSEKEY_BASE_SPEED 1200
#define MOUSEKEY_ACCELERATED_SPEED 4800
#ifdef RGB_MATRIX_ENABLE
// # define RGB_MATRIX_TIMEOUT 300000 // number of milliseconds to wait until disabling effects
// # define RGB_MATRIX_SLEEP // turn off effects when suspended
# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
# define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
# define RGB_MATRIX_HUE_STEP 8
# define RGB_MATRIX_SAT_STEP 8
# define RGB_MATRIX_VAL_STEP 8
# define RGB_MATRIX_SPD_STEP 10
// Enable animations
// # define ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue speed is hue for secondary hue
// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom speed controls how much gradient changes
// # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right speed controls how much gradient changes
// # define ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation
// # define ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right
// # define ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right
// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation
// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness
// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation
// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness
// # define ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient
// # define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right
// # define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom
// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in
// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in
// # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right
// # define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard
// # define ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard
// # define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard
// # define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard
// # define ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue
// # define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation
// # define ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time then shifts back
// # define ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right then back to the left
# define ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right
// # define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Required for the following two effects
// # define ENABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM!
// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation
// # define RGB_MATRIX_KEYPRESSES // reacts to keypresses, required for the remaining effects
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue pulses keys hit to shifted hue then fades to current hue
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out
// # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
// # define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
#endif
// Features I don't want, remove to save space
// #define NO_ACTION_ONESHOT // Used by caps word
#define NO_ACTION_FUNCTION
#define NO_ACTION_MACRO
#define NO_USB_STARTUP_CHECK

View File

@ -1,76 +0,0 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//
// For full documentation, see
// https://getreuer.info/posts/keyboards/caps-word
#include "caps_word.h"
bool caps_word_enabled = false;
bool process_caps_word(uint16_t keycode, keyrecord_t* record) {
static bool shifted = false;
if (!caps_word_enabled) {
// Pressing both shift keys at the same time enables caps word.
if (((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT)
== MOD_MASK_SHIFT) {
clear_mods();
clear_oneshot_mods();
shifted = false;
caps_word_enabled = true;
return false;
}
return true;
}
if (!record->event.pressed) { return true; }
if (!((get_mods() | get_oneshot_mods()) & ~MOD_MASK_SHIFT)) {
switch (keycode) {
case QK_MOD_TAP ... QK_MOD_TAP_MAX:
case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
// Earlier return if this has not been considered tapped yet.
if (record->tap.count == 0) { return true; }
// Get the base tapping keycode of a mod- or layer-tap key.
keycode &= 0xff;
}
switch (keycode) {
// Letter keys should be shifted.
case KC_A ... KC_Z:
if (!shifted) { register_code(KC_LSFT); }
shifted = true;
return true;
// Keycodes that continue caps word but shouldn't get shifted.
case KC_1 ... KC_0:
case KC_BSPC:
case KC_MINS:
case KC_UNDS:
if (shifted) { unregister_code(KC_LSFT); }
shifted = false;
return true;
// Any other keycode disables caps word.
}
}
// Disable caps word.
caps_word_enabled = false;
if (shifted) { unregister_code(KC_LSFT); }
shifted = false;
return true;
}

View File

@ -1,36 +0,0 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//
// Caps Word, activated by pressing both shift keys at the same time.
//
// This library implements "Caps Word", which is like conventional Caps Lock,
// but automatically disables itself at the end of the word. This is useful for
// typing all-caps identifiers like `MOD_MASK_ALT`.
//
// Caps Word is activated by pressing the left and right shift keys at the same
// time. This way you don't need a dedicated key for using Caps Word. I've
// tested that this works as expected with one-shot mods and Space Cadet Shift.
// If your shift keys are mod-taps, activate Caps Word by holding both shift
// mod-tap keys until the tapping term, release them, then begin typing.
//
// For full documentation, see
// https://getreuer.info/posts/keyboards/caps-word
#pragma once
#include QMK_KEYBOARD_H
bool process_caps_word(uint16_t keycode, keyrecord_t* record);
extern bool caps_word_enabled;

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +0,0 @@
# Includes
SRC += features/caps_word.c
# Build Options
# change yes to no to disable
#
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
DYNAMIC_MACRO_ENABLE = yes # Create macros on the fly
INDICATOR_LIGHTS = yes # Enable indicator lights for caps lock, etc.
# TAP_DANCE_ENABLE = yes # Send different keycodes if tapped multiple times
# KEY_OVERRIDE_ENABLE = yes # Override key combos
# COMBO_ENABLE = yes # Custom key combos
RGB_MATRIX_ENABLE = yes
LTO_ENABLE = yes
RGBLIGHT_SUPPORTED = yes
RGB_MATRIX_SUPPORTED = yes

View File

@ -1,20 +1,5 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2021 @dlford
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// Copyright 2024 @dlford
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Select hand configuration */
#define EE_HANDS

View File

@ -1,37 +0,0 @@
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum layers{
_BASE,
_RAISE,
_LOWER,
_BLANK
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_split_3x5_3(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT
),
[_RAISE] = LAYOUT_split_3x5_3(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
[_LOWER] = LAYOUT_split_3x5_3(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
[_BLANK] = LAYOUT_split_3x5_3(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
)
};

View File

@ -0,0 +1,18 @@
{
"keyboard": "handwired/dactyl_minidox",
"keymap": "via",
"layout": "LAYOUT_split_3x5_3",
"config": {
"features": {
"via": true
}
},
"layers": [
[
"KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P",
"KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN",
"KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH",
"KC_LGUI", "KC_BSPC", "KC_SPC", "KC_SPC", "KC_ENT", "KC_RALT"
]
]
}

View File

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

View File

@ -1,6 +1,6 @@
# Dactyl Minidox
![DactylMinidox](https://i.imgur.com/PqjgeRfh.jpg)
![DactylMinidox](https://i.imgur.com/PqjgeRf.jpeg)
A 36 key (3x5+3), split bodied keyboard derived from the [Dactyl ManuForm](/keyboards/handwired/dactyl_manuform/).

View File

@ -1 +0,0 @@
DEFAULT_FOLDER = kprepublic/jj40/rev1

View File

@ -0,0 +1,125 @@
{
"manufacturer": "KPrepublic",
"keyboard_name": "JJ50 rev2",
"maintainer": "qmk",
"backlight": {
"breathing": true,
"levels": 5,
"pin": "B7"
},
"bootloader": "atmel-dfu",
"build": {
"lto": true
},
"diode_direction": "COL2ROW",
"features": {
"backlight": true,
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": false,
"rgblight": true
},
"matrix_pins": {
"cols": ["B1", "B0", "F7", "F0", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"],
"rows": ["D3", "D5", "E6", "F1", "F4"]
},
"processor": "atmega32u4",
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"brightness_steps": 8,
"hue_steps": 8,
"led_count": 6,
"saturation_steps": 8
},
"url": "",
"usb": {
"device_version": "2.0.0",
"pid": "0x0050",
"vid": "0x4B50"
},
"ws2812": {
"driver": "i2c"
},
"community_layouts": ["ortho_5x12"],
"layout_aliases": {
"LAYOUT": "LAYOUT_ortho_5x12"
},
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [1, 10], "x": 10, "y": 1},
{"matrix": [1, 11], "x": 11, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2},
{"matrix": [2, 6], "x": 6, "y": 2},
{"matrix": [2, 7], "x": 7, "y": 2},
{"matrix": [2, 8], "x": 8, "y": 2},
{"matrix": [2, 9], "x": 9, "y": 2},
{"matrix": [2, 10], "x": 10, "y": 2},
{"matrix": [2, 11], "x": 11, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 5], "x": 5, "y": 3},
{"matrix": [3, 6], "x": 6, "y": 3},
{"matrix": [3, 7], "x": 7, "y": 3},
{"matrix": [3, 8], "x": 8, "y": 3},
{"matrix": [3, 9], "x": 9, "y": 3},
{"matrix": [3, 10], "x": 10, "y": 3},
{"matrix": [3, 11], "x": 11, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [4, 4], "x": 4, "y": 4},
{"matrix": [4, 5], "x": 5, "y": 4},
{"matrix": [4, 6], "x": 6, "y": 4},
{"matrix": [4, 7], "x": 7, "y": 4},
{"matrix": [4, 8], "x": 8, "y": 4},
{"matrix": [4, 9], "x": 9, "y": 4},
{"matrix": [4, 10], "x": 10, "y": 4},
{"matrix": [4, 11], "x": 11, "y": 4}
]
}
}
}

View File

@ -1,19 +0,0 @@
#include "lfk65_hs.h"
#include <avr/wdt.h>
bool process_record_kb(uint16_t keycode, keyrecord_t* record)
{
if (keycode == QK_BOOT) {
reset_keyboard_kb();
}
return process_record_user(keycode, record);
}
void reset_keyboard_kb(void){
#ifdef WATCHDOG_ENABLE
MCUSR = 0;
wdt_disable();
wdt_reset();
#endif
reset_keyboard();
}

View File

@ -43,20 +43,19 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
if (click_toggle && record->event.pressed) {
clicking_notes(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;
}

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