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

This commit is contained in:
stanrc85 2025-02-10 15:29:38 -05:00
commit 40dc4e4f4c
28 changed files with 1221 additions and 668 deletions

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,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,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,25 @@
/* Copyright 2024 Juho T. (@Squalius-cephalus)
*
* 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 SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP0
#define SERIAL_USART_RX_PIN GP1
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17

View file

@ -0,0 +1,104 @@
{
"manufacturer": "Squalius-cephalus",
"keyboard_name": "silakka54",
"maintainer": "Squalius-cephalus",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"split": {
"enabled": true,
"serial": {
"driver": "vendor"
}
},
"matrix_pins": {
"cols": ["GP7", "GP8", "GP9", "GP10", "GP11", "GP12"],
"rows": ["GP2", "GP3", "GP4", "GP5","GP6"]
},
"processor": "RP2040",
"url": "https://github.com/Squalius-cephalus/silakka54",
"usb": {
"device_version": "1.0.0",
"pid": "0x1212",
"vid": "0xFEED"
},
"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": [5, 5], "x": 0, "y": 5},
{"matrix": [5, 4], "x": 1, "y": 5},
{"matrix": [5, 3], "x": 2, "y": 5},
{"matrix": [5, 2], "x": 3, "y": 5},
{"matrix": [5, 1], "x": 4, "y": 5},
{"matrix": [5, 0], "x": 5, "y": 5},
{"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": [6, 5], "x": 0, "y": 6},
{"matrix": [6, 4], "x": 1, "y": 6},
{"matrix": [6, 3], "x": 2, "y": 6},
{"matrix": [6, 2], "x": 3, "y": 6},
{"matrix": [6, 1], "x": 4, "y": 6},
{"matrix": [6, 0], "x": 5, "y": 6},
{"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": [7, 5], "x": 0, "y": 7},
{"matrix": [7, 4], "x": 1, "y": 7},
{"matrix": [7, 3], "x": 2, "y": 7},
{"matrix": [7, 2], "x": 3, "y": 7},
{"matrix": [7, 1], "x": 4, "y": 7},
{"matrix": [7, 0], "x": 5, "y": 7},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 5], "x": 5, "y": 3},
{"matrix": [8, 5], "x": 0, "y": 9},
{"matrix": [8, 4], "x": 1, "y": 9},
{"matrix": [8, 3], "x": 2, "y": 9},
{"matrix": [8, 2], "x": 3, "y": 9},
{"matrix": [8, 1], "x": 4, "y": 9},
{"matrix": [8, 0], "x": 5, "y": 9},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [4, 4], "x": 4, "y": 4},
{"matrix": [4, 5], "x": 5, "y": 4},
{"matrix": [9, 5], "x": 3, "y": 9},
{"matrix": [9, 4], "x": 4, "y": 9},
{"matrix": [9, 3], "x": 5, "y": 9}
]
}
}
}

View file

@ -0,0 +1,22 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_LCTL, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LGUI, MO(1), KC_SPC, KC_ENT, KC_RCTL, KC_RALT
),
[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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_HOME, KC_END, KC_DEL, KC_F12,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LBRC, KC_RBRC,
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,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x97, 0xD0, 0xA5, 0x97, 0x57, 0x48, 0xD0, 0x4F}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 1 }

View file

@ -0,0 +1,22 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_LCTL, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LGUI, MO(1), KC_SPC, KC_ENT, KC_RCTL, KC_RALT
),
[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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_HOME, KC_END, KC_DEL, KC_F12,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LBRC, KC_RBRC,
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,2 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes

View file

@ -0,0 +1,78 @@
{
"matrix": {
"rows": 10,
"cols": 6
},
"layouts": {
"keymap": [
[{ "x": 2 }, "0,2", "0,3", { "x": 5.25 }, "5,3", "5,2"],
[
{ "y": -0.75 },
"0,0",
"0,1",
{ "x": 2 },
"0,4",
{ "x": 3.25 },
"5,4",
{ "x": 2 },
"5,1",
"5,0"
],
[{ "y": -0.75, "x": 5 }, "0,5", { "x": 1.25 }, "5,5"],
[{ "y": -0.5, "x": 2 }, "1,2", "1,3", { "x": 5.25 }, "6,3", "6,2"],
[
{ "y": -0.75 },
"1,0",
"1,1",
{ "x": 2 },
"1,4",
{ "x": 3.25 },
"6,4",
{ "x": 2 },
"6,1",
"6,0"
],
[{ "y": -0.75, "x": 5 }, "1,5", { "x": 1.25 }, "6,5"],
[{ "y": -0.5, "x": 2 }, "2,2", "2,3", { "x": 5.25 }, "7,3", "7,2"],
[
{ "y": -0.75 },
"2,0",
"2,1",
{ "x": 2 },
"2,4",
{ "x": 3.25 },
"7,4",
{ "x": 2 },
"7,1",
"7,0"
],
[{ "y": -0.75, "x": 5 }, "2,5", { "x": 1.25 }, "7,5"],
[{ "y": -0.5, "x": 2 }, "3,2", "3,3", { "x": 5.25 }, "8,3", "8,2"],
[
{ "y": -0.75 },
"3,0",
"3,1",
{ "x": 2 },
"3,4",
{ "x": 3.25 },
"8,4",
{ "x": 2 },
"8,1",
"8,0"
],
[{ "y": -0.75, "x": 5 }, "3,5", { "x": 1.25 }, "8,5"],
[
{ "y": 0.25, "x": 2.75 },
"4,3",
"4,4",
{ "x": 0.25 },
"4,5",
{ "x": 1.25 },
"9,5",
{ "x": 0.25 },
"9,4",
"9,3"
]
]
}
}

View file

@ -0,0 +1,24 @@
# Silakka54
![Silakka54](https://i.imgur.com/JrsS0kY.png)
Silakka54 is a RP2040 Zero based 54-key column staggered split keyboard. PCB uses hotswap sockets. Design is inspired from REVIUNG41 and Corne keyboards.
* Keyboard Maintainer: [Squalius-cephalus](https://github.com/Squalius-cephalus)
* Hardware Supported: Silakka54 PCB
* Hardware Availability: https://github.com/Squalius-cephalus/silakka54
Make example for this keyboard (after setting up your vial build environment):
make silakka54:vial
Flashing example for this keyboard:
make silakka54:vial:flash
## Bootloader
Enter the bootloader in 2 ways:
* **Physical boot button**: Hold BOOT button down and connect MCU to the PC
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available