mirror of
https://github.com/qmk/qmk_userspace.git
synced 2026-04-22 11:30:23 -04:00
Switch to mainline QMK firmware; enable speculative hold
Add Keebart Corne Choc Pro keyboard definition to userspace (copied from Keebart/vial-qmk-corne-choc-pro vial branch). Build against qmk/qmk_firmware master instead of the Keebart vial fork. This gives access to SPECULATIVE_HOLD, which applies modifiers instantly on keydown and cancels them if the key resolves as tap. Same-hand CMD shortcuts (like CMD+A with left-thumb backspace) now feel as responsive as cross-hand ones. Also removes NKRO_ENABLE=no and EXTRAKEY_ENABLE=no overrides that were disabling media/volume keys. https://claude.ai/code/session_01Q6jUPkVNbXkBqPgkmLWsTK
This commit is contained in:
parent
2def8a31c7
commit
1ff06d9530
9 changed files with 333 additions and 5 deletions
4
.github/workflows/build_binaries.yaml
vendored
4
.github/workflows/build_binaries.yaml
vendored
|
|
@ -10,8 +10,8 @@ jobs:
|
|||
name: 'QMK Userspace Build'
|
||||
uses: qmk/.github/.github/workflows/qmk_userspace_build.yml@main
|
||||
with:
|
||||
qmk_repo: Keebart/vial-qmk-corne-choc-pro
|
||||
qmk_ref: vial
|
||||
qmk_repo: qmk/qmk_firmware
|
||||
qmk_ref: master
|
||||
|
||||
publish:
|
||||
name: 'QMK Userspace Publish'
|
||||
|
|
|
|||
26
keyboards/keebart/corne_choc_pro/config.h
Normal file
26
keyboards/keebart/corne_choc_pro/config.h
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#pragma once
|
||||
|
||||
#define SERIAL_USART_TX_PIN GP12
|
||||
#define USB_VBUS_PIN GP13
|
||||
#define SPLIT_HAND_PIN GP21
|
||||
|
||||
#define I2C_DRIVER I2CD1
|
||||
#define OLED_UPDATE_INTERVAL 50
|
||||
#define I2C1_SDA_PIN GP6
|
||||
#define I2C1_SCL_PIN GP7
|
||||
|
||||
#define RGB_MATRIX_SLEEP
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
|
||||
#define USB_SUSPEND_WAKEUP_DELAY 200
|
||||
|
||||
/* RP2040- and hardware-specific config */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
||||
|
||||
#define SPLIT_LAYER_STATE_ENABLE
|
||||
#define SPLIT_LED_STATE_ENABLE
|
||||
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 16
|
||||
5
keyboards/keebart/corne_choc_pro/halconf.h
Normal file
5
keyboards/keebart/corne_choc_pro/halconf.h
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
235
keyboards/keebart/corne_choc_pro/info.json
Normal file
235
keyboards/keebart/corne_choc_pro/info.json
Normal file
|
|
@ -0,0 +1,235 @@
|
|||
{
|
||||
"manufacturer": "Keebart",
|
||||
"keyboard_name": "corne_choc_pro",
|
||||
"url": "https://keebart.com/products/corne",
|
||||
"maintainer": "Keebart",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"nkro": true,
|
||||
"oled": true,
|
||||
"rgblight": false,
|
||||
"rgb_matrix": true,
|
||||
"mousekey": true,
|
||||
"encoder": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
[ "GP22", "GP20", "GP23", "GP26", "GP29", "GP0", "GP4" ],
|
||||
[ "GP19", "GP18", "GP24", "GP27", "GP1", "GP2", "GP8" ],
|
||||
[ "GP17", "GP16", "GP25", "GP28", "GP3", "GP9", null ],
|
||||
[ null, null, null, "GP14", "GP15", "GP11", null ]
|
||||
]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{ "pin_a": "GP5", "pin_b": "GP7" },
|
||||
{ "pin_a": "GP6", "pin_b": "GP7" }
|
||||
]
|
||||
},
|
||||
"bootmagic": {
|
||||
"enabled": true,
|
||||
"matrix": [ 0, 1 ]
|
||||
},
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"bootmagic": {
|
||||
"matrix": [ 4, 1 ]
|
||||
},
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"direct": [
|
||||
[ "GP8", "GP9", "GP3", "GP2", "GP1", "GP27", "GP25" ],
|
||||
[ "GP11", "GP14", "GP4", "GP0", "GP28", "GP26", "GP23" ],
|
||||
[ "GP15", "GP18", "GP5", "GP29", "GP20", "GP22", null ],
|
||||
[ null, null, null, "GP16", "GP17", "GP19", null ]
|
||||
]
|
||||
}
|
||||
},
|
||||
"encoder": {
|
||||
"right": {
|
||||
"rotary": [
|
||||
{ "pin_a": "GP24", "pin_b": "GP7" },
|
||||
{ "pin_a": "GP6", "pin_b": "GP7" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"transport": {
|
||||
"sync": {
|
||||
"matrix_state": true
|
||||
},
|
||||
"watchdog": true
|
||||
}
|
||||
},
|
||||
"community_layouts": [
|
||||
"split_3x5_3",
|
||||
"split_3x6_3"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x5_3": {
|
||||
"layout": [
|
||||
{ "matrix": [ 0, 1 ], "x": 0, "y": 0.3 },
|
||||
{ "matrix": [ 0, 2 ], "x": 1, "y": 0.1 },
|
||||
{ "matrix": [ 0, 3 ], "x": 2, "y": 0 },
|
||||
{ "matrix": [ 0, 4 ], "x": 3, "y": 0.1 },
|
||||
{ "matrix": [ 0, 5 ], "x": 4, "y": 0.2 },
|
||||
{ "matrix": [ 4, 5 ], "x": 8, "y": 0.2 },
|
||||
{ "matrix": [ 4, 4 ], "x": 9, "y": 0.1 },
|
||||
{ "matrix": [ 4, 3 ], "x": 10, "y": 0 },
|
||||
{ "matrix": [ 4, 2 ], "x": 11, "y": 0.1 },
|
||||
{ "matrix": [ 4, 1 ], "x": 12, "y": 0.3 },
|
||||
{ "matrix": [ 1, 1 ], "x": 0, "y": 1.3 },
|
||||
{ "matrix": [ 1, 2 ], "x": 1, "y": 1.1 },
|
||||
{ "matrix": [ 1, 3 ], "x": 2, "y": 1 },
|
||||
{ "matrix": [ 1, 4 ], "x": 3, "y": 1.1 },
|
||||
{ "matrix": [ 1, 5 ], "x": 4, "y": 1.2 },
|
||||
{ "matrix": [ 5, 5 ], "x": 8, "y": 1.2 },
|
||||
{ "matrix": [ 5, 4 ], "x": 9, "y": 1.1 },
|
||||
{ "matrix": [ 5, 3 ], "x": 10, "y": 1 },
|
||||
{ "matrix": [ 5, 2 ], "x": 11, "y": 1.1 },
|
||||
{ "matrix": [ 5, 1 ], "x": 12, "y": 1.3 },
|
||||
{ "matrix": [ 2, 1 ], "x": 0, "y": 2.3 },
|
||||
{ "matrix": [ 2, 2 ], "x": 1, "y": 2.1 },
|
||||
{ "matrix": [ 2, 3 ], "x": 2, "y": 2 },
|
||||
{ "matrix": [ 2, 4 ], "x": 3, "y": 2.1 },
|
||||
{ "matrix": [ 2, 5 ], "x": 4, "y": 2.2 },
|
||||
{ "matrix": [ 6, 5 ], "x": 8, "y": 2.2 },
|
||||
{ "matrix": [ 6, 4 ], "x": 9, "y": 2.1 },
|
||||
{ "matrix": [ 6, 3 ], "x": 10, "y": 2 },
|
||||
{ "matrix": [ 6, 2 ], "x": 11, "y": 2.1 },
|
||||
{ "matrix": [ 6, 1 ], "x": 12, "y": 2.3 },
|
||||
{ "matrix": [ 3, 3 ], "x": 3, "y": 3.7 },
|
||||
{ "matrix": [ 3, 4 ], "x": 4, "y": 3.7 },
|
||||
{ "matrix": [ 3, 5 ], "x": 5, "y": 3.2, "h": 1.5 },
|
||||
{ "matrix": [ 7, 5 ], "x": 7, "y": 3.2, "h": 1.5 },
|
||||
{ "matrix": [ 7, 4 ], "x": 8, "y": 3.7 },
|
||||
{ "matrix": [ 7, 3 ], "x": 9, "y": 3.7 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_split_3x6_3": {
|
||||
"layout": [
|
||||
{ "matrix": [ 0, 0 ], "x": 0, "y": 0.3 },
|
||||
{ "matrix": [ 0, 1 ], "x": 1, "y": 0.3 },
|
||||
{ "matrix": [ 0, 2 ], "x": 2, "y": 0.1 },
|
||||
{ "matrix": [ 0, 3 ], "x": 3, "y": 0 },
|
||||
{ "matrix": [ 0, 4 ], "x": 4, "y": 0.1 },
|
||||
{ "matrix": [ 0, 5 ], "x": 5, "y": 0.2 },
|
||||
{ "matrix": [ 4, 5 ], "x": 9, "y": 0.2 },
|
||||
{ "matrix": [ 4, 4 ], "x": 10, "y": 0.1 },
|
||||
{ "matrix": [ 4, 3 ], "x": 11, "y": 0 },
|
||||
{ "matrix": [ 4, 2 ], "x": 12, "y": 0.1 },
|
||||
{ "matrix": [ 4, 1 ], "x": 13, "y": 0.3 },
|
||||
{ "matrix": [ 4, 0 ], "x": 14, "y": 0.3 },
|
||||
{ "matrix": [ 1, 0 ], "x": 0, "y": 1.3 },
|
||||
{ "matrix": [ 1, 1 ], "x": 1, "y": 1.3 },
|
||||
{ "matrix": [ 1, 2 ], "x": 2, "y": 1.1 },
|
||||
{ "matrix": [ 1, 3 ], "x": 3, "y": 1 },
|
||||
{ "matrix": [ 1, 4 ], "x": 4, "y": 1.1 },
|
||||
{ "matrix": [ 1, 5 ], "x": 5, "y": 1.2 },
|
||||
{ "matrix": [ 5, 5 ], "x": 9, "y": 1.2 },
|
||||
{ "matrix": [ 5, 4 ], "x": 10, "y": 1.1 },
|
||||
{ "matrix": [ 5, 3 ], "x": 11, "y": 1 },
|
||||
{ "matrix": [ 5, 2 ], "x": 12, "y": 1.1 },
|
||||
{ "matrix": [ 5, 1 ], "x": 13, "y": 1.3 },
|
||||
{ "matrix": [ 5, 0 ], "x": 14, "y": 1.3 },
|
||||
{ "matrix": [ 2, 0 ], "x": 0, "y": 2.3 },
|
||||
{ "matrix": [ 2, 1 ], "x": 1, "y": 2.3 },
|
||||
{ "matrix": [ 2, 2 ], "x": 2, "y": 2.1 },
|
||||
{ "matrix": [ 2, 3 ], "x": 3, "y": 2 },
|
||||
{ "matrix": [ 2, 4 ], "x": 4, "y": 2.1 },
|
||||
{ "matrix": [ 2, 5 ], "x": 5, "y": 2.2 },
|
||||
{ "matrix": [ 6, 5 ], "x": 9, "y": 2.2 },
|
||||
{ "matrix": [ 6, 4 ], "x": 10, "y": 2.1 },
|
||||
{ "matrix": [ 6, 3 ], "x": 11, "y": 2 },
|
||||
{ "matrix": [ 6, 2 ], "x": 12, "y": 2.1 },
|
||||
{ "matrix": [ 6, 1 ], "x": 13, "y": 2.3 },
|
||||
{ "matrix": [ 6, 0 ], "x": 14, "y": 2.3 },
|
||||
{ "matrix": [ 3, 3 ], "x": 4, "y": 3.7 },
|
||||
{ "matrix": [ 3, 4 ], "x": 5, "y": 3.7 },
|
||||
{ "matrix": [ 3, 5 ], "x": 6, "y": 3.2, "h": 1.5 },
|
||||
{ "matrix": [ 7, 5 ], "x": 8, "y": 3.2, "h": 1.5 },
|
||||
{ "matrix": [ 7, 4 ], "x": 9, "y": 3.7 },
|
||||
{ "matrix": [ 7, 3 ], "x": 10, "y": 3.7 }
|
||||
]
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP10"
|
||||
},
|
||||
"rgblight": {
|
||||
"led_count": 46,
|
||||
"split": true,
|
||||
"split_count": [ 23, 23 ],
|
||||
"max_brightness": 100,
|
||||
"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
|
||||
}
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "ws2812",
|
||||
"max_brightness": 100,
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"gradient_up_down": true,
|
||||
"gradient_left_right": true,
|
||||
"breathing": true,
|
||||
"band_sat": true,
|
||||
"band_val": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"jellybean_raindrops": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_rain": true,
|
||||
"typing_heatmap": true,
|
||||
"digital_rain": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"splash": true,
|
||||
"multisplash": true,
|
||||
"solid_splash": true,
|
||||
"solid_multisplash": true
|
||||
}
|
||||
}
|
||||
}
|
||||
6
keyboards/keebart/corne_choc_pro/mcuconf.h
Normal file
6
keyboards/keebart/corne_choc_pro/mcuconf.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_I2C_USE_I2C1
|
||||
#define RP_I2C_USE_I2C1 TRUE
|
||||
1
keyboards/keebart/corne_choc_pro/rules.mk
Normal file
1
keyboards/keebart/corne_choc_pro/rules.mk
Normal file
|
|
@ -0,0 +1 @@
|
|||
SERIAL_DRIVER = vendor
|
||||
57
keyboards/keebart/corne_choc_pro/standard/keyboard.json
Normal file
57
keyboards/keebart/corne_choc_pro/standard/keyboard.json
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"keyboard_name": "Corne Choc Pro",
|
||||
"usb": {
|
||||
"pid": "0x0004"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"split_count": [23, 23],
|
||||
"layout": [
|
||||
{"matrix": [3, 5], "x": 95, "y": 63, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 85, "y": 39, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 85, "y": 21, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 85, "y": 4, "flags": 4},
|
||||
{"matrix": [0, 4], "x": 68, "y": 2, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 68, "y": 19, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 68, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 80, "y": 58, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 60, "y": 55, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 50, "y": 35, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 50, "y": 16, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 33, "y": 3, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 33, "y": 20, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 33, "y": 37, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 16, "y": 42, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 16, "y": 24, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 16, "y": 7, "flags": 4},
|
||||
{"matrix": [0, 0], "x": 0, "y": 7, "flags": 4},
|
||||
{"matrix": [1, 0], "x": 0, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 0, "y": 41, "flags": 4},
|
||||
{"matrix": [0, 6], "x": 103, "y": 17, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 103, "y": 24, "flags": 4},
|
||||
{"matrix": [7, 5], "x": 129, "y": 63, "flags": 4},
|
||||
{"matrix": [6, 5], "x": 139, "y": 39, "flags": 4},
|
||||
{"matrix": [5, 5], "x": 139, "y": 21, "flags": 4},
|
||||
{"matrix": [4, 5], "x": 139, "y": 4, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 156, "y": 2, "flags": 4},
|
||||
{"matrix": [5, 4], "x": 156, "y": 19, "flags": 4},
|
||||
{"matrix": [6, 4], "x": 156, "y": 37, "flags": 4},
|
||||
{"matrix": [7, 4], "x": 144, "y": 58, "flags": 4},
|
||||
{"matrix": [7, 3], "x": 164, "y": 55, "flags": 4},
|
||||
{"matrix": [6, 3], "x": 174, "y": 35, "flags": 4},
|
||||
{"matrix": [5, 3], "x": 174, "y": 16, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 174, "y": 0, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 191, "y": 3, "flags": 4},
|
||||
{"matrix": [5, 2], "x": 191, "y": 20, "flags": 4},
|
||||
{"matrix": [6, 2], "x": 191, "y": 37, "flags": 4},
|
||||
{"matrix": [6, 1], "x": 208, "y": 42, "flags": 4},
|
||||
{"matrix": [5, 1], "x": 208, "y": 24, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 208, "y": 7, "flags": 4},
|
||||
{"matrix": [4, 0], "x": 224, "y": 7, "flags": 4},
|
||||
{"matrix": [5, 0], "x": 224, "y": 24, "flags": 4},
|
||||
{"matrix": [6, 0], "x": 224, "y": 41, "flags": 4},
|
||||
{"matrix": [4, 6], "x": 122, "y": 17, "flags": 4},
|
||||
{"matrix": [5, 6], "x": 122, "y": 24, "flags": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@
|
|||
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
|
||||
#define RETRO_TAPPING
|
||||
#define RETRO_TAPPING_PER_KEY
|
||||
#define SPECULATIVE_HOLD
|
||||
|
||||
// ── Combos ──
|
||||
#define COMBO_COUNT 8
|
||||
|
|
|
|||
|
|
@ -4,6 +4,3 @@ OLED_DRIVER = ssd1306
|
|||
OLED_TRANSPORT = i2c
|
||||
WPM_ENABLE = yes
|
||||
KEYCODE_STRING_ENABLE = yes
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
NKRO_ENABLE = no
|
||||
EXTRAKEY_ENABLE = no
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue