qmk_me

QMK Firmware userspace, keyboards, & keymaps
git clone git://git.pngu.org.org/qmk_me
Log | Files | Refs | Submodules | README | LICENSE

commit 4865b38287c147c7bf51c8bac7337576bf1a714c
parent a28e7903834c96ebd89560baddddc30a581e6fdb
Author: Jack Sangdahl <jack@pngu.org>
Date:   Tue,  9 Sep 2025 16:33:24 -0600

Miscellaneous changes

Diffstat:
Dimg/bark.png | 0
Dimg/num.png | 0
Dimg/run.png | 0
Dimg/sit.png | 0
Dimg/sneak.png | 0
Dimg/sym.png | 0
Dimg/sys.png | 0
Dimg/walk.png | 0
Dimg/wpm_graph.gif | 0
Mjack/jack.c | 19+++++--------------
Mjack/jack.h | 7-------
Mjack/rules.mk | 12+++---------
Djack/tap_code.c | 159-------------------------------------------------------------------------------
Mjack/tapping.c | 16++++++++--------
Mkeyboards/locus/keyboard.json | 120++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mkeyboards/pseusplit/keyboard.json | 214++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mkeyboards/sweep/keyboard.json | 276++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mkeyboards/xyz60/keyboard.json | 160++++++++++++++++++++++++++++++++++++++++----------------------------------------
Dkeymaps/kyria/readme.md | 16----------------
Mreadme.md | 2+-
Mutil/keymap.yaml | 2+-
Rimg/layout.svg -> util/layout.svg | 0
Mutil/link.sh | 18+++++++++---------
23 files changed, 412 insertions(+), 609 deletions(-)

diff --git a/img/bark.png b/img/bark.png Binary files differ. diff --git a/img/num.png b/img/num.png Binary files differ. diff --git a/img/run.png b/img/run.png Binary files differ. diff --git a/img/sit.png b/img/sit.png Binary files differ. diff --git a/img/sneak.png b/img/sneak.png Binary files differ. diff --git a/img/sym.png b/img/sym.png Binary files differ. diff --git a/img/sys.png b/img/sys.png Binary files differ. diff --git a/img/walk.png b/img/walk.png Binary files differ. diff --git a/img/wpm_graph.gif b/img/wpm_graph.gif Binary files differ. diff --git a/jack/jack.c b/jack/jack.c @@ -41,9 +41,6 @@ void keyboard_post_init_user(void) { #if defined(SPLIT_KEYBOARD) && defined(OLED_ENABLE) transaction_register_rpc(RPC_ID_USER_KEYLOG_STR, keylogger_sync); #endif -#ifdef CUSTOM_TAP_CODE_ENABLE - tap_code_buffer_init(); -#endif #ifdef RGBLIGHT_ENABLE rgblight_enable_noeeprom(); rgblight_sethsv_noeeprom(HSV_CYAN); @@ -61,12 +58,6 @@ void keyboard_post_init_user(void) { keyboard_post_init_keymap(); } -void matrix_scan_user(void) { -#ifdef CUSTOM_TAP_CODE_ENABLE - process_tap_code_buffer(); -#endif -} - #ifdef OS_DETECTION_ENABLE typedef struct { bool swap_ctl_gui; @@ -74,11 +65,11 @@ typedef struct { } os_detection_config; bool process_detected_host_os_user(os_variant_t detected_os) { - os_detection_config os_config = {.swap_ctl_gui = false, - .unicode_input_mode = UNICODE_MODE_LINUX}; - if (detected_os == OS_MACOS) - os_config = (os_detection_config){.swap_ctl_gui = true, - .unicode_input_mode = UNICODE_MODE_MACOS}; + os_detection_config os_config = {.swap_ctl_gui = true, + .unicode_input_mode = UNICODE_MODE_MACOS}; + if (detected_os == OS_LINUX) + os_config = (os_detection_config){.swap_ctl_gui = false, + .unicode_input_mode = UNICODE_MODE_LINUX}; keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = os_config.swap_ctl_gui; eeconfig_update_keymap(&keymap_config); diff --git a/jack/jack.h b/jack/jack.h @@ -29,13 +29,6 @@ enum combos { #undef CMB bool process_record_unicode(uint16_t keycode, keyrecord_t *record); -bool process_record_taps(uint16_t keycode, keyrecord_t *record); -extern uint8_t extract_mod_bits(uint16_t code); -void tap_code_buffer_init(void); -void tap_code_register(uint8_t code, uint8_t mods, uint16_t delay, - bool register_tap); -void process_tap_code_buffer(void); -void tap_string(const char *str); #ifdef TAP_DANCE_ENABLE void td_reset(tap_dance_state_t *state, void *user_data); diff --git a/jack/rules.mk b/jack/rules.mk @@ -13,8 +13,7 @@ TAP_DANCE_ENABLE = yes SPACE_CADET_ENABLE = no AUTOCORRECT_ENABLE = yes MOUSE_JIGGLE_ENABLE = yes -OS_DETECTION_ENABLE = yes -CUSTOM_TAP_CODE_ENABLE = no +OS_DETECTION_ENABLE = no DEBOUNCE_TYPE = asym_eager_defer_pk AVR_CFLAGS += -mrelax INTROSPECTION_KEYMAP_C = introspection.c @@ -22,8 +21,8 @@ INTROSPECTION_KEYMAP_C = introspection.c SRC += $(USER_PATH)/jack.c $(USER_PATH)/tapping.c ifeq ($(strip $(OLED_ENABLE)), yes) - SRC += $(USER_PATH)/oled.c - WPM_ENABLE = yes + SRC += $(USER_PATH)/oled.c + WPM_ENABLE = yes endif ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) @@ -36,11 +35,6 @@ ifeq ($(strip $(UNICODE_COMMON)), yes) SRC += $(USER_PATH)/unicode.c endif -ifeq ($(strip $(CUSTOM_TAP_CODE_ENABLE)), yes) - OPT_DEFS += -DCUSTOM_TAP_CODE_ENABLE - SRC += $(USER_PATH)tap_code.c -endif - ifeq ($(PLATFORM), CHIBIOS) ifeq ($(MCU_SERIES), RP2040) RP2040_MATH_IN_ROM = no diff --git a/jack/tap_code.c b/jack/tap_code.c @@ -1,159 +0,0 @@ -// Copyright 2025 jack@pngu.org -// SPDX-License-Identifier: GPL-2.0-or-later -#include "jack.h" - -#define TAP_CODE_BUFFER_SIZE 32 -#define NEXT_TAP_CODE_POS(p) p = ((p + 1) & (TAP_CODE_BUFFER_SIZE - 1)) - -#define CHECK_REGISTERED_MT(keycode) \ - (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX && \ - (get_mods() & ((keycode & 0x0F00) >> 8))) - -#define PGM_LOADBIT(mem, pos) \ - ((pgm_read_byte(&((mem)[(pos) / 8])) >> ((pos) % 8)) & 1) - -typedef struct { - uint8_t code; - uint8_t mods; - uint16_t delay; - bool register_tap; -} tap_code_buffer; - -tap_code_buffer tap_codes[TAP_CODE_BUFFER_SIZE] = {0}; -static uint16_t process_pos = 0, queue_pos = 0; -static fast_timer_t process_timer = 0; - -void tap_code_buffer_init(void) { memset(&tap_codes, 0, sizeof(tap_codes)); } - -void tap_code_register(uint8_t code, uint8_t mods, uint16_t delay, - bool register_tap) { - if (code && !delay) { - if (mods) - register_mods(mods); - register_code(code); - unregister_code(code); - if (mods) - unregister_mods(mods); - return; - } - if (tap_codes[queue_pos].code) { - if (!process_timer) - process_tap_code_buffer(); - while (timer_elapsed_fast(process_timer) < tap_codes[process_pos].delay) - wait_ms(1); - process_tap_code_buffer(); - } - tap_codes[queue_pos].code = code; - tap_codes[queue_pos].mods = mods; - tap_codes[queue_pos].delay = delay; - tap_codes[queue_pos].register_tap = register_tap; - NEXT_TAP_CODE_POS(queue_pos); -} - -void process_tap_code_buffer(void) { - if (tap_codes[process_pos].code) { - if (!process_timer) { - if (tap_codes[process_pos].register_tap) { - if (tap_codes[process_pos].mods) { - add_weak_mods(tap_codes[process_pos].mods); - } - register_code(tap_codes[process_pos].code); - } - process_timer = timer_read_fast(); - } else if (timer_elapsed_fast(process_timer) >= - tap_codes[process_pos].delay) { - del_weak_mods(tap_codes[process_pos].mods); - unregister_code(tap_codes[process_pos].code); - tap_codes[process_pos].code = 0; - tap_codes[process_pos].mods = 0; - tap_codes[process_pos].delay = 0; - tap_codes[process_pos].register_tap = false; - process_timer = 0; - NEXT_TAP_CODE_POS(process_pos); - } - } -} - -void tap_code(uint8_t code) { - tap_code_register(code, 0, TAP_CODE_DELAY, true); -} - -void tap_code_chord(uint8_t code) { - register_code(code); - tap_code_register(code, 0, TAP_CODE_DELAY, false); -} - -void tap_code_delay(uint8_t code, uint16_t delay) { - tap_code_register(code, 0, delay, true); -} - -void tap_code16(uint16_t code) { - tap_code_register((uint8_t)code, extract_mod_bits(code), TAP_CODE_DELAY, - true); -} - -bool process_record_taps(uint16_t keycode, keyrecord_t *record) { - static fast_timer_t prev_interrupt = 0, prev_key_down = 0; - switch (keycode) { - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - if (record->event.pressed && - ((timer_elapsed_fast(prev_interrupt) < TAPPING_TERM) || - (timer_elapsed_fast(prev_key_down) < 200) || - CHECK_REGISTERED_MT(keycode))) { - tap_code_chord(keycode & 0xFF); - record->tap.count = 0xF; - prev_interrupt = timer_read_fast(); - return false; - } - if (record->tap.count == 0xF) - return false; - if (record->tap.count > 1 && (keycode == ESCLWR || keycode == RSEBSP)) { - if (record->event.pressed) { - register_code(keycode & 0xFF); - return false; - } else { - unregister_code(keycode & 0xFF); - return false; - } - } - if (record->tap.count && record->event.pressed) { - if (keycode >= QK_MOD_TAP || keycode == ESCLWR || keycode == RSEBSP) - tap_code_chord(keycode & 0xFF); - else - tap_code(keycode & 0xFF); - return false; - } else if (record->tap.interrupted && - (keycode >= QK_MOD_TAP || keycode == ESCLWR || - keycode == RSEBSP)) { - tap_code_chord(keycode & 0xFF); - prev_interrupt = timer_read_fast(); - return false; - } - default: - if (record->event.pressed) - prev_key_down = timer_read_fast(); - break; - } - return true; -} - -extern const uint8_t ascii_to_shift_lut[16]; -extern const uint8_t ascii_to_keycode_lut[128]; - -void tap_char(char ascii_code) { - uint8_t keycode = pgm_read_byte(&ascii_to_keycode_lut[(uint8_t)ascii_code]); - bool shifted = PGM_LOADBIT(ascii_to_shift_lut, (uint8_t)ascii_code); - tap_code_register(keycode, shifted ? MOD_BIT(KC_LSFT) : 0, TAP_CODE_DELAY, - true); -} - -void tap_string(const char *str) { - while (1) { - char ascii_code = pgm_read_byte(str); - if (!ascii_code) - break; - tap_char(ascii_code); - ++str; - } -} diff --git a/jack/tapping.c b/jack/tapping.c @@ -2,10 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "jack.h" -#ifndef CUSTOM_TAP_CODE_ENABLE -#define tap_string send_string_P -#endif - #define INTERCEPT_MOD_TAP(mod, keycode) \ case mod(keycode): \ if (record->tap.count && record->event.pressed) { \ @@ -78,10 +74,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!process_record_unicode(keycode, record)) return false; #endif -#ifdef CUSTOM_TAP_CODE_ENABLE - if (!process_record_taps(keycode, record)) - return false; -#endif #ifdef OLED_ENABLE if (record->event.pressed) { oled_timer_reset(); @@ -127,6 +119,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { tap_code(KC_UP); } break; + case OS_SWAP: + if (record->event.pressed) { + keymap_config.swap_lctl_lgui = !keymap_config.swap_lctl_lgui; + keymap_config.swap_rctl_rgui = !keymap_config.swap_rctl_rgui; + eeconfig_update_keymap(&keymap_config); + unicode_input_mode_step(); + } + break; INTERCEPT_MOD_TAP(LALT_T, KC_EXLM) INTERCEPT_MOD_TAP(LGUI_T, KC_AT) INTERCEPT_MOD_TAP(LCTL_T, KC_HASH) diff --git a/keyboards/locus/keyboard.json b/keyboards/locus/keyboard.json @@ -1,63 +1,63 @@ { - "keyboard_me": "locus", - "manufacturer": "jacks", - "maintainer": "pngu.org", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["F0", "F1", "B3", "B2", "B1", "B0", "C7", "C6", "B6", "B5", "B4", "D7"], - "rows": ["D5", "F5", "F6", "D6"] - }, - "usb": { - "vid": "0x6A73", - "pid": "0x6C0A", - "device_version": "1.0.0" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "", "matrix": [0, 0], "x": 0, "y": 0 }, - {"label": "q", "matrix": [0, 1], "x": 1, "y": 0 }, - {"label": "w", "matrix": [0, 2], "x": 2, "y": 0 }, - {"label": "e", "matrix": [0, 3], "x": 3, "y": 0 }, - {"label": "r", "matrix": [0, 4], "x": 4, "y": 0 }, - {"label": "t", "matrix": [0, 5], "x": 5, "y": 0 }, - {"label": "y", "matrix": [0, 6], "x": 7, "y": 0 }, - {"label": "u", "matrix": [0, 7], "x": 8, "y": 0 }, - {"label": "i", "matrix": [0, 8], "x": 9, "y": 0 }, - {"label": "o", "matrix": [0, 9], "x": 10, "y": 0 }, - {"label": "p", "matrix": [0, 10], "x": 11, "y": 0 }, - {"label": "", "matrix": [0, 11], "x": 12, "y": 0 }, - {"label": "", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.25 }, - {"label": "a", "matrix": [1, 1], "x": 1.25, "y": 1 }, - {"label": "s", "matrix": [1, 2], "x": 2.25, "y": 1 }, - {"label": "d", "matrix": [1, 3], "x": 3.25, "y": 1 }, - {"label": "f", "matrix": [1, 4], "x": 4.25, "y": 1 }, - {"label": "g", "matrix": [1, 5], "x": 5.25, "y": 1 }, - {"label": "h", "matrix": [1, 6], "x": 7.25, "y": 1 }, - {"label": "j", "matrix": [1, 7], "x": 8.25, "y": 1 }, - {"label": "k", "matrix": [1, 8], "x": 9.25, "y": 1 }, - {"label": "l", "matrix": [1, 9], "x": 10.25, "y": 1 }, - {"label": ";", "matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.75 }, - {"label": "", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, - {"label": "z", "matrix": [2, 1], "x": 1.75, "y": 2 }, - {"label": "x", "matrix": [2, 2], "x": 2.75, "y": 2 }, - {"label": "c", "matrix": [2, 3], "x": 3.75, "y": 2 }, - {"label": "v", "matrix": [2, 4], "x": 4.75, "y": 2 }, - {"label": "b", "matrix": [2, 5], "x": 5.75, "y": 2 }, - {"label": "n", "matrix": [2, 7], "x": 8.75, "y": 2 }, - {"label": "m", "matrix": [2, 8], "x": 9.75, "y": 2 }, - {"label": ",", "matrix": [2, 9], "x": 10.75, "y": 2 }, - {"label": ".", "matrix": [2, 10], "x": 11.75, "y": 2 }, - {"label": "/", "matrix": [2, 11], "x": 12.75, "y": 2, "w": 1.25}, - {"label": "../", "matrix": [3, 0], "x": 0.5, "y": 3, "w": 1.5 }, - {"label": "esc", "matrix": [3, 2], "x": 3, "y": 3 }, - {"label": "spc", "matrix": [3, 4], "x": 4, "y": 3, "w": 2.25 }, - {"label": "bspc", "matrix": [3, 7], "x": 7.5, "y": 3, "w": 2.75 }, - {"label": "", "matrix": [3, 9], "x": 10.25, "y": 3 }, - {"label": "", "matrix": [3, 11], "x": 12, "y": 3, "w": 1.5 } - ] + "manufacturer": "jack", + "maintainer": "pngu.org", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "keyboard_me": "locus", + "matrix_pins": { + "cols": ["F0", "F1", "B3", "B2", "B1", "B0", "C7", "C6", "B6", "B5", "B4", "D7"], + "rows": ["D5", "F5", "F6", "D6"] + }, + "processor": "atmega32u4", + "usb": { + "device_version": "1.0.0", + "pid": "0x6C0A", + "vid": "0x6A73" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 8, "y": 0}, + {"matrix": [0, 8], "x": 9, "y": 0}, + {"matrix": [0, 9], "x": 10, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 7.25, "y": 1}, + {"matrix": [1, 7], "x": 8.25, "y": 1}, + {"matrix": [1, 8], "x": 9.25, "y": 1}, + {"matrix": [1, 9], "x": 10.25, "y": 1}, + {"matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.75}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 8.75, "y": 2}, + {"matrix": [2, 8], "x": 9.75, "y": 2}, + {"matrix": [2, 9], "x": 10.75, "y": 2}, + {"matrix": [2, 10], "x": 11.75, "y": 2}, + {"matrix": [2, 11], "x": 12.75, "y": 2, "w": 1.25}, + {"matrix": [3, 0], "x": 0.5, "y": 3, "w": 1.5}, + {"matrix": [3, 2], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3, "w": 2.25}, + {"matrix": [3, 7], "x": 7.5, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 12, "y": 3, "w": 1.5} + ] + } } - } } diff --git a/keyboards/pseusplit/keyboard.json b/keyboards/pseusplit/keyboard.json @@ -1,110 +1,110 @@ { - "manufacturer": "pngu.org", - "keyboard_name": "pseusplit", - "maintainer": "jack", - "bootloader": "stm32-dfu", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "nkro": true, - "pointing_device": true, - "quantum_painter": false, - "rgb_matrix": true - }, - "matrix_pins": { - "cols": ["C15", "C14", "C13", "B9", "B8", "A9", "A8", "B15", "B14", "B13"], - "rows": ["F1", "F0", "A10", "A15"] - }, - "processor": "STM32G0B1", - "rgb_matrix": { - "driver": "is31fl3733", - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0, "flags": 4 }, - { "matrix": [0, 1], "x": 25, "y": 0, "flags": 4 }, - { "matrix": [0, 2], "x": 50, "y": 0, "flags": 4 }, - { "matrix": [0, 3], "x": 75, "y": 0, "flags": 4 }, - { "matrix": [0, 4], "x": 100, "y": 0, "flags": 4 }, - { "matrix": [0, 5], "x": 125, "y": 0, "flags": 4 }, - { "matrix": [0, 6], "x": 150, "y": 0, "flags": 4 }, - { "matrix": [0, 7], "x": 175, "y": 0, "flags": 4 }, - { "matrix": [0, 8], "x": 200, "y": 0, "flags": 4 }, - { "matrix": [0, 9], "x": 224, "y": 0, "flags": 4 }, - { "matrix": [1, 0], "x": 0, "y": 21, "flags": 4 }, - { "matrix": [1, 1], "x": 25, "y": 21, "flags": 4 }, - { "matrix": [1, 2], "x": 50, "y": 21, "flags": 4 }, - { "matrix": [1, 3], "x": 75, "y": 21, "flags": 4 }, - { "matrix": [1, 4], "x": 100, "y": 21, "flags": 4 }, - { "matrix": [1, 5], "x": 125, "y": 21, "flags": 4 }, - { "matrix": [1, 6], "x": 150, "y": 21, "flags": 4 }, - { "matrix": [1, 7], "x": 175, "y": 21, "flags": 4 }, - { "matrix": [1, 8], "x": 200, "y": 21, "flags": 4 }, - { "matrix": [1, 9], "x": 224, "y": 21, "flags": 4 }, - { "matrix": [2, 0], "x": 0, "y": 42, "flags": 4 }, - { "matrix": [2, 1], "x": 25, "y": 42, "flags": 4 }, - { "matrix": [2, 2], "x": 50, "y": 42, "flags": 4 }, - { "matrix": [2, 3], "x": 75, "y": 42, "flags": 4 }, - { "matrix": [2, 4], "x": 100, "y": 42, "flags": 4 }, - { "matrix": [2, 5], "x": 125, "y": 42, "flags": 4 }, - { "matrix": [2, 6], "x": 150, "y": 42, "flags": 4 }, - { "matrix": [2, 7], "x": 175, "y": 42, "flags": 4 }, - { "matrix": [2, 8], "x": 200, "y": 42, "flags": 4 }, - { "matrix": [2, 9], "x": 224, "y": 42, "flags": 4 }, - { "matrix": [3, 2], "x": 50, "y": 64, "flags": 4 }, - { "matrix": [3, 3], "x": 75, "y": 64, "flags": 4 }, - { "matrix": [3, 4], "x": 100, "y": 64, "flags": 4 }, - { "matrix": [3, 5], "x": 125, "y": 64, "flags": 4 }, - { "matrix": [3, 6], "x": 150, "y": 64, "flags": 4 }, - { "matrix": [3, 7], "x": 175, "y": 64, "flags": 4 } - ] - }, - "url": "https://git.pngu.org/pseusplit", - "usb": { - "device_version": "1.0.0", - "pid": "0x7073", - "vid": "0x6A73" - }, - "layouts": { - "LAYOUT": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [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": [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": [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": [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 } - ] + "manufacturer": "pngu.org", + "keyboard_name": "pseusplit", + "maintainer": "jack", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "pointing_device": true, + "quantum_painter": false, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C15", "C14", "C13", "B9", "B8", "A9", "A8", "B15", "B14", "B13"], + "rows": ["F1", "F0", "A10", "A15"] + }, + "processor": "STM32G0B1", + "rgb_matrix": { + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 100, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 125, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 175, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 200, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 25, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 50, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 100, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 125, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 150, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 175, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 200, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 224, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, + {"matrix": [2, 1], "x": 25, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 50, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 75, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 100, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 125, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 150, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 175, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 200, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 224, "y": 42, "flags": 4}, + {"matrix": [3, 2], "x": 50, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 100, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 125, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 150, "y": 64, "flags": 4}, + {"matrix": [3, 7], "x": 175, "y": 64, "flags": 4} + ] + }, + "url": "https://git.pngu.org/pseusplit", + "usb": { + "device_version": "1.0.0", + "pid": "0x7073", + "vid": "0x6A73" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [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": [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": [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": [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} + ] + } } - } } diff --git a/keyboards/sweep/keyboard.json b/keyboards/sweep/keyboard.json @@ -1,146 +1,146 @@ { - "manufacturer": "pngu.org", - "keyboard_name": "sweep", - "maintainer": "jack", - "bootloader": "rp2040", - "features": { - "backlight": true, - "bootmagic": true, - "quantum_painter": true, - "rgb_matrix": true - }, - "backlight": { - "pin": "GP7" - }, - "matrix_pins": { - "direct": [ - ["GP18", "GP13", "GP12", "GP24", "GP22"], - ["GP16", "GP14", "GP10", "GP25", "GP21"], - ["GP17", "GP15", "GP11", "GP9", "GP23"], - [null, null, null, "GP19", "GP20"] - ] - }, - "processor": "RP2040", - "rgb_matrix": { - "driver": "ws2812", - "layout": [ - { "matrix": [3, 3], "x": 71, "y": 60, "flags": 4 }, - { "matrix": [3, 4], "x": 92, "y": 64, "flags": 4 }, - { "matrix": [2, 4], "x": 81, "y": 39, "flags": 4 }, - { "matrix": [2, 3], "x": 61, "y": 36, "flags": 4 }, - { "matrix": [2, 2], "x": 41, "y": 32, "flags": 4 }, - { "matrix": [2, 1], "x": 20, "y": 37, "flags": 4 }, - { "matrix": [2, 0], "x": 0, "y": 47, "flags": 4 }, - { "matrix": [1, 0], "x": 0, "y": 31, "flags": 4 }, - { "matrix": [1, 1], "x": 20, "y": 21, "flags": 4 }, - { "matrix": [1, 2], "x": 41, "y": 16, "flags": 4 }, - { "matrix": [1, 3], "x": 61, "y": 20, "flags": 4 }, - { "matrix": [1, 4], "x": 81, "y": 23, "flags": 4 }, - { "matrix": [0, 4], "x": 81, "y": 7, "flags": 4 }, - { "matrix": [0, 3], "x": 61, "y": 4, "flags": 4 }, - { "matrix": [0, 2], "x": 41, "y": 0, "flags": 4 }, - { "matrix": [0, 1], "x": 20, "y": 5, "flags": 4 }, - { "matrix": [0, 0], "x": 0, "y": 15, "flags": 4 }, - { "x": 10, "y": 14, "flags": 2 }, - { "x": 71, "y": 6, "flags": 2 }, - { "x": 83, "y": 56, "flags": 2 }, - { "x": 10, "y": 45, "flags": 2 }, - { "matrix": [7, 1], "x": 132, "y": 64, "flags": 4 }, - { "matrix": [7, 0], "x": 153, "y": 60, "flags": 4 }, - { "matrix": [6, 0], "x": 143, "y": 39, "flags": 4 }, - { "matrix": [6, 1], "x": 163, "y": 36, "flags": 4 }, - { "matrix": [6, 2], "x": 183, "y": 32, "flags": 4 }, - { "matrix": [6, 3], "x": 204, "y": 37, "flags": 4 }, - { "matrix": [6, 4], "x": 224, "y": 47, "flags": 4 }, - { "matrix": [5, 4], "x": 224, "y": 31, "flags": 4 }, - { "matrix": [5, 3], "x": 204, "y": 21, "flags": 4 }, - { "matrix": [5, 2], "x": 183, "y": 16, "flags": 4 }, - { "matrix": [5, 1], "x": 163, "y": 20, "flags": 4 }, - { "matrix": [5, 0], "x": 143, "y": 23, "flags": 4 }, - { "matrix": [4, 0], "x": 143, "y": 7, "flags": 4 }, - { "matrix": [4, 1], "x": 163, "y": 4, "flags": 4 }, - { "matrix": [4, 2], "x": 183, "y": 0, "flags": 4 }, - { "matrix": [4, 3], "x": 204, "y": 5, "flags": 4 }, - { "matrix": [4, 4], "x": 224, "y": 15, "flags": 4 }, - { "x": 214, "y": 14, "flags": 2 }, - { "x": 153, "y": 6, "flags": 2 }, - { "x": 144, "y": 56, "flags": 2 }, - { "x": 214, "y": 45, "flags": 2 } - ], - "split_count": [21, 21], - "sleep": true - }, - "split": { - "enabled": true, - "handedness": { - "pin": "GP8" + "manufacturer": "pngu.org", + "keyboard_name": "sweep", + "maintainer": "jack", + "backlight": { + "pin": "GP7" + }, + "bootloader": "rp2040", + "features": { + "backlight": true, + "bootmagic": true, + "quantum_painter": true, + "rgb_matrix": true }, "matrix_pins": { - "right": { "direct": [ - ["GP25", "GP21", "GP17", "GP16", "GP13"], - ["GP24", "GP20", "GP18", "GP15", "GP12"], - ["GP22", "GP23", "GP19", "GP14", "GP11"], - ["GP10", "GP9", null, null, null] + ["GP18", "GP13", "GP12", "GP24", "GP22"], + ["GP16", "GP14", "GP10", "GP25", "GP21"], + ["GP17", "GP15", "GP11", "GP9", "GP23"], + [null, null, null, "GP19", "GP20"] ] - } }, - "serial": { - "driver": "vendor" - } - }, - "url": "https://git.pngu.org/sweep", - "usb": { - "device_version": "1.0.0", - "pid": "0x7370", - "vid": "0x6A73" - }, - "ws2812": { - "driver": "vendor", - "pin": "GP2" - }, - "community_layouts": ["split_3x5_2"], - "layout_aliases": { - "LAYOUT": "LAYOUT_split_3x5_2" - }, - "layouts": { - "LAYOUT_split_3x5_2": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0.25 }, - { "matrix": [0, 1], "x": 1, "y": 0.125 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0.125 }, - { "matrix": [0, 4], "x": 4, "y": 0.25 }, - { "matrix": [4, 0], "x": 7, "y": 0.25 }, - { "matrix": [4, 1], "x": 8, "y": 0.125 }, - { "matrix": [4, 2], "x": 9, "y": 0 }, - { "matrix": [4, 3], "x": 10, "y": 0.125 }, - { "matrix": [4, 4], "x": 11, "y": 0.25 }, - { "matrix": [1, 0], "x": 0, "y": 1.25 }, - { "matrix": [1, 1], "x": 1, "y": 1.125 }, - { "matrix": [1, 2], "x": 2, "y": 1 }, - { "matrix": [1, 3], "x": 3, "y": 1.125 }, - { "matrix": [1, 4], "x": 4, "y": 1.25 }, - { "matrix": [5, 0], "x": 7, "y": 1.25 }, - { "matrix": [5, 1], "x": 8, "y": 1.125 }, - { "matrix": [5, 2], "x": 9, "y": 1 }, - { "matrix": [5, 3], "x": 10, "y": 1.125 }, - { "matrix": [5, 4], "x": 11, "y": 1.25 }, - { "matrix": [2, 0], "x": 0, "y": 2.25 }, - { "matrix": [2, 1], "x": 1, "y": 2.125 }, - { "matrix": [2, 2], "x": 2, "y": 2 }, - { "matrix": [2, 3], "x": 3, "y": 2.125 }, - { "matrix": [2, 4], "x": 4, "y": 2.25 }, - { "matrix": [6, 0], "x": 7, "y": 2.25 }, - { "matrix": [6, 1], "x": 8, "y": 2.125 }, - { "matrix": [6, 2], "x": 9, "y": 2 }, - { "matrix": [6, 3], "x": 10, "y": 2.125 }, - { "matrix": [6, 4], "x": 11, "y": 2.25 }, - { "matrix": [3, 3], "x": 3.5, "y": 3.25 }, - { "matrix": [3, 4], "x": 4.5, "y": 3.5 }, - { "matrix": [7, 0], "x": 6.5, "y": 3.5 }, - { "matrix": [7, 1], "x": 7.5, "y": 3.25 } - ] + "processor": "RP2040", + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [3, 3], "x": 71, "y": 60, "flags": 4}, + {"matrix": [3, 4], "x": 92, "y": 64, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 39, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 36, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 20, "y": 37, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 47, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 31, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 41, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 23, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 7, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 4, "flags": 4}, + {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 20, "y": 5, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 15, "flags": 4}, + {"x": 10, "y": 14, "flags": 2}, + {"x": 71, "y": 6, "flags": 2}, + {"x": 83, "y": 56, "flags": 2}, + {"x": 10, "y": 45, "flags": 2}, + {"matrix": [7, 1], "x": 132, "y": 64, "flags": 4}, + {"matrix": [7, 0], "x": 153, "y": 60, "flags": 4}, + {"matrix": [6, 0], "x": 143, "y": 39, "flags": 4}, + {"matrix": [6, 1], "x": 163, "y": 36, "flags": 4}, + {"matrix": [6, 2], "x": 183, "y": 32, "flags": 4}, + {"matrix": [6, 3], "x": 204, "y": 37, "flags": 4}, + {"matrix": [6, 4], "x": 224, "y": 47, "flags": 4}, + {"matrix": [5, 4], "x": 224, "y": 31, "flags": 4}, + {"matrix": [5, 3], "x": 204, "y": 21, "flags": 4}, + {"matrix": [5, 2], "x": 183, "y": 16, "flags": 4}, + {"matrix": [5, 1], "x": 163, "y": 20, "flags": 4}, + {"matrix": [5, 0], "x": 143, "y": 23, "flags": 4}, + {"matrix": [4, 0], "x": 143, "y": 7, "flags": 4}, + {"matrix": [4, 1], "x": 163, "y": 4, "flags": 4}, + {"matrix": [4, 2], "x": 183, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 204, "y": 5, "flags": 4}, + {"matrix": [4, 4], "x": 224, "y": 15, "flags": 4}, + {"x": 214, "y": 14, "flags": 2}, + {"x": 153, "y": 6, "flags": 2}, + {"x": 144, "y": 56, "flags": 2}, + {"x": 214, "y": 45, "flags": 2} + ], + "sleep": true, + "split_count": [21, 21] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP8" + }, + "matrix_pins": { + "right": { + "direct": [ + ["GP25", "GP21", "GP17", "GP16", "GP13"], + ["GP24", "GP20", "GP18", "GP15", "GP12"], + ["GP22", "GP23", "GP19", "GP14", "GP11"], + ["GP10", "GP9", null, null, null] + ] + } + }, + "serial": { + "driver": "vendor" + } + }, + "url": "https://git.pngu.org/sweep", + "usb": { + "device_version": "1.0.0", + "pid": "0x7370", + "vid": "0x6A73" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP2" + }, + "community_layouts": ["split_3x5_2"], + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x5_2" + }, + "layouts": { + "LAYOUT_split_3x5_2": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0.125}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.125}, + {"matrix": [0, 4], "x": 4, "y": 0.25}, + {"matrix": [4, 0], "x": 7, "y": 0.25}, + {"matrix": [4, 1], "x": 8, "y": 0.125}, + {"matrix": [4, 2], "x": 9, "y": 0}, + {"matrix": [4, 3], "x": 10, "y": 0.125}, + {"matrix": [4, 4], "x": 11, "y": 0.25}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.125}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.125}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [5, 0], "x": 7, "y": 1.25}, + {"matrix": [5, 1], "x": 8, "y": 1.125}, + {"matrix": [5, 2], "x": 9, "y": 1}, + {"matrix": [5, 3], "x": 10, "y": 1.125}, + {"matrix": [5, 4], "x": 11, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.125}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.125}, + {"matrix": [2, 4], "x": 4, "y": 2.25}, + {"matrix": [6, 0], "x": 7, "y": 2.25}, + {"matrix": [6, 1], "x": 8, "y": 2.125}, + {"matrix": [6, 2], "x": 9, "y": 2}, + {"matrix": [6, 3], "x": 10, "y": 2.125}, + {"matrix": [6, 4], "x": 11, "y": 2.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3.25}, + {"matrix": [3, 4], "x": 4.5, "y": 3.5}, + {"matrix": [7, 0], "x": 6.5, "y": 3.5}, + {"matrix": [7, 1], "x": 7.5, "y": 3.25} + ] + } } - } } diff --git a/keyboards/xyz60/keyboard.json b/keyboards/xyz60/keyboard.json @@ -1,83 +1,83 @@ { - "keyboard_name": "xyz60", - "manufacturer": "jacks", - "maintainer": "pngu.org", - "processor": "STM32F103", - "bootloader": "stm32duino", - "diode_direction": "COL2ROW", - "matrix_pins": { - "cols": ["B13", "B8", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"], - "rows": ["B7", "B9", "B12", "B14", "B15"] - }, - "usb": { - "pid": "0x7879", - "vid": "0x6A73", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT_60_ansi_tsangan": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 0, "y": 0}, - {"matrix": [0, 2], "x": 0, "y": 0}, - {"matrix": [0, 3], "x": 0, "y": 0}, - {"matrix": [0, 4], "x": 0, "y": 0}, - {"matrix": [0, 5], "x": 0, "y": 0}, - {"matrix": [0, 6], "x": 0, "y": 0}, - {"matrix": [0, 7], "x": 0, "y": 0}, - {"matrix": [0, 8], "x": 0, "y": 0}, - {"matrix": [0, 9], "x": 0, "y": 0}, - {"matrix": [0, 10], "x": 0, "y": 0}, - {"matrix": [0, 11], "x": 0, "y": 0}, - {"matrix": [0, 12], "x": 0, "y": 0}, - {"matrix": [0, 14], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 0}, - {"matrix": [1, 1], "x": 0, "y": 0}, - {"matrix": [1, 2], "x": 0, "y": 0}, - {"matrix": [1, 3], "x": 0, "y": 0}, - {"matrix": [1, 4], "x": 0, "y": 0}, - {"matrix": [1, 5], "x": 0, "y": 0}, - {"matrix": [1, 6], "x": 0, "y": 0}, - {"matrix": [1, 7], "x": 0, "y": 0}, - {"matrix": [1, 8], "x": 0, "y": 0}, - {"matrix": [1, 9], "x": 0, "y": 0}, - {"matrix": [1, 10], "x": 0, "y": 0}, - {"matrix": [1, 11], "x": 0, "y": 0}, - {"matrix": [1, 12], "x": 0, "y": 0}, - {"matrix": [1, 13], "x": 0, "y": 0}, - {"matrix": [2, 0], "x": 0, "y": 0}, - {"matrix": [2, 1], "x": 0, "y": 0}, - {"matrix": [2, 2], "x": 0, "y": 0}, - {"matrix": [2, 3], "x": 0, "y": 0}, - {"matrix": [2, 4], "x": 0, "y": 0}, - {"matrix": [2, 5], "x": 0, "y": 0}, - {"matrix": [2, 6], "x": 0, "y": 0}, - {"matrix": [2, 7], "x": 0, "y": 0}, - {"matrix": [2, 8], "x": 0, "y": 0}, - {"matrix": [2, 9], "x": 0, "y": 0}, - {"matrix": [2, 10], "x": 0, "y": 0}, - {"matrix": [2, 11], "x": 0, "y": 0}, - {"matrix": [2, 13], "x": 0, "y": 0}, - {"matrix": [3, 0], "x": 0, "y": 0}, - {"matrix": [3, 2], "x": 0, "y": 0}, - {"matrix": [3, 3], "x": 0, "y": 0}, - {"matrix": [3, 4], "x": 0, "y": 0}, - {"matrix": [3, 5], "x": 0, "y": 0}, - {"matrix": [3, 6], "x": 0, "y": 0}, - {"matrix": [3, 7], "x": 0, "y": 0}, - {"matrix": [3, 8], "x": 0, "y": 0}, - {"matrix": [3, 9], "x": 0, "y": 0}, - {"matrix": [3, 10], "x": 0, "y": 0}, - {"matrix": [3, 11], "x": 0, "y": 0}, - {"matrix": [3, 13], "x": 0, "y": 0}, - {"matrix": [4, 0], "x": 0, "y": 0}, - {"matrix": [4, 1], "x": 0, "y": 0}, - {"matrix": [4, 2], "x": 0, "y": 0}, - {"matrix": [4, 6], "x": 0, "y": 0}, - {"matrix": [4, 11], "x": 0, "y": 0}, - {"matrix": [4, 12], "x": 0, "y": 0}, - {"matrix": [4, 13], "x": 0, "y": 0} - ] + "manufacturer": "jack", + "keyboard_name": "xyz60", + "maintainer": "pngu.org", + "bootloader": "stm32duino", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B13", "B8", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"], + "rows": ["B7", "B9", "B12", "B14", "B15"] + }, + "processor": "STM32F103", + "usb": { + "device_version": "0.0.1", + "pid": "0x7879", + "vid": "0x6A73" + }, + "layouts": { + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 0, "y": 0}, + {"matrix": [0, 3], "x": 0, "y": 0}, + {"matrix": [0, 4], "x": 0, "y": 0}, + {"matrix": [0, 5], "x": 0, "y": 0}, + {"matrix": [0, 6], "x": 0, "y": 0}, + {"matrix": [0, 7], "x": 0, "y": 0}, + {"matrix": [0, 8], "x": 0, "y": 0}, + {"matrix": [0, 9], "x": 0, "y": 0}, + {"matrix": [0, 10], "x": 0, "y": 0}, + {"matrix": [0, 11], "x": 0, "y": 0}, + {"matrix": [0, 12], "x": 0, "y": 0}, + {"matrix": [0, 14], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [1, 1], "x": 0, "y": 0}, + {"matrix": [1, 2], "x": 0, "y": 0}, + {"matrix": [1, 3], "x": 0, "y": 0}, + {"matrix": [1, 4], "x": 0, "y": 0}, + {"matrix": [1, 5], "x": 0, "y": 0}, + {"matrix": [1, 6], "x": 0, "y": 0}, + {"matrix": [1, 7], "x": 0, "y": 0}, + {"matrix": [1, 8], "x": 0, "y": 0}, + {"matrix": [1, 9], "x": 0, "y": 0}, + {"matrix": [1, 10], "x": 0, "y": 0}, + {"matrix": [1, 11], "x": 0, "y": 0}, + {"matrix": [1, 12], "x": 0, "y": 0}, + {"matrix": [1, 13], "x": 0, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 0}, + {"matrix": [2, 1], "x": 0, "y": 0}, + {"matrix": [2, 2], "x": 0, "y": 0}, + {"matrix": [2, 3], "x": 0, "y": 0}, + {"matrix": [2, 4], "x": 0, "y": 0}, + {"matrix": [2, 5], "x": 0, "y": 0}, + {"matrix": [2, 6], "x": 0, "y": 0}, + {"matrix": [2, 7], "x": 0, "y": 0}, + {"matrix": [2, 8], "x": 0, "y": 0}, + {"matrix": [2, 9], "x": 0, "y": 0}, + {"matrix": [2, 10], "x": 0, "y": 0}, + {"matrix": [2, 11], "x": 0, "y": 0}, + {"matrix": [2, 13], "x": 0, "y": 0}, + {"matrix": [3, 0], "x": 0, "y": 0}, + {"matrix": [3, 2], "x": 0, "y": 0}, + {"matrix": [3, 3], "x": 0, "y": 0}, + {"matrix": [3, 4], "x": 0, "y": 0}, + {"matrix": [3, 5], "x": 0, "y": 0}, + {"matrix": [3, 6], "x": 0, "y": 0}, + {"matrix": [3, 7], "x": 0, "y": 0}, + {"matrix": [3, 8], "x": 0, "y": 0}, + {"matrix": [3, 9], "x": 0, "y": 0}, + {"matrix": [3, 10], "x": 0, "y": 0}, + {"matrix": [3, 11], "x": 0, "y": 0}, + {"matrix": [3, 13], "x": 0, "y": 0}, + {"matrix": [4, 0], "x": 0, "y": 0}, + {"matrix": [4, 1], "x": 0, "y": 0}, + {"matrix": [4, 2], "x": 0, "y": 0}, + {"matrix": [4, 6], "x": 0, "y": 0}, + {"matrix": [4, 11], "x": 0, "y": 0}, + {"matrix": [4, 12], "x": 0, "y": 0}, + {"matrix": [4, 13], "x": 0, "y": 0} + ] + } } - } } diff --git a/keymaps/kyria/readme.md b/keymaps/kyria/readme.md @@ -1,16 +0,0 @@ -### rp2040 kyria rev2 -![photo](https://i.imgur.com/P0urp7n.jpeg) - -#### parts & notes -* microcontrollers: [boardsource blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) - -* [35mm cirque trackpad](https://www.mouser.com/ProductDetail/Cirque/TM035035-2024-003?qs=sGAEpiMZZMu3sxpa5v1qrmePy6bg6o9msS9wwvLw9t0%3D) and [holder](https://www.thingiverse.com/thing:5385829) - -to use I2C, R1 resistor must be removed. -luckily, the I2C pins are broken out, as i didn't bother using the FPC connector on the trackpad. -from there, wired trackpad directly to oled header pins on pcb. looks a bit iffy... -![trackpad wiring](https://i.imgur.com/tvLVEe0.jpeg) - -* [pucks](https://splitkb.com/collections/keyboard-parts/products/tenting-puck) and [tripods](https://www.amazon.com/Manfrotto-MP3-BK-Large-Pocket-Support/dp/B00HCAB8MU) for tenting-puck - -* wpm graph is very resource intensive and drops matrix scan rate to ~200/s... diff --git a/readme.md b/readme.md @@ -18,4 +18,4 @@ The official external [userspace feature](https://docs.qmk.fm/newbs_external_use ### layout A simple 34-key layout that makes use of 2 (primary) layers, home-row mods, & combos for many symbols. Mostly used in Sway, Vim (C, Python), & other generic computing tasks. -![layout](img/layout.svg) +![layout](util/layout.svg) diff --git a/util/keymap.yaml b/util/keymap.yaml @@ -29,7 +29,7 @@ layers: $$mdi:volume-minus$$, $$mdi:keyboard-tab$$, $$mdi:apple-keyboard-caps$$, - "Sel Wrd", {t: "`", s: "~"}, + "Remove", {t: "`", s: "~"}, $$mdi:arrow-left$$, $$mdi:arrow-down$$, $$mdi:arrow-up$$, diff --git a/img/layout.svg b/util/layout.svg diff --git a/util/link.sh b/util/link.sh @@ -1,4 +1,5 @@ -#!/bin/zsh +#!/bin/sh + QMKME="$HOME/git/qmk_me" QMKFIRMWARE="$HOME/git/qmk_firmware" @@ -15,17 +16,16 @@ for dir in "keyboards"/*; do echo "$dir" >> $QMKFIRMWARE/.git/info/exclude done -link() { +link_keymap() { src="$QMKME/keymaps/$1" dst="$QMKFIRMWARE/keyboards/$2/keymaps/jack" ln -sv $src $dst echo "keyboards/$2/keymaps/jack" >> $QMKFIRMWARE/.git/info/exclude } -link crkbd crkbd -link beiwagon boardsource/beiwagon -link bully mkh_studio/bully -link f60 bioi/f60 -link kyria splitkb/kyria -link relic projectcain/relic -link vault35 projectcain/vault35 +link_keymap beiwagon boardsource/beiwagon +link_keymap bully mkh_studio/bully +link_keymap f60 bioi/f60 +link_keymap kyria splitkb/kyria +link_keymap relic projectcain/relic +link_keymap vault35 projectcain/vault35