commit 4865b38287c147c7bf51c8bac7337576bf1a714c
parent a28e7903834c96ebd89560baddddc30a581e6fdb
Author: Jack Sangdahl <jack@pngu.org>
Date: Tue, 9 Sep 2025 16:33:24 -0600
Miscellaneous changes
Diffstat:
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
-
-
-#### 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...
-
-
-* [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.
-
+
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