Merge branch 'vial' of https://github.com/stanrc85/vial-qmk into ironergo

This commit is contained in:
stanrc85 2025-02-25 11:39:18 -05:00
commit f2ed49e010
117 changed files with 5697 additions and 672 deletions

View file

@ -25,7 +25,7 @@ ifeq ($(strip $(QMK_SETTINGS)), yes)
SRC += $(QUANTUM_DIR)/qmk_settings.c
OPT_DEFS += -DQMK_SETTINGS \
-DAUTO_SHIFT_NO_SETUP -DAUTO_SHIFT_REPEAT_PER_KEY -DAUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY \
-DPERMISSIVE_HOLD_PER_KEY -DHOLD_ON_OTHER_KEY_PRESS_PER_KEY -DTAPPING_FORCE_HOLD_PER_KEY -DRETRO_TAPPING_PER_KEY \
-DPERMISSIVE_HOLD_PER_KEY -DHOLD_ON_OTHER_KEY_PRESS_PER_KEY -DQUICK_TAP_TERM_PER_KEY -DRETRO_TAPPING_PER_KEY \
-DCOMBO_TERM_PER_COMBO
endif

View file

@ -0,0 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x09, 0xB9, 0xBD, 0xB8, 0xB8, 0x6A, 0x2A, 0xA7}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }

View file

@ -0,0 +1,61 @@
/* Copyright 2022 ziptyze
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT,
KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_TRNS, KC_APP, KC_RCTL
),
[1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif

View file

@ -0,0 +1,9 @@
# pi60:vial
Shows all keymaps like in via, except for 2U Shift ones. No functionality sacrificed.
Rotary Encoder is disabled, because it's not tested.
---
Ported to Vial by [theNizo](https://github.com/theNizo/).

View file

@ -0,0 +1,5 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
ENCODER_MAP_ENABLE = no
VIALRGB_ENABLE = yes

View file

@ -0,0 +1,97 @@
{
"lighting": "vialrgb",
"matrix": {
"rows": 5,
"cols": 16
},
"layouts": {
"labels": [
[
"Backspace",
"2U",
"1/1",
"1/enc"
],
"Split Left Shift",
[
"Enter",
"ANSI - 1/1.25",
"ANSI - 1.25/1",
"ANSI",
"ISO"
],
[
"Right Shift",
"1.75/1/1",
"1/1.75/1",
"1/1/1",
"1/2.75",
"1.75/1/enc",
"1/1.75/enc",
"1/1/enc"
],
[
"Spacebar",
"6.25U - 2.75/1.25/2.25",
"6.25U - 2.25/1.25/2.75",
"6.25U",
"6U",
"7U",
"7U - 2.75/1.5/2.75",
"7U - 3/1/3",
"7U - 3/enc/3",
"10U"
],
[
"Left Cluster",
"6.25U - 1.25/1.25/1.25",
"6.25U - 1.5/1/1.25",
"6U/7U - 1.25/1.25/1.5",
"6U/7U - 1.5/1/1.5",
"10U - 1.25/1.25",
"10U - 1.5/1"
],
[
"Right Cluster",
"6.25U/6U - 1/1/1/1/1",
"6.25U/6U - 1.25/1.25/1.25/1.25",
"6.25U/6U - 1.25/1.25/1/1.5",
"6.25U/6U - 1/1.5/1.25/1.25",
"6.25U/6U - 1/1.5/1/1.5",
"7U - 1/1/1/1",
"7U - 1.5/1.25/1.25",
"7U - 1.5/1/1.5",
"10U - 1.25/1.25",
"10U - 1/1.5"
]
],
"keymap": [
[{"x":2.5},"0,0","0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","0,9","0,10","0,11","0,12",{"w":2},"0,13\n\n\n0,0",{"x":0.25},"0,13\n\n\n0,1","0,14\n\n\n0,1",{"x":0.25},"0,13\n\n\n0,2","0,14\n\n\n0,2\n\n\n\n\n\ne"],[{"x":2.5,"w":1.5},"1,0","1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9","1,10","1,11","1,12",{"w":1.5},"1,13\n\n\n2,0",{"x":1,"w":1.5},"1,13\n\n\n2,1",{"x":1,"w":1.5},"1,13\n\n\n2,2",{"x":1.25,"w":1.25,"h":2,"w2":1.5,"h2":1,"x2":-0.25},"2,13\n\n\n2,3"],[{"x":2.5,"w":1.75},"2,15","2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10","2,11","2,12\n\n\n2,0",{"w":1.25},"2,13\n\n\n2,0",{"x":0.25,"w":1.25},"2,12\n\n\n2,1","2,13\n\n\n2,1",{"x":0.25,"w":2.25},"2,13\n\n\n2,2",{"x":0.25},"2,12\n\n\n2,3"],
[{"w":1.25},"3,15\n\n\n1,1","3,1\n\n\n1,1",{"x":0.25,"w":2.25},"3,15\n\n\n1,0","3,2","3,3","3,4","3,5","3,6","3,7","3,8","3,9","3,10",{"w":1.75},"3,11\n\n\n3,0","3,12\n\n\n3,0","3,14\n\n\n3,0",{"x":0.25},"3,11\n\n\n3,1",{"w":1.75},"3,12\n\n\n3,1","3,14\n\n\n3,1"],
[{"w":6.25,"d":true},"\n\n\n4,0",{"x":-6.25,"w":12.5,"d":true},"\n\n\n6,0",{"x":-10,"w":1.25},"4,15\n\n\n5,0",{"w":1.25},"4,1\n\n\n5,0",{"w":1.25},"4,2\n\n\n5,0",{"w":2.75},"4,4\n\n\n4,0",{"w":1.25},"4,6\n\n\n4,0",{"w":2.25},"4,8\n\n\n4,0","4,10\n\n\n6,0","4,11\n\n\n6,0","4,12\n\n\n6,0","4,13\n\n\n6,0","4,14\n\n\n6,0",{"x":0.25},"3,11\n\n\n3,2",{"x":0.75},"3,12\n\n\n3,2","3,14\n\n\n3,2"],
[{"x":2.5,"w":1.5},"4,15\n\n\n5,1","4,1\n\n\n5,1",{"w":1.25},"4,2\n\n\n5,1",{"x":11.5},"3,11\n\n\n3,3",{"w":2.754},"3,12\n\n\n3,3"],
[{"x":2.5,"w":1.25},"4,15\n\n\n5,2",{"w":1.25},"4,1\n\n\n5,2",{"w":1.5},"4,2\n\n\n5,2",{"x":11.25,"w":1.75},"3,11\n\n\n3,4","3,12\n\n\n3,4","3,14\n\n\n3,4\n\n\n\n\n\ne"],
[{"x":2.5,"w":1.5},"4,15\n\n\n5,3","4,1\n\n\n5,3",{"w":1.5},"4,2\n\n\n5,3",{"x":11.25},"3,11\n\n\n3,5",{"w":1.75},"3,12\n\n\n3,5","3,14\n\n\n3,5\n\n\n\n\n\ne"],
[{"x":2.5,"w":1.25},"4,15\n\n\n5,4",{"w":1.25},"4,1\n\n\n5,4",{"x":12.75},"3,11\n\n\n3,6",{"x":0.75},"3,12\n\n\n3,6","3,14\n\n\n3,6\n\n\n\n\n\ne"],
[{"x":2.5,"w":1.5},"4,15\n\n\n5,5","4,1\n\n\n5,5"],
[{"w":6.25,"d":true},"\n\n\n4,1",{"w":2.25},"4,4\n\n\n4,1",{"w":1.25},"4,6\n\n\n4,1",{"w":2.75},"4,8\n\n\n4,1"],
[{"w":6.25,"d":true},"\n\n\n4,2",{"w":6.25},"4,6\n\n\n4,2"],
[{"w":6.5,"d":true},"\n\n\n4,3",{"w":6},"4,6\n\n\n4,3"],
[{"w":6.5,"d":true},"\n\n\n4,4",{"w":7},"4,6\n\n\n4,4"],
[{"w":6.5,"d":true},"\n\n\n4,5",{"w":2.75},"4,4\n\n\n4,5",{"w":1.5},"4,6\n\n\n4,5",{"w":2.75},"4,8\n\n\n4,5"],
[{"w":6.5,"d":true},"\n\n\n4,6",{"w":3},"4,4\n\n\n4,6","4,6\n\n\n4,6",{"w":3},"4,8\n\n\n4,6"],
[{"w":6.5,"d":true},"\n\n\n4,7",{"w":3},"4,4\n\n\n4,7","4,6\n\n\n4,7\n\n\n\n\n\ne",{"w":3},"4,8\n\n\n4,7"],
[{"w":5,"d":true},"\n\n\n4,8",{"w":10},"4,6\n\n\n4,8"],
[{"y":0.25,"w":12.5,"d":true},"\n\n\n6,1",{"w":1.25},"4,10\n\n\n6,1",{"w":1.25},"4,11\n\n\n6,1",{"w":1.25},"4,13\n\n\n6,1",{"w":1.25},"4,14\n\n\n6,1"],
[{"w":12.5,"d":true},"\n\n\n6,2",{"w":1.25},"4,10\n\n\n6,2",{"w":1.25},"4,11\n\n\n6,2","4,13\n\n\n6,2",{"w":1.5},"4,14\n\n\n6,2"],
[{"w":12.5,"d":true},"\n\n\n6,3","4,10\n\n\n6,3",{"w":1.5},"4,11\n\n\n6,3",{"w":1.25},"4,13\n\n\n6,3",{"w":1.25},"4,14\n\n\n6,3"],
[{"w":12.5,"d":true},"\n\n\n6,4","4,10\n\n\n6,4",{"w":1.5},"4,11\n\n\n6,4","4,13\n\n\n6,4",{"w":1.5},"4,14\n\n\n6,4"],
[{"w":13.5,"d":true},"\n\n\n6,5","4,11\n\n\n6,5","4,12\n\n\n6,5","4,13\n\n\n6,5","4,14\n\n\n6,5"],
[{"w":13.5,"d":true},"\n\n\n6,6",{"w":1.5},"4,11\n\n\n6,6",{"w":1.25},"4,13\n\n\n6,6",{"w":1.25},"4,14\n\n\n6,6"],
[{"w":13.5,"d":true},"\n\n\n6,7",{"w":1.5},"4,11\n\n\n6,7","4,13\n\n\n6,7",{"w":1.5},"4,14\n\n\n6,7"],
[{"w":15,"d":true},"\n\n\n6,8",{"w":1.25},"4,13\n\n\n6,8",{"w":1.25},"4,14\n\n\n6,8"],
[{"w":15,"d":true},"\n\n\n6,9","4,13\n\n\n6,9",{"w":1.5},"4,14\n\n\n6,9"]
]
}
}

View file

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x4F, 0x61, 0xF4, 0xA5, 0x22, 0x84, 0xD5, 0xDC}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 14 }

View file

@ -0,0 +1,38 @@
/* Copyright 2020 Gondolindrim
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#define SPC_L2 LT(2, KC_SPACE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* Base */
KC_ESC , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_KP_7, KC_KP_8, KC_KP_9,
KC_TAB , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, KC_KP_4, KC_KP_5, KC_KP_6,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, MO(1) , KC_UP, KC_KP_1, KC_KP_2, KC_KP_3,
KC_LCTL, KC_LWIN, KC_LALT, SPC_L2, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_0, KC_DOT
),
[1] = LAYOUT( /* Base */
KC_F1, KC_F2, KC_F2, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_NUM, KC_SCRL, KC_CAPS,
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS
),
[2] = LAYOUT( /* Base */
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View file

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

View file

@ -0,0 +1,153 @@
{
"matrix": {
"rows": 5,
"cols": 15
},
"lighting": "qmk_backlight_rgblight",
"layouts": {
"keymap": [
[
{
"c": "#777777"
},
"0,0",
{
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
"0,10",
{
"c": "#aaaaaa"
},
"0,11",
{
"x": 0.5,
"c": "#cccccc"
},
"0,12",
"0,13",
"0,14"
],
[
{
"c": "#aaaaaa",
"w": 1.25
},
"1,0",
{
"c": "#cccccc"
},
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
{
"c": "#777777",
"w": 1.75
},
"1,11",
{
"x": 0.5,
"c": "#cccccc"
},
"1,12",
"1,13",
"1,14"
],
[
{
"c": "#aaaaaa",
"w": 1.75
},
"2,0",
{
"c": "#cccccc"
},
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
{
"c": "#aaaaaa",
"w": 1.25
},
"2,10",
{
"x": 1.5,
"c": "#cccccc"
},
"4,12",
"4,13",
"4,14"
],
[
{
"y": -0.75,
"x": 11.25,
"c": "#777777"
},
"4,11"
],
[
{
"y": -0.25,
"c": "#aaaaaa",
"w": 1.25
},
"3,0",
"3,1",
{
"w": 1.25
},
"3,2",
{
"c": "#cccccc",
"w": 2.25
},
"3,4",
{
"x": 0.5,
"w": 2.75
},
"3,7",
{
"c": "#aaaaaa"
},
"3,9",
{
"x": 3.5,
"c": "#cccccc"
},
"3,13",
"3,14"
],
[
{
"y": -0.75,
"x": 10.25,
"c": "#777777"
},
"3,10",
"3,11",
"3,12"
]
]
}
}

View file

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x23, 0x09, 0x00, 0x2A, 0x2F, 0x0C, 0xEC, 0x26}
#define VIAL_UNLOCK_COMBO_ROWS {0, 2}
#define VIAL_UNLOCK_COMBO_COLS {0, 14}

View file

@ -0,0 +1,28 @@
{
"version": 1,
"keyboard": "archerkeyboard/desire65",
"keymap": "vial",
"layout": "LAYOUT_65_ansi_blocker_tsangan_split_bs",
"layers": [
[
"KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSLS", "KC_BSPC", "KC_HOME",
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_END",
"KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", "KC_PGUP",
"KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_UP", "KC_PGDN",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "MO(1)", "KC_LEFT", "KC_DOWN", "KC_RIGHT"
],
[
"KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "KC_DEL", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_INS", "_______", "KC_PSCR", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "KC_CALC", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_MPLY", "KC_VOLU", "_______",
"_______", "_______", "_______", "_______", "_______", "KC_MPRV", "KC_VOLD", "KC_MNXT"
]
],
"config": {
"features": {
"via": true,
"vial": true
}
}
}

View file

@ -0,0 +1,148 @@
{
"name": "desire65",
"vendorId": "0x0361",
"productId": "0x0002",
"lighting": "qmk_rgblight",
"keycodes": [
"qmk_lighting"
],
"matrix": {
"rows": 5,
"cols": 16
},
"layouts": {
"labels": [
"Split Backspace"
],
"keymap": [
[
"0,0",
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
"0,10",
"0,11",
"0,12",
{
"c": "#c5c74a",
"w": 2
},
"0,14\n\n\n0,0",
{
"c": "#cccccc"
},
"0,15",
{
"x": 0.25,
"c": "#c5c74a"
},
"0,13\n\n\n0,1",
"0,14\n\n\n0,1"
],
[
{
"c": "#cccccc",
"w": 1.5
},
"1,0",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
"1,11",
"1,12",
"1,13",
{
"w": 1.5
},
"1,14",
"1,15"
],
[
{
"w": 1.25,
"w2": 1.75,
"l": true
},
"2,0",
{
"x": 0.5
},
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
"2,12",
{
"w": 2.25
},
"2,14",
"2,15"
],
[
{
"w": 2.25
},
"3,0",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"w": 1.75
},
"3,13",
"3,14",
"3,15"
],
[
{
"w": 1.5
},
"4,0",
"4,2",
{
"w": 1.5
},
"4,3",
{
"w": 7
},
"4,7",
{
"w": 1.5
},
"4,11",
{
"x": 0.5
},
"4,13",
"4,14",
"4,15"
]
]
}
}

View file

@ -0,0 +1,9 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xA8, 0xC1, 0xD3, 0xF5, 0xBA, 0x3D, 0x64, 0x04}
// Esc + Enter
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 14 }

View file

@ -0,0 +1,45 @@
/*
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_names {
_BASE,
_FN1,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_all(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
),
[_FN1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, QK_BOOT
)
};

View file

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

View file

@ -0,0 +1,223 @@
{
"matrix": {
"rows": 5,
"cols": 15
},
"layouts": {
"labels": [
"Split Backspace",
"ISO Enter",
"Split L Shift",
"Full R Shift",
"6.25U Bottom Row"
],
"keymap": [
[
{
"x": 2.5,
"c": "#777777"
},
"0,0",
{
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
"0,10",
"0,11",
"0,12",
{
"c": "#aaaaaa",
"w": 2
},
"0,13\n\n\n0,0",
{
"x": 1
},
"0,13\n\n\n0,1",
"0,14\n\n\n0,1"
],
[
{
"x": 2.5,
"w": 1.5
},
"1,0",
{
"c": "#cccccc"
},
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
"1,11",
"1,12",
{
"c": "#aaaaaa",
"w": 1.5
},
"1,14\n\n\n1,0",
{
"x": 1.75,
"c": "#777777",
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2,14\n\n\n1,1"
],
[
{
"x": 2.5,
"c": "#aaaaaa",
"w": 1.75
},
"2,0",
{
"c": "#cccccc"
},
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
{
"c": "#777777",
"w": 2.25
},
"2,14\n\n\n1,0",
{
"x": 0.75,
"c": "#aaaaaa"
},
"2,12\n\n\n1,1"
],
[
{
"w": 1.25
},
"3,0\n\n\n2,1",
{
"c": "#cccccc"
},
"3,1\n\n\n2,1",
{
"x": 0.25,
"c": "#aaaaaa",
"w": 2.25
},
"3,0\n\n\n2,0",
{
"c": "#cccccc"
},
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"c": "#aaaaaa",
"w": 1.75
},
"3,12\n\n\n3,0",
"3,14\n\n\n3,0",
{
"x": 0.25,
"w": 2.75
},
"3,12\n\n\n3,1"
],
[
{
"x": 2.5,
"w": 1.5
},
"4,0\n\n\n4,0",
"4,1\n\n\n4,0",
{
"w": 1.5
},
"4,2\n\n\n4,0",
{
"c": "#cccccc",
"w": 7
},
"4,6\n\n\n4,0",
{
"c": "#aaaaaa",
"w": 1.5
},
"4,11\n\n\n4,0",
"4,12\n\n\n4,0",
{
"w": 1.5
},
"4,14\n\n\n4,0"
],
[
{
"y": 0.25,
"x": 2.5,
"w": 1.25
},
"4,0\n\n\n4,1",
{
"w": 1.25
},
"4,1\n\n\n4,1",
{
"w": 1.25
},
"4,2\n\n\n4,1",
{
"c": "#cccccc",
"w": 6.25
},
"4,6\n\n\n4,1",
{
"c": "#aaaaaa",
"w": 1.25
},
"4,10\n\n\n4,1",
{
"w": 1.25
},
"4,11\n\n\n4,1",
{
"w": 1.25
},
"4,12\n\n\n4,1",
{
"w": 1.25
},
"4,14\n\n\n4,1"
]
]
}
}

View file

@ -0,0 +1,9 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xF4, 0x4F, 0x41, 0x95, 0x3A, 0xD9, 0xD4, 0xAA}
// Esc + Enter
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }

View file

@ -0,0 +1,25 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL
),
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______,
KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, NK_TOGG, _______, _______, KC_END, KC_PGDN, KC_MNXT, _______,
_______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
_______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
)
};

View file

@ -0,0 +1,7 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
# Disable features for space
COMBO_ENABLE = no # No combos
KEY_OVERRIDE_ENABLE = no # No key overrides
RGB_MATRIX_ENABLE = no # No RGB
LTO_ENABLE = yes # Link-time optimization

View file

@ -0,0 +1,141 @@
{
"matrix": {
"rows": 5,
"cols": 14
},
"lighting": {
"extends": "none",
"keycodes": "qmk"
},
"layouts": {
"keymap": [
[
{
"c": "#777777"
},
"0,0",
{
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
"0,10",
"0,11",
"0,12",
"0,13",
"2,12"
],
[
{
"w": 1.5
},
"1,0",
{
"c": "#cccccc"
},
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
"1,11",
"1,12",
{
"c": "#aaaaaa",
"w": 1.5
},
"1,13"
],
[
{
"w": 1.75
},
"2,0",
{
"c": "#cccccc"
},
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
{
"c": "#aaaaaa",
"w": 2.25
},
"2,13"
],
[
{
"c": "#aaaaaa",
"w": 2.25
},
"3,0",
{
"c": "#cccccc"
},
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
{
"c": "#aaaaaa",
"w": 1.75
},
"3,11",
"3,13"
],
[
{
"c": "#aaaaaa",
"w": 1.5
},
"4,0",
"4,1",
{
"w": 1.5
},
"4,2",
{
"c": "#cccccc",
"w": 7
},
"4,5",
{
"c": "#aaaaaa",
"w": 1.5
},
"4,10",
"4,11",
{
"w": 1.5
},
"4,13"
]
]
}
}

View file

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x4A, 0x67, 0x58, 0x4B, 0x93, 0xAC, 0xD7, 0x5B}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 11 }

View file

@ -0,0 +1,32 @@
{
"version": 1,
"keyboard": "eyeohdesigns/humble40",
"keymap": "vial",
"layout": "LAYOUT_all",
"layers": [
[
"KC_ESC", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
"KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_ENT",
"KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "RSFT_T(KC_SLSH)", "KC_RSFT",
"KC_LCTL", "KC_LGUI", "KC_LALT", "LT(1,KC_SPC)", "LT(1,KC_SPC)", "KC_RGUI", "KC_RALT", "MO(2)"
],
[
"KC_TRNS", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL",
"KC_CAPS", "KC_GRV", "KC_LBRC", "KC_RBRC", "KC_MINS", "KC_TRNS", "KC_TRNS", "KC_EQL", "KC_BSLS", "KC_SCLN", "KC_TRNS", "KC_QUOT",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
],
[
"KC_TRNS", "KC_TRNS", "KC_UP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "BL_TOGG", "BL_BRTG", "BL_STEP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
]
],
"config": {
"features": {
"via": true,
"vial": true
}
}
}

View file

@ -0,0 +1,174 @@
{
"lighting": "qmk_backlight",
"matrix": {
"rows": 4,
"cols": 12
},
"layouts": {
"labels":[
"Standard Stagger",
"Normie Enter",
[
"Bottom Row",
"2u/2.25u",
"3u",
"6u",
"6.25u"
]
],
"keymap":[
[
"0,0",
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
"0,10",
{
"w": 1.5
},
"0,11"
],
[
{
"w": 1.25
},
"1,0",
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10\n\n\n1,0",
{
"w": 1.25
},
"1,11\n\n\n1,0",
{
"x": 0.5,
"w": 2.25
},
"1,11\n\n\n1,1"
],
[
{
"w": 1.5
},
"2,0\n\n\n0,0",
"2,1\n\n\n0,0",
"2,2\n\n\n0,0",
"2,3\n\n\n0,0",
"2,4\n\n\n0,0",
"2,5\n\n\n0,0",
"2,6\n\n\n0,0",
"2,7\n\n\n0,0",
"2,8\n\n\n0,0",
"2,9\n\n\n0,0",
"2,10\n\n\n0,0",
"2,11\n\n\n0,0",
{
"x": 0.5,
"w": 1.75
},
"2,0\n\n\n0,1",
"2,1\n\n\n0,1",
"2,2\n\n\n0,1",
"2,3\n\n\n0,1",
"2,4\n\n\n0,1",
"2,5\n\n\n0,1",
"2,6\n\n\n0,1",
"2,7\n\n\n0,1",
"2,8\n\n\n0,1",
"2,9\n\n\n0,1",
{
"w": 1.75
},
"2,10\n\n\n0,1"
],
[
{
"w": 1.25
},
"3,0",
{
"x": 0.75,
"w": 1.25
},
"3,1\n\n\n2,0",
"3,2\n\n\n2,0",
{
"w": 2
},
"3,3\n\n\n2,0",
{
"w": 2.25
},
"3,6\n\n\n2,0",
"3,7\n\n\n2,0",
"3,9\n\n\n2,0",
{
"x": 0.75,
"w": 1.25
},
"3,11"
],
[
{
"x": 2,
"w": 1.25
},
"3,1\n\n\n2,1",
{
"w": 3
},
"3,3\n\n\n2,1",
{
"w": 3
},
"3,6\n\n\n2,1",
{
"w": 1.25
},
"3,9\n\n\n2,1"
],
[
{
"x": 2,
"w": 1.25
},
"3,1\n\n\n2,2",
{
"w": 6
},
"3,6\n\n\n2,2",
{
"w": 1.25
},
"3,9\n\n\n2,2"
],
[
{
"x": 2
},
"3,1\n\n\n2,3",
{
"w": 6.25
},
"3,6\n\n\n2,3",
{
"w": 1.25
},
"3,9\n\n\n2,3"
]
]
}
}

View file

@ -0,0 +1,95 @@
{
"manufacturer": "kbd0",
"keyboard_name": "kbd0/curve0/60_ansi",
"maintainer": "kbd0",
"bootloader": "rp2040",
"bootloader_instructions": "Hold the top left key of the keyboard while plugging in the keyboard",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP6", "GP5", "GP4", "GP7", "GP10", "GP9", "GP11", "GP12", "GP13", "GP14", "GP25", "GP20", "GP19", "GP18", "GP16"],
"rows": ["GP23", "GP22", "GP21", "GP24", "GP17"]
},
"processor": "RP2040",
"url": "https://kbd0.com/item/curve0",
"usb": {
"device_version": "1.0.0",
"pid": "0xC000",
"vid": "0xCBD0"
},
"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": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"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, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
}
}
}

View file

@ -0,0 +1,22 @@
{
"author": "kbd0",
"keyboard": "kbd0/curve0/60_ansi",
"keymap": "default",
"layout": "LAYOUT",
"layers": [
[
"KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSLS", "KC_BSPC",
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS",
"KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT",
"KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(1)",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL"
],
[
"KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "KC_DEL",
"_______", "_______", "KC_UP", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
]
]
}

View file

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x72, 0x3F, 0x0A, 0x08, 0x33, 0xBD, 0x0F, 0xDE}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 4 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 6 }

View file

@ -0,0 +1,35 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* ` 1 2 3 4 5 6 7 8 9 0 - = \ BS|
*
* Tab Q W E R T Y U I O P [ ] \
*
* Caps A S D F G H J K L ; ' Enter
*
* Shft| \ Z X C V B N M , . / Shift Fn|
*
* CtrlGUI Alt Alt GUIMenuCtrl
*
*/
[0] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
),
[1] = LAYOUT(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

View file

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

View file

@ -0,0 +1,35 @@
{
"matrix": {
"rows": 5,
"cols": 15
},
"layouts": {
"labels": [
"Split backspace",
"Split left shift",
[
"Right shift",
"2.75u shift",
"1.75u shift on the left",
"1.75u shift on the right"
]
],
"keymap": [
[
"0,0", "0,1", "0,2", "0,3", "0,4", "0,5", "0,6", "0,7", "0,8", "0,9", "0,10", "0,11", "0,12", {"w": 2}, "0,14\n\n\n0,0", "0,13\n\n\n0,1", "0,14\n\n\n0,1"
],
[
{"w": 1.5}, "1,0", "1,1", "1,2", "1,3", "1,4", "1,5", "1,6", "1,7", "1,8", "1,9", "1,10", "1,11", "1,12", {"w": 1.5}, "1,13"
],
[
{"w": 1.75}, "2,0", "2,1", "2,2", "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", "2,9", "2,10", "2,11", {"w": 2.25}, "2,12"
],
[
{"w": 2.25}, "3,0\n\n\n1,0", {"w": 1.25}, "3,0\n\n\n1,1", "3,1\n\n\n1,1", {"x": -2.25}, "3,2", "3,3", "3,4", "3,5", "3,6", "3,7", "3,8", "3,9", "3,10", "3,11", {"w": 2.75}, "3,12\n\n\n2,0", {"w": 1.75}, "3,12\n\n\n2,1", "3,13\n\n\n2,1", "3,12\n\n\n2,2", {"w": 1.75}, "3,13\n\n\n2,2"
],
[
{"w": 1.25}, "4,0", {"w": 1.25}, "4,1", {"w": 1.25}, "4,2", {"w": 6.25}, "4,6", {"w": 1.25}, "4,10", {"w": 1.25}, "4,11", {"w": 1.25}, "4,12", {"w": 1.25},"4,13"
]
]
}
}

View file

@ -0,0 +1,27 @@
# kbd0/curve0/60_ansi
![Curve0](https://i.imgur.com/y5ZIbWI.jpeg)
Curve0 - Curved stainless steel keyboard by kbd0
* Keyboard Maintainer: [kbd0](https://github.com/kbd0)
* Hardware Supported: Curve0 PCB
* Hardware Availability: [kbd0.com](https://kbd0.com/item/curve0)
Make example for this keyboard (after setting up your build environment):
make kbd0/curve0/60_ansi:default
Flashing example for this keyboard:
make kbd0/curve0/60_ansi:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold the top left key of the keyboard while plugging in the keyboard
* **Physical reset button**: Hold the button on the main PCB (inside the keyboard) while plugging in the keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1,24 @@
#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

View file

@ -0,0 +1,5 @@
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>

View file

@ -0,0 +1,259 @@
{
"manufacturer": "Keebart",
"keyboard_name": "sofle_choc_pro",
"url": "https://keebart.com/products/sofle",
"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": {
"cols": [ "GP27", "GP26", "GP25", "GP24", "GP19", "GP18" ],
"rows": [ "GP0", "GP1", "GP2", "GP3", "GP4" ]
},
"processor": "RP2040",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"encoder": {
"rotary": [ { "pin_a": "GP23", "pin_b": "GP22" }, ]
},
"bootmagic": {
"enabled": true,
"matrix": [ 0, 0 ]
},
"split": {
"enabled": true,
"bootmagic": {
"matrix": [ 5, 0 ]
},
"matrix_pins": {
"right": {
"cols": [ "GP27", "GP26", "GP25", "GP24", "GP19", "GP18" ],
"rows": [ "GP0", "GP1", "GP2", "GP3", "GP4" ]
}
},
"encoder": {
"right": {
"rotary": [ { "pin_a": "GP23", "pin_b": "GP22" }, ]
}
},
"transport": {
"sync": {
"matrix_state": true
},
"watchdog": true
}
},
"layouts": {
"LAYOUT_split_4x6_5": {
"layout": [
{ "matrix": [ 0, 0 ], "x": 0, "y": 0.375 },
{ "matrix": [ 0, 1 ], "x": 1, "y": 0.375 },
{ "matrix": [ 0, 2 ], "x": 2, "y": 0.125 },
{ "matrix": [ 0, 3 ], "x": 3, "y": 0 },
{ "matrix": [ 0, 4 ], "x": 4, "y": 0.125 },
{ "matrix": [ 0, 5 ], "x": 5, "y": 0.25 },
{ "matrix": [ 5, 5 ], "x": 9, "y": 0.25 },
{ "matrix": [ 5, 4 ], "x": 10, "y": 0.125 },
{ "matrix": [ 5, 3 ], "x": 11, "y": 0 },
{ "matrix": [ 5, 2 ], "x": 12, "y": 0.125 },
{ "matrix": [ 5, 1 ], "x": 13, "y": 0.375 },
{ "matrix": [ 5, 0 ], "x": 14, "y": 0.375 },
{ "matrix": [ 1, 0 ], "x": 0, "y": 1.375 },
{ "matrix": [ 1, 1 ], "x": 1, "y": 1.375 },
{ "matrix": [ 1, 2 ], "x": 2, "y": 1.125 },
{ "matrix": [ 1, 3 ], "x": 3, "y": 1 },
{ "matrix": [ 1, 4 ], "x": 4, "y": 1.125 },
{ "matrix": [ 1, 5 ], "x": 5, "y": 1.25 },
{ "matrix": [ 6, 5 ], "x": 9, "y": 1.25 },
{ "matrix": [ 6, 4 ], "x": 10, "y": 1.125 },
{ "matrix": [ 6, 3 ], "x": 11, "y": 1 },
{ "matrix": [ 6, 2 ], "x": 12, "y": 1.125 },
{ "matrix": [ 6, 1 ], "x": 13, "y": 1.375 },
{ "matrix": [ 6, 0 ], "x": 14, "y": 1.375 },
{ "matrix": [ 2, 0 ], "x": 0, "y": 2.375 },
{ "matrix": [ 2, 1 ], "x": 1, "y": 2.375 },
{ "matrix": [ 2, 2 ], "x": 2, "y": 2.125 },
{ "matrix": [ 2, 3 ], "x": 3, "y": 2 },
{ "matrix": [ 2, 4 ], "x": 4, "y": 2.125 },
{ "matrix": [ 2, 5 ], "x": 5, "y": 2.25 },
{ "matrix": [ 7, 5 ], "x": 9, "y": 2.25 },
{ "matrix": [ 7, 4 ], "x": 10, "y": 2.125 },
{ "matrix": [ 7, 3 ], "x": 11, "y": 2 },
{ "matrix": [ 7, 2 ], "x": 12, "y": 2.125 },
{ "matrix": [ 7, 1 ], "x": 13, "y": 2.375 },
{ "matrix": [ 7, 0 ], "x": 14, "y": 2.375 },
{ "matrix": [ 3, 0 ], "x": 0, "y": 3.375 },
{ "matrix": [ 3, 1 ], "x": 1, "y": 3.375 },
{ "matrix": [ 3, 2 ], "x": 2, "y": 3.125 },
{ "matrix": [ 3, 3 ], "x": 3, "y": 3 },
{ "matrix": [ 3, 4 ], "x": 4, "y": 3.125 },
{ "matrix": [ 3, 5 ], "x": 5, "y": 3.25 },
{ "matrix": [ 4, 5 ], "x": 6, "y": 2.75 },
{ "matrix": [ 9, 5 ], "x": 8, "y": 2.75 },
{ "matrix": [ 8, 5 ], "x": 9, "y": 3.25 },
{ "matrix": [ 8, 4 ], "x": 10, "y": 3.125 },
{ "matrix": [ 8, 3 ], "x": 11, "y": 3 },
{ "matrix": [ 8, 2 ], "x": 12, "y": 3.125 },
{ "matrix": [ 8, 1 ], "x": 13, "y": 3.375 },
{ "matrix": [ 8, 0 ], "x": 14, "y": 3.375 },
{ "matrix": [ 4, 0 ], "x": 1.5, "y": 4.375 },
{ "matrix": [ 4, 1 ], "x": 2.5, "y": 4.25 },
{ "matrix": [ 4, 2 ], "x": 3.5, "y": 4.25 },
{ "matrix": [ 4, 3 ], "x": 4.5, "y": 4.375 },
{ "matrix": [ 4, 4 ], "x": 6, "y": 4.375, "h": 1.5 },
{ "matrix": [ 9, 4 ], "x": 8, "y": 4.375, "h": 1.5 },
{ "matrix": [ 9, 3 ], "x": 9.5, "y": 4.375 },
{ "matrix": [ 9, 2 ], "x": 10.5, "y": 4.25 },
{ "matrix": [ 9, 1 ], "x": 11.5, "y": 4.25 },
{ "matrix": [ 9, 0 ], "x": 12.5, "y": 4.375 }
]
}
},
"ws2812": {
"driver": "vendor",
"pin": "GP10"
},
"rgblight": {
"led_count": 60,
"split": true,
"split_count": [ 30, 30 ],
"max_brightness": 50,
"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": 50,
"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
},
"split_count": [30, 30],
"layout": [
{"flags":4,"matrix":[4,5],"x":99,"y":38},
{"flags":4,"matrix":[4,4],"x":91,"y":64},
{"flags":4,"matrix":[4,3],"x":77,"y":60},
{"flags":4,"matrix":[3,5],"x":82,"y":45},
{"flags":4,"matrix":[2,5],"x":82,"y":31},
{"flags":4,"matrix":[1,5],"x":82,"y":17},
{"flags":4,"matrix":[0,5],"x":82,"y":3},
{"flags":4,"matrix":[0,4],"x":66,"y":2},
{"flags":4,"matrix":[1,4],"x":66,"y":16},
{"flags":4,"matrix":[2,4],"x":66,"y":29},
{"flags":4,"matrix":[3,4],"x":66,"y":43},
{"flags":4,"matrix":[4,2],"x":58,"y":59},
{"flags":4,"matrix":[4,1],"x":41,"y":59},
{"flags":4,"matrix":[3,3],"x":49,"y":41},
{"flags":4,"matrix":[2,3],"x":49,"y":28},
{"flags":4,"matrix":[1,3],"x":49,"y":16},
{"flags":4,"matrix":[0,3],"x":49,"y":0},
{"flags":4,"matrix":[0,2],"x":33,"y":2},
{"flags":4,"matrix":[1,2],"x":33,"y":16},
{"flags":4,"matrix":[2,2],"x":33,"y":29},
{"flags":4,"matrix":[3,2],"x":33,"y":43},
{"flags":4,"matrix":[4,0],"x":25,"y":60},
{"flags":4,"matrix":[3,1],"x":16,"y":47},
{"flags":4,"matrix":[2,1],"x":16,"y":33},
{"flags":4,"matrix":[1,1],"x":16,"y":19},
{"flags":4,"matrix":[0,1],"x":16,"y":5},
{"flags":4,"matrix":[0,0],"x":0,"y":5},
{"flags":4,"matrix":[1,0],"x":0,"y":19},
{"flags":4,"matrix":[2,0],"x":0,"y":33},
{"flags":4,"matrix":[3,0],"x":0,"y":47},
{"flags":4,"matrix":[9,5],"x":125,"y":38},
{"flags":4,"matrix":[9,4],"x":134,"y":64},
{"flags":4,"matrix":[9,3],"x":147,"y":60},
{"flags":4,"matrix":[8,5],"x":142,"y":45},
{"flags":4,"matrix":[7,5],"x":142,"y":31},
{"flags":4,"matrix":[6,5],"x":142,"y":17},
{"flags":4,"matrix":[5,5],"x":142,"y":3},
{"flags":4,"matrix":[5,4],"x":158,"y":2},
{"flags":4,"matrix":[6,4],"x":158,"y":16},
{"flags":4,"matrix":[7,4],"x":158,"y":29},
{"flags":4,"matrix":[8,4],"x":158,"y":43},
{"flags":4,"matrix":[9,2],"x":166,"y":59},
{"flags":4,"matrix":[9,1],"x":183,"y":59},
{"flags":4,"matrix":[8,3],"x":175,"y":41},
{"flags":4,"matrix":[7,3],"x":175,"y":28},
{"flags":4,"matrix":[6,3],"x":175,"y":16},
{"flags":4,"matrix":[5,3],"x":175,"y":0},
{"flags":4,"matrix":[5,2],"x":191,"y":2},
{"flags":4,"matrix":[6,2],"x":191,"y":16},
{"flags":4,"matrix":[7,2],"x":191,"y":29},
{"flags":4,"matrix":[8,2],"x":191,"y":43},
{"flags":4,"matrix":[9,0],"x":199,"y":60},
{"flags":4,"matrix":[8,1],"x":208,"y":47},
{"flags":4,"matrix":[7,1],"x":208,"y":33},
{"flags":4,"matrix":[6,1],"x":208,"y":19},
{"flags":4,"matrix":[5,1],"x":208,"y":5},
{"flags":4,"matrix":[5,0],"x":224,"y":5},
{"flags":4,"matrix":[6,0],"x":224,"y":19},
{"flags":4,"matrix":[7,0],"x":224,"y":33},
{"flags":4,"matrix":[8,0],"x":224,"y":47}
]
}
}

View file

@ -0,0 +1,36 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* QWERTY
* ,-----------------------------------------. ,-----------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bspc |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | CAPS | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
* |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------|
* |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LCTL | LALT | LCMD | LGUI | /Enter / \Space \ | RGUI | DEL | RALT | RCTL |
* | | | | LT1 |/ / \ \ | LT2 | | | |
* `----------------------------------' '------''---------------------------'
*/
LAYOUT_split_4x6_5(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LALT, KC_LCMD, LT(1,KC_LGUI), KC_ENT, KC_SPC, LT(2,KC_RGUI), KC_DEL, KC_RALT, KC_RCTL
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
{ ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
};
#endif

View file

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

View file

@ -0,0 +1,9 @@
#define VIAL_KEYBOARD_UID \
{ 0x4F, 0x2D, 0x5A, 0x8A, 0x49, 0x7C, 0xDF, 0x1D }
#define VIAL_UNLOCK_COMBO_ROWS \
{ 0, 5 }
#define VIAL_UNLOCK_COMBO_COLS \
{ 0, 0 }
#define DYNAMIC_KEYMAP_LAYER_COUNT 10

View file

@ -0,0 +1,29 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* QWERTY
* ,-----------------------------------------. ,-----------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bspc |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | CAPS | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
* |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------|
* |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LCTL | LALT | LCMD | LGUI | /Enter / \Space \ | RGUI | DEL | RALT | RCTL |
* | | | | LT1 |/ / \ \ | LT2 | | | |
* `----------------------------------' '------''---------------------------'
*/
LAYOUT_split_4x6_5(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LALT, KC_LCMD, LT(1, KC_LGUI), KC_ENT, KC_SPC, LT(2, KC_RGUI), KC_DEL, KC_RALT, KC_RCTL)};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT)},
};
#endif

View file

@ -0,0 +1,6 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIALRGB_ENABLE = yes
ENCODER_MAP_ENABLE = yes
CAPS_WORD_ENABLE = yes
REPEAT_KEY_ENABLE = yes

View file

@ -0,0 +1,318 @@
{
"name": "Sofle Choc Pro",
"matrix": {
"rows": 10,
"cols": 6
},
"lighting": "vialrgb",
"layouts": {
"keymap": [
[
{
"x": 3
},
"0,3",
{
"x": 8.25
},
"5,3"
],
[
{
"y": -0.87,
"x": 2
},
"0,2",
{
"x": 1
},
"0,4",
{
"x": 6.25
},
"5,4",
{
"x": 1
},
"5,2"
],
[
{
"y": -0.88,
"x": 5
},
"0,5"
],
[
{
"y": -1,
"x": 10.25
},
"5,5"
],
[
{
"y": -0.87
},
"0,0",
"0,1",
{
"x": 12.25
},
"5,1",
"5,0"
],
[
{
"y": -0.38,
"x": 3
},
"1,3"
],
[
{
"y": -1,
"x": 12.25
},
"6,3"
],
[
{
"y": -0.8700000000000001,
"x": 2
},
"1,2",
{
"x": 1
},
"1,4",
{
"x": 6.25
},
"6,4",
{
"x": 1
},
"6,2"
],
[
{
"y": -0.8799999999999999,
"x": 5
},
"1,5",
{
"x": 4.25
},
"6,5"
],
[
{
"y": -0.8700000000000001
},
"1,0",
"1,1",
{
"x": 12.25
},
"6,1",
"6,0"
],
[
{
"y": -0.6299999999999999,
"x": 6
},
"0,0\n\n\n\n\n\n\n\n\ne",
"0,1\n\n\n\n\n\n\n\n\ne",
{
"x": 0.25
},
"1,0\n\n\n\n\n\n\n\n\ne",
"1,1\n\n\n\n\n\n\n\n\ne"
],
[
{
"y": -0.75,
"x": 3
},
"2,3",
{
"x": 8.25
},
"7,3"
],
[
{
"y": -0.8700000000000001,
"x": 2
},
"2,2",
{
"x": 1
},
"2,4",
{
"x": 6.25
},
"7,4",
{
"x": 1
},
"7,2"
],
[
{
"y": -0.8799999999999999,
"x": 5
},
"2,5",
{
"x": 4.25
},
"7,5"
],
[
{
"y": -0.8700000000000001
},
"2,0",
"2,1",
{
"x": 12.25
},
"7,1",
"7,0"
],
[
{
"y": -0.6299999999999999,
"x": 6.5
},
"4,5",
{
"x": 1.25
},
"9,5"
],
[
{
"y": -0.75,
"x": 3
},
"3,3",
{
"x": 8.25
},
"8,3"
],
[
{
"y": -0.8700000000000001,
"x": 2
},
"3,2",
{
"x": 1
},
"3,4",
{
"x": 6.25
},
"8,4",
{
"x": 1
},
"8,2"
],
[
{
"y": -0.8799999999999999,
"x": 5
},
"3,5",
{
"x": 4.25
},
"8,5"
],
[
{
"y": -0.8700000000000001
},
"3,0",
"3,1",
{
"x": 12.25
},
"8,1",
"8,0"
],
[
{
"y": -0.1299999999999999,
"x": 2.5
},
"4,1",
"4,2",
{
"x": 7.25
},
"9,2",
"9,1"
],
[
{
"y": -0.8700000000000001,
"x": 1.5
},
"4,0",
{
"x": 11.25
},
"9,0"
],
[
{
"r": 15,
"rx": 4,
"ry": 9.1,
"y": -4.85,
"x": -0.5
},
"4,3"
],
[
{
"r": 30,
"rx": 5,
"ry": 9.3,
"y": -5.05,
"x": -1.5,
"h": 1.5
},
"4,4"
],
[
{
"r": -30,
"rx": 10,
"y": -4.4,
"x": 1.629999999999999,
"h": 1.5
},
"9,4"
],
[
{
"r": -15,
"rx": 11,
"ry": 9,
"y": -4.42,
"x": 0.7200000000000006
},
"9,3"
]
]
}
}

View file

@ -0,0 +1,6 @@
#pragma once
#include_next <mcuconf.h>
#undef RP_I2C_USE_I2C1
#define RP_I2C_USE_I2C1 TRUE

View file

@ -0,0 +1,30 @@
# Sofle Choc Pro
![sofle_choc_pro](https://raw.githubusercontent.com/Keebart/picture-cdn/refs/heads/main/sofle/led/0.webp)
A complete remake of the Sofle Choc Keyboard by Josef Adamčík. Featuring an onboard RP2040 with 128 MB flash
memory and choc-spaced keys for a more compact keyboard.
* Keyboard Maintainer: [Keebart](https://github.com/Keebart)
* Hardware Supported: RP2040
* Hardware Availability: [Keebart Shop](https://keebart.com/products/sofle)
Make example for this keyboard (after setting up your build environment):
make keebart/sofle_choc_pro:default
make keebart/sofle_choc_pro:vial
Flashing example for this keyboard:
make keebart/sofle_choc_pro:default:flash
make keebart/sofle_choc_pro:vial:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the top left key of the left side of the keyboard while connecting the left side to the computer. Similarly, hold down the top right key of the right side of the keyboard while connecting the right side to the computer.
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1 @@
SERIAL_DRIVER = vendor

View file

@ -2,7 +2,7 @@ VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
QMK_SETTINGS = yes
QMK_SETTINGS = no
ENCODER_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View file

@ -0,0 +1,9 @@
#pragma once
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
#define I2C1_TIMINGR_SCLDEL 3U
#define I2C1_TIMINGR_SDADEL 0U
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U

View file

@ -0,0 +1,233 @@
{
"manufacturer": "Keychron",
"keyboard_name": "K1 Pro",
"maintainer": "richud",
"bootloader": "stm32-dfu",
"diode_direction": "ROW2COL",
"dip_switch": {
"pins": ["A8"]
},
"eeprom": {
"wear_leveling": {
"backing_size": 4096
}
},
"build": {
"lto": true
},
"features": {
"bootmagic": true,
"dip_switch": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"raw": true
},
"indicators": {
"_comment": "K1 Pro Rev 6: A0 is BT LED, H3 is CAPS LED",
"caps_lock": "H3"
},
"led_matrix": {
"sleep": true
},
"matrix_pins": {
"cols": ["C15", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
"custom": true,
"custom_lite": true,
"rows": ["B5", "B4", "B3", "A15", "A14", "A13"]
},
"matrix_size": {
"cols": 17,
"rows": 6
},
"processor": "STM32L432",
"url": "https://github.com/Keychron",
"usb": {
"vid": "0x3434"
},
"layouts": {
"LAYOUT_tkl_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [0, 2], "x": 3, "y": 0},
{"matrix": [0, 3], "x": 4, "y": 0},
{"matrix": [0, 4], "x": 5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 11, "y": 0},
{"matrix": [0, 10], "x": 12, "y": 0},
{"matrix": [0, 11], "x": 13, "y": 0},
{"matrix": [0, 12], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
{"matrix": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
{"matrix": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
{"matrix": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
{"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [0, 2], "x": 3, "y": 0},
{"matrix": [0, 3], "x": 4, "y": 0},
{"matrix": [0, 4], "x": 5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 11, "y": 0},
{"matrix": [0, 10], "x": 12, "y": 0},
{"matrix": [0, 11], "x": 13, "y": 0},
{"matrix": [0, 12], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
{"matrix": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
{"matrix": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "y": 3.25},
{"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
{"matrix": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
{"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
}
}
}

View file

@ -0,0 +1,13 @@
#pragma once
/* Sonix RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Use first 9 channels of LED driver */
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Set LED driver current */
#define SNLED27351_CURRENT_TUNE \
{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }

View file

@ -0,0 +1,131 @@
{
"usb": {
"pid": "0x0211",
"device_version": "1.0.2"
},
"features": {
"rgb_matrix": true,
},
"rgb_matrix": {
"driver": "snled27351",
"sleep": true,
"animations": {
"breathing": 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,
"jellybean_raindrops": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive_multiwide": true,
"solid_reactive_multinexus": true,
"splash": true,
"solid_splash": true
},
"layout": [
{"matrix":[0, 0], "flags":1, "x":0, "y":0},
{"matrix":[0, 1], "flags":1, "x":26, "y":0},
{"matrix":[0, 2], "flags":1, "x":39, "y":0},
{"matrix":[0, 3], "flags":1, "x":52, "y":0},
{"matrix":[0, 4], "flags":1, "x":65, "y":0},
{"matrix":[0, 5], "flags":1, "x":85, "y":0},
{"matrix":[0, 6], "flags":1, "x":98, "y":0},
{"matrix":[0, 7], "flags":1, "x":111, "y":0},
{"matrix":[0, 8], "flags":1, "x":124, "y":0},
{"matrix":[0, 9], "flags":1, "x":144, "y":0},
{"matrix":[0, 10], "flags":1, "x":157, "y":0},
{"matrix":[0, 11], "flags":1, "x":170, "y":0},
{"matrix":[0, 12], "flags":1, "x":183, "y":0},
{"matrix":[0, 14], "flags":1, "x":197, "y":0},
{"matrix":[0, 15], "flags":1, "x":210, "y":0},
{"matrix":[0, 16], "flags":1, "x":224, "y":0},
{"matrix":[1, 0], "flags":1, "x":0, "y":13},
{"matrix":[1, 1], "flags":8, "x":13, "y":13},
{"matrix":[1, 2], "flags":8, "x":26, "y":13},
{"matrix":[1, 3], "flags":8, "x":39, "y":13},
{"matrix":[1, 4], "flags":4, "x":52, "y":13},
{"matrix":[1, 5], "flags":4, "x":65, "y":13},
{"matrix":[1, 6], "flags":4, "x":78, "y":13},
{"matrix":[1, 7], "flags":4, "x":91, "y":13},
{"matrix":[1, 8], "flags":4, "x":104, "y":13},
{"matrix":[1, 9], "flags":4, "x":117, "y":13},
{"matrix":[1, 10], "flags":4, "x":130, "y":13},
{"matrix":[1, 11], "flags":4, "x":144, "y":13},
{"matrix":[1, 12], "flags":4, "x":157, "y":13},
{"matrix":[1, 13], "flags":1, "x":176, "y":13},
{"matrix":[1, 14], "flags":1, "x":197, "y":13},
{"matrix":[1, 15], "flags":1, "x":210, "y":13},
{"matrix":[1, 16], "flags":1, "x":224, "y":13},
{"matrix":[2, 0], "flags":1, "x":3, "y":26},
{"matrix":[2, 1], "flags":4, "x":19, "y":26},
{"matrix":[2, 2], "flags":4, "x":32, "y":26},
{"matrix":[2, 3], "flags":4, "x":45, "y":26},
{"matrix":[2, 4], "flags":4, "x":58, "y":26},
{"matrix":[2, 5], "flags":4, "x":72, "y":26},
{"matrix":[2, 6], "flags":4, "x":85, "y":26},
{"matrix":[2, 7], "flags":4, "x":98, "y":26},
{"matrix":[2, 8], "flags":4, "x":111, "y":26},
{"matrix":[2, 9], "flags":4, "x":124, "y":26},
{"matrix":[2, 10], "flags":4, "x":137, "y":26},
{"matrix":[2, 11], "flags":4, "x":150, "y":26},
{"matrix":[2, 12], "flags":1, "x":163, "y":26},
{"matrix":[2, 14], "flags":1, "x":197, "y":26},
{"matrix":[2, 15], "flags":1, "x":210, "y":26},
{"matrix":[2, 16], "flags":1, "x":224, "y":26},
{"matrix":[3, 0], "flags":8, "x":4, "y":38},
{"matrix":[3, 1], "flags":4, "x":22, "y":38},
{"matrix":[3, 2], "flags":4, "x":36, "y":38},
{"matrix":[3, 3], "flags":4, "x":49, "y":38},
{"matrix":[3, 4], "flags":4, "x":62, "y":38},
{"matrix":[3, 5], "flags":4, "x":75, "y":38},
{"matrix":[3, 6], "flags":4, "x":88, "y":38},
{"matrix":[3, 7], "flags":4, "x":101, "y":38},
{"matrix":[3, 8], "flags":4, "x":114, "y":38},
{"matrix":[3, 9], "flags":4, "x":127, "y":38},
{"matrix":[3, 10], "flags":4, "x":140, "y":38},
{"matrix":[3, 11], "flags":4, "x":153, "y":38},
{"matrix":[3, 13], "flags":1, "x":167, "y":38},
{"matrix":[2, 13], "flags":1, "x":182, "y":33},
{"matrix":[4, 0], "flags":1, "x":8, "y":51},
{"matrix":[4, 1], "flags":1, "x":16, "y":51},
{"matrix":[4, 2], "flags":4, "x":29, "y":51},
{"matrix":[4, 3], "flags":4, "x":42, "y":51},
{"matrix":[4, 4], "flags":4, "x":55, "y":51},
{"matrix":[4, 5], "flags":4, "x":68, "y":51},
{"matrix":[4, 6], "flags":4, "x":81, "y":51},
{"matrix":[4, 7], "flags":4, "x":94, "y":51},
{"matrix":[4, 8], "flags":4, "x":108, "y":51},
{"matrix":[4, 9], "flags":4, "x":121, "y":51},
{"matrix":[4, 10], "flags":4, "x":134, "y":51},
{"matrix":[4, 11], "flags":4, "x":147, "y":51},
{"matrix":[4, 13], "flags":1, "x":171, "y":51},
{"matrix":[4, 15], "flags":1, "x":210, "y":51},
{"matrix":[5, 0], "flags":1, "x":1, "y":64},
{"matrix":[5, 1], "flags":1, "x":18, "y":64},
{"matrix":[5, 2], "flags":1, "x":34, "y":64},
{"matrix":[5, 6], "flags":4, "x":83, "y":64},
{"matrix":[5, 10], "flags":1, "x":132, "y":64},
{"matrix":[5, 11], "flags":1, "x":148, "y":64},
{"matrix":[5, 12], "flags":1, "x":165, "y":64},
{"matrix":[5, 13], "flags":1, "x":181, "y":64},
{"matrix":[5, 14], "flags":1, "x":197, "y":64},
{"matrix":[5, 15], "flags":1, "x":210, "y":64},
{"matrix":[5, 16], "flags":1, "x":224, "y":64}
]
}
}

View file

@ -0,0 +1,62 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_iso(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_FN] = LAYOUT_tkl_iso(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_BASE] = LAYOUT_tkl_iso(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_FN] = LAYOUT_tkl_iso(
_______, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_RMOD, RGB_TOG,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View file

@ -0,0 +1,6 @@
#pragma once
#define VIAL_KEYBOARD_UID {0x4A, 0x55, 0x4E, 0x11, 0x2D, 0xCB, 0x3E, 0x05}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }

View file

@ -0,0 +1,62 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers{
MAC_BASE,
MAC_FN,
WIN_BASE,
WIN_FN,
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_tkl_iso(
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_FN] = LAYOUT_tkl_iso(
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, EE_CLR, QK_RBT, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[WIN_BASE] = LAYOUT_tkl_iso(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_FN] = LAYOUT_tkl_iso(
QK_BOOT, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD, RGB_RMOD, RGB_TOG,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, EE_CLR, QK_RBT, _______,
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
};

View file

@ -0,0 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIALRGB_ENABLE = yes

View file

@ -0,0 +1,227 @@
{
"name": "Keychron K1 Pro",
"vendorId": "0x3434",
"productId": "0x0211",
"lighting": "vialrgb",
"matrix": {
"rows": 6,
"cols": 17
},
"layouts": {
"keymap": [
[
{
"c": "#777777"
},
"0,0",
{
"x": 1,
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
"0,4",
{
"x": 0.5,
"c": "#aaaaaa"
},
"0,5",
"0,6",
"0,7",
"0,8",
{
"x": 0.5,
"c": "#cccccc"
},
"0,9",
"0,10",
"0,11",
"0,12",
{
"x": 0.25,
"c": "#aaaaaa"
},
"0,14",
"0,15",
"0,16"
],
[
{
"y": 0.25,
"c": "#aaaaaa"
},
"1,0",
{
"c": "#cccccc"
},
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
"1,11",
"1,12",
{
"w": 2,
"c": "#aaaaaa"
},
"1,13",
{
"x": 0.25
},
"1,14",
"1,15",
"1,16"
],
[
{
"w": 1.5,
"c": "#aaaaaa"
},
"2,0",
{
"c": "#cccccc"
},
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
"2,12",
{
"x": 0.25,
"w": 1.25,
"h": 2,
"x2": -0.25,
"w2": 1.5,
"h2": 1,
"c": "#777777"
},
"2,13",
{
"c": "#aaaaaa"
},
{
"x": 0.25
},
"2,14",
"2,15",
"2,16"
],
[
{
"w": 1.75,
"c": "#aaaaaa"
},
"3,0",
{
"c": "#cccccc"
},
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"c": "#aaaaaa"
},
"3,13"
],
[
{
"w": 1.25,
"c": "#aaaaaa"
},
"4,0",
"4,1",
{
"c": "#cccccc"
},
"4,2",
"4,3",
"4,4",
"4,5",
"4,6",
"4,7",
"4,8",
"4,9",
"4,10",
"4,11",
{
"w": 2.75,
"c": "#aaaaaa"
},
"4,13",
{
"x": 1.25,
"c": "#cccccc"
},
"4,15"
],
[
{
"w": 1.25,
"c": "#aaaaaa"
},
"5,0",
{
"w": 1.25
},
"5,1",
{
"w": 1.25
},
"5,2",
{
"w": 6.25,
"c": "#cccccc"
},
"5,6",
{
"w": 1.25,
"c": "#aaaaaa"
},
"5,10",
{
"w": 1.25
},
"5,11",
{
"w": 1.25
},
"5,12",
{
"w": 1.25,
"c": "#aaaaaa"
},
"5,13",
{
"x": 0.25,
"c": "#cccccc"
},
"5,14",
"5,15",
"5,16"
]
]
}
}

View file

@ -0,0 +1,122 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, I_1, G_1, H_1},
{0, I_2, G_2, H_2},
{0, I_3, G_3, H_3},
{0, I_4, G_4, H_4},
{0, I_5, G_5, H_5},
{0, I_6, G_6, H_6},
{0, I_7, G_7, H_7},
{0, I_8, G_8, H_8},
{0, I_9, G_9, H_9},
{0, I_10, G_10, H_10},
{0, I_11, G_11, H_11},
{0, I_12, G_12, H_12},
{0, I_13, G_13, H_13},
{0, I_15, G_15, H_15},
{0, I_16, G_16, H_16},
{1, F_8, D_8, E_8},
{0, F_1, D_1, E_1},
{0, F_2, D_2, E_2},
{0, F_3, D_3, E_3},
{0, F_4, D_4, E_4},
{0, F_5, D_5, E_5},
{0, F_6, D_6, E_6},
{0, F_7, D_7, E_7},
{0, F_8, D_8, E_8},
{0, F_9, D_9, E_9},
{0, F_10, D_10, E_10},
{0, F_11, D_11, E_11},
{0, F_12, D_12, E_12},
{0, F_13, D_13, E_13},
{0, F_14, D_14, E_14},
{0, F_15, D_15, E_15},
{0, F_16, D_16, E_16},
{1, F_9, D_9, E_9},
{0, A_1, C_1, B_1},
{0, A_2, C_2, B_2},
{0, A_3, C_3, B_3},
{0, A_4, C_4, B_4},
{0, A_5, C_5, B_5},
{0, A_6, C_6, B_6},
{0, A_7, C_7, B_7},
{0, A_8, C_8, B_8},
{0, A_9, C_9, B_9},
{0, A_10, C_10, B_10},
{0, A_11, C_11, B_11},
{0, A_12, C_12, B_12},
{0, A_13, C_13, B_13},
{0, A_15, C_15, B_15},
{0, A_16, C_16, B_16},
{1, F_6, D_6, E_6},
{1, I_1, G_1, H_1},
{1, I_2, G_2, H_2},
{1, I_3, G_3, H_3},
{1, I_4, G_4, H_4},
{1, I_5, G_5, H_5},
{1, I_6, G_6, H_6},
{1, I_7, G_7, H_7},
{1, I_8, G_8, H_8},
{1, I_9, G_9, H_9},
{1, I_10, G_10, H_10},
{1, I_11, G_11, H_11},
{1, I_12, G_12, H_12},
{1, I_14, G_14, H_14},
{0, A_14, C_14, B_14},
{1, C_1, A_1, B_1},
{1, C_2, A_2, B_2},
{1, C_3, A_3, B_3},
{1, C_4, A_4, B_4},
{1, C_5, A_5, B_5},
{1, C_6, A_6, B_6},
{1, C_7, A_7, B_7},
{1, C_8, A_8, B_8},
{1, C_9, A_9, B_9},
{1, C_10, A_10, B_10},
{1, C_11, A_11, B_11},
{1, C_12, A_12, B_12},
{1, C_14, A_14, B_14},
{1, C_16, A_16, B_16},
{1, F_1, D_1, E_1},
{1, F_2, D_2, E_2},
{1, F_3, D_3, E_3},
{1, F_7, D_7, E_7},
{1, F_11, D_11, E_11},
{1, F_12, D_12, E_12},
{1, F_13, D_13, E_13},
{1, F_14, D_14, E_14},
{1, F_15, D_15, E_15},
{1, F_16, D_16, E_16},
{1, C_15, A_15, B_15}
};
#endif

View file

@ -0,0 +1 @@
# This file intentionally left blank

View file

@ -0,0 +1,27 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
bool dip_switch_update_kb(uint8_t index, bool active) {
if (!dip_switch_update_user(index, active)) {
return false;
}
if (index == 0) {
default_layer_set(1UL << (active ? 0 : 2));
}
return true;
}

View file

@ -0,0 +1,190 @@
/* Copyright 2023 @ Keychron (https://www.keychron.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
#define HC595_STCP B0
#define HC595_SHCP A1
#define HC595_DS A7
#define DIRECT_COL_NUM 1
pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static inline uint8_t readMatrixPin(pin_t pin) {
if (pin != NO_PIN) {
return readPin(pin);
} else {
return 1;
}
}
static inline void setPinOutput_writeLow(pin_t pin) {
setPinOutput(pin);
writePinLow(pin);
}
static inline void setPinOutput_writeHigh(pin_t pin) {
setPinOutput(pin);
writePinHigh(pin);
}
static inline void HC595_delay(uint16_t n) {
while (n-- > 0) {
asm volatile("nop" ::: "memory");
}
}
static void HC595_output(uint16_t data) {
uint8_t n = 1;
uint8_t i;
for (i = 0; i < (MATRIX_COLS - DIRECT_COL_NUM); i++) {
writePinLow(HC595_SHCP);
if (data & 0x1) {
writePinHigh(HC595_DS);
} else {
writePinLow(HC595_DS);
}
HC595_delay(n);
writePinHigh(HC595_SHCP);
HC595_delay(n);
data = data >> 1;
}
writePinLow(HC595_STCP);
HC595_delay(n);
writePinHigh(HC595_STCP);
}
static void HC595_output_bit(uint16_t data) {
uint8_t n = 1;
writePinLow(HC595_SHCP);
if (data & 0x1) {
writePinHigh(HC595_DS);
} else {
writePinLow(HC595_DS);
}
HC595_delay(n);
writePinHigh(HC595_SHCP);
HC595_delay(n);
writePinLow(HC595_STCP);
HC595_delay(n);
writePinHigh(HC595_STCP);
}
static void select_col(uint8_t col) {
if (col < DIRECT_COL_NUM) {
setPinOutput_writeLow(col_pins[col]);
} else {
if (col == DIRECT_COL_NUM) {
HC595_output_bit(0x00);
}
}
}
static void unselect_col(uint8_t col) {
if (col < DIRECT_COL_NUM) {
#ifdef MATRIX_UNSELECT_DRIVE_HIGH
setPinOutput_writeHigh(col_pins[col]);
#else
setPinInputHigh(col_pins[col]);
#endif
} else {
HC595_output_bit(0x01);
}
}
static void unselect_cols(void) {
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
if (x < DIRECT_COL_NUM) {
#ifdef MATRIX_UNSELECT_DRIVE_HIGH
setPinOutput_writeHigh(col_pins[x]);
#else
setPinInputHigh(col_pins[x]);
#endif
} else {
if (x == DIRECT_COL_NUM) HC595_output(0xFFFF);
break;
}
}
}
void select_all_cols(void) {
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
if (x < DIRECT_COL_NUM) {
setPinOutput_writeLow(col_pins[x]);
} else {
if (x == DIRECT_COL_NUM) HC595_output(0x0000);
break;
}
}
}
static void matrix_read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col, matrix_row_t row_shifter) {
// Select col
select_col(current_col);
HC595_delay(200);
// For each row...
for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
// Check row pin state
if (readMatrixPin(row_pins[row_index]) == 0) {
// Pin LO, set col bit
current_matrix[row_index] |= row_shifter;
} else {
// Pin HI, clear col bit
current_matrix[row_index] &= ~row_shifter;
}
}
// Unselect col
unselect_col(current_col);
HC595_delay(200); // wait for all Row signals to go HIGH
}
void matrix_init_custom(void) {
setPinOutput(HC595_DS);
setPinOutput(HC595_STCP);
setPinOutput(HC595_SHCP);
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
if (row_pins[x] != NO_PIN) {
setPinInputHigh(row_pins[x]);
}
}
unselect_cols();
}
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
matrix_row_t curr_matrix[MATRIX_ROWS] = {0};
// Set col, read rows
matrix_row_t row_shifter = MATRIX_ROW_SHIFTER;
for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++, row_shifter <<= 1) {
matrix_read_rows_on_col(curr_matrix, current_col, row_shifter);
}
bool changed = memcmp(current_matrix, curr_matrix, sizeof(curr_matrix)) != 0;
if (changed) memcpy(current_matrix, curr_matrix, sizeof(curr_matrix));
return changed;
}

View file

@ -0,0 +1,23 @@
/* Copyright 2020 QMK
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include_next <mcuconf.h>
#undef STM32_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE

View file

@ -0,0 +1,23 @@
# Keychron K1 Pro
![Keychron K1 Pro](https://github.com/Keychron/ProductImage/blob/main/K_Pro/k1_pro.jpg?raw=true)
A customizable 80% TKL keyboard.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron K1 Pro
* Hardware Availability: [Keychron K1 Pro QMK/VIA Wireless Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-k1-pro-qmk-via-wireless-custom-mechanical-keyboard)
Make example for this keyboard (after setting up your build environment):
make keychron/k1_pro/iso/rgb:vial
Flashing example for this keyboard:
make keychron/k1_pro/iso/rgb:vial:flash
**Reset Key**: Connect the USB cable, toggle mode switch to "Off", hold down the *Esc* key or reset button underneath space bar, then toggle then switch to "Cable".
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View file

@ -0,0 +1,9 @@
# Build Options
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
# custom keyboard matrix
SRC += matrix.c

View file

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xF1, 0x3E, 0xD5, 0xB3, 0x8B, 0xAF, 0x7A, 0x53}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
#define LED_PIN_ON_STATE 0

View file

@ -0,0 +1,48 @@
/* Copyright 2021 Samuel Lu
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default layer
[0] = LAYOUT_all(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(2), KC_RALT, MO(1), KC_RCTL
),
// Fn1 Layer
[1] = LAYOUT_all(
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
// Fn2 Layer
[2] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
};

View file

@ -0,0 +1,6 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
RGBLIGHT_ENABLE = yes
KEY_OVERRIDE_ENABLE = no
MOUSEKEY_ENABLE = no

View file

@ -0,0 +1,306 @@
{
"name": "XT60_SINGAKBD",
"vendorId": "0x4B50",
"productId": "0x0601",
"matrix": {
"rows": 5,
"cols": 14
},
"layouts": {
"labels": [
"ISO",
"Split Backspace",
"Split Left Shift",
"Split Right Shift",
[
"Bottom Row",
"7u",
"WKL",
"6.25u",
"2.25u/1.25u/2.75u Split"
]
],
"keymap": [
[
{
"x": 2.75,
"c": "#777777"
},
"0,0",
{
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
"0,4",
"0,5",
"0,6",
"0,7",
"0,8",
"0,9",
"0,10",
"0,11",
"0,12",
{
"c": "#aaaaaa",
"w": 2
},
"1,13\n\n\n1,0",
{
"x": 1.25
},
"0,13\n\n\n1,1",
"1,13\n\n\n1,1"
],
[
{
"x": 2.75,
"w": 1.5
},
"1,0",
{
"c": "#cccccc"
},
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
"1,11",
"1,12",
{
"w": 1.5
},
"2,12\n\n\n0,0",
{
"x": 2,
"c": "#777777",
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"2,13\n\n\n0,1"
],
[
{
"x": 2.75,
"c": "#aaaaaa",
"w": 1.75
},
"2,0",
{
"c": "#cccccc"
},
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
{
"c": "#777777",
"w": 2.25
},
"2,13\n\n\n0,0",
{
"x": 1,
"c": "#cccccc"
},
"2,12\n\n\n0,1"
],
[
{
"c": "#aaaaaa",
"w": 1.25
},
"3,0\n\n\n2,1",
{
"c": "#cccccc"
},
"3,1\n\n\n2,1",
{
"x": 0.5,
"c": "#aaaaaa",
"w": 2.25
},
"3,0\n\n\n2,0",
{
"c": "#cccccc"
},
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"c": "#aaaaaa",
"w": 2.75
},
"3,12\n\n\n3,0",
{
"x": 0.5,
"w": 1.75
},
"3,12\n\n\n3,1",
"3,13\n\n\n3,1"
],
[
{
"x": 2.75,
"w": 1.5
},
"4,0\n\n\n4,0",
"4,1\n\n\n4,0",
{
"w": 1.5
},
"4,2\n\n\n4,0",
{
"c": "#cccccc",
"w": 7
},
"4,6\n\n\n4,0",
{
"c": "#aaaaaa",
"w": 1.5
},
"4,11\n\n\n4,0",
"4,12\n\n\n4,0",
{
"w": 1.5
},
"4,13\n\n\n4,0"
],
[
{
"y": 0.25,
"x": 2.75,
"w": 1.5
},
"4,0\n\n\n4,1",
{
"x": 1,
"w": 1.5
},
"4,2\n\n\n4,1",
{
"c": "#cccccc",
"w": 7
},
"4,6\n\n\n4,1",
{
"c": "#aaaaaa",
"w": 1.5
},
"4,11\n\n\n4,1",
{
"x": 1,
"w": 1.5
},
"4,13\n\n\n4,1"
],
[
{
"y": 0.25,
"x": 2.75,
"w": 1.25
},
"4,0\n\n\n4,2",
{
"w": 1.25
},
"4,1\n\n\n4,2",
{
"w": 1.25
},
"4,2\n\n\n4,2",
{
"c": "#cccccc",
"w": 6.25
},
"4,6\n\n\n4,2",
{
"c": "#aaaaaa",
"w": 1.25
},
"4,10\n\n\n4,2",
{
"w": 1.25
},
"4,11\n\n\n4,2",
{
"w": 1.25
},
"4,12\n\n\n4,2",
{
"w": 1.25
},
"4,13\n\n\n4,2"
],
[
{
"y": 0.25,
"x": 2.75,
"w": 1.25
},
"4,0\n\n\n4,3",
{
"w": 1.25
},
"4,1\n\n\n4,3",
{
"w": 1.25
},
"4,2\n\n\n4,3",
{
"c": "#cccccc",
"w": 2.25
},
"4,4\n\n\n4,3",
{
"w": 1.25
},
"4,6\n\n\n4,3",
{
"w": 2.75
},
"4,8\n\n\n4,3",
{
"c": "#aaaaaa",
"w": 1.25
},
"4,10\n\n\n4,3",
{
"w": 1.25
},
"4,11\n\n\n4,3",
{
"w": 1.25
},
"4,12\n\n\n4,3",
{
"w": 1.25
},
"4,13\n\n\n4,3"
]
]
}
}

View file

@ -0,0 +1,26 @@
#pragma once
#define WS2812_DI_PIN A13
#ifdef WS2812_DI_PIN
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLIGHT_SLEEP
#define RGBLED_NUM 5
#define RGBLIGHT_DEFAULT_VAL 128
#define RGBLIGHT_LIMIT_VAL 128
/* #define RGBLIGHT_HUE_STEP 8 */
/* #define RGBLIGHT_SAT_STEP 8 */
/* #define RGBLIGHT_VAL_STEP 8 */
#endif

View file

@ -0,0 +1,89 @@
{
"keyboard_name": "Circe",
"manufacturer": "lazydesigners",
"url": "http://lazydesigners.cn",
"maintainer": "lazydesigners",
"usb": {
"vid": "0x4C44",
"pid": "0x0045",
"device_version": "0.0.1"
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": [ "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "C15", "B8", "A14" ],
"rows": [ "B13", "B12", "F0", "B9"]
},
"features": {
"console": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"bootmagic": {
"enabled": true,
"matrix": [0, 0]
},
"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": [0,10], "x":10, "y":0},
{"matrix": [0,11], "x":11, "y":0, "w":1.5},
{"matrix": [0,12], "x":12.75, "y":0},
{"matrix": [1,12], "x":13.75, "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":6.25, "y":1},
{"matrix": [1, 7], "x":7.25, "y":1},
{"matrix": [1, 8], "x":8.25, "y":1},
{"matrix": [1, 9], "x":9.25, "y":1},
{"matrix": [1,10], "x":10.25, "y":1},
{"matrix": [1,11], "x":11.25, "y":1, "w":1.25},
{"matrix": [2, 0], "x":0, "y":2, "w":1.25},
{"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, 6], "x":6.75, "y":2},
{"matrix": [2, 7], "x":7.75, "y":2},
{"matrix": [2, 8], "x":8.75, "y":2},
{"matrix": [2, 9], "x":9.75, "y":2},
{"matrix": [2,10], "x":9.75, "y":2},
{"matrix": [2,11], "x":10.75, "y":2, "w":1.25},
{"matrix": [2,12], "x":12.75, "y":2},
{"matrix": [3, 0], "x":0, "y":3, "w":1.25},
{"matrix": [3, 1], "x":1.25, "y":3, "w":1},
{"matrix": [3, 2], "x":2.25, "y":3, "w":1},
{"matrix": [3, 3], "x":3.25, "y":3, "w":1},
{"matrix": [3, 4], "x":4.25, "y":3, "w":2},
{"matrix": [3, 5], "x":6.25, "y":3, "w":2},
{"matrix": [3, 7], "x":8.25, "y":3, "w":1},
{"matrix": [3, 8], "x":9.25, "y":3, "w":1},
{"matrix": [3, 9], "x":10.25, "y":3, "w":1},
{"matrix": [3,10], "x":11.75, "y":3},
{"matrix": [3,11], "x":12.75, "y":3},
{"matrix": [3,12], "x":13.75, "y":3}
]
}
}
}

View file

@ -0,0 +1,30 @@
// Copyright 2024 LAZDESIGNERS
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define LT1_SPC LT(1, KC_SPC)
// For testing only
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_DEL, KC_HOME,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH, MO(2), KC_UP,
KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, LT1_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
[2] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
};

View file

@ -0,0 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xC9, 0x6D, 0x94, 0xB7, 0x74, 0x64, 0x1B, 0x2A}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 12 }
#define VIAL_COMBO_ENTRIES 32
#define VIAL_TAP_DANCE_ENTRIES 32
#define DYNAMIC_KEYMAP_LAYER_COUNT 8

View file

@ -0,0 +1,30 @@
// Copyright 2024 LAZDESIGNERS
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#define LT1_SPC LT(1, KC_SPC)
// For testing only
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_DEL, KC_HOME,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH, MO(2), KC_UP,
KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, LT1_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
[2] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
};

View file

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

View file

@ -0,0 +1,30 @@
{
"lighting": "qmk_rgblight",
"matrix": {"rows": 4, "cols": 13},
"layouts": {
"labels":
[
["Style", "Staggered","Ortho"],
["Bottom Row", "Staggered Split", "Staggered Longbar","Ortho Split"]
],
"keymap":
[
[
"0,0\n\n\n0,0","0,1\n\n\n0,0","0,2\n\n\n0,0","0,3\n\n\n0,0","0,4\n\n\n0,0","0,5\n\n\n0,0","0,6\n\n\n0,0","0,7\n\n\n0,0","0,8\n\n\n0,0","0,9\n\n\n0,0","0,10\n\n\n0,0",{"w":1.5},"0,11\n\n\n0,0",{"x":0.25},"0,12\n\n\n0,0","1,12\n\n\n0,0",
{"x":-1,"w":1.25},"0,0\n\n\n0,1","0,1\n\n\n0,1","0,2\n\n\n0,1","0,3\n\n\n0,1","0,4\n\n\n0,1","0,5\n\n\n0,1","0,6\n\n\n0,1","0,7\n\n\n0,1","0,8\n\n\n0,1","0,9\n\n\n0,1","0,10\n\n\n0,1",{"w":1.25},"0,11\n\n\n0,1",{"x":0.25},"0,12\n\n\n0,1","1,12\n\n\n0,1"
],
[
{"w":1.25},"1,0","1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9","1,10",{"w":1.25},"1,11"
],
[
{"w":1.75},"2,0\n\n\n0,0","2,1\n\n\n0,0","2,2\n\n\n0,0","2,3\n\n\n0,0","2,4\n\n\n0,0","2,5\n\n\n0,0","2,6\n\n\n0,0","2,7\n\n\n0,0","2,8\n\n\n0,0","2,9\n\n\n0,0",{"w":1.75},"2,11\n\n\n0,0", {"x":0.25},"2,12\n\n\n0,0",
{"w":1.25},"2,0\n\n\n0,1","2,1\n\n\n0,1","2,2\n\n\n0,1","2,3\n\n\n0,1","2,4\n\n\n0,1","2,5\n\n\n0,1","2,6\n\n\n0,1","2,7\n\n\n0,1","2,8\n\n\n0,1","2,9\n\n\n0,1","2,10\n\n\n0,1",{"w":1.25},"2,11\n\n\n0,1",{"x":0.25},"2,12\n\n\n0,1"
],
[
{"w":1.25},"3,0\n\n\n1,0",{"w":1.25},"3,1\n\n\n1,0",{"w":1.25},"3,2\n\n\n1,0",{"w":2.25},"3,4\n\n\n1,0",{"w":2.75},"3,5\n\n\n1,0",{"w":1.25},"3,8\n\n\n1,0",{"w":1.25},"3,9\n\n\n1,0",{"x":0.5},"3,10\n\n\n1,0","3,11\n\n\n1,0","3,12\n\n\n1,0",
{"w":1.25},"3,0\n\n\n1,1",{"w":1.25},"3,1\n\n\n1,1",{"w":6.25},"3,5\n\n\n1,1",{"w":1.25},"3,8\n\n\n1,1",{"w":1.25},"3,9\n\n\n1,1",{"x":0.5},"3,10\n\n\n1,1","3,11\n\n\n1,1","3,12\n\n\n1,1",
{"w":1.25},"3,0\n\n\n1,2","3,1\n\n\n1,2","3,2\n\n\n1,2","3,3\n\n\n1,2",{"w":2},"3,4\n\n\n1,2",{"w":2},"3,5\n\n\n1,2","3,7\n\n\n1,2","3,8\n\n\n1,2","3,9\n\n\n1,2",{"x":0.5},"3,10\n\n\n1,2","3,11\n\n\n1,2","3,12\n\n\n1,2"
]
]
}
}

View file

@ -0,0 +1,18 @@
# Circe
A keyboard designed and produced in 2024 by [LAZYDESIGNERS](http://lazydesigners.cn).
* Keyboard Maintainer: [LAZYDESIGNERS](https://github.com/jackytrabbit)
* Hardware Supported: Circe
* Hardware Availability: Check [LAZYDESIGNERS's homepage.](http://lazydesigners.cn)
Make example for this keyboard (after setting up your vial build environment):
make lazydesigners/circe:vial
Flashing example for this keyboard:
make lazydesigners/circe:vial:flash
**Reset Key:** To enter the bootloader, either push the RESET button on the PCB or the RESET button on the FN layer.

View file

@ -0,0 +1,3 @@
RGBLIGHT_ENABLE = yes
RGBLIGHT_DRIVER = ws2812

View file

@ -0,0 +1,56 @@
{
"keyboard_name": "Kontro",
"manufacturer": "lazydesigners",
"url": "http://lazydesigners.cn",
"maintainer": "lazydesigners",
"usb": {
"vid": "0x4C44",
"pid": "0x0033",
"device_version": "0.0.1"
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": [ "B10", "A2", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7" ],
"rows": [ "B13", "B14", "A3"]
},
"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}
]
}
}
}

View file

@ -0,0 +1,25 @@
// Copyright 2024 LAZDESIGNERS
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_UP, KC_COMM
),
[1] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
[2] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
};

View file

@ -0,0 +1,13 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xC8, 0xE6, 0x2A, 0xC9, 0xD5, 0xE6, 0x29, 0x6D}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 9 }
#define VIAL_COMBO_ENTRIES 32
#define VIAL_TAP_DANCE_ENTRIES 32
#define DYNAMIC_KEYMAP_LAYER_COUNT 8

View file

@ -0,0 +1,25 @@
// Copyright 2024 LAZDESIGNERS
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_UP, KC_COMM
),
[1] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
[2] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
};

View file

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

View file

@ -0,0 +1,15 @@
{
"matrix": {"rows": 3, "cols": 10},
"layouts": {
"labels":
[
["Version", "Alpha","Gamma"]
],
"keymap": [
["0,0","0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","0,9"],
["1,0","1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9"],
["2,0\n\n\n0,0","2,1\n\n\n0,0","2,2\n\n\n0,0","2,3\n\n\n0,0","2,4\n\n\n0,0","2,5\n\n\n0,0","2,6\n\n\n0,0","2,7\n\n\n0,0","2,8\n\n\n0,0","2,9\n\n\n0,0"],
[{"w":0.25,"d":true},"\n\n\n0,1","2,0\n\n\n0,1","2,1\n\n\n0,1","2,2\n\n\n0,1","2,3\n\n\n0,1",{"w":1.5},"2,4\n\n\n0,1","2,6\n\n\n0,1","2,7\n\n\n0,1","2,8\n\n\n0,1","2,9\n\n\n0,1"]
]
}
}

View file

@ -0,0 +1,18 @@
# Kontro
A gasket mounted 30% keyboard designed and produced in 2024 by [LAZYDESIGNERS](http://lazydesigners.cn).
* Keyboard Maintainer: [LAZYDESIGNERS](https://github.com/jackytrabbit)
* Hardware Supported: Kontro Alpha and Kontro Gamma
* Hardware Availability: Check [LAZYDESIGNERS's homepage.](http://lazydesigners.cn)
Make example for this keyboard (after setting up your vial build environment):
make lazydesigners/kontro:vial
Flashing example for this keyboard:
make lazydesigners/kontro:vial:flash
**Reset Key:** To enter the bootloader, press the boot button and short the reset pads together on the PCB.

View file

@ -0,0 +1,12 @@
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output

View file

@ -0,0 +1,22 @@
/*
Copyright 2021 Kyle McCreery
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* VIAL Specific definitions */
#define VIAL_KEYBOARD_UID {0x8B, 0x1A, 0x35, 0x03, 0x78, 0x01, 0xB3, 0x6B}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 6 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 3 }
#define DYNAMIC_KEYMAP_MACRO_COUNT 32

View file

@ -0,0 +1,41 @@
{
"keyboard": "mechwild/bb65",
"keymap": "vial",
"version": 1,
"layout": "LAYOUT_all",
"layers": [
[
"QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC",
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS",
"MO(1)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_TRNS", "KC_ENT",
"KC_LSFT", "KC_TRNS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_UP", "UG_TOGG",
"UG_PREV", "KC_LGUI", "UG_NEXT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"
],
[
"KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_DEL",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_HOME", "KC_PGDN", "KC_END"
]
],
"config": {
"dynamic_keymap": {
"layer_count": 8
},
"eeprom": {
"wear_leveling": {
"backing_size": 8192
}
},
"features": {
"encoder_map": true,
"via": true,
"vial": true
}
},
"encoders": [
[{"ccw": "KC_VOLD", "cw": "KC_VOLU"}],
[{"ccw": "KC_TRNS", "cw": "KC_TRNS"}]
]
}

View file

@ -0,0 +1,17 @@
{
"lighting": "qmk_rgblight",
"matrix": {"rows": 8, "cols": 9},
"layouts": {
"labels": ["Split Enter", "Split Left Shift"],
"keymap": [
[{"x":2.5,"c":"#777777"},"0,0",{"c":"#cccccc"},"0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","5,8","5,7","5,6","5,5",{"c":"#aaaaaa","w":2},"5,4"],
[{"x":2.5,"w":1.5},"1,0",{"c":"#cccccc"},"1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","6,8","6,7","6,6","6,5",{"w":1.5},"6,4"],
[{"x":2.5,"c":"#aaaaaa","w":1.75},"2,0",{"c":"#cccccc"},"2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","7,0","6,0","6,1",{"c":"#777777","w":2.25},"6,3\n\n\n0,0",{"x":0.25,"c":"#aaaaaa"},"0,0\n\n\n\n\n\n\n\n\ne","0,1\n\n\n\n\n\n\n\n\ne"],
[{"w":1.25},"3,0\n\n\n1,1",{"c":"#cccccc"},"3,1\n\n\n1,1",{"x":0.25,"c":"#aaaaaa","w":2.25},"3,0\n\n\n1,0",{"c":"#cccccc"},"3,2","3,3","3,4","3,5","3,6","3,7","3,8","7,8","7,7","7,6",{"c":"#aaaaaa","w":1.75},"7,5",{"x":1.75},"7,3"],
[{"y":-0.75,"x":16.75,"c":"#777777"},"7,4"],
[{"y":-0.25,"x":2.5,"c":"#aaaaaa","w":1.25},"4,0",{"w":1.25},"4,1",{"w":1.25},"4,2",{"c":"#cccccc","w":6.25},"4,5",{"c":"#aaaaaa"},"4,3","4,4","4,6"],
[{"y":-0.75,"x":15.75,"c":"#777777"},"4,7","4,8","7,2"],
[{"y":0.25,"x":15.25,"c":"#cccccc"},"6,2\n\n\n0,1",{"c":"#777777","w":1.25},"6,3\n\n\n0,1"]
]
}
}

View file

@ -0,0 +1,18 @@
# The Classic_TKL Vial default layout
To change the color of the Caps Lock indicator:
1. Uncomment line 11 in `config.h` and change the RGB values:
```c
// Uncomment to customize the color of the caps lock indicator
// #define CAPS_LOCK_COLORS {0, 255, 0}
```
2. rebuild the firmware using
```
make novelkeys/nk_classic_tkl:vial
```
3. reflash the firmware according to [README.md](../../readme.md#flash)

View file

@ -0,0 +1,11 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x14, 0xE0, 0xDA, 0x55, 0xA2, 0xB4, 0xD4, 0xF7}
// Escape + Enter to unlock
#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
// Uncomment to customize the color of the caps lock indicator
// #define CAPS_LOCK_COLORS {0, 255, 0}

View file

@ -0,0 +1,75 @@
/* Copyright 2024 Yiancar-Designs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum my_keycodes {
RETRO_RGB = QK_KB_0
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_tkl_ansi_tsangan( /* Base */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT_tkl_ansi_tsangan( /* FN */
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, _______, _______,
_______, _______, _______, RETRO_RGB, _______, _______, _______, _______, _______, _______),
};
#ifdef CAPS_LOCK_COLORS
static uint8_t caps_lock_colors[] = CAPS_LOCK_COLORS;
#else
static uint8_t caps_lock_colors[] = {255, 86, 0};
#endif
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (host_keyboard_led_state().caps_lock) {
for (uint8_t i = 50; i <= 55; i++) {
rgb_matrix_set_color(i, caps_lock_colors[0], caps_lock_colors[1], caps_lock_colors[2]);
}
}
return false;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case RETRO_RGB:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_INDICATOR);
}
break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
}
break;
}
}
return false; // Skip all further processing of this key
default:
return true; // Process all other keycodes normally
}
}

View file

@ -0,0 +1,17 @@
# Wildcard to allow APM32 MCU (taken from source rules.mk)
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
# Enable VIA
VIA_ENABLE = yes
# Enable VIAL
VIAL_ENABLE = yes
LTO_ENABLE = yes
# Enable RGB
VIALRGB_ENABLE = yes
# Enable Bootmagic Lite
BOOTMAGIC_ENABLE = yes
# Mouse keys
MOUSEKEY_ENABLE = yes
# Audio control and System control
EXTRAKEY_ENABLE = yes
# Enable N-Key Rollover
NKRO_ENABLE = yes

View file

@ -0,0 +1,205 @@
{
"name": "NK_ Classic TKL",
"vendorId": "0x8968",
"productId": "0x4E54",
"matrix": {
"rows": 6,
"cols": 17
},
"lighting": "vialrgb",
"customKeycodes": [
{
"name": "NK_ Retro RGB",
"title": "NK_ Retro RGB",
"shortName": "RETRO_RGB"
}
],
"layouts": {
"keymap": [
[
{
"c": "#777777"
},
"0,0",
{
"x": 1,
"c": "#cccccc"
},
"0,1",
"0,2",
"0,3",
"0,4",
{
"x": 0.5,
"c": "#aaaaaa"
},
"0,5",
"0,6",
"0,7",
"0,8",
{
"x": 0.5,
"c": "#cccccc"
},
"0,9",
"0,10",
"0,11",
"0,12",
{
"x": 0.25,
"c": "#aaaaaa"
},
"0,14",
"0,15",
"0,16"
],
[
{
"y": 0.25,
"c": "#cccccc"
},
"1,0",
"1,1",
"1,2",
"1,3",
"1,4",
"1,5",
"1,6",
"1,7",
"1,8",
"1,9",
"1,10",
"1,11",
"1,12",
{
"c": "#aaaaaa",
"w": 2
},
"1,13",
{
"x": 0.25
},
"1,14",
"1,15",
"1,16"
],
[
{
"w": 1.5
},
"2,0",
{
"c": "#cccccc"
},
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
"2,12",
{
"w": 1.5
},
"3,12",
{
"x": 0.25,
"c": "#aaaaaa"
},
"2,14",
"2,15",
"2,16"
],
[
{
"w": 1.75
},
"3,0",
{
"c": "#cccccc"
},
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"c": "#aaaaaa",
"w": 2.25
},
"3,13"
],
[
{
"w": 2.25
},
"4,0",
{
"c": "#cccccc"
},
"4,2",
"4,3",
"4,4",
"4,5",
"4,6",
"4,7",
"4,8",
"4,9",
"4,10",
"4,11",
{
"c": "#aaaaaa",
"w": 2.75
},
"4,12",
{
"x": 1.25
},
"4,15"
],
[
{
"w": 1.5
},
"5,0",
"5,1",
{
"w": 1.5
},
"5,2",
{
"c": "#cccccc",
"w": 7
},
"5,6",
{
"c": "#aaaaaa",
"w": 1.5
},
"5,11",
"5,12",
{
"w": 1.5
},
"5,13",
{
"x": 0.25
},
"5,14",
"5,15",
"5,16"
]
]
}
}

View file

@ -0,0 +1,50 @@
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
* Copyright 2019 Sunjun Kim
* Copyright 2020 Ploopy Corporation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// These pins are not broken out, and cannot be used normally.
// They are set as output and pulled high, by default
#define UNUSABLE_PINS \
{ B4, D6, F1, F5, F6, F7 }
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
// #define DEBUG_LED_PIN F7
/* PMW33XX Settings */
#define PMW33XX_CS_PIN B0
#define ENCODER_BUTTON_COL 1
#define ENCODER_BUTTON_ROW 0
/* Custom encoder needs to specify just how many encoders we have */
#define NUM_ENCODERS 1
#define ENCODER_A_PINS { F0 }
#define ENCODER_B_PINS { F4 }
#define PLOOPY_DPI_OPTIONS { 800, 1200, 1600, 2400 }
#define PLOOPY_DPI_DEFAULT 0
#define VIAL_KEYBOARD_UID {0x84, 0x1C, 0x34, 0x08, 0xC9, 0xC5, 0xB4, 0x37}
#define VIAL_UNLOCK_COMBO_ROWS {0, 0}
#define VIAL_UNLOCK_COMBO_COLS {4, 5}

View file

@ -0,0 +1,23 @@
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
* Copyright 2019 Sunjun Kim
* Copyright 2020 Ploopy Corporation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(/* Base */
C(KC_C), KC_BTN1, KC_BTN3, KC_BTN2, C(KC_V), KC_BTN4, KC_BTN5, DPI_CONFIG)
};

View file

@ -0,0 +1,16 @@
# Processor frequency
F_CPU = 8000000
POINTING_DEVICE_DRIVER = pmw3360
# add vial config
VIA_ENABLE = yes
VIAL_ENABLE = yes
TAP_DANCE_ENABLE = no
KEY_OVERRIDE_ENABLE = no
LTO_ENABLE = yes
# VIAL_INSECURE = yes

View file

@ -0,0 +1,67 @@
{
"name": "PloopyCo Mouse",
"vendorId": "0x5043",
"productId": "0x4D6F",
"matrix": {
"rows": 1,
"cols": 8
},
"customKeycodes": [
{
"name": "DPI Config",
"title": "DPI Config: Cycles through the DPI settings",
"shortName": "DPI"
},
{
"name": "Drag Scroll",
"title": "Drag Scroll: Enables you to scroll instead of moving the cursor",
"shortName": "DragScl"
}
],
"lighting": "none",
"layouts": {
"keymap": [
[
"0,4",
{
"h": 2
},
"0,6",
{
"h": 2
},
"0,0",
{
"x": 1,
"h": 2
},
"0,2",
{
"h": 2
},
"0,5"
],
[
{
"y": -0.75,
"x": 3,
"h": 1.25
},
"0,1"
],
[
{
"y": -0.25
},
"0,3"
],
[
{
"y": -0.5,
"x": 3
},
"0,7"
]
]
}
}

View file

@ -1,295 +1,46 @@
{
"name": "Pteron36",
"vendorId": "0x4847",
"productId": "0x5054",
"lighting": "qmk_rgblight",
"matrix": {
"rows": 8,
"cols": 5
},
"layouts": {
"labels":["No Outer Thumbs","No Inner Thumbs"],
"keymap":[
[
{
"x": 2
},
"0,2",
{
"x": 9.5
},
"4,2"
],
[
{
"y": -0.75,
"x": 1
},
"0,1",
{
"x": 11.5
},
"4,1"
],
[
{
"y": -0.95,
"x": 3
},
"0,3",
{
"x": 7.5
},
"4,3"
],
[
{
"y": -0.9,
"x": 4
},
"0,4",
{
"x": 5.5
},
"4,4"
],
[
{
"y": -0.65
},
"0,0",
{
"x": 13.5
},
"4,0"
],
[
{
"y": -0.75,
"x": 2
},
"1,2",
{
"x": 9.5
},
"5,2"
],
[
{
"y": -0.75,
"x": 1
},
"1,1",
{
"x": 3
},
"0,0\n\n\n\n\n\n\n\n\ne",
"0,1\n\n\n\n\n\n\n\n\ne",
{
"x": 1.5
},
"1,0\n\n\n\n\n\n\n\n\ne",
"1,1\n\n\n\n\n\n\n\n\ne",
{
"x": 3
},
"5,1"
],
[
{
"y": -0.95,
"x": 3,
"n": true
},
"1,3",
{
"x": 7.5,
"n": true
},
"5,3"
],
[
{
"y": -0.8999999999999999,
"x": 4
},
"1,4",
{
"x": 5.5
},
"5,4"
],
[
{
"y": -0.6499999999999999
},
"1,0",
{
"x": 13.5
},
"5,0"
],
[
{
"y": -0.75,
"x": 2
},
"2,2",
{
"x": 9.5
},
"6,2"
],
[
{
"y": -0.75,
"x": 1
},
"2,1",
{
"x": 3
},
"3,4",
{
"x": 3.5
},
"7,4",
{
"x": 3
},
"6,1"
],
[
{
"y": -0.9500000000000002,
"x": 3
},
"2,3",
{
"x": 7.5
},
"6,3"
],
[
{
"y": -0.8999999999999999,
"x": 4
},
"2,4",
{
"x": 5.5
},
"6,4"
],
[
{
"y": -0.6499999999999999
},
"2,0",
{
"x": 13.5
},
"6,0"
],
[
{
"y": -0.25,
"x": 2.75,
"c": "#bababa",
"d": true
},
"3,3\n\n\n0,0\n36 keys",
{
"x": -1
},
"3,3\n\n\n0,1\n38 keys",
{
"x": 8,
"d": true
},
"7,3\n\n\n0,0\n36 keys",
{
"x": -1
},
"7,3\n\n\n0,1\n38 keys"
],
[
{
"r": 15,
"rx": 3.75,
"ry": 4.75,
"y": -1.25,
"c": "#888888"
},
"3,0"
],
[
{
"r": 30,
"rx": 4.25,
"ry": 4.8,
"y": -1.2999999999999998,
"x": 0.5,
"c": "#bababa"
},
"3,1"
],
[
{
"r": 45,
"rx": 4.75,
"ry": 4.9,
"y": -1.4000000000000004,
"x": 1
},
"3,2\n\n\n1,1"
],
[
{
"y": -0.9999999999999996,
"x": 1,
"d": true
},
"3,2\n\n\n1,0"
],
[
{
"r": -45,
"rx": 10.75,
"y": -1.4000000000000004,
"x": -2
},
"7,2\n\n\n1,1"
],
[
{
"y": -0.9999999999999996,
"x": -2,
"d": true
},
"7,2\n\n\n1,0"
],
[
{
"r": -30,
"rx": 11.25,
"ry": 4.8,
"y": -1.2999999999999998,
"x": -1.5
},
"7,1"
],
[
{
"r": -15,
"rx": 11.75,
"ry": 4.75,
"y": -1.25,
"x": -1,
"c": "#888888"
},
"7,0"
]
]
}
"name": "Pteron36",
"vendorId": "0x4847",
"productId": "0x5054",
"lighting": "qmk_rgblight",
"matrix": {
"rows": 8,
"cols": 5
},
"layouts": {
"labels": [
"No outer thumbkeys",
"No inner thumbkeys",
"No left encoder",
"No right encoder"
],
"keymap": [
[{"x":2},"0,2",{"x":9.5},"4,2"],
[{"y":-0.75,"x":1},"0,1",{"x":11.5},"4,1"],
[{"y":-0.95,"x":3},"0,3",{"x":7.5},"4,3"],
[{"y":-0.9,"x":4},"0,4",{"x":5.5},"4,4"],
[{"y":-0.65},"0,0",{"x":13.5},"4,0"],
[{"y":-1,"x":5.75,"d":true},"3,4\n\n\n2,1\nno enc0",{"x":2,"d":true},"7,4\n\n\n3,1\nno enc1"],
[{"y":-0.75,"x":2},"1,2",{"x":9.5},"5,2"],
[{"y":-0.75,"x":1},"1,1",{"x":11.5},"5,1"],
[{"y":-0.95,"x":3,"n":true},"1,3",{"x":7.5,"n":true},"5,3"],
[{"y":-0.9,"x":4},"1,4",{"x":5.5},"5,4"],
[{"y":-0.65},"1,0",{"x":4.25},"0,0\n\n\n2,0\ne0 CC\n\n\n\n\ne","0,1\n\n\n2,0\ne0 CCW\n\n\n\n\ne",{"x":1},"1,1\n\n\n3,0\ne1 CCW\n\n\n\n\ne","1,0\n\n\n3,0\ne1 CW\n\n\n\n\ne",{"x":4.25},"5,0"],
[{"y":-0.75,"x":2},"2,2",{"x":9.5},"6,2"],
[{"y":-0.75,"x":1},"2,1",{"x":11.5},"6,1"],
[{"y":-0.95,"x":3},"2,3",{"x":7.5},"6,3"],
[{"y":-0.9,"x":4},"2,4",{"x":5.5},"6,4"],
[{"y":-0.65},"2,0",{"x":4.75},"3,4\n\n\n2,0\nhas enc0",{"x":2},"7,4\n\n\n3,0\nhas enc1",{"x":4.75},"6,0"],
[{"y":-0.25,"x":2.75,"c":"#aaaaaa"},"3,3\n\n\n0,0\nhas outer",{"x":8},"7,3\n\n\n0,0\nhas outer"],
[{"x":2.75,"c":"#cccccc","d":true},"3,3\n\n\n0,1\nno outer",{"x":8,"d":true},"7,3\n\n\n0,1\nno outer"],
[{"r":15,"rx":3.75,"ry":4.75,"y":-1.25,"c":"#777777","n":true},"3,0"],
[{"r":30,"rx":4.25,"ry":4.8,"y":-1.3,"x":0.5,"c":"#aaaaaa"},"3,1"],
[{"r":45,"rx":4.75,"ry":4.9,"y":-2.4,"x":1,"c":"#cccccc","a":0,"d":true},"3,2\n\n\n1,1\n\nno inner"],
[{"x":1,"c":"#aaaaaa"},"3,2\n\n\n1,0\n\nhas inner"],
[{"r":-45,"rx":10.75,"y":-2.4,"x":-2,"c":"#cccccc","d":true},"7,2\n\n\n1,1\n\nno inner"],
[{"x":-2,"c":"#aaaaaa"},"7,2\n\n\n1,0\n\nhas inner"],
[{"r":-30,"rx":11.25,"ry":4.8,"y":-1.3,"x":-1.5,"a":4},"7,1"],
[{"r":-15,"rx":11.75,"ry":4.75,"y":-1.25,"x":-1,"c":"#777777","n":true},"7,0"]
]
}
}

View file

@ -1,377 +1,51 @@
{
"name": "Redox-W",
"matrix": {"rows": 5, "cols": 14},
"layouts": {
"keymap":[
[
{
"x": 3.5
},
"0,3",
{
"x": 10.5
},
"0,10"
],
[
{
"y": -0.875,
"x": 2.5
},
"0,2",
{
"x": 1
},
"0,4",
{
"x": 8.5
},
"0,9",
{
"x": 1
},
"0,11"
],
[
{
"y": -0.875,
"x": 5.5
},
"0,5",
{
"x": 6.5
},
"0,8"
],
[
{
"y": -0.875,
"c": "#777777",
"w": 1.5
},
"0,0",
{
"c": "#cccccc"
},
"0,1",
{
"x": 14.5
},
"0,12",
{
"c": "#aaaaaa",
"w": 1.5
},
"0,13"
],
[
{
"y": -0.625,
"x": 6.5,
"c": "#cccccc"
},
"0,6",
{
"x": 4.5
},
"0,7"
],
[
{
"y": -0.75,
"x": 3.5
},
"1,3",
{
"x": 10.5
},
"1,10"
],
[
{
"y": -0.875,
"x": 2.5
},
"1,2",
{
"x": 1
},
"1,4",
{
"x": 8.5
},
"1,9",
{
"x": 1
},
"1,11"
],
[
{
"y": -0.875,
"x": 5.5
},
"1,5",
{
"x": 6.5
},
"1,8"
],
[
{
"y": -0.875,
"c": "#aaaaaa",
"w": 1.5
},
"1,0",
{
"c": "#cccccc"
},
"1,1",
{
"x": 14.5
},
"1,12",
{
"c": "#aaaaaa",
"w": 1.5
},
"1,13"
],
[
{
"y": -0.625,
"x": 6.5,
"c": "#cccccc",
"h": 1.5
},
"1,6",
{
"x": 4.5,
"h": 1.5
},
"1,7"
],
[
{
"y": -0.75,
"x": 3.5
},
"2,3",
{
"x": 10.5
},
"2,10"
],
[
{
"y": -0.875,
"x": 2.5
},
"2,2",
{
"x": 1
},
"2,4",
{
"x": 8.5
},
"2,9",
{
"x": 1
},
"2,11"
],
[
{
"y": -0.875,
"x": 5.5
},
"2,5",
{
"x": 6.5
},
"2,8"
],
[
{
"y": -0.875,
"c": "#aaaaaa",
"w": 1.5
},
"2,0",
{
"c": "#cccccc"
},
"2,1",
{
"x": 14.5
},
"2,12",
{
"c": "#aaaaaa",
"w": 1.5
},
"2,13"
],
[
{
"y": -0.375,
"x": 3.5,
"c": "#cccccc"
},
"3,3",
{
"x": 10.5
},
"3,10"
],
[
{
"y": -0.875,
"x": 2.5
},
"3,2",
{
"x": 1
},
"3,4",
{
"x": 8.5
},
"3,9",
{
"x": 1
},
"3,11"
],
[
{
"y": -0.875,
"x": 5.5
},
"3,5",
{
"x": 6.5
},
"3,8"
],
[
{
"y": -0.875,
"c": "#aaaaaa",
"w": 1.5
},
"3,0",
{
"c": "#cccccc"
},
"3,1",
{
"x": 14.5
},
"3,12",
{
"c": "#aaaaaa",
"w": 1.5
},
"3,13"
],
[
{
"y": -0.375,
"x": 3.5
},
"4,3",
{
"x": 10.5
},
"4,10"
],
[
{
"y": -0.875,
"x": 2.5
},
"4,2",
{
"x": 12.5
},
"4,11"
],
[
{
"y": -0.75,
"x": 0.5
},
"4,0",
"4,1",
{
"x": 14.5
},
"4,12",
"4,13"
],
[
{
"y": -0.7450000000000001,
"x": 13.5
},
"4,9"
],
[
{
"y": -0.75,
"x": 5.25
},
"4,4"
],
[
{
"r": 30,
"rx": 6.5,
"ry": 4.25,
"y": -1,
"x": 1
},
"2,6",
"3,6"
],
[
{
"x": 1,
"c": "#777777",
"h": 2
},
"4,5",
{
"c": "#aaaaaa",
"h": 2
},
"4,6"
],
[
{
"r": -30,
"rx": 13,
"y": -1,
"x": -3
},
"3,7",
"2,7"
],
[
{
"x": -3,
"h": 2
},
"4,7",
{
"c": "#777777",
"h": 2
},
"4,8"
]
]
}
"name": "Redox-W",
"vendorId": "0x4D44",
"productId": "0x5257",
"matrix": {
"rows": 5,
"cols": 14
},
"layouts": {
"labels": [
[
"Thumb cluster keycap sizes",
"1.25u",
"1u + 1.5u"
]
],
"keymap": [
[{"x":3.25},"0,3",{"x":9.5},"0,10"],
[{"y":-0.87,"x":2.25},"0,2",{"x":1},"0,4",{"x":7.5},"0,9",{"x":1},"0,11"],
[{"y":-0.88,"x":5.25},"0,5",{"x":5.5},"0,8"],
[{"y":-0.87,"c":"#aaaaaa","w":1.25},"0,0",{"c":"#cccccc"},"0,1",{"x":13.5},"0,12",{"c":"#aaaaaa","w":1.25},"0,13"],
[{"y":-0.705,"x":6.25,"c":"#cccccc","h":1.25},"0,6",{"x":3.5,"h":1.25},"0,7"],
[{"y":-0.675,"x":3.25},"1,3",{"x":9.5},"1,10"],
[{"y":-0.87,"x":2.25},"1,2",{"x":1},"1,4",{"x":7.5},"1,9",{"x":1},"1,11"],
[{"y":-0.88,"x":5.25},"1,5",{"x":5.5},"1,8"],
[{"y":-0.87,"c":"#aaaaaa","w":1.25},"1,0",{"c":"#cccccc"},"1,1",{"x":13.5},"1,12",{"c":"#aaaaaa","w":1.25},"1,13"],
[{"y":-0.455,"x":6.25,"c":"#cccccc","h":1.25},"1,6",{"x":3.5,"h":1.25},"1,7"],
[{"y":-0.925,"x":3.25},"2,3",{"x":9.5},"2,10"],
[{"y":-0.87,"x":2.25},"2,2",{"x":1,"n":true},"2,4",{"x":7.5,"n":true},"2,9",{"x":1},"2,11"],
[{"y":-0.88,"x":5.25},"2,5",{"x":5.5},"2,8"],
[{"y":-0.87,"c":"#aaaaaa","w":1.25},"2,0",{"c":"#cccccc"},"2,1",{"x":13.5},"2,12",{"c":"#aaaaaa","w":1.25},"2,13"],
[{"y":-0.38,"x":3.25,"c":"#cccccc"},"3,3",{"x":9.5},"3,10"],
[{"y":-0.87,"x":2.25},"3,2",{"x":1},"3,4",{"x":7.5},"3,9",{"x":1},"3,11"],
[{"y":-0.88,"x":5.25},"3,5",{"x":5.5},"3,8"],
[{"y":-0.87,"c":"#aaaaaa","w":1.25},"3,0",{"c":"#cccccc"},"3,1",{"x":13.5},"3,12",{"c":"#aaaaaa","w":1.25},"3,13"],
[{"y":-0.38,"x":3.25},"4,3",{"x":9.5},"4,10"],
[{"y":-0.87,"x":2.25},"4,2",{"x":11.5},"4,11"],
[{"y":-0.75,"x":0.25},"4,0","4,1",{"x":13.5},"4,12","4,13"],
[{"r":15,"rx":5.75,"ry":4.5,"x":-1.25,"w":1.25},"4,4"],
[{"r":30,"rx":6.25,"ry":4.4,"y":-1.15,"a":0},"2,6\n\n\n0,1\n\n1+1.5u","3,6\n\n\n0,1\n\n1+1.5u"],
[{"y":-1,"h":1.25},"2,6\n\n\n0,0\n\n1,25u",{"h":1.25},"3,6\n\n\n0,0\n\n1,25u"],
[{"c":"#777777","h":1.5,"n":true},"4,5\n\n\n0,1\n\n1+1.5u",{"c":"#aaaaaa","h":1.5},"4,6\n\n\n0,1\n\n1+1.5u"],
[{"y":-0.75,"c":"#777777","h":1.25,"n":true},"4,5\n\n\n0,0\n\n1,25u",{"c":"#aaaaaa","h":1.25},"4,6\n\n\n0,0\n\n1,25u"],
[{"r":-30,"rx":11.75,"y":-1.15,"x":-2},"3,7\n\n\n0,1\n\n1+1.5u","2,7\n\n\n0,1\n\n1+1.5u"],
[{"y":-1,"x":-2,"h":1.25},"3,7\n\n\n0,0\n\n1,25u",{"h":1.25},"2,7\n\n\n0,0\n\n1,25u"],
[{"x":-2,"h":1.5},"4,7\n\n\n0,1\n\n1+1.5u",{"c":"#777777","h":1.5,"n":true},"4,8\n\n\n0,1\n\n1+1.5u"],
[{"y":-0.75,"x":-2,"c":"#aaaaaa","h":1.25},"4,7\n\n\n0,0\n\n1,25u",{"c":"#777777","h":1.25,"n":true},"4,8\n\n\n0,0\n\n1,25u"],
[{"r":-15,"rx":12.25,"ry":4.5,"c":"#aaaaaa","a":4,"w":1.25},"4,9"]
]
}
}

View file

@ -0,0 +1,26 @@
# rorian04_kbd
![1726747889080](https://github.com/user-attachments/assets/acade73f-5c4c-4c72-9565-6f4eeff3b5da)
A one hand keyboard with multiple layers (vial only)
* Keyboard Maintainer: [Rorian04](https://github.com/Rorian04)
* Hardware Supported: waveshare rp2040
Make example for this keyboard (after setting up your build environment):
qmk compile -kb rorian04_kd -km vial
Flashing example for this keyboard:
Waveshare rp2040 has a inbuilt bootloader so you just copy paste the ".uf2" file into the keyboard drive while bootmode is active.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 2 ways:
* **Reset button in mcu**: Hold down both the buttons in the rp2040 mcu while plugging in
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1,17 @@
/*
Copyright 2024 Salane
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define RP2040_FLASH_GENERIC_03H

View file

@ -0,0 +1,128 @@
{
"keyboard_name": "NCR80 ALPS SKFL",
"manufacturer": "Salane",
"url": "",
"maintainer": "Mai The San",
"processor": "RP2040",
"bootloader": "rp2040",
"usb": {
"vid": "0x534C",
"pid": "0x087A",
"device_version": "0.0.1"
},
"matrix_pins": {
"rows": ["GP24", "GP9", "GP10", "GP13", "GP12", "GP11"],
"cols": ["GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23", "GP25", "GP26", "GP27", "GP28", "GP29", "GP6", "GP5", "GP4", "GP3"]
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"console": false,
"command": false,
"nkro": false,
"rgblight": false
},
"indicators": {
"num_lock": "GP0",
"caps_lock": "GP1",
"scroll_lock": "GP2"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "K00", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "K01", "matrix": [0, 1], "x": 2, "y": 0},
{"label": "K02", "matrix": [0, 2], "x": 3, "y": 0},
{"label": "K03", "matrix": [0, 3], "x": 4, "y": 0},
{"label": "K04", "matrix": [0, 4], "x": 5, "y": 0},
{"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0},
{"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0},
{"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0},
{"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0},
{"label": "K09", "matrix": [0, 9], "x": 11, "y": 0},
{"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0},
{"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0},
{"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0},
{"label": "K10", "matrix": [1, 0], "x": 0, "y": 2},
{"label": "K11", "matrix": [1, 1], "x": 1, "y": 2},
{"label": "K12", "matrix": [1, 2], "x": 2, "y": 2},
{"label": "K13", "matrix": [1, 3], "x": 3, "y": 2},
{"label": "K14", "matrix": [1, 4], "x": 4, "y": 2},
{"label": "K15", "matrix": [1, 5], "x": 5, "y": 2},
{"label": "K16", "matrix": [1, 6], "x": 6, "y": 2},
{"label": "K17", "matrix": [1, 7], "x": 7, "y": 2},
{"label": "K18", "matrix": [1, 8], "x": 8, "y": 2},
{"label": "K19", "matrix": [1, 9], "x": 9, "y": 2},
{"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2},
{"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2},
{"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2},
{"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2},
{"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2},
{"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2},
{"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2},
{"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2},
{"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3},
{"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3},
{"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3},
{"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3},
{"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3},
{"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3},
{"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3},
{"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3},
{"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3},
{"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3},
{"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3},
{"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3},
{"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5},
{"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3},
{"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3},
{"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3},
{"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4},
{"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4},
{"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4},
{"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4},
{"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4},
{"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4},
{"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4},
{"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4},
{"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4},
{"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4},
{"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4},
{"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25},
{"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
{"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5},
{"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5},
{"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5},
{"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5},
{"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5},
{"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5},
{"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5},
{"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5},
{"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5},
{"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5},
{"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75},
{"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5},
{"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5},
{"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
{"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6},
{"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5},
{"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7},
{"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5},
{"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6},
{"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5},
{"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6},
{"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6},
{"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6}
]
}
}
}

View file

@ -0,0 +1,28 @@
/* Copyright 2023 SawnsProjects
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_SLSH, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
)
};

View file

@ -0,0 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x93, 0x57, 0xB2, 0x78, 0xFB, 0x94, 0x01, 0x81}
#define VIAL_UNLOCK_COMBO_ROWS {0, 3}
#define VIAL_UNLOCK_COMBO_COLS {0, 13}

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