aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builddefs/common_features.mk2
-rw-r--r--keyboards/handwired/wwa/soyuz/keyboard.json10
-rw-r--r--keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c10
-rw-r--r--keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk1
-rw-r--r--keyboards/handwired/wwa/soyuz/readme.md2
-rw-r--r--keyboards/nacly/sodium42/keyboard.json3
-rw-r--r--keyboards/nacly/sodium50/keyboard.json3
-rw-r--r--keyboards/nacly/sodium62/keyboard.json3
-rw-r--r--keyboards/nacly/splitreus62/keyboard.json3
-rw-r--r--keyboards/nacly/ua62/keyboard.json3
-rw-r--r--keyboards/newgame40/keyboard.json3
-rw-r--r--keyboards/nightly_boards/n9/keyboard.json3
-rw-r--r--keyboards/nightly_boards/ph_arisu/keyboard.json3
-rw-r--r--keyboards/np12/keyboard.json3
-rw-r--r--keyboards/numatreus/keyboard.json3
-rw-r--r--keyboards/obosob/arch_36/keyboard.json3
-rw-r--r--keyboards/obosob/steal_this_keyboard/keyboard.json3
-rw-r--r--keyboards/ocean/addon/keyboard.json3
-rw-r--r--keyboards/ocean/gin_v2/keyboard.json3
-rw-r--r--keyboards/ocean/slamz/keyboard.json3
-rw-r--r--keyboards/ocean/stealth/keyboard.json3
-rw-r--r--keyboards/ocean/sus/keyboard.json3
-rw-r--r--keyboards/ocean/wang_ergo/keyboard.json3
-rw-r--r--keyboards/ocean/wang_v2/keyboard.json3
-rw-r--r--keyboards/ocean/yuri/keyboard.json3
-rw-r--r--keyboards/om60/keyboard.json3
-rw-r--r--keyboards/omkbd/ergodash/info.json3
-rw-r--r--keyboards/omkbd/runner3680/info.json3
-rw-r--r--keyboards/orthodox/rev1/keyboard.json3
-rw-r--r--keyboards/orthodox/rev3/keyboard.json3
-rw-r--r--keyboards/pabile/p18/keyboard.json3
-rw-r--r--keyboards/pabile/p20/ver1/keyboard.json3
-rw-r--r--keyboards/pabile/p20/ver2/keyboard.json3
-rw-r--r--keyboards/pabile/p40/keyboard.json3
-rw-r--r--keyboards/pabile/p40_ortho/keyboard.json3
-rw-r--r--keyboards/pabile/p42/keyboard.json3
-rw-r--r--keyboards/peej/tripel/info.json3
-rw-r--r--keyboards/peranekofactory/tone/rev1/keyboard.json3
-rw-r--r--keyboards/peranekofactory/tone/rev2/keyboard.json3
-rw-r--r--keyboards/pica40/rev1/keyboard.json3
-rw-r--r--keyboards/pimentoso/paddino02/rev1/keyboard.json3
-rw-r--r--keyboards/pimentoso/paddino02/rev2/left/keyboard.json3
-rw-r--r--keyboards/pimentoso/paddino02/rev2/right/keyboard.json3
-rw-r--r--keyboards/pimentoso/touhoupad/keyboard.json3
-rw-r--r--keyboards/pinky/3/keyboard.json3
-rw-r--r--keyboards/pinky/4/keyboard.json3
-rw-r--r--keyboards/plum47/keyboard.json3
-rw-r--r--keyboards/psuieee/pluto12/keyboard.json3
-rw-r--r--keyboards/pteron36/keyboard.json3
-rw-r--r--keyboards/rainkeebs/rainkeeb/keyboard.json3
-rw-r--r--keyboards/rart/rart4x4/keyboard.json3
-rw-r--r--keyboards/rart/rart67m/keyboard.json3
-rw-r--r--keyboards/rart/rartlite/keyboard.json3
-rw-r--r--keyboards/rart/rartpad/keyboard.json3
-rw-r--r--keyboards/rate/pistachio_mp/keyboard.json3
-rw-r--r--keyboards/recompile_keys/choco60/rev1/keyboard.json3
-rw-r--r--keyboards/recompile_keys/cocoa40/keyboard.json3
-rw-r--r--keyboards/recompile_keys/nomu30/rev1/keyboard.json3
-rw-r--r--keyboards/rect44/keyboard.json3
-rw-r--r--keyboards/redox_media/keyboard.json3
-rwxr-xr-xkeyboards/reviung/reviung34/keyboard.json3
-rw-r--r--keyboards/reviung/reviung39/keyboard.json3
-rw-r--r--keyboards/reviung/reviung41/keyboard.json3
-rw-r--r--keyboards/reviung/reviung5/keyboard.json3
-rw-r--r--keyboards/reviung/reviung53/keyboard.json3
-rw-r--r--keyboards/rgbkb/zen/rev1/keyboard.json3
-rw-r--r--keyboards/rgbkb/zen/rev2/keyboard.json3
-rw-r--r--keyboards/rpiguy9907/southpaw66/keyboard.json3
-rw-r--r--keyboards/rura66/rev1/keyboard.json3
-rw-r--r--keyboards/ryanbaekr/rb1/keyboard.json3
-rw-r--r--quantum/process_keycode/process_oneshot.c25
-rw-r--r--quantum/process_keycode/process_oneshot.h10
-rw-r--r--quantum/process_keycode/process_quantum.c76
-rw-r--r--quantum/process_keycode/process_quantum.h10
-rw-r--r--quantum/process_keycode/process_underglow.c5
-rw-r--r--quantum/quantum.c95
-rw-r--r--quantum/quantum.h1
-rw-r--r--readme.md4
78 files changed, 229 insertions, 217 deletions
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index ca60873bec..90231c9a96 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -29,6 +29,8 @@ QUANTUM_SRC += \
$(QUANTUM_DIR)/logging/debug.c \
$(QUANTUM_DIR)/logging/sendchar.c \
$(QUANTUM_DIR)/process_keycode/process_default_layer.c \
+ $(QUANTUM_DIR)/process_keycode/process_oneshot.c \
+ $(QUANTUM_DIR)/process_keycode/process_quantum.c \
include $(QUANTUM_DIR)/nvm/rules.mk
diff --git a/keyboards/handwired/wwa/soyuz/keyboard.json b/keyboards/handwired/wwa/soyuz/keyboard.json
index 4b3a015a35..b922af10a2 100644
--- a/keyboards/handwired/wwa/soyuz/keyboard.json
+++ b/keyboards/handwired/wwa/soyuz/keyboard.json
@@ -8,7 +8,8 @@
"bootmagic": true,
"extrakey": true,
"mousekey": true,
- "nkro": true
+ "nkro": true,
+ "encoder" : true
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6"],
@@ -20,6 +21,13 @@
"pid": "0x0004",
"vid": "0x5757"
},
+ "encoder": {
+ "rotary": [
+ {"pin_a": "GP16", "pin_b": "GP17"},
+ {"pin_a": "GP18", "pin_b": "GP19"},
+ {"pin_a": "GP20", "pin_b": "GP21"}
+ ]
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c b/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c
index af0eb592dc..c1d75ffc54 100644
--- a/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c
+++ b/keyboards/handwired/wwa/soyuz/keymaps/default/keymap.c
@@ -3,11 +3,17 @@
#include QMK_KEYBOARD_H
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17,
KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24
)
-}; \ No newline at end of file
+};
+
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+};
+#endif
diff --git a/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk b/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/handwired/wwa/soyuz/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/handwired/wwa/soyuz/readme.md b/keyboards/handwired/wwa/soyuz/readme.md
index 69f8ef9d76..01a3b60dfe 100644
--- a/keyboards/handwired/wwa/soyuz/readme.md
+++ b/keyboards/handwired/wwa/soyuz/readme.md
@@ -2,7 +2,7 @@
![soyuz](https://i.imgur.com/KwwORGSh.jpeg)
-21 Key and 3 MIDI Potentiometers Macro Keyboard
+21 Key, 3 Encoder
* Keyboard Maintainer: [spacehangover](https://github.com/spacehangover)
* Hardware Supported: RP2040 Handwired
diff --git a/keyboards/nacly/sodium42/keyboard.json b/keyboards/nacly/sodium42/keyboard.json
index a1d7b65ab3..97b6a837c5 100644
--- a/keyboards/nacly/sodium42/keyboard.json
+++ b/keyboards/nacly/sodium42/keyboard.json
@@ -35,8 +35,7 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/sodium50/keyboard.json b/keyboards/nacly/sodium50/keyboard.json
index e41495755f..dd1604c480 100644
--- a/keyboards/nacly/sodium50/keyboard.json
+++ b/keyboards/nacly/sodium50/keyboard.json
@@ -35,8 +35,7 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/sodium62/keyboard.json b/keyboards/nacly/sodium62/keyboard.json
index ab16bf45fa..64cb488159 100644
--- a/keyboards/nacly/sodium62/keyboard.json
+++ b/keyboards/nacly/sodium62/keyboard.json
@@ -36,8 +36,7 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/splitreus62/keyboard.json b/keyboards/nacly/splitreus62/keyboard.json
index d356578690..567cb6d6db 100644
--- a/keyboards/nacly/splitreus62/keyboard.json
+++ b/keyboards/nacly/splitreus62/keyboard.json
@@ -42,8 +42,7 @@
"ws2812": {
"pin": "B1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nacly/ua62/keyboard.json b/keyboards/nacly/ua62/keyboard.json
index 0bf01308f5..85fbbd431c 100644
--- a/keyboards/nacly/ua62/keyboard.json
+++ b/keyboards/nacly/ua62/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/newgame40/keyboard.json b/keyboards/newgame40/keyboard.json
index ad59f2bcd0..62c567cb40 100644
--- a/keyboards/newgame40/keyboard.json
+++ b/keyboards/newgame40/keyboard.json
@@ -39,8 +39,7 @@
"ws2812": {
"pin": "F6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x10"],
"layouts": {
"LAYOUT_ortho_4x10": {
diff --git a/keyboards/nightly_boards/n9/keyboard.json b/keyboards/nightly_boards/n9/keyboard.json
index e3d8a3be84..f99ff31258 100644
--- a/keyboards/nightly_boards/n9/keyboard.json
+++ b/keyboards/nightly_boards/n9/keyboard.json
@@ -46,8 +46,7 @@
"ws2812": {
"pin": "F5"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/nightly_boards/ph_arisu/keyboard.json b/keyboards/nightly_boards/ph_arisu/keyboard.json
index afcbdd905a..7d64536c1a 100644
--- a/keyboards/nightly_boards/ph_arisu/keyboard.json
+++ b/keyboards/nightly_boards/ph_arisu/keyboard.json
@@ -25,8 +25,7 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/np12/keyboard.json b/keyboards/np12/keyboard.json
index 435f2db3b7..d12307f117 100644
--- a/keyboards/np12/keyboard.json
+++ b/keyboards/np12/keyboard.json
@@ -25,8 +25,7 @@
{"pin_a": "F4", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/numatreus/keyboard.json b/keyboards/numatreus/keyboard.json
index 3441a769e1..5a9df0f429 100644
--- a/keyboards/numatreus/keyboard.json
+++ b/keyboards/numatreus/keyboard.json
@@ -33,8 +33,7 @@
"led_count": 6,
"max_brightness": 200
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/obosob/arch_36/keyboard.json b/keyboards/obosob/arch_36/keyboard.json
index 791c08d3f1..661d335daa 100644
--- a/keyboards/obosob/arch_36/keyboard.json
+++ b/keyboards/obosob/arch_36/keyboard.json
@@ -34,8 +34,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["split_3x5_3"],
"layouts": {
"LAYOUT_split_3x5_3": {
diff --git a/keyboards/obosob/steal_this_keyboard/keyboard.json b/keyboards/obosob/steal_this_keyboard/keyboard.json
index 4865f54283..60abd1ecf9 100644
--- a/keyboards/obosob/steal_this_keyboard/keyboard.json
+++ b/keyboards/obosob/steal_this_keyboard/keyboard.json
@@ -8,8 +8,7 @@
"pid": "0x50AD",
"device_version": "0.0.1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"extrakey": true,
diff --git a/keyboards/ocean/addon/keyboard.json b/keyboards/ocean/addon/keyboard.json
index 0793a7082a..671c04cba0 100644
--- a/keyboards/ocean/addon/keyboard.json
+++ b/keyboards/ocean/addon/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/gin_v2/keyboard.json b/keyboards/ocean/gin_v2/keyboard.json
index d20aa5916f..08a7f29b8c 100644
--- a/keyboards/ocean/gin_v2/keyboard.json
+++ b/keyboards/ocean/gin_v2/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/slamz/keyboard.json b/keyboards/ocean/slamz/keyboard.json
index cf3ed54426..65bc91eebe 100644
--- a/keyboards/ocean/slamz/keyboard.json
+++ b/keyboards/ocean/slamz/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["D2", "D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/stealth/keyboard.json b/keyboards/ocean/stealth/keyboard.json
index a15d2fffac..0f0070de63 100644
--- a/keyboards/ocean/stealth/keyboard.json
+++ b/keyboards/ocean/stealth/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["D1"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/sus/keyboard.json b/keyboards/ocean/sus/keyboard.json
index 3ac426f6aa..ebbb247035 100644
--- a/keyboards/ocean/sus/keyboard.json
+++ b/keyboards/ocean/sus/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["B5", "B4", "E6", "D7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_4x3": {
"layout": [
diff --git a/keyboards/ocean/wang_ergo/keyboard.json b/keyboards/ocean/wang_ergo/keyboard.json
index d552028bc6..e32f21d802 100644
--- a/keyboards/ocean/wang_ergo/keyboard.json
+++ b/keyboards/ocean/wang_ergo/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
diff --git a/keyboards/ocean/wang_v2/keyboard.json b/keyboards/ocean/wang_v2/keyboard.json
index 79ef6b3697..e64345db2f 100644
--- a/keyboards/ocean/wang_v2/keyboard.json
+++ b/keyboards/ocean/wang_v2/keyboard.json
@@ -18,8 +18,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ocean/yuri/keyboard.json b/keyboards/ocean/yuri/keyboard.json
index aeb4cd895d..fee89b9de7 100644
--- a/keyboards/ocean/yuri/keyboard.json
+++ b/keyboards/ocean/yuri/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/om60/keyboard.json b/keyboards/om60/keyboard.json
index 08eb898b01..d91f28f8af 100644
--- a/keyboards/om60/keyboard.json
+++ b/keyboards/om60/keyboard.json
@@ -49,8 +49,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/omkbd/ergodash/info.json b/keyboards/omkbd/ergodash/info.json
index 306a3970bb..18138dd692 100644
--- a/keyboards/omkbd/ergodash/info.json
+++ b/keyboards/omkbd/ergodash/info.json
@@ -1,6 +1,5 @@
{
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"split": {
"enabled": true
}
diff --git a/keyboards/omkbd/runner3680/info.json b/keyboards/omkbd/runner3680/info.json
index c626b2e3b4..e06cb1243c 100644
--- a/keyboards/omkbd/runner3680/info.json
+++ b/keyboards/omkbd/runner3680/info.json
@@ -1,6 +1,5 @@
{
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": false,
"extrakey": false,
diff --git a/keyboards/orthodox/rev1/keyboard.json b/keyboards/orthodox/rev1/keyboard.json
index 0444009f2b..bd08fc19d2 100644
--- a/keyboards/orthodox/rev1/keyboard.json
+++ b/keyboards/orthodox/rev1/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/orthodox/rev3/keyboard.json b/keyboards/orthodox/rev3/keyboard.json
index 61d8281f55..411df12f98 100644
--- a/keyboards/orthodox/rev3/keyboard.json
+++ b/keyboards/orthodox/rev3/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pabile/p18/keyboard.json b/keyboards/pabile/p18/keyboard.json
index bf3380038a..12b7006680 100644
--- a/keyboards/pabile/p18/keyboard.json
+++ b/keyboards/pabile/p18/keyboard.json
@@ -27,8 +27,7 @@
{"pin_a": "F6", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pabile/p20/ver1/keyboard.json b/keyboards/pabile/p20/ver1/keyboard.json
index 3e3a16a6d9..2cc5fed1ee 100644
--- a/keyboards/pabile/p20/ver1/keyboard.json
+++ b/keyboards/pabile/p20/ver1/keyboard.json
@@ -22,8 +22,7 @@
{"pin_a": "F7", "pin_b": "B1"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_numpad_5x4": {
"layout": [
diff --git a/keyboards/pabile/p20/ver2/keyboard.json b/keyboards/pabile/p20/ver2/keyboard.json
index cdacbf3aec..b82959af7a 100644
--- a/keyboards/pabile/p20/ver2/keyboard.json
+++ b/keyboards/pabile/p20/ver2/keyboard.json
@@ -15,8 +15,7 @@
"rows": ["C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_numpad_5x4": {
"layout": [
diff --git a/keyboards/pabile/p40/keyboard.json b/keyboards/pabile/p40/keyboard.json
index fbe4896687..de4eca82ac 100644
--- a/keyboards/pabile/p40/keyboard.json
+++ b/keyboards/pabile/p40/keyboard.json
@@ -20,8 +20,7 @@
"rows": ["F6", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x10"],
"layouts": {
"LAYOUT_ortho_4x10": {
diff --git a/keyboards/pabile/p40_ortho/keyboard.json b/keyboards/pabile/p40_ortho/keyboard.json
index 3e5d9ea504..838c58235c 100644
--- a/keyboards/pabile/p40_ortho/keyboard.json
+++ b/keyboards/pabile/p40_ortho/keyboard.json
@@ -19,8 +19,7 @@
"rows": ["D1", "D0", "F4", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_ortho_4x10": {
"layout": [
diff --git a/keyboards/pabile/p42/keyboard.json b/keyboards/pabile/p42/keyboard.json
index 42c8964332..8311becdfc 100644
--- a/keyboards/pabile/p42/keyboard.json
+++ b/keyboards/pabile/p42/keyboard.json
@@ -20,8 +20,7 @@
"rows": ["D1", "D0", "D4", "C6"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/peej/tripel/info.json b/keyboards/peej/tripel/info.json
index 7a5c12461a..e716e20cfe 100644
--- a/keyboards/peej/tripel/info.json
+++ b/keyboards/peej/tripel/info.json
@@ -20,6 +20,5 @@
"rows": ["C6", "D4", "D0", "B4", "E6", "D7", "D1", "D2", "D3"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/peranekofactory/tone/rev1/keyboard.json b/keyboards/peranekofactory/tone/rev1/keyboard.json
index fb7b41b27a..9e9f7013c2 100644
--- a/keyboards/peranekofactory/tone/rev1/keyboard.json
+++ b/keyboards/peranekofactory/tone/rev1/keyboard.json
@@ -27,8 +27,7 @@
},
"tap_keycode_delay": 100
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"matrix_pins": {
"direct": [
["D4", "C6", "D7", "E6", "F6", "F7", "B1", "B3"]
diff --git a/keyboards/peranekofactory/tone/rev2/keyboard.json b/keyboards/peranekofactory/tone/rev2/keyboard.json
index fb7b41b27a..9e9f7013c2 100644
--- a/keyboards/peranekofactory/tone/rev2/keyboard.json
+++ b/keyboards/peranekofactory/tone/rev2/keyboard.json
@@ -27,8 +27,7 @@
},
"tap_keycode_delay": 100
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"matrix_pins": {
"direct": [
["D4", "C6", "D7", "E6", "F6", "F7", "B1", "B3"]
diff --git a/keyboards/pica40/rev1/keyboard.json b/keyboards/pica40/rev1/keyboard.json
index 85c2221a13..a616a2e497 100644
--- a/keyboards/pica40/rev1/keyboard.json
+++ b/keyboards/pica40/rev1/keyboard.json
@@ -1,6 +1,5 @@
{
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["D2", "B5", "B4", "E6", "D7"],
diff --git a/keyboards/pimentoso/paddino02/rev1/keyboard.json b/keyboards/pimentoso/paddino02/rev1/keyboard.json
index b0fddff9d3..30ac2a9a06 100644
--- a/keyboards/pimentoso/paddino02/rev1/keyboard.json
+++ b/keyboards/pimentoso/paddino02/rev1/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D1", "D0", "D4"]
},
"diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json
index f89552220d..ff9687b2b1 100644
--- a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json
+++ b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["D0", "D4", "D1"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json
index 1148564a05..006eca8794 100644
--- a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json
+++ b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json
@@ -24,8 +24,7 @@
"rows": ["F4", "F6", "F5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pimentoso/touhoupad/keyboard.json b/keyboards/pimentoso/touhoupad/keyboard.json
index fed01eb5a6..5407d49e59 100644
--- a/keyboards/pimentoso/touhoupad/keyboard.json
+++ b/keyboards/pimentoso/touhoupad/keyboard.json
@@ -35,8 +35,7 @@
"rows": ["D4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pinky/3/keyboard.json b/keyboards/pinky/3/keyboard.json
index f02b6c72d0..9ca44c26f3 100644
--- a/keyboards/pinky/3/keyboard.json
+++ b/keyboards/pinky/3/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_split_3x7_4"
},
diff --git a/keyboards/pinky/4/keyboard.json b/keyboards/pinky/4/keyboard.json
index 68b1dcb14c..bc651638ac 100644
--- a/keyboards/pinky/4/keyboard.json
+++ b/keyboards/pinky/4/keyboard.json
@@ -17,8 +17,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT": "LAYOUT_split_4x7_4"
},
diff --git a/keyboards/plum47/keyboard.json b/keyboards/plum47/keyboard.json
index 2c6e009300..00efab2c28 100644
--- a/keyboards/plum47/keyboard.json
+++ b/keyboards/plum47/keyboard.json
@@ -2,7 +2,7 @@
"manufacturer": "Masayuki Takagi",
"keyboard_name": "plum47",
"maintainer": "awh-tokyo",
- "bootloader": "caterina",
+ "development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
@@ -14,7 +14,6 @@
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7"],
"rows": ["D1", "D0", "D4", "C6"]
},
- "processor": "atmega32u4",
"url": "ihttps://github.com/takagi/plum47_buildguide",
"usb": {
"device_version": "1.0.0",
diff --git a/keyboards/psuieee/pluto12/keyboard.json b/keyboards/psuieee/pluto12/keyboard.json
index 02db5bc0a1..815c3b5949 100644
--- a/keyboards/psuieee/pluto12/keyboard.json
+++ b/keyboards/psuieee/pluto12/keyboard.json
@@ -31,8 +31,7 @@
{"pin_a": "B6", "pin_b": "B2"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/pteron36/keyboard.json b/keyboards/pteron36/keyboard.json
index 783e1e8db0..5daca888e9 100644
--- a/keyboards/pteron36/keyboard.json
+++ b/keyboards/pteron36/keyboard.json
@@ -54,8 +54,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["split_3x5_3"],
"layouts": {
"LAYOUT_split_3x5_3": {
diff --git a/keyboards/rainkeebs/rainkeeb/keyboard.json b/keyboards/rainkeebs/rainkeeb/keyboard.json
index 2d4a2ac5b9..b14ea45dde 100644
--- a/keyboards/rainkeebs/rainkeeb/keyboard.json
+++ b/keyboards/rainkeebs/rainkeeb/keyboard.json
@@ -32,8 +32,7 @@
{"pin_a": "B2", "pin_b": "B6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rart/rart4x4/keyboard.json b/keyboards/rart/rart4x4/keyboard.json
index a18e4a4606..13d7ca3345 100644
--- a/keyboards/rart/rart4x4/keyboard.json
+++ b/keyboards/rart/rart4x4/keyboard.json
@@ -54,8 +54,7 @@
{"pin_a": "D7", "pin_b": "E6"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_4x4"],
"layouts": {
"LAYOUT_ortho_4x4": {
diff --git a/keyboards/rart/rart67m/keyboard.json b/keyboards/rart/rart67m/keyboard.json
index bade7834fd..a9ab73ce57 100644
--- a/keyboards/rart/rart67m/keyboard.json
+++ b/keyboards/rart/rart67m/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["D3", "D2", "D4", "F6", "B3", "B4", "B2", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
diff --git a/keyboards/rart/rartlite/keyboard.json b/keyboards/rart/rartlite/keyboard.json
index df9180d622..48325bf391 100644
--- a/keyboards/rart/rartlite/keyboard.json
+++ b/keyboards/rart/rartlite/keyboard.json
@@ -29,8 +29,7 @@
"num_lock": "F6",
"on_state": 0
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_right_numpad": {
"layout": [
diff --git a/keyboards/rart/rartpad/keyboard.json b/keyboards/rart/rartpad/keyboard.json
index cc3f7120d2..70195fc4bf 100644
--- a/keyboards/rart/rartpad/keyboard.json
+++ b/keyboards/rart/rartpad/keyboard.json
@@ -57,8 +57,7 @@
"twinkle": true
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": ["ortho_5x4", "numpad_5x4"],
"layouts": {
"LAYOUT_ortho_5x4": {
diff --git a/keyboards/rate/pistachio_mp/keyboard.json b/keyboards/rate/pistachio_mp/keyboard.json
index 71e3244523..cea6190b84 100644
--- a/keyboards/rate/pistachio_mp/keyboard.json
+++ b/keyboards/rate/pistachio_mp/keyboard.json
@@ -39,8 +39,7 @@
{"pin_a": "F4", "pin_b": "F5"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/recompile_keys/choco60/rev1/keyboard.json b/keyboards/recompile_keys/choco60/rev1/keyboard.json
index 4e5a8903bd..6c0b363011 100644
--- a/keyboards/recompile_keys/choco60/rev1/keyboard.json
+++ b/keyboards/recompile_keys/choco60/rev1/keyboard.json
@@ -19,6 +19,5 @@
"pin": "D3"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/recompile_keys/cocoa40/keyboard.json b/keyboards/recompile_keys/cocoa40/keyboard.json
index 9fad026ea7..a576e54551 100644
--- a/keyboards/recompile_keys/cocoa40/keyboard.json
+++ b/keyboards/recompile_keys/cocoa40/keyboard.json
@@ -28,8 +28,7 @@
"pin": "D2"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/recompile_keys/nomu30/rev1/keyboard.json b/keyboards/recompile_keys/nomu30/rev1/keyboard.json
index 01afb9fe7d..8865eb0535 100644
--- a/keyboards/recompile_keys/nomu30/rev1/keyboard.json
+++ b/keyboards/recompile_keys/nomu30/rev1/keyboard.json
@@ -10,6 +10,5 @@
"rows": ["D1", "D0", "D4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/rect44/keyboard.json b/keyboards/rect44/keyboard.json
index c863bec9a3..7e0202cde7 100644
--- a/keyboards/rect44/keyboard.json
+++ b/keyboards/rect44/keyboard.json
@@ -37,8 +37,7 @@
"rows": ["D3", "D2", "F5", "F4"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/redox_media/keyboard.json b/keyboards/redox_media/keyboard.json
index dba5657ea2..145d9116ca 100644
--- a/keyboards/redox_media/keyboard.json
+++ b/keyboards/redox_media/keyboard.json
@@ -36,8 +36,7 @@
"pin": "D0"
}
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/reviung/reviung34/keyboard.json b/keyboards/reviung/reviung34/keyboard.json
index 7495b7cc9d..d7e6fe422a 100755
--- a/keyboards/reviung/reviung34/keyboard.json
+++ b/keyboards/reviung/reviung34/keyboard.json
@@ -26,8 +26,7 @@
"rows": ["F4", "F5", "F6", "F7"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"community_layouts": [
"split_3x5_2"
],
diff --git a/keyboards/reviung/reviung39/keyboard.json b/keyboards/reviung/reviung39/keyboard.json
index e18c1c163e..b57100d1eb 100644
--- a/keyboards/reviung/reviung39/keyboard.json
+++ b/keyboards/reviung/reviung39/keyboard.json
@@ -49,8 +49,7 @@
"rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung39": "LAYOUT"
},
diff --git a/keyboards/reviung/reviung41/keyboard.json b/keyboards/reviung/reviung41/keyboard.json
index b44827c3d2..f0ad524da2 100644
--- a/keyboards/reviung/reviung41/keyboard.json
+++ b/keyboards/reviung/reviung41/keyboard.json
@@ -49,8 +49,7 @@
"rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung41": "LAYOUT"
},
diff --git a/keyboards/reviung/reviung5/keyboard.json b/keyboards/reviung/reviung5/keyboard.json
index 7e7101c0ab..014cbb288a 100644
--- a/keyboards/reviung/reviung5/keyboard.json
+++ b/keyboards/reviung/reviung5/keyboard.json
@@ -53,8 +53,7 @@
{"pin_a": "D0", "pin_b": "D1"}
]
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung5": "LAYOUT"
},
diff --git a/keyboards/reviung/reviung53/keyboard.json b/keyboards/reviung/reviung53/keyboard.json
index 15f896e7d4..0468912f82 100644
--- a/keyboards/reviung/reviung53/keyboard.json
+++ b/keyboards/reviung/reviung53/keyboard.json
@@ -47,8 +47,7 @@
"rows": ["D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layout_aliases": {
"LAYOUT_reviung53": "LAYOUT"
},
diff --git a/keyboards/rgbkb/zen/rev1/keyboard.json b/keyboards/rgbkb/zen/rev1/keyboard.json
index b35381f607..94164016bb 100644
--- a/keyboards/rgbkb/zen/rev1/keyboard.json
+++ b/keyboards/rgbkb/zen/rev1/keyboard.json
@@ -38,8 +38,7 @@
"ws2812": {
"pin": "D1"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rgbkb/zen/rev2/keyboard.json b/keyboards/rgbkb/zen/rev2/keyboard.json
index 917274f186..d34fd7afb1 100644
--- a/keyboards/rgbkb/zen/rev2/keyboard.json
+++ b/keyboards/rgbkb/zen/rev2/keyboard.json
@@ -56,8 +56,7 @@
"ws2812": {
"pin": "B6"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rpiguy9907/southpaw66/keyboard.json b/keyboards/rpiguy9907/southpaw66/keyboard.json
index c751ee6d8e..980d217806 100644
--- a/keyboards/rpiguy9907/southpaw66/keyboard.json
+++ b/keyboards/rpiguy9907/southpaw66/keyboard.json
@@ -35,8 +35,7 @@
"tapping": {
"term": 400
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/rura66/rev1/keyboard.json b/keyboards/rura66/rev1/keyboard.json
index cb9ad6f29a..3dc41aabd4 100644
--- a/keyboards/rura66/rev1/keyboard.json
+++ b/keyboards/rura66/rev1/keyboard.json
@@ -55,8 +55,7 @@
"ws2812": {
"pin": "D3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/ryanbaekr/rb1/keyboard.json b/keyboards/ryanbaekr/rb1/keyboard.json
index a7222869e0..8b1b1a5a82 100644
--- a/keyboards/ryanbaekr/rb1/keyboard.json
+++ b/keyboards/ryanbaekr/rb1/keyboard.json
@@ -7,8 +7,7 @@
"pid": "0x0001",
"device_version": "0.0.3"
},
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"features": {
"bootmagic": true,
"extrakey": true,
diff --git a/quantum/process_keycode/process_oneshot.c b/quantum/process_keycode/process_oneshot.c
new file mode 100644
index 0000000000..6c43da1011
--- /dev/null
+++ b/quantum/process_keycode/process_oneshot.c
@@ -0,0 +1,25 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "process_oneshot.h"
+#include "action_util.h"
+
+bool process_oneshot(uint16_t keycode, keyrecord_t *record) {
+#ifndef NO_ACTION_ONESHOT
+ if (record->event.pressed) {
+ switch (keycode) {
+ case QK_ONE_SHOT_TOGGLE:
+ oneshot_toggle();
+ return false;
+ case QK_ONE_SHOT_ON:
+ oneshot_enable();
+ return false;
+ case QK_ONE_SHOT_OFF:
+ oneshot_disable();
+ return false;
+ }
+ }
+#endif
+
+ return true;
+}
diff --git a/quantum/process_keycode/process_oneshot.h b/quantum/process_keycode/process_oneshot.h
new file mode 100644
index 0000000000..11445b9b38
--- /dev/null
+++ b/quantum/process_keycode/process_oneshot.h
@@ -0,0 +1,10 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "action.h"
+
+bool process_oneshot(uint16_t keycode, keyrecord_t *record);
diff --git a/quantum/process_keycode/process_quantum.c b/quantum/process_keycode/process_quantum.c
new file mode 100644
index 0000000000..703e00755b
--- /dev/null
+++ b/quantum/process_keycode/process_quantum.c
@@ -0,0 +1,76 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "process_quantum.h"
+#include "quantum.h"
+
+#ifdef ENABLE_COMPILE_KEYCODE
+/** \brief Compiles the firmware, and adds the flash command based on keyboard bootloader
+ */
+static void send_make_command(void) {
+# ifdef NO_ACTION_ONESHOT
+ const uint8_t temp_mod = mod_config(get_mods());
+# else
+ const uint8_t temp_mod = mod_config(get_mods() | get_oneshot_mods());
+ clear_oneshot_mods();
+# endif
+ clear_mods();
+
+ SEND_STRING_DELAY("qmk", TAP_CODE_DELAY);
+ if (temp_mod & MOD_MASK_SHIFT) { // if shift is held, flash rather than compile
+ SEND_STRING_DELAY(" flash ", TAP_CODE_DELAY);
+ } else {
+ SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY);
+ }
+# if defined(CONVERTER_ENABLED)
+ SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP " -e CONVERT_TO=" CONVERTER_TARGET SS_TAP(X_ENTER), TAP_CODE_DELAY);
+# else
+ SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY);
+# endif
+ if (temp_mod & MOD_MASK_SHIFT && temp_mod & MOD_MASK_CTRL) {
+ reset_keyboard();
+ }
+}
+#endif
+
+bool process_quantum(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+#ifndef NO_RESET
+ case QK_BOOTLOADER:
+ reset_keyboard();
+ return false;
+ case QK_REBOOT:
+ soft_reset_keyboard();
+ return false;
+#endif
+#ifndef NO_DEBUG
+ case QK_DEBUG_TOGGLE:
+ debug_enable ^= 1;
+ if (debug_enable) {
+ print("DEBUG: enabled.\n");
+ } else {
+ print("DEBUG: disabled.\n");
+ }
+ return false;
+#endif
+ case QK_CLEAR_EEPROM:
+#ifdef NO_RESET
+ eeconfig_init();
+#else
+ eeconfig_disable();
+ soft_reset_keyboard();
+#endif
+ return false;
+#ifdef ENABLE_COMPILE_KEYCODE
+ case QK_MAKE:
+ send_make_command();
+ return false;
+#endif
+ default:
+ break;
+ }
+ }
+
+ return true;
+}
diff --git a/quantum/process_keycode/process_quantum.h b/quantum/process_keycode/process_quantum.h
new file mode 100644
index 0000000000..5c2462be01
--- /dev/null
+++ b/quantum/process_keycode/process_quantum.h
@@ -0,0 +1,10 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "action.h"
+
+bool process_quantum(uint16_t keycode, keyrecord_t *record);
diff --git a/quantum/process_keycode/process_underglow.c b/quantum/process_keycode/process_underglow.c
index b8d8989ef3..78006ee099 100644
--- a/quantum/process_keycode/process_underglow.c
+++ b/quantum/process_keycode/process_underglow.c
@@ -200,6 +200,11 @@ bool process_underglow(uint16_t keycode, keyrecord_t *record) {
}
#endif
return false;
+#ifdef VELOCIKEY_ENABLE
+ case QK_VELOCIKEY_TOGGLE:
+ velocikey_toggle();
+ return false;
+#endif
}
}
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 0bb6ee0a91..cc20c7db2b 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -15,6 +15,7 @@
*/
#include "quantum.h"
+#include "process_quantum.h"
#ifdef BACKLIGHT_ENABLE
# include "process_backlight.h"
@@ -84,6 +85,10 @@
# include "process_layer_lock.h"
#endif
+#ifndef NO_ACTION_ONESHOT
+# include "process_oneshot.h"
+#endif
+
#ifdef AUDIO_ENABLE
# ifndef GOODBYE_SONG
# define GOODBYE_SONG SONG(GOODBYE_SOUND)
@@ -174,10 +179,6 @@ __attribute__((weak)) bool pre_process_record_user(uint16_t keycode, keyrecord_t
return true;
}
-__attribute__((weak)) bool process_action_kb(keyrecord_t *record) {
- return true;
-}
-
__attribute__((weak)) bool process_record_modules(uint16_t keycode, keyrecord_t *record) {
return true;
}
@@ -292,9 +293,10 @@ void post_process_record_quantum(keyrecord_t *record) {
post_process_record_kb(keycode, record);
}
-/* Core keycode function, hands off handling to other functions,
- then processes internal quantum keycodes, and then processes
- ACTIONs. */
+/** \brief Core keycode function
+ *
+ * Hands off handling to other quantum/process_keycode/ functions
+ */
bool process_record_quantum(keyrecord_t *record) {
uint16_t keycode = get_record_keycode(record, true);
@@ -439,85 +441,14 @@ bool process_record_quantum(keyrecord_t *record) {
#ifdef CONNECTION_ENABLE
process_connection(keycode, record) &&
#endif
- true)) {
- return false;
- }
-
- if (record->event.pressed) {
- switch (keycode) {
-#ifndef NO_RESET
- case QK_BOOTLOADER:
- reset_keyboard();
- return false;
- case QK_REBOOT:
- soft_reset_keyboard();
- return false;
-#endif
-#ifndef NO_DEBUG
- case QK_DEBUG_TOGGLE:
- debug_enable ^= 1;
- if (debug_enable) {
- print("DEBUG: enabled.\n");
- } else {
- print("DEBUG: disabled.\n");
- }
-#endif
- return false;
- case QK_CLEAR_EEPROM:
-#ifdef NO_RESET
- eeconfig_init();
-#else
- eeconfig_disable();
- soft_reset_keyboard();
-#endif
- return false;
-#ifdef VELOCIKEY_ENABLE
- case QK_VELOCIKEY_TOGGLE:
- velocikey_toggle();
- return false;
-#endif
#ifndef NO_ACTION_ONESHOT
- case QK_ONE_SHOT_TOGGLE:
- oneshot_toggle();
- break;
- case QK_ONE_SHOT_ON:
- oneshot_enable();
- break;
- case QK_ONE_SHOT_OFF:
- oneshot_disable();
- break;
-#endif
-#ifdef ENABLE_COMPILE_KEYCODE
- case QK_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
- {
-# ifdef NO_ACTION_ONESHOT
- const uint8_t temp_mod = mod_config(get_mods());
-# else
- const uint8_t temp_mod = mod_config(get_mods() | get_oneshot_mods());
- clear_oneshot_mods();
-# endif
- clear_mods();
-
- SEND_STRING_DELAY("qmk", TAP_CODE_DELAY);
- if (temp_mod & MOD_MASK_SHIFT) { // if shift is held, flash rather than compile
- SEND_STRING_DELAY(" flash ", TAP_CODE_DELAY);
- } else {
- SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY);
- }
-# if defined(CONVERTER_ENABLED)
- SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP " -e CONVERT_TO=" CONVERTER_TARGET SS_TAP(X_ENTER), TAP_CODE_DELAY);
-# else
- SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY);
-# endif
- if (temp_mod & MOD_MASK_SHIFT && temp_mod & MOD_MASK_CTRL) {
- reset_keyboard();
- }
- }
+ process_oneshot(keycode, record) &&
#endif
- }
+ process_quantum(keycode, record))) {
+ return false;
}
- return process_action_kb(record);
+ return true;
}
void set_single_default_layer(uint8_t default_layer) {
diff --git a/quantum/quantum.h b/quantum/quantum.h
index 3a994e9a03..0036cd784b 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -263,7 +263,6 @@ uint16_t get_event_keycode(keyevent_t event, bool update_layer_cache);
bool pre_process_record_quantum(keyrecord_t *record);
bool pre_process_record_kb(uint16_t keycode, keyrecord_t *record);
bool pre_process_record_user(uint16_t keycode, keyrecord_t *record);
-bool process_action_kb(keyrecord_t *record);
bool process_record_kb(uint16_t keycode, keyrecord_t *record);
bool process_record_user(uint16_t keycode, keyrecord_t *record);
void post_process_record_kb(uint16_t keycode, keyrecord_t *record);
diff --git a/readme.md b/readme.md
index 62aed12066..e5c0d41b7b 100644
--- a/readme.md
+++ b/readme.md
@@ -1,3 +1,7 @@
+# THIS IS THE DEVELOP BRANCH
+
+Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information.
+
# Quantum Mechanical Keyboard Firmware
[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)