Compare commits

..
Author SHA1 Message Date
Ricardo (XenGi) Band
65b45d8f7e
add mkbd65 2025-11-16 11:52:11 +01:00
Ricardo (XenGi) Band
ee55271bb0
add mkbd65 2025-11-16 10:57:37 +01:00
Joan Delilah Pepin
63fd8a414c
Add Vial support for 1upkeyboards/pi60_rgb_v2 (#958)
- Create vial keymap with proper 14-column matrix configuration
- Fix matrix mapping to match LAYOUT_60_ansi
- Enable VIALRGB support for RGB control
- Add 10 layers with RGB controls on layer 1
- Include custom tap settings and macro configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Joan Delilah Pepin <delilah@Studio.local>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-08 01:25:23 -06:00
Wizzard
7594e6be0d
Add vial support for kbdfans/odin75 (#956)
Co-authored-by: Wizzard <admin@bit-piraten.net>
2025-11-02 20:02:21 -06:00
Scramble Tools
9b624c5ac4
fix(quantum): Add static assertions for LAG keycode (#957) 2025-11-02 00:57:02 -06:00
Coom
5ce9ae935b
Add support handwired/ziyoulang_k3_mod (#955) 2025-10-19 18:43:41 -06:00
Eric Kotato
2663d32aa8
Add Vial support for Glorious GMMK V2 65 ANSI (#954) 2025-10-18 12:07:13 -06:00
andrew morton
8e0675360c
feat(glyphkbd_v2): Add vial support (#953) 2025-10-18 11:09:02 -06:00
A.L.Ko
b3c966238b
Cantordeon (#950)
* +keyboards/alk0/cornedeon

* *READMI

* Update keyboards/alk0/cornedeon/keymaps/vial/vial.json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/README.md

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/README.md

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/keymaps/vial/keymap.c

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/keymaps/vial/rules.mk

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/keymaps/vial/rules.mk

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/keymaps/default/keymap.c

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Fixed suggestions

* -postconfig; +readme;

* +rev2 native rp2040

* Update README.md

* *fix rgb matrix

* +rev2 tested

* Fix vial rules.mk for rev1_5 compatibility

* +alko/cornedeon_mini; +alko/cantordeon;

* *alko/cantordeon/READMI.md;

* *alko/cantordeon/READMI.md;

* cornedeon_mini uid fixed

* -rev1_5 removed

* removed keymap vial_mini

* removed keymap vial_mini

---------

Co-authored-by: alko <alko@istperm.ru>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: A.L.K <alko@nas.local>
Co-authored-by: alko <alko@alk0.ru>
2025-10-12 00:27:25 -06:00
Jacky@LAZYDESIGNERS
49a40340ee
Add support for LAZYDESIGNERS/LittleWing (#949)
Add support for LAZYDESIGNERS/LittleWing
2025-10-04 12:43:22 -06:00
obosob
4b7f74fcf6
[ploopyco/trackball] Add vial support (#945) 2025-09-30 12:46:04 -06:00
jcshumpert
3e23f3339a
Porting Smith & Rune's Magnus175 keyboard (#944)
* porting magnus175 hotswap

* porting magnus175 soldered
2025-09-26 19:54:49 -06:00
Ivan Gromov
057f3b658b
Add Vial support for keyten/diablo (#942)
* Add Vial support

* Reducing firmware size
2025-09-26 19:54:30 -06:00
Ivan Gromov
4a430f1960
Add Vial support for keyten/aperture (#941)
* Add Vial Support

* Reducing firmware size
2025-09-26 19:54:18 -06:00
Ivan Gromov
27304097ca
Add Vial support (#940) 2025-09-21 19:32:25 -06:00
Ivan Gromov
d195d8a8e4
Add Vial support for keyten/kt60hs_t (#939)
* Add Vial keymap

* Update vial.json
2025-09-21 19:32:12 -06:00
AkariiinMKII
7d8197d60b
Add MAGIC_TOGGLE_GUI to keycode ensure list (#930)
* add GUI_Toggle

* Reorder MAGIC_NO_GUI and MAGIC_UNNO_GUI

* Revert "Reorder MAGIC_NO_GUI and MAGIC_UNNO_GUI"

This reverts commit 79203031df30447788f6207db660556d0da76f34.
2025-09-20 20:57:55 -06:00
Samuel Ainsworth
c75c8897a1
add GEIGEIGEIST/TOTEM (#938)
See https://github.com/GEIGEIGEIST/TOTEM
2025-09-20 20:57:49 -06:00
melonbred
3beda8bc8d
Added mb44v2 keyboard. (#936) 2025-09-20 19:34:56 -06:00
Rogier Spieker
1638f5da2b
Added Keychron Q9 Plus vial keymap (#928)
Co-authored-by: Rogier Spieker <rogier@konfirm.io>
2025-08-31 22:47:39 -06:00
Danny
af590c4220
Add Iris LM support (#927) 2025-08-31 05:04:09 -06:00
era
9132830229
Add Riley (#925)
Add Riley
2025-08-15 19:01:47 -06:00
AP
0f7eae3a55
viktus-spmini vial support (#921)
* viktus-spmini vial support

* Fix ID for spmini

* Size reduction

Based on https://docs.qmk.fm/squeezing_avr. Local compile reports as " * The firmware size is fine - 25946/28672 (90%, 2726 bytes free)"

Also changed unlock combo.

* VIAL_UNLOCK_COMBO_ROWS update

Fixed dupe key
2025-08-05 20:03:15 -06:00
H3lli0n
579b8ffacd
feat: adding support to HLB Hyperbolas TKL / 8k (#922)
* feat: adding support to HLB Hyperbolas

* fix: matrix and keymap

* fix: keymap indexes errors

* fix: updated default keymap

---------

Co-authored-by: H3lli0n <thulium.hqfr@gmail.com>
2025-08-04 17:36:31 -06:00
AP
97bf893338
Support for dmqdesign-spin (#920) 2025-08-01 19:44:10 -06:00
H3lli0n
ee919eedb3
feat: adding support for HLB PoorKoi R1/R2 (#918)
* feat: initial PoorKoi keymap

* fix: underglow and led capslock

* feat: activating underglow

* fix: bad parameters

* feat: activating rgblights

* feat: default activated feature

* fix: supported layout clean up

* fix: led count

* fix: change to vialrgb

* fix: change to vialrgb

* fix: bad parameters

* fix: led count

* fix: enable animation

* feat: updating configuration

* fix: typo

* fix: wrong column

* fix: capslock led fixed and layer indicator added

* fix: color of first layer

* feat: custom keycode and saved settings for indicator

* fix: change layer 4 color

* fix: layer indicator management + capslock led indicator

* fix: clean code and keymap

* fix: default keymap and community definitions

* fix: licence headers and console default value

---------

Co-authored-by: H3lli0n <thulium.hqfr@gmail.com>
2025-08-01 19:43:53 -06:00
H3lli0n
8aee20919a
feat: adding support for HLB CantorMX F411 (#917)
* feat: adding CantorMX F411 support

* fix: documentation

* fix: bootloader definition

---------

Co-authored-by: H3lli0n <thulium.hqfr@gmail.com>
2025-08-01 19:43:27 -06:00
A.L.Ko
df52e039b2
Add keyboards/alk0/cornedeon (#914)
* +keyboards/alk0/cornedeon

* *READMI

* Update keyboards/alk0/cornedeon/keymaps/vial/vial.json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/README.md

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/README.md

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/keymaps/vial/keymap.c

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/keymaps/vial/rules.mk

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/keymaps/vial/rules.mk

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/alk0/cornedeon/keymaps/default/keymap.c

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Fixed suggestions

* -postconfig; +readme;

* +rev2 native rp2040

* Update README.md

* *fix rgb matrix

* +rev2 tested

* Fix vial rules.mk for rev1_5 compatibility

---------

Co-authored-by: alko <alko@istperm.ru>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: A.L.K <alko@nas.local>
Co-authored-by: alko <alko@alk0.ru>
2025-08-01 19:43:01 -06:00
VeyPatch
79feea235c
fix: Don't disable LTO (#916) 2025-07-28 20:04:50 -06:00
H3lli0n
2a8b23eb87
feat: adding vial support on WiredIn Protagonist (#913)
* feat: adding vial support on WiredIn Protagonist

* fix: pro_h/keymaps/vial/vial.json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* fix: pro_s/keymaps/vial/vial.json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* fix: pro_s unnecessary config.h define

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* fix: pro_s unnecessary config.h define

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* fix: pro_h unnecessary config.h define

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* fix: missing json tag

* fix: pro-s row number

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

---------

Co-authored-by: H3lli0n <thulium.hqfr@gmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2025-07-26 21:57:48 -06:00
mizma
80393c53ad
Keyboard/slimdash (#915)
* add mzmkb/slimdash vial config

* fix keymap for RGB backlight control
2025-07-26 20:58:28 -06:00
Bailey
e30ff448af
Ll3ma Rebrand (#912)
* Rebrand to Ll3ma

* Rebrand to Ll3ma

* Update keyboard_aliases.hjson
2025-07-20 14:40:06 -06:00
ClownFish
8ccc1e3423
add vial support for doio kb03 (#911)
* add vial keymap for doio/kb03

* Update keyboards/doio/kb03/keymaps/vial/vial.json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2025-07-20 14:39:08 -06:00
Ilya Zhuravlev
967967e122 Merge branch 'merge-2025-06-21' into vial 2025-07-12 17:06:05 -06:00
chillKB
9a60a335a8
add Vial support for ghoul TKL (#904) 2025-06-28 22:53:59 -06:00
Nam
7afc4ba45c
Add zed60 vial support (#903) 2025-06-28 15:52:38 -06:00
Gilbert Creemers
02a98ccd71
Add Vial support to ProjectD Tinker 65 ANSI (#895)
* Add support for ProjectD Tinker65 ANSI

Reduced nr. of layers from 13 to 4 and disabled some features to save space, because otherwise wouldn't fit EPROM

* All features enabled by default

All features now enabled by default, and only nr. of layers reduced to make fit. Can uncomment lines in rules.mk to squeeze a bit more free space out if features are not needed.

* Fix nr. of layers in keyboard.json

When uploading to github for the pull request, forgot to edit the keyboard.json to decrease the number of layers. Only did that in my local offline clone.

* Moved layer reduction to vial/config.h and reverted main keyboard.json

Reverted main keyboard.json back to default for upstream QMK compatibility. Put redefinition of layers back in vial/config.h but added a #undef to get rid of the definition from keyboard.json that caused this method to not build.
2025-06-22 20:52:16 -06:00
219 changed files with 12616 additions and 12 deletions

View file

@ -407,6 +407,9 @@
"lfkeyboards/smk65": {
"target": "lfkeyboards/smk65/revb"
},
"ll3macorn/bongopad": {
"target": "ll3ma/bongopad"
},
"m3v3van": {
"target": "matthewdias/m3n3van"
},

View file

@ -0,0 +1,17 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x8B, 0x7C, 0x4D, 0x3E, 0x2F, 0x1A, 0x9B, 0x5C}
/* Vial unlock combo - ESC + Enter */
#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
/* Custom settings */
#define TAPPING_TERM 235
#define PERMISSIVE_HOLD
#define DYNAMIC_KEYMAP_MACRO_COUNT 56
#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 8192
#define VIAL_TAP_DANCE_ENTRIES 32
#define VIAL_COMBO_ENTRIES 32

View file

@ -0,0 +1,100 @@
/* 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_60_ansi(
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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL
),
[1] = LAYOUT_60_ansi(
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,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[4] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[5] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[6] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[7] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[8] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[9] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

View file

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

View file

@ -0,0 +1,97 @@
{
"lighting": "vialrgb",
"matrix": {
"rows": 5,
"cols": 14
},
"layouts": {
"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,13"
],
[
{"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,13"
],
[
{"w": 2.25},
"3,0",
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
{"w": 2.75},
"3,13"
],
[
{"w": 1.25},
"4,0",
{"w": 1.25},
"4,1",
{"w": 1.25},
"4,2",
{"w": 6.25},
"4,5",
{"w": 1.25},
"4,9",
{"w": 1.25},
"4,10",
{"w": 1.25},
"4,12",
{"w": 1.25},
"4,13"
]
]
}
}

View file

@ -0,0 +1,27 @@
# Cantordeon
Inspired by [El Cantor HS](https://github.com/azhizhinov/ELCANTORHS)
![Cantordeon](https://cornedeon.ru/img/cantordeon_1_over.jpg)
This keyboard a mod of El Cantor HS with rp2040 MCU and diode matrix, optimized for handwired.
* Keyboard Maintainer: [alko](https://github.com/alko-kbd/)
* Gallery: [Cornedeon](https://cornedeon.ru)
* Case 3D Model: [Thingiverse](https://www.thingiverse.com/thing:7161522)
* Hardware Supported: rp2040-zero
## Build firmware
qmk compile -kb alko/cantordeon -km vial
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the two top left keys (top right for right side) and plug in the keyboard.
* **Physical reset button**:
* Press and hold the BOOT button.
* Press and release the RESET button.
* Release the BOOT button.

View file

@ -0,0 +1,18 @@
// Copyright 2024 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_RX_PIN GP1
#define SERIAL_USART_TX_PIN GP0
//#define USE_SERIAL
//#define SOFT_SERIAL_PIN GP1
//#define USB_VBUS_PIN GP2
/* RP2040- and hardware-specific config */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
//#define SPLIT_HAND_PIN GP8

View file

@ -0,0 +1,107 @@
{
"manufacturer": "alko",
"keyboard_name": "Cantordeon",
"maintainer": "alko",
"url": "https://github.com/alko-kbd/cantordeon",
"usb": {
"vid": "0x4653",
"pid": "0x0004",
"suspend_wakeup_delay": 200,
"device_version": "1.0.0"
},
"processor": "RP2040",
"bootloader": "rp2040",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"oled": false,
"rgblight": false,
"rgb_matrix": false,
"encoder": false
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["GP28", "GP27", "GP26", "GP15", "GP14", "GP13"],
"rows": ["GP4", "GP5", "GP6", "GP7"]
},
"bootmagic": {
"enabled": true,
"matrix": [ 0, 1 ]
},
"split": {
"enabled": true,
"bootmagic": {
"matrix": [4, 1]
},
"matrix_pins": {
"right": {
"cols": ["GP9", "GP8", "GP7", "GP6", "GP5", "GP4"],
"rows": ["GP28", "GP27", "GP26", "GP15"]
}
},
"handedness": {
"pin": "GP29"
},
"serial": {
"driver": "vendor"
},
"transport": {
"sync": {
"matrix_state": true
},
"watchdog": true
}
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.25},
{"matrix": [0, 1], "x": 1, "y": 0.25},
{"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": [4, 0], "x": 8, "y": 0.25},
{"matrix": [4, 1], "x": 9, "y": 0.125},
{"matrix": [4, 2], "x": 10, "y": 0},
{"matrix": [4, 3], "x": 11, "y": 0.125},
{"matrix": [4, 4], "x": 12, "y": 0.25},
{"matrix": [4, 5], "x": 13, "y": 0.25},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"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": [5, 0], "x": 8, "y": 1.25},
{"matrix": [5, 1], "x": 9, "y": 1.125},
{"matrix": [5, 2], "x": 10, "y": 1},
{"matrix": [5, 3], "x": 11, "y": 1.125},
{"matrix": [5, 4], "x": 12, "y": 1.25},
{"matrix": [5, 5], "x": 13, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25},
{"matrix": [2, 1], "x": 1, "y": 2.25},
{"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": [6, 0], "x": 8, "y": 2.25},
{"matrix": [6, 1], "x": 9, "y": 2.125},
{"matrix": [6, 2], "x": 10, "y": 2},
{"matrix": [6, 3], "x": 11, "y": 2.125},
{"matrix": [6, 4], "x": 12, "y": 2.25},
{"matrix": [6, 5], "x": 13, "y": 2.25},
{"matrix": [3, 0], "x": 2.5, "y": 3},
{"matrix": [3, 1], "x": 3.5, "y": 3.25},
{"matrix": [3, 2], "x": 4.5, "y": 3.5},
{"matrix": [3, 3], "x": 5.5, "y": 3.75},
{"matrix": [7, 0], "x": 7.5, "y": 3.75},
{"matrix": [7, 1], "x": 8.5, "y": 3.5},
{"matrix": [7, 2], "x": 9.5, "y": 3.25},
{"matrix": [7, 3], "x": 10.5, "y": 3}
]
}
}
}

View file

@ -0,0 +1,30 @@
// Copyright 2021 azhizhinov (@azhizhinov)
// SPDX-License-Identifier: GPL-2.0-or-late
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC,
KC_LALT, KC_LSFT, MO(1), KC_BSPC, KC_ENT, MO(2), KC_SPC, RCTL(KC_BSPC)
),
[1] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_UP, KC_RGHT, KC_NO, KC_HOME, KC_NO,
KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOWN, KC_NO, KC_NO, KC_END, KC_RALT,
KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, MO(3), KC_SPC, RCTL(KC_BSPC)
),
[2] = LAYOUT(
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_LCTL, KC_BSPC, KC_C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_LSFT, KC_X, KC_V, KC_S, KC_L, KC_NO, KC_UNDS, KC_PLUS, KC_PMNS, KC_NO, KC_NO, KC_RALT,
KC_LALT, KC_LGUI, MO(3), KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC)
),
[3] = LAYOUT(
KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_RALT,
KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC)
)
};

View file

@ -0,0 +1,34 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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 VIAL_KEYBOARD_UID {0x85, 0x86, 0x45, 0x19, 0x3D, 0x36, 0xA3, 0x90}
#define VIAL_UNLOCK_COMBO_ROWS {0, 0}
#define VIAL_UNLOCK_COMBO_COLS {0, 1}
// For master half only when MASTER_LEFT/MASTER_RIGHT using
//#define WAIT_FOR_USB
/* Select hand configuration */
//#define MASTER_LEFT
//#define MASTER_RIGHT
// #define EE_HANDS
// moved to revXX
//#define SPLIT_HAND_PIN GP8

View file

@ -0,0 +1,67 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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_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_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_LCTL, KC_LALT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RGUI, KC_RCTL
//`------------------------------------------------------' `-----------------------------------------------------'
),
[1] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_ESC,KC_GRAVE, KC_LPRN, KC_RPRN, KC_PLUS,KC_MINUS, KC_7, KC_8, KC_9, KC_0, KC_INS, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TAB, XXXXXXX, KC_LBRC, KC_RBRC,KC_DQUO, KC_SLASH, KC_4, KC_5, KC_6,KC_KP_DOT,KC_UNDS, KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, XXXXXXX, KC_LCBR, KC_RCBR, KC_LT, KC_GT, KC_1, KC_2, KC_3,KC_KP_EQUAL,KC_SLSH,KC_RSFT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_LALT, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RGUI, KC_RCTL
//`-----------------------------------------------------' `-----------------------------------------------------'
),
[2] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_PAST, KC_PSLS, KC_KP_0, KC_KP_7, KC_KP_8, KC_KP_9, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR, KC_BRK,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PPLS, KC_PMNS, KC_PDOT, KC_KP_4, KC_KP_5, KC_KP_6, KC_F4, KC_F5, KC_F6, KC_F11, KC_NUM, KC_SCLN,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, XXXXXXX, KC_PEQL, KC_KP_1, KC_KP_2, KC_KP_3, KC_F1, KC_F2, KC_F3, KC_F12, KC_APP, KC_RSFT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_CALC, KC_TRNS, KC_PENT, KC_ENT, KC_TRNS, KC_CAPS, KC_RCTL
//`-----------------------------------------------------' `-----------------------------------------------------'
),
[3] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX
//`-----------------------------------------------------' `-----------------------------------------------------'
)
};

View file

@ -0,0 +1,18 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = no # Can't have RGBLIGHT and RGB_MATRIX at the same time.
VIALRGB_ENABLE = no
MOUSEKEY_ENABLE = yes
OLED_ENABLE = no
OLED_DRIVER = SSD1306
EXTRAKEY_ENABLE = yes
COMBO_ENABLE = yes
QMK_SETTINGS = yes
CAPS_WORD_ENABLE = yes
LAYER_LOCK_ENABLE = yes
REPEAT_KEY_ENABLE = yes

View file

@ -0,0 +1,25 @@
{
"matrix": { "rows": 8, "cols": 6 },
"layouts": {
"keymap": [
[{"x":3},"0,3",{"x":9.5},"4,2"],
[{"y":-0.75,"x":2},"0,2",{"x":1},"0,4",{"x":7.5},"4,1",{"x":1},"4,3"],
[{"y":-0.9,"x":5},"0,5",{"x":5.5},"4,0"],
[{"y":-0.35},"0,0","0,1",{"x":1},"1,3",{"x":9.5},"5,2",{"x":1},"4,4","4,5"],
[{"y":-0.75,"x":2},"1,2",{"x":1},"1,4",{"x":7.5},"5,1",{"x":1},"5,3"],
[{"y":-0.99,"x":5},"1,5",{"x":5.5},"5,0"],
[{"y":-0.35},"1,0","1,1",{"x":1},"2,3",{"x":9.5},"6,2",{"x":1},"5,4","5,5"],
[{"y":-0.75,"x":2},"2,2",{"x":1},"2,4",{"x":7.5},"6,1",{"x":1},"6,3"],
[{"y":-0.89,"x":5},"2,5",{"x":5.5},"6,0"],
[{"y":-0.35},"2,0","2,1",{"x":13.5},"6,4","6,5"],
[{"rx":5,"ry":3.5,"x":0.1,"r":5},"3,1"],
[{"rx":3.6,"y":0.1,"x":0.2,"r":-5},"3,0"],
[{"rx":6.5,"y":0.2,"x":-0.05,"r":15},"3,2"],
[{"rx":7.5,"y":0.45,"x":0.4,"r":25},"3,3"],
[{"rx":12.9,"y":0.1,"x":-0.2,"r":5},"7,3"],
[{"rx":11.5,"ry":3.5,"x":-0.1,"r":-5},"7,2"],
[{"rx":10,"y":0.45,"x":0.05,"r":-15},"7,1"],
[{"rx":9,"y":0.9,"x":-0.4,"r":-25},"7,0"]
]
}
}

View file

@ -0,0 +1,19 @@
# Cornedeon Keyboard
## Based on Corne Keyboard [CRKBD](https://github.com/foostan/crkbd)
Improved Corne 3 keyboard with full 4x6 matrix.
Keyboard Maintainer: [alko](https://github.com/alko-kbd/cornedeon) [alko-kbd@alk0.ru](mailto:alko-kbd@alk0.ru)
Web Site: [cornedeon.ru](https://cornedeon.ru)
Hardware Supported: Corne 3 PCB, Handwired
![Corne3-based Cornedeon](https://cornedeon.ru/img/cornedeon_3_overviev.jpg)
Revisions:
rev2 - promicro rp2040
rev2z - rp2040 zero
qmk compile -kb alko/cornedeon/rev2 -km vial

View file

@ -0,0 +1,159 @@
{
"maintainer": "alko",
"manufacturer": "alko",
"keyboard_name": "Cornedeon",
"url": "https://github.com/alko-kbd/qmk-vial",
"usb": {
"vid": "0x4653"
},
"features": {
"bootmagic": true,
"extrakey": true,
"nkro": true,
"oled": false,
"rgblight": false,
"rgb_matrix": true
},
"bootmagic": {
"matrix": [0, 1]
},
"split": {
"enabled": true,
"bootmagic": {
"matrix": [4, 1]
}
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.3},
{"matrix": [0, 1], "x": 1, "y": 0.3},
{"matrix": [0, 2], "x": 2, "y": 0.1},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.1},
{"matrix": [0, 5], "x": 5, "y": 0.2},
{"matrix": [4, 5], "x": 9, "y": 0.2},
{"matrix": [4, 4], "x": 10, "y": 0.1},
{"matrix": [4, 3], "x": 11, "y": 0},
{"matrix": [4, 2], "x": 12, "y": 0.1},
{"matrix": [4, 1], "x": 13, "y": 0.3},
{"matrix": [4, 0], "x": 14, "y": 0.3},
{"matrix": [1, 0], "x": 0, "y": 1.3},
{"matrix": [1, 1], "x": 1, "y": 1.3},
{"matrix": [1, 2], "x": 2, "y": 1.1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.1},
{"matrix": [1, 5], "x": 5, "y": 1.2},
{"matrix": [5, 5], "x": 9, "y": 1.2},
{"matrix": [5, 4], "x": 10, "y": 1.1},
{"matrix": [5, 3], "x": 11, "y": 1},
{"matrix": [5, 2], "x": 12, "y": 1.1},
{"matrix": [5, 1], "x": 13, "y": 1.3},
{"matrix": [5, 0], "x": 14, "y": 1.3},
{"matrix": [2, 0], "x": 0, "y": 2.3},
{"matrix": [2, 1], "x": 1, "y": 2.3},
{"matrix": [2, 2], "x": 2, "y": 2.1},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.1},
{"matrix": [2, 5], "x": 5, "y": 2.2},
{"matrix": [6, 5], "x": 9, "y": 2.2},
{"matrix": [6, 4], "x": 10, "y": 2.1},
{"matrix": [6, 3], "x": 11, "y": 2},
{"matrix": [6, 2], "x": 12, "y": 2.1},
{"matrix": [6, 1], "x": 13, "y": 2.3},
{"matrix": [6, 0], "x": 14, "y": 2.3},
{"matrix": [3, 0], "x": 0, "y": 3.7},
{"matrix": [3, 1], "x": 1, "y": 3.7},
{"matrix": [3, 2], "x": 2, "y": 3.7},
{"matrix": [3, 3], "x": 4, "y": 3.7},
{"matrix": [3, 4], "x": 5, "y": 3.7},
{"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5},
{"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5},
{"matrix": [7, 4], "x": 9, "y": 3.7},
{"matrix": [7, 3], "x": 10, "y": 3.7}
{"matrix": [7, 2], "x": 12, "y": 3.7}
{"matrix": [7, 1], "x": 13, "y": 3.7}
{"matrix": [7, 0], "x": 14, "y": 3.7}
]
}
},
"rgb_matrix": {
"driver": "ws2812",
"max_brightness": 120
"led_count": 60,
"split": true,
"split_count": [30, 30],
"layout": [
{"x": 85, "y": 16, "flags": 2},
{"x": 50, "y": 13, "flags": 2},
{"x": 16, "y": 20, "flags": 2},
{"x": 16, "y": 38, "flags": 2},
{"x": 50, "y": 48, "flags": 2},
{"x": 85, "y": 52, "flags": 2},
{"matrix": [3, 5], "x": 95, "y": 63, "flags": 1},
{"matrix": [2, 5], "x": 85, "y": 39, "flags": 4},
{"matrix": [1, 5], "x": 85, "y": 21, "flags": 4},
{"matrix": [0, 5], "x": 85, "y": 4, "flags": 4},
{"matrix": [0, 4], "x": 68, "y": 2, "flags": 4},
{"matrix": [1, 4], "x": 68, "y": 19, "flags": 4},
{"matrix": [2, 4], "x": 68, "y": 37, "flags": 4},
{"matrix": [3, 4], "x": 80, "y": 58, "flags": 1},
{"matrix": [3, 3], "x": 60, "y": 55, "flags": 1},
{"matrix": [2, 3], "x": 50, "y": 35, "flags": 4},
{"matrix": [1, 3], "x": 50, "y": 13, "flags": 4},
{"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 33, "y": 3, "flags": 4},
{"matrix": [1, 2], "x": 33, "y": 20, "flags": 4},
{"matrix": [2, 2], "x": 33, "y": 37, "flags": 4},
{"matrix": [2, 1], "x": 16, "y": 42, "flags": 4},
{"matrix": [1, 1], "x": 16, "y": 24, "flags": 4},
{"matrix": [0, 1], "x": 16, "y": 7, "flags": 4},
{"matrix": [0, 0], "x": 0, "y": 7, "flags": 1},
{"matrix": [1, 0], "x": 0, "y": 24, "flags": 1},
{"matrix": [2, 0], "x": 0, "y": 41, "flags": 1},
{"matrix": [3, 0], "x": 0, "y": 63, "flags": 1},
{"matrix": [3, 1], "x": 16, "y": 63, "flags": 1},
{"matrix": [3, 2], "x": 33, "y": 63, "flags": 1},
{"x": 139, "y": 16, "flags": 2},
{"x": 174, "y": 13, "flags": 2},
{"x": 208, "y": 20, "flags": 2},
{"x": 208, "y": 38, "flags": 2},
{"x": 174, "y": 48, "flags": 2},
{"x": 139, "y": 52, "flags": 2},
{"matrix": [7, 5], "x": 129, "y": 63, "flags": 1},
{"matrix": [6, 5], "x": 139, "y": 39, "flags": 4},
{"matrix": [5, 5], "x": 139, "y": 21, "flags": 4},
{"matrix": [4, 5], "x": 139, "y": 4, "flags": 4},
{"matrix": [4, 4], "x": 156, "y": 2, "flags": 4},
{"matrix": [5, 4], "x": 156, "y": 19, "flags": 4},
{"matrix": [6, 4], "x": 156, "y": 37, "flags": 4},
{"matrix": [7, 4], "x": 144, "y": 58, "flags": 1},
{"matrix": [7, 3], "x": 164, "y": 55, "flags": 1},
{"matrix": [6, 3], "x": 174, "y": 35, "flags": 4},
{"matrix": [5, 3], "x": 174, "y": 13, "flags": 4},
{"matrix": [4, 3], "x": 174, "y": 0, "flags": 4},
{"matrix": [4, 2], "x": 191, "y": 3, "flags": 4},
{"matrix": [5, 2], "x": 191, "y": 20, "flags": 4},
{"matrix": [6, 2], "x": 191, "y": 37, "flags": 4},
{"matrix": [6, 1], "x": 208, "y": 42, "flags": 4},
{"matrix": [5, 1], "x": 208, "y": 24, "flags": 4},
{"matrix": [4, 1], "x": 208, "y": 7, "flags": 4},
{"matrix": [4, 0], "x": 224, "y": 7, "flags": 1},
{"matrix": [5, 0], "x": 224, "y": 24, "flags": 1},
{"matrix": [6, 0], "x": 224, "y": 41, "flags": 1},
{"matrix": [7, 0], "x": 224, "y": 63, "flags": 1},
{"matrix": [7, 1], "x": 208, "y": 63, "flags": 1},
{"matrix": [7, 2], "x": 191, "y": 63, "flags": 1}
],
},
"rgblight": {
"max_brightness": 120
}
}

View file

@ -0,0 +1,22 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
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

View file

@ -0,0 +1,44 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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_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_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_LCTL,KC_LEFT,KC_RIGHT, KC_LALT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RGUI, KC_DOWN, KC_UP, KC_RCTL
//`------------------------------------------------------' `-----------------------------------------------------'
),
[1] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_TILD, KC_LPRN, KC_RPRN, KC_PLUS,KC_MINUS, KC_7, KC_8, KC_9, KC_0, KC_INS, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, XXXXXXX, KC_LBRC, KC_RBRC,KC_DQUO, KC_SLASH, KC_4, KC_5, KC_6,KC_KP_DOT,KC_UNDS, KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, XXXXXXX, KC_LCBR, KC_RCBR, KC_LT, KC_GT, KC_1, KC_2, KC_3,KC_KP_EQUAL,KC_SLSH,KC_RSFT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_HOME, KC_END, KC_LALT, TL_LOWR, KC_SPC, KC_ENT, TL_UPPR, KC_RGUI, KC_PGDN, KC_PGUP, KC_RCTL
//`-----------------------------------------------------' `-----------------------------------------------------'
)
};

View file

@ -0,0 +1,34 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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 VIAL_KEYBOARD_UID {0xA8, 0xE7, 0xCA, 0x40, 0x6B, 0x53, 0x0B, 0x1F}
#define VIAL_UNLOCK_COMBO_ROWS {0, 0}
#define VIAL_UNLOCK_COMBO_COLS {0, 1}
//#define DYNAMIC_KEYMAP_LAYER_COUNT 6
// For master half only when MASTER_LEFT/MASTER_RIGHT using
//#define WAIT_FOR_USB
/* Select hand configuration */
//#define MASTER_LEFT
//#define MASTER_RIGHT
// #define EE_HANDS

View file

@ -0,0 +1,67 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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_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_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_LCTL,KC_LEFT,KC_RIGHT, KC_LALT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RGUI, KC_UP, KC_DOWN, KC_RCTL
//`------------------------------------------------------' `-----------------------------------------------------'
),
[1] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_ESC,KC_GRAVE, KC_LPRN, KC_RPRN, KC_PLUS,KC_MINUS, KC_7, KC_8, KC_9, KC_0, KC_INS, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TAB, XXXXXXX, KC_LBRC, KC_RBRC,KC_DQUO, KC_SLASH, KC_4, KC_5, KC_6,KC_KP_DOT,KC_UNDS, KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, XXXXXXX, KC_LCBR, KC_RCBR, KC_LT, KC_GT, KC_1, KC_2, KC_3,KC_KP_EQUAL,KC_SLSH,KC_RSFT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_HOME, KC_END, KC_LALT, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RGUI, KC_PGUP, KC_PGDN, KC_RCTL
//`-----------------------------------------------------' `-----------------------------------------------------'
),
[2] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_PAST, KC_PSLS, KC_KP_0, KC_KP_7, KC_KP_8, KC_KP_9, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR, KC_BRK,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PPLS, KC_PMNS, KC_PDOT, KC_KP_4, KC_KP_5, KC_KP_6, KC_F4, KC_F5, KC_F6, KC_F11, KC_NUM, KC_SCLN,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, XXXXXXX, KC_PEQL, KC_KP_1, KC_KP_2, KC_KP_3, KC_F1, KC_F2, KC_F3, KC_F12, KC_APP, KC_RSFT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_HOME, KC_END, KC_CALC, KC_TRNS, KC_PENT, KC_ENT, KC_TRNS, KC_CAPS, KC_PGUP, KC_PGDN, KC_RCTL
//`-----------------------------------------------------' `-----------------------------------------------------'
),
[3] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`-----------------------------------------------------' `-----------------------------------------------------'
)
};

View file

@ -0,0 +1,7 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
MEDIA_KEY_ENABLE = yes
CONSUMER_ENABLE = yes
COMBO_ENABLE = yes

View file

@ -0,0 +1,27 @@
{
"lighting": "none",
"matrix": { "rows": 8, "cols": 6 },
"layouts": {
"keymap": [
[{"y":1,"x":3.5},"0,3",{"x":7.5},"4,3"],
[{"y":-0.875,"x":2.5},"0,2",{"x":1},"0,4",{"x":5.5},"4,4",{"x":1},"4,2"],
[{"y":-0.875,"x":5.5},"0,5",{"x":3.5},"4,5"],
[{"y":-0.875,"x":0.5},"0,0","0,1",{"x":11.5},"4,1","4,0"],
[{"y":-0.375,"x":3.5},"1,3",{"x":7.5},"5,3"],
[{"y":-0.875,"x":2.5},"1,2",{"x":1},"1,4",{"x":5.5},"5,4",{"x":1},"5,2"],
[{"y":-0.875,"x":5.5},"1,5",{"x":3.5},"5,5"],
[{"y":-0.875,"x":0.5},"1,0","1,1",{"x":11.5},"5,1","5,0"],
[{"y":-0.375,"x":3.5},"2,3",{"x":7.5},"6,3"],
[{"y":-0.875,"x":2.5},"2,2",{"x":1},"2,4",{"x":5.5},"6,4",{"x":1},"6,2"],
[{"y":-0.875,"x":5.5},"2,5",{"x":3.5},"6,5"],
[{"y":-0.875,"x":0.5},"2,0","2,1",{"x":11.5},"6,1","6,0"],
[{"y":-0.125,"x":4},"3,3",{"x":6.5},"7,3"],
[{"y":-0.875,"x":0.5},"3,0","3,1",{"x":11.5},"7,1","7,0"],
[{"y":-1.25,"x":2.5},"3,2",{"x":9.5},"7,2"],
[{"r":15,"rx":4.5,"ry":9.1,"y":-4.85,"x":-0.5},"3,4"],
[{"r":30,"rx":5.4,"ry":9.3,"y":-5.05,"x":-1.4,"h":1.5},"3,5"],
[{"r":-30,"rx":11.1,"y":-5.05,"x":0.4,"h":1.5},"7,5"],
[{"r":-15,"rx":12,"ry":9.1,"y":-4.85,"x":-0.5},"7,4"]
]
}
}

View file

@ -0,0 +1,16 @@
// Copyright 2024 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
//#define SERIAL_USART_FULL_DUPLEX
//#define SERIAL_USART_RX_PIN GP2
//#define SERIAL_USART_TX_PIN GP1
//#define USE_SERIAL
//#define SOFT_SERIAL_PIN GP1
//#define USB_VBUS_PIN GP2
/* RP2040- and hardware-specific config */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64

View file

@ -0,0 +1,163 @@
{
"maintainer": "alko",
"manufacturer": "alko",
"url": "https://github.com/alko-kbd/cornedeon",
"usb": {
"vid": "0x4653",
"pid": "0x0002",
"device_version": "2.0.0"
},
"processor": "RP2040",
"bootloader": "rp2040",
"features": {
"bootmagic": false,
"extrakey": false,
"mousekey": false,
"nkro": false,
"oled": false,
"rgblight": false,
"rgb_matrix": false,
"encoder": false
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["GP29", "GP28", "GP27", "GP26", "GP22", "GP20"],
"rows": ["GP4", "GP5", "GP6", "GP7"]
},
"bootmagic": {
"enabled": false,
"matrix": [ 0, 1 ]
},
"split": {
"enabled": true,
"bootmagic": {
"matrix": [4, 1]
},
"handedness": {
"pin": "GP8"
},
"serial": {
"driver": "vendor",
"pin": "GP1"
},
"transport": {
"sync": {
"matrix_state": true
},
"watchdog": true
}
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.3},
{"matrix": [0, 1], "x": 1, "y": 0.3},
{"matrix": [0, 2], "x": 2, "y": 0.1},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.1},
{"matrix": [0, 5], "x": 5, "y": 0.2},
{"matrix": [4, 5], "x": 9, "y": 0.2},
{"matrix": [4, 4], "x": 10, "y": 0.1},
{"matrix": [4, 3], "x": 11, "y": 0},
{"matrix": [4, 2], "x": 12, "y": 0.1},
{"matrix": [4, 1], "x": 13, "y": 0.3},
{"matrix": [4, 0], "x": 14, "y": 0.3},
{"matrix": [1, 0], "x": 0, "y": 1.3},
{"matrix": [1, 1], "x": 1, "y": 1.3},
{"matrix": [1, 2], "x": 2, "y": 1.1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.1},
{"matrix": [1, 5], "x": 5, "y": 1.2},
{"matrix": [5, 5], "x": 9, "y": 1.2},
{"matrix": [5, 4], "x": 10, "y": 1.1},
{"matrix": [5, 3], "x": 11, "y": 1},
{"matrix": [5, 2], "x": 12, "y": 1.1},
{"matrix": [5, 1], "x": 13, "y": 1.3},
{"matrix": [5, 0], "x": 14, "y": 1.3},
{"matrix": [2, 0], "x": 0, "y": 2.3},
{"matrix": [2, 1], "x": 1, "y": 2.3},
{"matrix": [2, 2], "x": 2, "y": 2.1},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.1},
{"matrix": [2, 5], "x": 5, "y": 2.2},
{"matrix": [6, 5], "x": 9, "y": 2.2},
{"matrix": [6, 4], "x": 10, "y": 2.1},
{"matrix": [6, 3], "x": 11, "y": 2},
{"matrix": [6, 2], "x": 12, "y": 2.1},
{"matrix": [6, 1], "x": 13, "y": 2.3},
{"matrix": [6, 0], "x": 14, "y": 2.3},
{"matrix": [3, 0], "x": 0, "y": 3.7},
{"matrix": [3, 1], "x": 1, "y": 3.7},
{"matrix": [3, 2], "x": 2, "y": 3.7},
{"matrix": [3, 3], "x": 4, "y": 3.7},
{"matrix": [3, 4], "x": 5, "y": 3.7},
{"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5},
{"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5},
{"matrix": [7, 4], "x": 9, "y": 3.7},
{"matrix": [7, 3], "x": 10, "y": 3.7}
{"matrix": [7, 2], "x": 12, "y": 3.7}
{"matrix": [7, 1], "x": 13, "y": 3.7}
{"matrix": [7, 0], "x": 14, "y": 3.7}
]
}
},
"ws2812": {
"driver": "vendor",
"pin": "GP0"
},
"rgb_matrix": {
"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
},
"sleep": true
}
}

View file

@ -0,0 +1,18 @@
// Copyright 2024 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_RX_PIN GP1
#define SERIAL_USART_TX_PIN GP0
//#define USE_SERIAL
//#define SOFT_SERIAL_PIN GP1
//#define USB_VBUS_PIN GP2
/* RP2040- and hardware-specific config */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
//#define SPLIT_HAND_PIN GP8

View file

@ -0,0 +1,182 @@
{
"maintainer": "alko",
"manufacturer": "alko",
"keyboard_name": "Cornedeon v2z",
"url": "https://github.com/alko-kbd/cornedeon",
"usb": {
"vid": "0x4653",
"pid": "0x0002",
"suspend_wakeup_delay": 200,
"device_version": "2.0.0"
},
"processor": "RP2040",
"bootloader": "rp2040",
"features": {
"bootmagic": true,
"extrakey": true,
"nkro": true,
"oled": false,
"rgblight": false,
"rgb_matrix": true,
"mousekey": true,
"encoder": false
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["GP28", "GP27", "GP26", "GP15", "GP14", "GP13"],
"rows": ["GP4", "GP5", "GP6", "GP7"]
},
"bootmagic": {
"enabled": true,
"matrix": [ 0, 1 ]
},
"split": {
"enabled": true,
"bootmagic": {
"matrix": [4, 1]
},
"handedness": {
"pin": "GP29"
},
"serial": {
"driver": "vendor",
},
"transport": {
"sync": {
"matrix_state": true
},
"watchdog": true
}
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.3},
{"matrix": [0, 1], "x": 1, "y": 0.3},
{"matrix": [0, 2], "x": 2, "y": 0.1},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.1},
{"matrix": [0, 5], "x": 5, "y": 0.2},
{"matrix": [4, 5], "x": 9, "y": 0.2},
{"matrix": [4, 4], "x": 10, "y": 0.1},
{"matrix": [4, 3], "x": 11, "y": 0},
{"matrix": [4, 2], "x": 12, "y": 0.1},
{"matrix": [4, 1], "x": 13, "y": 0.3},
{"matrix": [4, 0], "x": 14, "y": 0.3},
{"matrix": [1, 0], "x": 0, "y": 1.3},
{"matrix": [1, 1], "x": 1, "y": 1.3},
{"matrix": [1, 2], "x": 2, "y": 1.1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.1},
{"matrix": [1, 5], "x": 5, "y": 1.2},
{"matrix": [5, 5], "x": 9, "y": 1.2},
{"matrix": [5, 4], "x": 10, "y": 1.1},
{"matrix": [5, 3], "x": 11, "y": 1},
{"matrix": [5, 2], "x": 12, "y": 1.1},
{"matrix": [5, 1], "x": 13, "y": 1.3},
{"matrix": [5, 0], "x": 14, "y": 1.3},
{"matrix": [2, 0], "x": 0, "y": 2.3},
{"matrix": [2, 1], "x": 1, "y": 2.3},
{"matrix": [2, 2], "x": 2, "y": 2.1},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.1},
{"matrix": [2, 5], "x": 5, "y": 2.2},
{"matrix": [6, 5], "x": 9, "y": 2.2},
{"matrix": [6, 4], "x": 10, "y": 2.1},
{"matrix": [6, 3], "x": 11, "y": 2},
{"matrix": [6, 2], "x": 12, "y": 2.1},
{"matrix": [6, 1], "x": 13, "y": 2.3},
{"matrix": [6, 0], "x": 14, "y": 2.3},
{"matrix": [3, 0], "x": 0, "y": 3.7},
{"matrix": [3, 1], "x": 1, "y": 3.7},
{"matrix": [3, 2], "x": 2, "y": 3.7},
{"matrix": [3, 3], "x": 4, "y": 3.7},
{"matrix": [3, 4], "x": 5, "y": 3.7},
{"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5},
{"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5},
{"matrix": [7, 4], "x": 9, "y": 3.7},
{"matrix": [7, 3], "x": 10, "y": 3.7}
{"matrix": [7, 2], "x": 12, "y": 3.7}
{"matrix": [7, 1], "x": 13, "y": 3.7}
{"matrix": [7, 0], "x": 14, "y": 3.7}
]
}
},
"ws2812": {
"driver": "vendor",
"pin": "GP3"
},
"rgblight": {
"led_count": 60,
"split": true,
"split_count": [30, 30],
"max_brightness": 120,
"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": {
"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
},
"sleep": true
},
}

View file

@ -0,0 +1,13 @@
# Cornedeon Keyboard
## Based on Corne Keyboard [CRKBD](https://github.com/foostan/crkbd)
Improved Corne 3 keyboard with full 4x5 matrix.
Keyboard Maintainer: [alko](https://github.com/alko-kbd/) [alko-kbd@alk0.ru](mailto:alko-kbd@alk0.ru)
Web Site: [cornedeon.ru](https://cornedeon.ru)
Hardware Supported: Handwired
![Corne3-based Cornedeon](https://cornedeon.ru/img/cornedeon_mini_mx.jpg)
qmk compile -kb alko/cornedeon_mini/rev2z -km vial

View file

@ -0,0 +1,134 @@
{
"maintainer": "alko",
"manufacturer": "alko",
"keyboard_name": "Cornedeon Mini",
"url": "https://github.com/alko-kbd/qmk-vial",
"usb": {
"vid": "0x4653"
},
"features": {
"bootmagic": true,
"extrakey": true,
"nkro": true,
"oled": false,
"rgblight": false,
"rgb_matrix": true
},
"bootmagic": {
"matrix": [0, 1]
},
"split": {
"enabled": true,
"bootmagic": {
"matrix": [4, 1]
}
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 1, "y": 0.3},
{"matrix": [0, 1], "x": 2, "y": 0.1},
{"matrix": [0, 2], "x": 3, "y": 0},
{"matrix": [0, 3], "x": 4, "y": 0.1},
{"matrix": [0, 4], "x": 5, "y": 0.2},
{"matrix": [4, 4], "x": 9, "y": 0.2},
{"matrix": [4, 3], "x": 10, "y": 0.1},
{"matrix": [4, 2], "x": 11, "y": 0},
{"matrix": [4, 1], "x": 12, "y": 0.1},
{"matrix": [4, 0], "x": 13, "y": 0.3},
{"matrix": [1, 0], "x": 1, "y": 1.3},
{"matrix": [1, 1], "x": 2, "y": 1.1},
{"matrix": [1, 2], "x": 3, "y": 1},
{"matrix": [1, 3], "x": 4, "y": 1.1},
{"matrix": [1, 4], "x": 5, "y": 1.2},
{"matrix": [5, 4], "x": 9, "y": 1.2},
{"matrix": [5, 3], "x": 10, "y": 1.1},
{"matrix": [5, 2], "x": 11, "y": 1},
{"matrix": [5, 1], "x": 12, "y": 1.1},
{"matrix": [5, 0], "x": 13, "y": 1.3},
{"matrix": [2, 0], "x": 1, "y": 2.3},
{"matrix": [2, 1], "x": 2, "y": 2.1},
{"matrix": [2, 2], "x": 3, "y": 2},
{"matrix": [2, 3], "x": 4, "y": 2.1},
{"matrix": [2, 4], "x": 5, "y": 2.2},
{"matrix": [6, 4], "x": 9, "y": 2.2},
{"matrix": [6, 3], "x": 10, "y": 2.1},
{"matrix": [6, 2], "x": 11, "y": 2},
{"matrix": [6, 1], "x": 12, "y": 2.1},
{"matrix": [6, 0], "x": 13, "y": 2.3},
{"matrix": [3, 0], "x": 1, "y": 3.7},
{"matrix": [3, 1], "x": 2, "y": 3.7},
{"matrix": [3, 2], "x": 4, "y": 3.7},
{"matrix": [3, 3], "x": 5, "y": 3.7},
{"matrix": [3, 4], "x": 6, "y": 3.2, "h": 1.5},
{"matrix": [7, 4], "x": 8, "y": 3.2, "h": 1.5},
{"matrix": [7, 3], "x": 9, "y": 3.7},
{"matrix": [7, 2], "x": 10, "y": 3.7}
{"matrix": [7, 1], "x": 12, "y": 3.7}
{"matrix": [7, 0], "x": 13, "y": 3.7}
]
}
},
"rgb_matrix": {
"driver": "ws2812",
"max_brightness": 120
"led_count": 36,
"split": true,
"split_count": [18, 18],
"layout": [
{"matrix": [0, 0], "x": 16, "y": 7, "flags": 4},
{"matrix": [0, 1], "x": 33, "y": 3, "flags": 4},
{"matrix": [0, 2], "x": 50, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 68, "y": 2, "flags": 4},
{"matrix": [0, 4], "x": 85, "y": 4, "flags": 4},
{"matrix": [1, 0], "x": 16, "y": 24, "flags": 4},
{"matrix": [1, 1], "x": 33, "y": 20, "flags": 4},
{"matrix": [1, 2], "x": 50, "y": 13, "flags": 4},
{"matrix": [1, 3], "x": 68, "y": 19, "flags": 4},
{"matrix": [1, 4], "x": 85, "y": 21, "flags": 4},
{"matrix": [2, 0], "x": 16, "y": 42, "flags": 4},
{"matrix": [2, 1], "x": 33, "y": 37, "flags": 4},
{"matrix": [2, 2], "x": 50, "y": 35, "flags": 4},
{"matrix": [2, 3], "x": 68, "y": 37, "flags": 4},
{"matrix": [2, 4], "x": 85, "y": 39, "flags": 4},
{"matrix": [3, 2], "x": 60, "y": 55, "flags": 1},
{"matrix": [3, 3], "x": 80, "y": 58, "flags": 1},
{"matrix": [3, 4], "x": 95, "y": 63, "flags": 1},
{"matrix": [4, 0], "x": 208, "y": 7, "flags": 4},
{"matrix": [4, 1], "x": 191, "y": 3, "flags": 4},
{"matrix": [4, 2], "x": 174, "y": 0, "flags": 4},
{"matrix": [4, 3], "x": 156, "y": 2, "flags": 4},
{"matrix": [4, 4], "x": 139, "y": 4, "flags": 4},
{"matrix": [5, 0], "x": 208, "y": 24, "flags": 4},
{"matrix": [5, 1], "x": 191, "y": 20, "flags": 4},
{"matrix": [5, 2], "x": 174, "y": 13, "flags": 4},
{"matrix": [5, 3], "x": 156, "y": 19, "flags": 4},
{"matrix": [5, 4], "x": 139, "y": 21, "flags": 4},
{"matrix": [6, 0], "x": 208, "y": 42, "flags": 4},
{"matrix": [6, 1], "x": 191, "y": 37, "flags": 4},
{"matrix": [6, 2], "x": 174, "y": 35, "flags": 4},
{"matrix": [6, 3], "x": 156, "y": 37, "flags": 4},
{"matrix": [6, 4], "x": 139, "y": 39, "flags": 4},
{"matrix": [7, 2], "x": 164, "y": 55, "flags": 1},
{"matrix": [7, 3], "x": 144, "y": 58, "flags": 1},
{"matrix": [7, 4], "x": 129, "y": 63, "flags": 1},
],
},
"rgblight": {
"max_brightness": 120
}
}

View file

@ -0,0 +1,22 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
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

View file

@ -0,0 +1,44 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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_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_SCLN,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+-------|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+-------|
XXXXXXX,XXXXXXX, KC_LSFT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RCTL, XXXXXXX, XXXXXXX
//`--------------------------------------------' `--------------------------------------------'
),
[1] = LAYOUT(
//,--------------------------------------------. ,--------------------------------------------.
KC_ESC, KC_LPRN, KC_RPRN, KC_PLUS,KC_MINUS, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
KC_TAB, KC_LBRC, KC_RBRC,KC_DQUO, KC_SLASH, KC_4, KC_5, KC_6,KC_KP_DOT,KC_SLSH,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
KC_LALT, KC_LCBR, KC_RCBR, KC_LT, KC_GT, KC_1, KC_2, KC_3, KC_UNDS, KC_BSLS,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, KC_LSFT, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RGUI, XXXXXXX, XXXXXXX
//`--------------------------------------------' `--------------------------------------------'
)
};

View file

@ -0,0 +1,34 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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 VIAL_KEYBOARD_UID {0xEE, 0x73, 0x08, 0xC4, 0xE2, 0x27, 0x05, 0x16}
#define VIAL_UNLOCK_COMBO_ROWS {0, 0}
#define VIAL_UNLOCK_COMBO_COLS {0, 1}
// For master half only when MASTER_LEFT/MASTER_RIGHT using
//#define WAIT_FOR_USB
/* Select hand configuration */
//#define MASTER_LEFT
//#define MASTER_RIGHT
// #define EE_HANDS
// moved to revXX
//#define SPLIT_HAND_PIN GP8

View file

@ -0,0 +1,67 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
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_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_SCLN,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+-------|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+-------|
XXXXXXX,XXXXXXX, KC_LSFT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RCTL, XXXXXXX, XXXXXXX
//`--------------------------------------------' `--------------------------------------------'
),
[1] = LAYOUT(
//,--------------------------------------------. ,--------------------------------------------.
KC_ESC, KC_LPRN, KC_RPRN, KC_PLUS,KC_MINUS, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
KC_TAB, KC_LBRC, KC_RBRC,KC_DQUO, KC_SLASH, KC_4, KC_5, KC_6,KC_KP_DOT,KC_SLSH,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
KC_LALT, KC_LCBR, KC_RCBR, KC_LT, KC_GT, KC_1, KC_2, KC_3, KC_UNDS, KC_BSLS,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, KC_LSFT, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RGUI, XXXXXXX, XXXXXXX
//`--------------------------------------------' `--------------------------------------------'
),
[2] = LAYOUT(
//,--------------------------------------------. ,--------------------------------------------.
KC_PSLS, KC_KP_0, KC_KP_7, KC_KP_8, KC_KP_9, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
KC_PMNS, KC_PDOT, KC_KP_4, KC_KP_5, KC_KP_6, KC_F4, KC_F5, KC_F6, KC_F11, KC_NUM,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
XXXXXXX, KC_PEQL, KC_KP_1, KC_KP_2, KC_KP_3, KC_F1, KC_F2, KC_F3, KC_F12, KC_APP,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, KC_CALC, KC_TRNS, KC_PENT, KC_ENT, KC_TRNS, KC_CAPS, XXXXXXX, XXXXXXX
//`--------------------------------------------' `--------------------------------------------'
),
[3] = LAYOUT(
//,--------------------------------------------. ,---------------------------------------------.
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX
//`--------------------------------------------' `--------------------------------------------'
)
};

View file

@ -0,0 +1,18 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = yes # Can't have RGBLIGHT and RGB_MATRIX at the same time.
VIALRGB_ENABLE = yes
MOUSEKEY_ENABLE = no
OLED_ENABLE = no
OLED_DRIVER = SSD1306
EXTRAKEY_ENABLE = no
COMBO_ENABLE = no
QMK_SETTINGS = no
CAPS_WORD_ENABLE = no
LAYER_LOCK_ENABLE = no
REPEAT_KEY_ENABLE = no

View file

@ -0,0 +1,25 @@
{
"lighting": "vialrgb",
"matrix": { "rows": 8, "cols": 5 },
"layouts": {
"keymap": [
[{"y":1,"x":3.5},"0,2",{"x":7.5},"4,2"],
[{"y":-0.875,"x":2.5},"0,1",{"x":1},"0,3",{"x":5.5},"4,3",{"x":1},"4,1"],
[{"y":-0.875,"x":5.5},"0,4",{"x":3.5},"4,4"],
[{"y":-0.875,"x":1.5},"0,0",{"x":11.5},"4,0"],
[{"y":-0.375,"x":3.5},"1,2",{"x":7.5},"5,2"],
[{"y":-0.875,"x":2.5},"1,1",{"x":1},"1,3",{"x":5.5},"5,3",{"x":1},"5,1"],
[{"y":-0.875,"x":5.5},"1,4",{"x":3.5},"5,4"],
[{"y":-0.875,"x":1.5},"1,0",{"x":11.5},"5,0"],
[{"y":-0.375,"x":3.5},"2,2",{"x":7.5},"6,2"],
[{"y":-0.875,"x":2.5},"2,1",{"x":1},"2,3",{"x":5.5},"6,3",{"x":1},"6,1"],
[{"y":-0.875,"x":5.5},"2,4",{"x":3.5},"6,4"],
[{"y":-0.875,"x":1.5},"2,0",{"x":11.5},"6,0"],
[{"y":-0.125,"x":4},"3,2",{"x":6.5},"7,2"],
[{"r":15,"rx":4.5,"ry":9.1,"y":-4.85,"x":-0.5},"3,3"],
[{"r":30,"rx":5.4,"ry":9.3,"y":-5.05,"x":-1.4,"h":1.5},"3,4"],
[{"r":-30,"rx":11.1,"y":-5.05,"x":0.4,"h":1.5},"7,4"],
[{"r":-15,"rx":12,"ry":9.1,"y":-4.85,"x":-0.5},"7,3"]
]
}
}

View file

@ -0,0 +1,18 @@
// Copyright 2024 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_RX_PIN GP1
#define SERIAL_USART_TX_PIN GP0
//#define USE_SERIAL
//#define SOFT_SERIAL_PIN GP1
//#define USB_VBUS_PIN GP2
/* RP2040- and hardware-specific config */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
//#define SPLIT_HAND_PIN GP8

View file

@ -0,0 +1,173 @@
{
"maintainer": "alko",
"manufacturer": "alko",
"url": "https://github.com/alko-kbd/cornedeon",
"usb": {
"vid": "0x4653",
"pid": "0x0002",
"suspend_wakeup_delay": 200,
"device_version": "2.0.0"
},
"processor": "RP2040",
"bootloader": "rp2040",
"features": {
"bootmagic": true,
"extrakey": true,
"nkro": true,
"oled": false,
"rgblight": false,
"rgb_matrix": true,
"mousekey": true,
"encoder": false
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["GP14", "GP15", "GP26", "GP27", "GP28"],
"rows": ["GP4", "GP5", "GP6", "GP7"]
},
"bootmagic": {
"enabled": true,
"matrix": [ 0, 1 ]
},
"split": {
"enabled": true,
"bootmagic": {
"matrix": [4, 1]
},
"handedness": {
"pin": "GP8"
},
"serial": {
"driver": "vendor",
},
"transport": {
"sync": {
"matrix_state": true
},
"watchdog": true
}
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 1, "y": 0.3},
{"matrix": [0, 1], "x": 2, "y": 0.1},
{"matrix": [0, 2], "x": 3, "y": 0},
{"matrix": [0, 3], "x": 4, "y": 0.1},
{"matrix": [0, 4], "x": 5, "y": 0.2},
{"matrix": [4, 4], "x": 9, "y": 0.2},
{"matrix": [4, 3], "x": 10, "y": 0.1},
{"matrix": [4, 2], "x": 11, "y": 0},
{"matrix": [4, 1], "x": 12, "y": 0.1},
{"matrix": [4, 0], "x": 13, "y": 0.3},
{"matrix": [1, 0], "x": 1, "y": 1.3},
{"matrix": [1, 1], "x": 2, "y": 1.1},
{"matrix": [1, 2], "x": 3, "y": 1},
{"matrix": [1, 3], "x": 4, "y": 1.1},
{"matrix": [1, 4], "x": 5, "y": 1.2},
{"matrix": [5, 4], "x": 9, "y": 1.2},
{"matrix": [5, 3], "x": 10, "y": 1.1},
{"matrix": [5, 2], "x": 11, "y": 1},
{"matrix": [5, 1], "x": 12, "y": 1.1},
{"matrix": [5, 0], "x": 13, "y": 1.3},
{"matrix": [2, 0], "x": 1, "y": 2.3},
{"matrix": [2, 1], "x": 2, "y": 2.1},
{"matrix": [2, 2], "x": 3, "y": 2},
{"matrix": [2, 3], "x": 4, "y": 2.1},
{"matrix": [2, 4], "x": 5, "y": 2.2},
{"matrix": [6, 4], "x": 9, "y": 2.2},
{"matrix": [6, 3], "x": 10, "y": 2.1},
{"matrix": [6, 2], "x": 11, "y": 2},
{"matrix": [6, 1], "x": 12, "y": 2.1},
{"matrix": [6, 0], "x": 13, "y": 2.3},
{"matrix": [3, 0], "x": 1, "y": 3.7},
{"matrix": [3, 1], "x": 2, "y": 3.7},
{"matrix": [3, 2], "x": 4, "y": 3.7},
{"matrix": [3, 3], "x": 5, "y": 3.7},
{"matrix": [3, 4], "x": 6, "y": 3.2, "h": 1.5},
{"matrix": [7, 4], "x": 8, "y": 3.2, "h": 1.5},
{"matrix": [7, 3], "x": 9, "y": 3.7},
{"matrix": [7, 2], "x": 10, "y": 3.7}
{"matrix": [7, 1], "x": 12, "y": 3.7}
{"matrix": [7, 0], "x": 13, "y": 3.7}
]
}
},
"ws2812": {
"driver": "vendor",
"pin": "GP3"
},
"rgblight": {
"led_count": 36,
"split": true,
"split_count": [18, 18],
"max_brightness": 120,
"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": {
"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
},
"sleep": true
},
}

View file

@ -0,0 +1,10 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x18, 0x52, 0x25, 0x11, 0xB7, 0xD1, 0x23, 0x0D}
#define VIAL_UNLOCK_COMBO_ROWS {0, 3}
#define VIAL_UNLOCK_COMBO_COLS {0, 12}
#define BACKLIGHT_BREATHING

View file

@ -0,0 +1,24 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
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_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, MO(1), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
_______, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, _______, _______, KC_SLEP, _______, _______, _______,
BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View file

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

View file

@ -0,0 +1,253 @@
{
"name": "Ghoul",
"vendorId": "0xC01D",
"productId": "0xFC87",
"lighting": "qmk_backlight",
"matrix": {
"rows": 6,
"cols": 17
},
"layouts": {
"labels": [
"Split Backspace",
"Split Right Shift",
"Tsangan Bottom Row"
],
"keymap": [
[
{
"c": "#aaaaaa"
},
"0,0",
{
"x": 1,
"c": "#cccccc"
},
"0,2",
"0,3",
"0,4",
"0,5",
{
"x": 0.5,
"c": "#aaaaaa"
},
"0,6",
"0,7",
"0,8",
"0,9",
{
"x": 0.5,
"c": "#cccccc"
},
"0,10",
"0,11",
"0,12",
"0,13",
{
"x": 0.25,
"c": "#aaaaaa"
},
"0,14",
"0,15",
"0,16"
],
[
{
"y": 0.5,
"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\n\n\n0,0",
{
"x": 0.25
},
"1,14",
"1,15",
"1,16",
{
"x": 1,
"c": "#cccccc"
},
"1,13\n\n\n0,1",
"3,13\n\n\n0,1"
],
[
{
"c": "#aaaaaa",
"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
},
"2,13",
{
"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,12"
],
[
{
"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\n\n\n1,0",
{
"x": 1.25
},
"4,15",
{
"x": 1.25,
"w": 1.75
},
"4,12\n\n\n1,1",
"4,13\n\n\n1,1"
],
[
{
"w": 1.25
},
"5,0\n\n\n2,0",
{
"w": 1.25
},
"5,1\n\n\n2,0",
{
"w": 1.25
},
"5,2\n\n\n2,0",
{
"c": "#cccccc",
"w": 6.25
},
"5,6\n\n\n2,0",
{
"c": "#aaaaaa",
"w": 1.25
},
"5,10\n\n\n2,0",
{
"w": 1.25
},
"5,11\n\n\n2,0",
{
"w": 1.25
},
"5,12\n\n\n2,0",
{
"w": 1.25
},
"5,13\n\n\n2,0",
{
"x": 0.25
},
"5,14",
"5,15",
"5,16"
],
[
{
"y": 0.25,
"w": 1.5
},
"5,0\n\n\n2,1",
"5,1\n\n\n2,1",
{
"w": 1.5
},
"5,2\n\n\n2,1",
{
"c": "#cccccc",
"w": 7
},
"5,6\n\n\n2,1",
{
"c": "#aaaaaa",
"w": 1.5
},
"5,11\n\n\n2,1",
"5,12\n\n\n2,1",
{
"w": 1.5
},
"5,13\n\n\n2,1"
]
]
}
}

View file

@ -0,0 +1,37 @@
/* Copyright 2019-2020 DMQ Design
*
* 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 VIAL_KEYBOARD_UID {0xB5, 0xA8, 0x3A, 0x61, 0x86, 0x45, 0x95, 0xDF}
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
#undef RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_TWINKLE
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 2, 3 }

View file

@ -0,0 +1,39 @@
/* Copyright 2019-2020 DMQ Design
*
* 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_7, KC_8, KC_9, KC_MUTE,
KC_4, KC_5, KC_6, KC_MUTE,
KC_1, KC_2, KC_3, KC_MUTE,
KC_0, UG_TOGG, KC_ENTER
),
[1] = LAYOUT(
KC_7, KC_8, KC_9, KC_MUTE,
KC_4, KC_5, KC_6, KC_MUTE,
KC_1, KC_2, KC_3, KC_MUTE,
KC_0, UG_TOGG, KC_ENTER
),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[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_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
// Encoder 1 Encoder 2 Encoder 3
};
#endif

View file

@ -0,0 +1,11 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
QMK_SETTINGS = no
COMBO_ENABLE = no
KEY_OVERRIDE_ENABLE = no
TAP_DANCE_ENABLE = no
ENCODER_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View file

@ -0,0 +1,58 @@
{
"name": "SPIN Macropad",
"vendorId": "0xA455",
"productId": "0x0001",
"matrix": {
"rows": 3,
"cols": 5
},
"lighting": "qmk_rgblight",
"layouts": {
"keymap": [
[
"0,0",
"1,0",
"2,0",
{
"x": 0.25
},
"2,4",
"0,0\n\n\n\n\n\n\n\n\ne",
"0,1\n\n\n\n\n\n\n\n\ne"
],
[
"0,1",
"1,1",
"2,1"
],
[
{
"y": -0.5,
"x": 3.25
},
"1,4",
"1,0\n\n\n\n\n\n\n\n\ne",
"1,1\n\n\n\n\n\n\n\n\ne"
],
[
{
"y": -0.5
},
"0,2",
"1,2",
"2,2"
],
[
"0,3",
"1,3",
"2,3",
{
"x": 0.25
},
"0,4",
"2,0\n\n\n\n\n\n\n\n\ne",
"2,1\n\n\n\n\n\n\n\n\ne"
]
]
}
}

View file

@ -0,0 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xF5, 0x92, 0xBC, 0x63, 0x72, 0x84, 0xCA, 0x4E}
#define VIAL_UNLOCK_COMBO_ROWS {0, 0}
#define VIAL_UNLOCK_COMBO_COLS {0, 2}

View file

@ -0,0 +1,44 @@
// Copyright 2025 DOIO
// Copyright 2025 ClownFish (@clownfish-og)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum my_layers {
_BASE,
_MOUSE,
_MEDIA,
_LIGHTS
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
TO(_MOUSE),
KC_ENT, C(KC_C), C(KC_V),
C(KC_Z)
),
[_MOUSE] = LAYOUT(
TO(_MEDIA),
MS_BTN1, MS_BTN3, MS_BTN2,
KC_LCTL
),
[_MEDIA] = LAYOUT(
TO(_LIGHTS),
KC_MRWD, KC_MPLY, KC_MFFD,
KC_MUTE
),
[_LIGHTS] = LAYOUT(
TO(_BASE),
RM_VALD, RM_NEXT, RM_VALU,
RM_TOGG
)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BASE] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(MS_WHLL, MS_WHLR) },
[_MOUSE] = { ENCODER_CCW_CW(MS_LEFT, MS_RGHT), ENCODER_CCW_CW(MS_UP, MS_DOWN) },
[_MEDIA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
[_LIGHTS] = { ENCODER_CCW_CW(RM_SATD, RM_SATU), ENCODER_CCW_CW(RM_HUED, RM_HUEU) }
};
#endif

View file

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

View file

@ -0,0 +1,49 @@
{
"lighting": "vialrgb",
"matrix": {"rows": 1, "cols": 5},
"layouts": {
"keymap": [
[
{
"x": 0.5,
"y": 0.25,
"h": 0.5
},
"0,3"
],
[
"0,0",
"0,1",
"0,2"
],
[
{
"y": 0.25,
"x": 0.5
},
"0,0\n\n\n\n\n\n\n\n\ne",
"0,1\n\n\n\n\n\n\n\n\ne"
],
[
{
"x": 1
},
"0,4"
],
[
{
"x": 0.25,
"y": 0.25,
"w": 1.25,
"h": 1.25
},
"1,0\n\n\n\n\n\n\n\n\ne",
{
"w": 1.25,
"h": 1.25
},
"1,1\n\n\n\n\n\n\n\n\ne"
]
]
}
}

View file

@ -0,0 +1,8 @@
// Copyright 2025 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View file

@ -0,0 +1,114 @@
{
"manufacturer": "eerraa",
"keyboard_name": "Riley",
"maintainer": "eerraa",
"bootloader": "rp2040",
"build": {
"debounce_type": "sym_defer_pk"
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"indicators": {
"caps_lock": "GP25"
},
"matrix_pins": {
"cols": ["GP29", "GP20", "GP19", "GP18", "GP15", "GP14", "GP13", "GP12", "GP11", "GP24", "GP23", "GP22", "GP9", "GP10"],
"rows": ["GP5", "GP8", "GP28", "GP26", "GP27"]
},
"processor": "RP2040",
"rgb_matrix": {
"driver": "ws2812",
"layout": [
{"x": 208, "y": 64, "flags": 8},
{"x": 216, "y": 64, "flags": 8},
{"x": 224, "y": 64, "flags": 8}
],
"sleep": true
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0024",
"vid": "0x4552"
},
"ws2812": {
"driver": "vendor",
"pin": "GP4"
},
"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": [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": 14, "y": 0},
{"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},
{"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
{"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": 13.75, "y": 2, "w": 1.25},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 4], "x": 4, "y": 4, "w": 3},
{"matrix": [4, 6], "x": 7, "y": 4},
{"matrix": [4, 8], "x": 8, "y": 4, "w": 3},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 12.5, "y": 4},
{"matrix": [4, 13], "x": 14.25, "y": 3}
]
}
}
}

View file

@ -0,0 +1,22 @@
// Copyright 2025 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
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_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,
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_BSLS,
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_ENT,
KC_LCTL, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RCTL, MO(1)
),
[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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS , KC_HOME, KC_PGUP, KC_PSCR, KC_SCRL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL , 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_MUTE, KC_VOLD, KC_VOLU, 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,7 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x08, 0x57, 0xF6, 0x88, 0xF6, 0x14, 0xCD, 0x5F}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }

View file

@ -0,0 +1,22 @@
// Copyright 2025 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
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_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,
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_BSLS,
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_ENT,
KC_LCTL, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RCTL, MO(1)
),
[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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS , KC_HOME, KC_PGUP, KC_PSCR, KC_SCRL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL , 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_MUTE, KC_VOLD, KC_VOLU, 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,222 @@
{
"name": "RILEY",
"vendorId": "0x4552",
"productId": "0x0024",
"lighting": "none",
"matrix": {
"rows": 5,
"cols": 14
},
"layouts": {
"labels": [
[
"Backspace",
"Unified",
"Split"
],
[
"Enter",
"ANSI",
"ISO"
],
[
"Left Shift",
"ANSI",
"ISO"
],
[
"Right Shift",
"Unified",
"Split"
],
[
"Bottom Row",
"7U",
"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\n0,0",
{
"x": 1.25,
"c": "#cccccc"
},
"0,13\n\n\n0,1",
"1,13\n\n\n0,1"
],
[
{
"x": 2.75,
"c": "#aaaaaa",
"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,13\n\n\n1,0",
{
"x": 2,
"c": "#777777",
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"3,13\n\n\n1,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
},
"3,13\n\n\n1,0",
{
"x": 1,
"c": "#cccccc"
},
"2,12\n\n\n1,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",
{
"c": "#cccccc"
},
"4,13\n\n\n3,1"
],
[
{
"x": 4.25,
"c": "#aaaaaa"
},
"4,1",
{
"w": 1.5
},
"4,2",
{
"c": "#cccccc",
"w": 7
},
"4,6\n\n\n4,0",
{
"c": "#aaaaaa",
"w": 1.5
},
"4,11",
"4,12"
],
[
{
"x": 6.75,
"c": "#cccccc",
"w": 3
},
"4,4\n\n\n4,1",
"4,6\n\n\n4,1",
{
"w": 3
},
"4,8\n\n\n4,1"
]
]
}
}

View file

@ -0,0 +1,23 @@
# Riley
* Keyboard Maintainer: [ERA](https://github.com/eerraa)
* Hardware supported: Gok x Lily
* Hardware availability: The Group Buy for this hardware has concluded. The hardware may be available on aftermarket channels.
Make example for this keyboard (after setting up your build environment):
make era/comm/riley:default
Flashing example for this keyboard:
make era/comm/riley: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 down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1,53 @@
##################################################
# 펌웨어 업데이트 방법 (Firmware Update Guide)
##################################################
[한글 설명]
■ 펌웨어 업데이트 절차
1. 아래 3가지 방법 중 하나를 선택하여 키보드를 '부트로더(Bootloader)' 모드로 진입시킵니다.
2. 부트로더 모드에 정상적으로 진입하면, 컴퓨터에 'RPI-RP2'와 같은 이름의 새로운 이동식 디스크가 나타납니다.
3. 이 디스크에 준비된 펌웨어(.uf2) 파일을 복사하여 붙여넣으면 잠시 후 자동으로 업데이트가 완료됩니다.
■ 부트로더 모드 진입 방법 (3가지)
1. 부트매직(Bootmagic) 사용
- 키보드의 좌측 상단 키(일반적으로 Esc 키)를 누른 상태로 USB 케이블을 연결합니다.
2. 물리적 리셋(Physical Reset) 사용
- 기판(PCB)의 리셋 버튼을 빠르게 두 번 누릅니다. (버튼이 있는 경우)
- 또는, 기판의 'RST' 핀과 'GND' 핀을 핀셋 등으로 짧게 두 번 접촉(쇼트)시킵니다.
- 또는, 'BOOT' 헤더 핀 두 개를 쇼트시킨 상태로 USB 케이블을 연결합니다.
3. 리셋 키코드(Reset Keycode) 사용
- 키맵에 'QK_BOOT' 또는 'RESET'으로 미리 설정해 둔 키를 누릅니다.
- (이 방법은 키맵에 해당 기능 키를 미리 할당한 경우에만 사용할 수 있습니다.)
======================================================================
[English Description]
■ How to Flash Firmware
1. Enter the keyboard's "Bootloader" mode using one of the three methods described below.
2. Once the keyboard is in bootloader mode, a new removable disk (e.g., "RPI-RP2") will appear on your computer.
3. Copy-paste or drag-and-drop your prepared firmware file (e.g., firmware.uf2) onto this disk. The update will complete automatically.
■ Three Ways to Enter Bootloader Mode
1. Using Bootmagic
- Hold down the top-left key of the keyboard (usually the Esc key) while plugging in the USB cable.
2. Using Physical Reset
- Quickly double-press the reset button on the PCB, if one exists.
- Alternatively, use tweezers to briefly short the 'RST' and 'GND' pins on the PCB twice.
- Alternatively, short the two 'BOOT' header pins while plugging in the USB cable.
3. Using a Reset Keycode
- Press the key that you have assigned to 'QK_BOOT' or 'RESET' in your keymap.
- (This method only works if you have already configured such a key in your layout.)

View file

@ -0,0 +1,39 @@
// Copyright 2025 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
#include "rgb_matrix.h"
#include "riley.h"
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
}
led_t led_state = host_keyboard_led_state();
if (led_state.caps_lock) {
RGB rgb = hsv_to_rgb((HSV){0, 255, 255}); // Red
rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b);
}
if (led_state.scroll_lock) {
RGB rgb = hsv_to_rgb((HSV){170, 255, 255}); // Blue
rgb_matrix_set_color(1, rgb.r, rgb.g, rgb.b);
}
if (led_state.num_lock) {
RGB rgb = hsv_to_rgb((HSV){85, 255, 255}); // Green
rgb_matrix_set_color(2, rgb.r, rgb.g, rgb.b);
}
return true;
}
void keyboard_post_init_kb(void) {
rgb_matrix_enable_noeeprom();
rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
rgb_matrix_sethsv_noeeprom(0, 0, 0);
keyboard_post_init_user();
}

View file

@ -0,0 +1,6 @@
// Copyright 2025 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "quantum.h"

View file

@ -0,0 +1,5 @@
#pragma once
#define VIAL_KEYBOARD_UID {0x45, 0x25, 0xF0, 0xF1, 0x0B, 0x44, 0x5B, 0x30}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 15 }

View file

@ -0,0 +1,105 @@
/*
*Copyright 2024 Fabian Leijström (@galile0-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
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* LAYER
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐
* │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ BS │ │ INS │HOME │PGUP │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤
* │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ DEL │ END │PGDN │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘
* │CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ENTER│
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐
* │SHIFT│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │SHIFT│ │ UP │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐
* │CTRL │ │ SYS │ ALT │LOWER│ SPACE │SPACE│RAISE│ ALT │ SYS │ │CTRL │ │LEFT │DOWN │RIGHT│
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘
*/
[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_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_ENT,
KC_LSFT, KC_BSLS, 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_NO, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_RALT, KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
/* FUNCTION LAYER
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐
* │PAUSE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ PRT │ │ │
* │PLAY │ │ │ │ │ │ │ │ │ │ │ │ │ │ SCR │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘
*/
[1] = LAYOUT(
//******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** **********
KC_MPLY, 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_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_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
/* SYMBOLS LAYER
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐
* │ │ │ │ │ │ │ │ │ │ ` │ = │ + │ │ │ │ │ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘
*/
[2] = LAYOUT(
//******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** **********
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_GRV, KC_EQL, KC_PPLS, 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, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
)
};

View file

@ -0,0 +1,7 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
CAPS_WORD_ENABLE = no
LAYER_LOCK_ENABLE = no
REPEAT_KEY_ENABLE = no

View file

@ -0,0 +1,104 @@
{
"name": "Glyphkbd V2",
"vendorId": "0x4744",
"productId": "0x0001",
"lighting": "none",
"matrix": {
"rows": 5,
"cols": 16
},
"layouts": {
"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",
{ "x": 0.5 },
"0,13",
"0,14",
"0,15"
],
[
"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",
{ "x": 0.5 },
"1,13",
"1,14",
"1,15"
],
[
"2,0",
"2,1",
"2,2",
"2,3",
"2,4",
"2,5",
"2,6",
"2,7",
"2,8",
"2,9",
"2,10",
"2,11",
"2,12"
],
[
"3,0",
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
"3,12",
{ "x": 1.5 },
"3,14"
],
[
"4,0",
"4,1",
"4,2",
"4,3",
"4,4",
{ "w": 2 },
"4,5",
"4,7",
"4,8",
"4,9",
"4,10",
"4,11",
"4,12",
{ "x": 0.5 },
"4,13",
"4,14",
"4,15"
]
]
},
"vial_protocol": 1
}

View file

@ -0,0 +1,18 @@
// Copyright 2022 GEIST @geigeigeist
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// Matrix size
#define MATRIX_ROWS 8
#define MATRIX_COLS 5
// Split communication (vendor serial on RP2040, using GP0/GP1)
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
#define SERIAL_USART_TX_PIN GP0 // USART TX pin
#define SERIAL_USART_RX_PIN GP1 // USART RX pin
#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve.
#define EE_HANDS // Split handedness via eeprom
// RP2040 bootloader double-tap
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U

View file

@ -0,0 +1,72 @@
{
"keyboard_name": "TOTEM",
"manufacturer": "GEIST",
"url": "https://github.com/GEIGEIGEIST/TOTEM",
"maintainer": "qmk",
"usb": {
"vid": "0x3A3C",
"pid": "0x0002",
"device_version": "0.3.0"
},
"processor": "RP2040",
"bootloader": "rp2040",
"matrix_pins": {
"rows": ["GP26", "GP27", "GP28", "GP29"],
"cols": ["GP6", "GP7", "GP3", "GP4", "GP2"]
},
"diode_direction": "COL2ROW",
"debounce": 5,
"features": {
"swap_hands": true
},
"split": {
"enabled": true,
"serial": {
"driver": "vendor"
}
},
"layouts": {
"LAYOUT": {
"layout": [
{ "label": "L00", "matrix": [0, 0], "x": 1, "y": 1.4 },
{ "label": "L01", "matrix": [0, 1], "x": 2, "y": 0.6 },
{ "label": "L02", "matrix": [0, 2], "x": 3, "y": 0 },
{ "label": "L03", "matrix": [0, 3], "x": 4, "y": 0.5 },
{ "label": "L04", "matrix": [0, 4], "x": 5, "y": 0.65 },
{ "label": "R00", "matrix": [4, 4], "x": 9, "y": 0.65 },
{ "label": "R01", "matrix": [4, 3], "x": 10, "y": 0.5 },
{ "label": "R02", "matrix": [4, 2], "x": 11, "y": 0 },
{ "label": "R03", "matrix": [4, 1], "x": 12, "y": 0.6 },
{ "label": "R04", "matrix": [4, 0], "x": 13, "y": 1.4 },
{ "label": "L10", "matrix": [1, 0], "x": 1, "y": 2.4 },
{ "label": "L11", "matrix": [1, 1], "x": 2, "y": 1.6 },
{ "label": "L12", "matrix": [1, 2], "x": 3, "y": 1 },
{ "label": "L13", "matrix": [1, 3], "x": 4, "y": 1.5 },
{ "label": "L14", "matrix": [1, 4], "x": 5, "y": 1.65 },
{ "label": "R10", "matrix": [5, 4], "x": 9, "y": 1.65 },
{ "label": "R11", "matrix": [5, 3], "x": 10, "y": 1.5 },
{ "label": "R12", "matrix": [5, 2], "x": 11, "y": 1 },
{ "label": "R13", "matrix": [5, 1], "x": 12, "y": 1.6 },
{ "label": "R14", "matrix": [5, 0], "x": 13, "y": 2.4 },
{ "label": "L30", "matrix": [3, 0], "x": 0, "y": 2.9 },
{ "label": "L20", "matrix": [2, 0], "x": 1, "y": 3.4 },
{ "label": "L21", "matrix": [2, 1], "x": 2, "y": 2.6 },
{ "label": "L22", "matrix": [2, 2], "x": 3, "y": 2 },
{ "label": "L23", "matrix": [2, 3], "x": 4, "y": 2.5 },
{ "label": "L24", "matrix": [2, 4], "x": 5, "y": 2.65 },
{ "label": "R20", "matrix": [6, 4], "x": 9, "y": 2.65 },
{ "label": "R21", "matrix": [6, 3], "x": 10, "y": 2.5 },
{ "label": "R22", "matrix": [6, 2], "x": 11, "y": 2 },
{ "label": "R23", "matrix": [6, 1], "x": 12, "y": 2.6 },
{ "label": "R24", "matrix": [6, 0], "x": 13, "y": 3.4 },
{ "label": "R34", "matrix": [7, 0], "x": 14, "y": 2.9 },
{ "label": "L32", "matrix": [3, 2], "x": 3.6, "y": 3.5 },
{ "label": "L33", "matrix": [3, 3], "x": 4.8, "y": 3.65 },
{ "label": "L34", "matrix": [3, 4], "x": 6, "y": 3.85 },
{ "label": "R30", "matrix": [7, 4], "x": 8, "y": 3.85 },
{ "label": "R31", "matrix": [7, 3], "x": 9.2, "y": 3.65 },
{ "label": "R32", "matrix": [7, 2], "x": 10.4, "y": 3.5 }
]
}
}
}

View file

@ -0,0 +1,248 @@
/*
▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀
▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄
█ █ █ █ █ █ █ █ █ █ █
▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀
█ ▄▄▄█▄▄▄ █ █
▀ █ █ █ █▄█
▀▀▀▀▀ █ █ █ ▀
▀ ▀ ▀ D E F A U L T
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
*/
#include QMK_KEYBOARD_H
// ┌─────────────────────────────────────────────────┐
// │ d e f i n e l a y e r s │
// └─────────────────────────────────────────────────┘
enum totem_layers {
_QWERTY,
_COLEMAK,
_LOWER,
_RAISE,
_ADJUST,
};
// ┌─────────────────────────────────────────────────┐
/* │ d e f i n e k e y c o d e s │
// └─────────────────────────────────────────────────┘ */
enum custom_keycodes {
COLEMAK = SAFE_RANGE,
QWERTY,
LOWER,
RAISE,
ADJUST,
MAKE_H,
SNAP
};
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ K E Y M A P S │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
┌─────────────────────────────────────────────────┐
│ q w e r t y │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ Q │ W │ E │ R │ T ││ Y │ U │ I │ O │ P │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ A │ S │ D │ F │ G ││ H │ J │ K │ L │ ; │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ Q │ Z │ X │ C │ V │ B ││ N │ M │ , │ . │ / │ P │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ CTRL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
[_QWERTY] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LCTL, KC_D), MT(MOD_LSFT, KC_F), KC_G, KC_H, MT(MOD_RSFT, KC_J), MT(MOD_LCTL, KC_K), MT(MOD_LALT, KC_L), MT(MOD_LGUI, KC_SCLN),
KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_P,
KC_DEL, LT(2, KC_TAB), KC_SPC, KC_ENT, LT(3, KC_ESC), KC_BSPC
),
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
┌─────────────────────────────────────────────────┐
│ c o l e m a k │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ Q │ W │ F │ P │ G ││ J │ L │ U │ Y │ ; │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ A │ R │ S │ T │ D ││ H │ N │ E │ I │ O │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ Q │ Z │ X │ C │ V │ B ││ K │ M │ , │ . │ / │ ; │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ DEL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
[_COLEMAK] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_R), MT(MOD_LCTL, KC_S), MT(MOD_LSFT, KC_T), KC_D, KC_H, MT(MOD_RSFT, KC_N), MT(MOD_LCTL, KC_E), MT(MOD_LALT, KC_I), MT(MOD_LGUI, KC_O),
KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN,
KC_DEL, LT(2, KC_TAB), KC_SPC, KC_ENT, LT(3, KC_ESC), KC_BSPC
),
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
┌─────────────────────────────────────────────────┐
│ l o w e r │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ CAPSLCK │ NUMLCK │ ↑ │ = │ { ││ } │ 7 │ 8 │ 9 │ + │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ HOME │ ← │ ↓ │ → │ [ ││ ] │ 4 │ 5 │ 6 │ - │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ SCRNSHT │ END │ PG↑ │ SAVE │ PG↓ │ ( ││ ) │ 1 │ 2 │ 3 │ * │ ▼ │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ ▼ │ ▼ │ ▼ ││ ▼ │ ADJUST │ 0 │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
[_LOWER] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_CAPS, KC_NUM, KC_UP, KC_EQL, KC_LCBR, KC_RCBR, KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_QUOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_MINS,
SNAP, KC_END, KC_PGUP, C(KC_S), KC_PGDN, KC_LPRN, KC_RPRN, KC_P1, KC_P2, KC_P3, KC_PAST, _______,
_______, _______, _______, _______, MO(4), KC_P0
),
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
┌─────────────────────────────────────────────────┐
│ r a i s e │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ ! │ @ │ # │ $ │ % ││ ^ │ & │ Ü │ ° │ / │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ Ä │ è │ SZ │ é │ ││ │ ¥ │ € │ £ │ Ö │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ │ ` │ ~ │ CUE │ │ ││ │ │ │ DM REC1 │ DM STOP │ DM PLY1 │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ GIPHY │ ADJUST │ ▼ ││ ▼ │ ▼ │ ▼ │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
[_RAISE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, RALT(KC_U), RALT(KC_3), KC_BSLS,
RALT(KC_A), RALT(KC_F), RALT(KC_S), RALT(KC_G), XXXXXXX, XXXXXXX, LSFT(RALT(KC_4)), RALT(KC_5), RALT(KC_4), RALT(KC_O),
XXXXXXX, LSFT(KC_GRV), KC_TILD, RALT(KC_C), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DM_REC1, DM_RSTP, DM_PLY1,
_______, MO(4), _______, _______, _______, _______
),
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
┌─────────────────────────────────────────────────┐
│ a d j u s t │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ RESET │ │ │ │ ││ │ F7 │ F8 │ F9 │ F12 │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ DEBUG │ QWERTY │ │ │ ││ │ F4 │ F5 │ F6 │ F11 │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ MAKE │ OS SWAP │ COLEMAK │ │ │ ││ │ F1 │ F2 │ F3 │ F10 │ F13 │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ ▼ │ ▼ │ ▼ ││ ▼ │ ▼ │ ▼ │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
[_ADJUST] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12,
DB_TOGG, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11,
MAKE_H, CG_TOGG, COLEMAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_F13,
_______, _______, _______, _______, _______, _______
)
};
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ M A C R O S │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case CG_TOGG:
if (record->event.pressed) {
if (!keymap_config.swap_lctl_lgui) {
keymap_config.swap_lctl_lgui = true; // ─── MAC
} else {
keymap_config.swap_lctl_lgui = false; // ─── WIN
}
eeconfig_update_keymap(&keymap_config);
clear_keyboard(); // ──── clear to prevent stuck keys
return false;
}
// ┌─────────────────────────────────────────────────┐
// │ l a y e r │
// └─────────────────────────────────────────────────┘
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
// ┌─────────────────────────────────────────────────┐
// │ q m k │
// └─────────────────────────────────────────────────┘
case MAKE_H:
if (record->event.pressed) {
SEND_STRING("qmk compile -kb geigeigeist/totem -km default");
tap_code(KC_ENTER);
}
break;
// ┌─────────────────────────────────────────────────┐
// │ p r o d u c t i v i t y │
// └─────────────────────────────────────────────────┘
case SNAP:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
SEND_STRING(SS_LSFT(SS_LCMD(SS_LCTL("4")))); // MAC
} else {
SEND_STRING(SS_LSFT(SS_LWIN("S"))); // WIN
}
}
break;
}
return true;
}
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
██████
██ ▄▄▄▄
██ ██▀▀██
▀▀ ██▄▄██
██████ ▀▀▀▀
██ ▄▄▄▄▄▄
██ ██▀▀▀▀
██ ██████
██▄▄▄▄
▀▀▀▀▀▀
████████
██ ██ ██
██ ██ ██
▀▀ ▀▀ ▀▀
████████
*/

View file

@ -0,0 +1,22 @@
// Copyright 2022 GEIST @geigeigeist
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define VIAL_KEYBOARD_UID \
{ 0xCB, 0x37, 0x36, 0xFE, 0xEE, 0xED, 0xEE, 0x77 }
#define VIAL_UNLOCK_COMBO_ROWS \
{ 0, 4 }
#define VIAL_UNLOCK_COMBO_COLS \
{ 0, 0 }
// #define TAPPING_TERM 170
#define TAPPING_TERM 170
// Auto Shift
#define NO_AUTO_SHIFT_ALPHA
#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
#undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE
#define DYNAMIC_KEYMAP_LAYER_COUNT 5

View file

@ -0,0 +1,285 @@
/*
▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀
▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄
█ █ █ █ █ █ █ █ █ █ █
▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀
█ ▄▄▄█▄▄▄ █ █
▀ █ █ █ █▄█
▀▀▀▀▀ █ █ █ ▀
▀ ▀ ▀ D E F A U L T
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
*/
#include QMK_KEYBOARD_H
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ D E F I N I T I O N S │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
// ┌─────────────────────────────────────────────────┐
// │ d e f i n e l a y e r s │
// └─────────────────────────────────────────────────┘
enum totem_layers {
_QWERTY,
_COLEMAK,
_LOWER,
_RAISE,
_ADJUST,
};
// ┌─────────────────────────────────────────────────┐
// │ d e f i n e k e y c o d e s │
// └─────────────────────────────────────────────────┘
enum custom_keycodes { COLEMAK = SAFE_RANGE, QWERTY, LOWER, RAISE, ADJUST, OS_SWAP, MAKE_H, SNAP };
// ┌─────────────────────────────────────────────────┐
// │ d e f i n e m a c r o n a m e s │
// └─────────────────────────────────────────────────┘
// LEFT HAND HOME ROW MODS QWERTY ├──────────────────┐
#define GUI_A MT(MOD_LGUI, KC_A)
#define ALT_S MT(MOD_LALT, KC_S)
#define CTL_D MT(MOD_LCTL, KC_D)
#define SHT_F MT(MOD_LSFT, KC_F)
// RIGHT HAND HOME ROW MODS QWERTY ├─────────────────┐
#define SHT_J MT(MOD_RSFT, KC_J)
#define CTL_K MT(MOD_LCTL, KC_K)
#define ALT_L MT(MOD_LALT, KC_L)
#define GUI_S MT(MOD_LGUI, KC_SCLN)
// LEFT HAND HOME ROW MODS COLEMAK ├─────────────────┐
#define GUI_A MT(MOD_LGUI, KC_A)
#define ALT_R MT(MOD_LALT, KC_R)
#define CTL_S MT(MOD_LCTL, KC_S)
#define SHT_T MT(MOD_LSFT, KC_T)
// RIGHT HAND HOME ROW MODS COLEMAK ├────────────────┐
#define SHT_N MT(MOD_RSFT, KC_N)
#define CTL_E MT(MOD_LCTL, KC_E)
#define ALT_I MT(MOD_LALT, KC_I)
#define GUI_O MT(MOD_LGUI, KC_O)
#define LOWER LT(_LOWER, KC_TAB)
#define RAISE LT(_RAISE, KC_ESC)
#define ADJUST MO(_ADJUST)
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
/* │ K E Y M A P S │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ */
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
┌─────────────────────────────────────────────────┐
│ q w e r t y │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ Q │ W │ E │ R │ T ││ Y │ U │ I │ O │ P │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ A │ S │ D │ F │ G ││ H │ J │ K │ L │ ; │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ Q │ Z │ X │ C │ V │ B ││ N │ M │ , │ . │ / │ P │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ CTRL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
[_QWERTY] = LAYOUT(
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, GUI_A, ALT_S, CTL_D, SHT_F, KC_G, KC_H, SHT_J, CTL_K, ALT_L, GUI_S, KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_P, KC_DEL, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC),
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
┌─────────────────────────────────────────────────┐
│ c o l e m a k │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ Q │ W │ F │ P │ G ││ J │ L │ U │ Y │ ; │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ A │ R │ S │ T │ D ││ H │ N │ E │ I │ O │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ Q │ Z │ X │ C │ V │ B ││ K │ M │ , │ . │ / │ ; │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ DEL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
[_COLEMAK] = LAYOUT(
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, GUI_A, ALT_R, CTL_S, SHT_T, KC_D, KC_H, SHT_N, CTL_E, ALT_I, GUI_O, KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_DEL, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC),
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
┌─────────────────────────────────────────────────┐
│ l o w e r │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ CAPSLCK │ NUMLCK │ ↑ │ = │ { ││ } │ 7 │ 8 │ 9 │ + │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ HOME │ ← │ ↓ │ → │ [ ││ ] │ 4 │ 5 │ 6 │ - │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ SCRNSHT │ END │ PG↑ │ SAVE │ PG↓ │ ( ││ ) │ 1 │ 2 │ 3 │ * │ ▼ │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ ▼ │ ▼ │ ▼ ││ ▼ │ ADJUST │ 0 │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
[_LOWER] = LAYOUT(
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_CAPS, KC_NUM, KC_UP, KC_EQL, KC_LCBR, KC_RCBR, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_QUOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_MINS, SNAP, KC_END, KC_PGUP, C(KC_S), KC_PGDN, KC_LPRN, KC_RPRN, KC_P1, KC_P2, KC_P3, KC_PAST, _______, _______, _______, _______, _______, ADJUST, KC_P0),
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
┌─────────────────────────────────────────────────┐
│ r a i s e │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ ! │ @ │ # │ $ │ % ││ ^ │ & │ Ü │ ° │ / │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ Ä │ è │ SZ │ é │ ││ │ ¥ │ € │ £ │ Ö │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ │ ` │ ~ │ CUE │ │ ││ │ │ │ DM REC1 │ DM STOP │ DM PLY1 │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ GIPHY │ ADJUST │ ▼ ││ ▼ │ ▼ │ ▼ │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
[_RAISE] = LAYOUT(
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, RALT(KC_U), RALT(KC_3), KC_BSLS, RALT(KC_A), RALT(KC_F), RALT(KC_S), RALT(KC_G), XXXXXXX, XXXXXXX, LSFT(RALT(KC_4)), RALT(KC_5), RALT(KC_4), RALT(KC_O), XXXXXXX, LSFT(KC_GRV), KC_TILD, RALT(KC_C), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DM_REC1, DM_RSTP, DM_PLY1, _______, ADJUST, _______, _______, _______, _______),
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
┌─────────────────────────────────────────────────┐
│ a d j u s t │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ RESET │ │ │ │ ││ │ F7 │ F8 │ F9 │ F12 │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ DEBUG │ QWERTY │ │ │ ││ │ F4 │ F5 │ F6 │ F11 │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ MAKE │ OS SWAP │ COLEMAK │ │ │ ││ │ F1 │ F2 │ F3 │ F10 │ F13 │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ ▼ │ ▼ │ ▼ ││ ▼ │ ▼ │ ▼ │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
[_ADJUST] = LAYOUT(
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, DB_TOGG, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11, MAKE_H, OS_SWAP, COLEMAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_F13, _______, _______, _______, _______, _______, _______)
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
┌─────────────────────────────────────────────────┐
│ t e m p l a t e │ ╭╮╭╮╭╮╭╮
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
╌┄┈┈───═╡ │ │ │ │ ││ │ │ │ │ │
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
│ │ │ │ │ ││ │ │ │ │ │
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
│ │ │ │ │ │ ││ │ │ │ │ │ │
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
│ │ │ ││ │ │ │
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘
[_TEMPLATE] = LAYOUT(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
),
*/
};
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ M A C R O S │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case OS_SWAP:
if (record->event.pressed) {
if (!keymap_config.swap_lctl_lgui) {
keymap_config.swap_lctl_lgui = true; // ─── MAC
} else {
keymap_config.swap_lctl_lgui = false; // ─── WIN
}
eeconfig_update_keymap(&keymap_config);
clear_keyboard(); // ──── clear to prevent stuck keys
return false;
}
// ┌─────────────────────────────────────────────────┐
// │ l a y e r │
// └─────────────────────────────────────────────────┘
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
// ┌─────────────────────────────────────────────────┐
// │ q m k │
// └─────────────────────────────────────────────────┘
case MAKE_H:
if (record->event.pressed) {
SEND_STRING("qmk compile -kb geigeigeist/totem -km default");
tap_code(KC_ENTER);
}
break;
// ┌─────────────────────────────────────────────────┐
// │ p r o d u c t i v i t y │
// └─────────────────────────────────────────────────┘
case SNAP:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
SEND_STRING(SS_LSFT(SS_LCMD(SS_LCTL("4")))); // MAC
} else {
SEND_STRING(SS_LSFT(SS_LWIN("S"))); // WIN
}
}
break;
}
return true;
}
/*
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
██████
██ ▄▄▄▄
██ ██▀▀██
▀▀ ██▄▄██
██████ ▀▀▀▀
██ ▄▄▄▄▄▄
██ ██▀▀▀▀
██ ██████
██▄▄▄▄
▀▀▀▀▀▀
████████
██ ██ ██
██ ██ ██
▀▀ ▀▀ ▀▀
████████
*/

View file

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

View file

@ -0,0 +1,148 @@
{
"name": "TOTEM",
"lighting": "none",
"vendorId": "0x3A3C",
"productId": "0x0002",
"matrix": {
"rows": 8,
"cols": 5
},
"layouts": {
"keymap": [
[
{ "y": 0.25, "x": 3 },
"4,2",
{ "x": 9 },
"0,2"
],
[
{ "y": -0.5, "x": 4 },
"4,3",
{ "x": 7 },
"0,3"
],
[
{ "y": -0.75, "x": 5 },
"4,4",
{ "x": 5 },
"0,4"
],
[
{ "y": -0.75, "x": 3 },
"5,2",
{ "x": 9 },
"1,2"
],
[
{ "y": -0.5, "x": 4 },
"5,3",
{ "x": 7 },
"1,3"
],
[
{ "y": -0.75, "x": 5 },
"5,4",
{ "x": 5 },
"1,4"
],
[
{ "y": -0.75, "x": 3 },
"6,2",
{ "x": 9 },
"2,2"
],
[
{ "y": -0.5, "x": 4 },
"6,3",
{ "x": 7 },
"2,3"
],
[
{ "y": -0.75, "x": 5 },
"6,4",
{ "x": 5 },
"2,4"
],
[
{ "rx": 4, "ry": 8.6, "y": -4.6, "x": -0.3999999999999999 },
"7,2"
],
[
{ "rx": 13, "y": -4.6, "x": -0.5999999999999996 },
"3,2"
],
[
{ "r": 4, "rx": 14.5, "ry": 3.75, "y": -3, "x": -0.5 },
"0,1"
],
[
{ "x": -0.5 },
"1,1"
],
[
{ "x": -0.5 },
"2,1"
],
[
{ "r": 10, "rx": 15.25, "y": -2.35, "x": -0.25 },
"0,0"
],
[
{ "x": -0.25 },
"1,0"
],
[
{ "y": -0.3999999999999999, "x": 0.75 },
"3,0"
],
[
{ "y": -0.6000000000000001, "x": -0.25 },
"2,0"
],
[
{ "r": 15, "rx": 4, "ry": 8.6, "y": -4.6, "x": -0.3999999999999999 },
"7,3"
],
[
{ "r": 30, "y": -1, "x": -0.3999999999999999 },
"7,4"
],
[
{ "r": -30, "rx": 13, "y": -4.6, "x": -0.5999999999999996 },
"3,4"
],
[
{ "r": -15, "y": -1, "x": -0.5999999999999996 },
"3,3"
],
[
{ "r": -10, "rx": 2, "ry": 3.75, "y": -2.35, "x": -1 },
"4,0"
],
[
{ "x": -1 },
"5,0"
],
[
{ "y": -0.3999999999999999, "x": -2 },
"7,0"
],
[
{ "y": -0.6000000000000001, "x": -1 },
"6,0"
],
[
{ "r": -4, "rx": 2.75, "y": -3, "x": -0.75 },
"4,1"
],
[
{ "x": -0.75 },
"5,1"
],
[
{ "x": -0.75 },
"6,1"
]
]
}
}

View file

@ -0,0 +1,23 @@
# TOTEM
TOTEM is a 38-key column-staggered split keyboard by GEIGEIGEIST designed for Seeed XIAO RP2040 or XIAO nRF52840 BLE. This port targets the wired RP2040 variant.
- Repository: https://github.com/GEIGEIGEIST/TOTEM
- Controller: Seeed Studio XIAO RP2040
- Split transport: vendor serial (RP2040) on GP0/GP1
- Matrix: 8 rows x 5 columns
- Diodes: COL2ROW
Build
- Default keymap:
qmk compile -kb geigeigeist/totem -km default
- Vial keymap:
qmk compile -kb geigeigeist/totem -km vial
Notes
- The JSON-driven keyboard definition is in keyboard.json (QMK data-driven format).
- For Vial, the UID and unlock combo are defined in keymaps/vial/config.h, with VIAL_ENABLE in keymaps/vial/rules.mk.
- If using XIAO RP2040 bootloader, double-tap reset is enabled (500ms timeout).

View file

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

View file

@ -0,0 +1,40 @@
/* Copyright 2022
* GEIST @geigeigeist
*
* 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 SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] =
// The LAYOUT macro could work for this, but it was harder to figure out the
// identity using it.
// This is the mirror, q <-> p, w <-> o, etc...
{
{ {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4} },
{ {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5} },
{ {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6} },
{ {4, 7}, {2, 7}, {1, 7}, {0, 7} },
{ {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0} },
{ {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1} },
{ {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2} },
{ {4, 3}, {3, 3}, {2, 3}, {0, 3} },
};
#endif // SWAP_HANDS_ENABLE

View file

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x97, 0x93, 0xA5, 0x42, 0xB0, 0xB2, 0x94, 0x68}
#define VIAL_UNLOCK_COMBO_ROWS { 1, 8 }
#define VIAL_UNLOCK_COMBO_COLS { 3, 4 }

View file

@ -0,0 +1,55 @@
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.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
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer)
*/
[0] = LAYOUT_65_ansi_blocker(
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_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_BSLS, KC_PGUP,
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_PGDN,
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_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
/* Keymap _FL: Function Layer
*/
[1] = LAYOUT_65_ansi_blocker(
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_INS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME,
_______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD
),
[2] = LAYOUT_65_ansi_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_65_ansi_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View file

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

View file

@ -0,0 +1,170 @@
{
"name": "GMMK V2 65 ANSI",
"vendorId": "0x320F",
"productId": "0x5045",
"matrix": {
"rows": 9,
"cols": 8
},
"lighting": "vialrgb",
"layouts": {
"keymap": [
[
{
"c": "#777777"
},
"1,3",
{
"c": "#cccccc"
},
"1,7",
"2,7",
"3,7",
"4,7",
"4,6",
"5,6",
"5,7",
"6,7",
"7,7",
"8,7",
"8,6",
"6,6",
{
"c": "#aaaaaa",
"w": 2
},
"7,1",
{
"c": "#cccccc"
},
"2,5"
],
[
{
"c": "#aaaaaa",
"w": 1.5
},
"1,1",
{
"c": "#cccccc"
},
"1,0",
"2,0",
"3,0",
"4,0",
"4,1",
"5,1",
"5,0",
"6,0",
"7,0",
"8,0",
"8,1",
"6,1",
{
"w": 1.5
},
"7,6",
"2,6"
],
[
{
"c": "#aaaaaa",
"w": 1.75
},
"2,1",
{
"c": "#cccccc"
},
"1,2",
"2,2",
"3,2",
"4,2",
"4,3",
"5,3",
"5,2",
"6,2",
"7,2",
"8,2",
"8,3",
{
"c": "#777777",
"w": 2.25
},
"8,4",
{
"c": "#cccccc"
},
"6,5"
],
[
{
"c": "#aaaaaa",
"w": 2.25
},
"0,0",
{
"c": "#cccccc"
},
"1,4",
"2,4",
"3,4",
"4,4",
"4,5",
"5,5",
"5,4",
"6,4",
"7,4",
"8,5",
{
"c": "#aaaaaa",
"w": 1.75
},
"0,7",
{
"c": "#777777"
},
"3,5",
{
"c": "#cccccc"
},
"0,1"
],
[
{
"c": "#aaaaaa",
"w": 1.25
},
"0,6",
{
"w": 1.25
},
"1,5",
{
"w": 1.25
},
"2,3",
{
"c": "#cccccc",
"w": 6.25
},
"3,1",
{
"c": "#aaaaaa",
"w": 1.25
},
"3,6",
{
"w": 1.25
},
"3,3",
{
"x": 0.5,
"c": "#777777"
},
"0,3",
"7,3",
"0,5"
]
]
}
}

View file

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0x01, 0x0B, 0x6B, 0xD3, 0x32, 0xC7, 0xB0, 0x93}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 4 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 20 }

View file

@ -0,0 +1,56 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┐
* │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Del│ │Hom│Ins│PgU│PgD│
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┘
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┬───┐
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Num│ / │ * │ - │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │ 7 │ 8 │ 9 │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤ + │
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬┬──┴┐├───┼───┼───┼───┤
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift││ ↑ ││ 1 │ 2 │ 3 │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬┬──┴┼───┼┴──┬┼───┼───┤Ent│
* │Ctrl│GUI │Alt │ │Alt│ Fn│Ctr││ ← │ ↓ │ → ││ 0 │ . │ │
* └────┴────┴────┴────────────────────────┴───┴───┴───┘└───┴───┴───┘└───┴───┴───┘
*/
[0] = LAYOUT_96_ansi(
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_DEL, KC_HOME, KC_INS, KC_PGUP, KC_PGDN,
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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
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_P7, KC_P8, KC_P9, KC_PPLS,
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_P4, KC_P5, KC_P6,
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_P1, KC_P2, KC_P3, KC_PENT,
KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_P0, KC_PDOT,
KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_96_ansi(
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, KC_SCRL, KC_PAUS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______,
_______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______
),
[2] = LAYOUT_96_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______,
_______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______
)
};

View file

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

View file

@ -0,0 +1,244 @@
{
"name": "ziyoulang k3 mod",
"vendorId": "0x5006",
"productId": "0xE002",
"matrix": {
"rows": 6,
"cols": 21
},
"layouts": {
"keymap": [
[
{
"c": "#777777"
},
"0,0",
{
"c": "#cccccc"
},
"0,2",
"0,3",
"0,4",
"0,5",
{
"c": "#aaaaaa"
},
"0,6",
"0,7",
"0,8",
"0,9",
{
"c": "#cccccc"
},
"0,10",
"0,11",
"0,12",
"0,13",
{
"c": "#aaaaaa"
},
"0,14",
"0,15",
{
"x": 0.5
},
"0,16",
"0,17",
"0,18",
"0,19"
],
[
{
"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.5
},
"1,17",
"1,18",
"1,19",
"1,20"
],
[
{
"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,13",
{
"x": 0.5
},
"2,17",
"2,18",
"2,19",
{
"c": "#aaaaaa",
"h": 2
},
"2,20"
],
[
{
"w": 1.75
},
"3,0",
{
"c": "#cccccc"
},
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
"3,12",
{
"c": "#777777",
"w": 2.25
},
"2,13",
{
"x": 0.5,
"c": "#cccccc"
},
"3,17",
"3,18",
"3,19"
],
[
{
"c": "#aaaaaa",
"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": 1.75
},
"4,13",
{
"x": 1.5,
"c": "#cccccc"
},
"4,17",
"4,18",
"4,19",
{
"c": "#777777",
"h": 2
},
"4,20"
],
[
{
"y": -0.75,
"x": 14.25,
"c": "#aaaaaa"
},
"4,15"
],
[
{
"y": -0.25,
"w": 1.25
},
"5,0",
{
"w": 1.25
},
"5,2",
{
"w": 1.25
},
"5,3",
{
"c": "#777777",
"w": 6.25
},
"5,6",
{
"c": "#aaaaaa"
},
"5,10",
{
"c": "#777777"
},
"5,11",
{
"c": "#aaaaaa"
},
"5,13",
{
"x": 3.5,
"c": "#cccccc"
},
"5,17",
"5,19"
],
[
{
"y": -0.75,
"x": 13.25,
"c": "#aaaaaa"
},
"5,14",
"5,15",
"5,16"
]
]
}
}

View file

@ -0,0 +1,14 @@
// Copyright 2022 Diego Palacios (@diepala)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
#define SERIAL_USART_TX_PIN B6 // USART TX pin
#define SERIAL_USART_RX_PIN B7 // USART RX pin
#define BOOTMAGIC_ROW 3
#define BOOTMAGIC_COLUMN 0
#define BOOTMAGIC_ROW_RIGHT 7
#define BOOTMAGIC_COLUMN_RIGHT 2

View file

@ -0,0 +1,8 @@
// Copyright 2022 Diego Palacios (@diepala)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SERIAL TRUE
#include_next <halconf.h>

View file

@ -0,0 +1,92 @@
{
"manufacturer": "HLB",
"keyboard_name": "CantorMX F411",
"maintainer": "H3lli0n",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"processor": "STM32F411",
"bootloader": "stm32-dfu",
"url": "https://github.com/H3lli0n/CantorMx-3DP-case",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"matrix_pins": {
"direct": [
["B1", "B10", "A8", "B15", "B14", "B13"],
["B9", "B8", "B5", "B4", "B3", "A15"],
["A3", "A4", "A5", "A6", "A7", "B0"],
["A2", "A1", "A0", null, null, null]
]
},
"split": {
"enabled": true,
"matrix_pins": {
"right": {
"direct": [
["B13", "B14", "B15", "A8", "B10", "B1"],
["A15", "B3", "B4", "B5", "B8", "B9"],
["B0", "A7", "A6", "A5", "A4", "A3"],
["A0", "A1", "A2", null, null, null]
]
}
},
"serial": {
"driver": "usart"
}
},
"community_layouts": ["split_3x6_3"],
"layouts": {
"LAYOUT_split_3x6_3": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.25},
{"matrix": [0, 1], "x": 1, "y": 0.25},
{"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": [4, 0], "x": 8, "y": 0.25},
{"matrix": [4, 1], "x": 9, "y": 0.125},
{"matrix": [4, 2], "x": 10, "y": 0},
{"matrix": [4, 3], "x": 11, "y": 0.125},
{"matrix": [4, 4], "x": 12, "y": 0.25},
{"matrix": [4, 5], "x": 13, "y": 0.25},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"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": [5, 0], "x": 8, "y": 1.25},
{"matrix": [5, 1], "x": 9, "y": 1.125},
{"matrix": [5, 2], "x": 10, "y": 1},
{"matrix": [5, 3], "x": 11, "y": 1.125},
{"matrix": [5, 4], "x": 12, "y": 1.25},
{"matrix": [5, 5], "x": 13, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25},
{"matrix": [2, 1], "x": 1, "y": 2.25},
{"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": [6, 0], "x": 8, "y": 2.25},
{"matrix": [6, 1], "x": 9, "y": 2.125},
{"matrix": [6, 2], "x": 10, "y": 2},
{"matrix": [6, 3], "x": 11, "y": 2.125},
{"matrix": [6, 4], "x": 12, "y": 2.25},
{"matrix": [6, 5], "x": 13, "y": 2.25},
{"matrix": [3, 0], "x": 3.5, "y": 3.25},
{"matrix": [3, 1], "x": 4.5, "y": 3.5},
{"matrix": [3, 2], "x": 5.5, "y": 3.75},
{"matrix": [7, 0], "x": 7.5, "y": 3.75},
{"matrix": [7, 1], "x": 8.5, "y": 3.5},
{"matrix": [7, 2], "x": 9.5, "y": 3.25}
]
}
}
}

View file

@ -0,0 +1,28 @@
// Copyright 2022 Diego Palacios (@diepala)
// SPDX-License-Identifier: GPL-2.0
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
* │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Bsp│
* ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
* │Ctl│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │
* ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
* │Sft│ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │Sft│
* └───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┘
* ┌───┐ ┌───┐
* │GUI├───┐ ┌───┤Alt│
* └───┤ ├───┐ ┌───┤ ├───┘
* └───┤Bsp│ │Ent├───┘
* └───┘ └───┘
*/
[0] = LAYOUT_split_3x6_3(
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, KC_SPC, KC_BSPC, KC_ENT, KC_SPC, KC_RALT
)
};

View file

@ -0,0 +1,16 @@
#pragma once
/* keyboard uid */
#define VIAL_KEYBOARD_UID {0x0C, 0xA9, 0xA3, 0x03, 0xE0, 0x06, 0x52, 0x7E}
#define VIAL_UNLOCK_COMBO_ROWS { 3, 7 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 2 }
/* default layer count */
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
#define VIAL_TAP_DANCE_ENTRIES 20
/* Select hand configuration */
#define EE_HANDS
#define SPLIT_WATCHDOG_ENABLE
#define SPLIT_WATCHDOG_TIMEOUT 20000

View file

@ -0,0 +1,97 @@
// Copyright 2022 Diego Palacios (@diepala)
// SPDX-License-Identifier: GPL-2.0
#include QMK_KEYBOARD_H
enum layers {
_QWERTY = 0,
_DVORAK,
_COLEMAK_DH,
_NAV,
_SYM,
_MODS,
};
// Aliases for readability
#define QWERTY DF(_QWERTY)
#define COLEMAK DF(_COLEMAK_DH)
#define DVORAK DF(_DVORAK)
#define SYM MO(_SYM)
#define NAV MO(_NAV)
#define MODS MO(_MODS)
#define CTL_ESC MT(MOD_LCTL, KC_ESC)
#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE)
#define CTL_MINS MT(MOD_RCTL, KC_MINUS)
#define ALT_ENT MT(MOD_LALT, KC_ENT)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* Base Layer: QWERTY
* ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
* │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Bsp│
* ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
* │Ctl│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │
* ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤
* │Sft│ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │Sft│
* └───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┘
* ┌───┐ ┌───┐
* │GUI├───┐ ┌───┤Alt│
* └───┤ ├───┐ ┌───┤ ├───┘
* └───┤Bsp│ │Ent├───┘
* └───┘ └───┘
*/
[_QWERTY] = LAYOUT_split_3x6_3(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_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_BSPC, ALT_ENT, NAV, SYM, KC_SPC, MODS
),
/*
* Base Layer: Dvorak
*/
[_DVORAK] = LAYOUT_split_3x6_3(
KC_TAB, KC_QUOTE, KC_COMM, KC_DOT, KC_P , KC_Y, KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC,
CTL_ESC, KC_A , KC_S , KC_D , KC_F , KC_G, KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS,
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT,
KC_BSPC, ALT_ENT, NAV, SYM, KC_SPC, MODS
),
/*
* Base Layer: Colemak DH
*/
[_COLEMAK_DH] = LAYOUT_split_3x6_3(
KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B, KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC,
CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G, KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT,
KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT,
KC_BSPC, ALT_ENT, NAV, SYM, KC_SPC, MODS
),
/*
* Nav Layer: Fn, navigation
*/
[_NAV] = LAYOUT_split_3x6_3(
KC_TRNS, KC_F9 , KC_F10, KC_F11, KC_F12, KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL,
KC_TRNS, KC_F5 , KC_F6 , KC_F7 , KC_F8, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS,
KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4, KC_TRNS, KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR,
KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_RALT, KC_TRNS
),
/*
* Symboles
*/
[_SYM] = LAYOUT_split_3x6_3(
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL,
KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS,
KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES,
KC_CAPS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS
),
/*
* Layer for mods
*/
[_MODS] = LAYOUT_split_3x6_3(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QWERTY,
KC_TRNS, KC_LGUI, KC_LCTL, KC_LALT, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DVORAK,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, COLEMAK,
KC_QUOTE, KC_CIRC, KC_SCLN, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View file

@ -0,0 +1,9 @@
VIA_ENABLE = yes # Enable VIA
VIAL_ENABLE = yes # Enable VIAL
#We need to specify bootloader and MCU for F411 8Mhz version of BlackPillS
MCU = STM32F411
#We are in split keyboard mode
SPLIT_KEYBOARD = yes
SERIAL_DRIVER = usart

View file

@ -0,0 +1,259 @@
{
"lighting": "none",
"matrix": {
"rows": 8,
"cols": 6
},
"layouts": {
"keymap": [
[
{
"x": 3
},
"0,3",
{
"x": 7.5
},
"4,2"
],
[
{
"y": -0.75,
"x": 2
},
"0,2",
{
"x": 1
},
"0,4",
{
"x": 5.5
},
"4,1",
{
"x": 1
},
"4,3"
],
[
{
"y": -0.9,
"x": 5
},
"0,5",
{
"x": 3.5
},
"4,0"
],
[
{
"y": -0.3500000000000001
},
"0,0",
"0,1",
{
"x": 1
},
"1,3",
{
"x": 7.5
},
"5,2",
{
"x": 1
},
"4,4",
"4,5"
],
[
{
"y": -0.75,
"x": 2
},
"1,2",
{
"x": 1
},
"1,4",
{
"x": 5.5
},
"5,1",
{
"x": 1
},
"5,3"
],
[
{
"y": -0.8999999999999999,
"x": 5
},
"1,5",
{
"x": 3.5
},
"5,0"
],
[
{
"y": -0.3500000000000001
},
"1,0",
"1,1",
{
"x": 1
},
"2,3",
{
"x": 7.5
},
"6,2",
{
"x": 1
},
"5,4",
"5,5"
],
[
{
"y": -0.75,
"x": 2
},
"2,2",
{
"x": 1
},
"2,4",
{
"x": 5.5
},
"6,1",
{
"x": 1
},
"6,3"
],
[
{
"y": -0.8999999999999999,
"x": 5
},
"2,5",
{
"x": 3.5
},
"6,0"
],
[
{
"y": -0.3500000000000001
},
"2,0",
"2,1",
{
"x": 11.5
},
"6,4",
"6,5"
],
[
{
"r": 5,
"rx": 5,
"ry": 3.5,
"x": 0.09999999999999964
},
"3,1"
],
[
{
"rx": 10.75
},
"7,2"
],
[
{
"r": 15,
"rx": 6.5,
"y": 0.20000000000000018,
"x": -0.04999999999999982
},
"3,2"
],
[
{
"r": -15,
"rx": 8.25,
"y": 0.3900000000000001,
"x": -0.15000000000000036
},
"7,0"
],
[
{
"r": -5,
"rx": 3.6,
"y": 0.10000000000000009,
"x": 0.20000000000000018
},
"3,0"
],
[
{
"rx": 9.5,
"y": 0.10000000000000009,
"x": -0.05000000000000071
},
"7,1"
]
],
"LAYOUT_split_3x6_3": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0.25 },
{ "matrix": [0, 1], "x": 1, "y": 0.25 },
{ "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": [4, 0], "x": 8, "y": 0.25 },
{ "matrix": [4, 1], "x": 9, "y": 0.125 },
{ "matrix": [4, 2], "x": 10, "y": 0 },
{ "matrix": [4, 3], "x": 11, "y": 0.125 },
{ "matrix": [4, 4], "x": 12, "y": 0.25 },
{ "matrix": [4, 5], "x": 13, "y": 0.25 },
{ "matrix": [1, 0], "x": 0, "y": 1.25 },
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
{ "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": [5, 0], "x": 8, "y": 1.25 },
{ "matrix": [5, 1], "x": 9, "y": 1.125 },
{ "matrix": [5, 2], "x": 10, "y": 1 },
{ "matrix": [5, 3], "x": 11, "y": 1.125 },
{ "matrix": [5, 4], "x": 12, "y": 1.25 },
{ "matrix": [5, 5], "x": 13, "y": 1.25 },
{ "matrix": [2, 0], "x": 0, "y": 2.25 },
{ "matrix": [2, 1], "x": 1, "y": 2.25 },
{ "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": [6, 0], "x": 8, "y": 2.25 },
{ "matrix": [6, 1], "x": 9, "y": 2.125 },
{ "matrix": [6, 2], "x": 10, "y": 2 },
{ "matrix": [6, 3], "x": 11, "y": 2.125 },
{ "matrix": [6, 4], "x": 12, "y": 2.25 },
{ "matrix": [6, 5], "x": 13, "y": 2.25 },
{ "matrix": [3, 0], "x": 3.5, "y": 3.25 },
{ "matrix": [3, 1], "x": 4.5, "y": 3.5 },
{ "matrix": [3, 2], "x": 5.5, "y": 3.75 },
{ "matrix": [7, 0], "x": 7.5, "y": 3.75 },
{ "matrix": [7, 1], "x": 8.5, "y": 3.5 },
{ "matrix": [7, 2], "x": 9.5, "y": 3.25 }
]
}
}
}

View file

@ -0,0 +1,9 @@
// Copyright 2022 Diego Palacios (@diepala)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef STM32_SERIAL_USE_USART1
#define STM32_SERIAL_USE_USART1 TRUE

View file

@ -0,0 +1,28 @@
# HLB CantorMX F411
Project based on original Cantor keyboard (42 key diodeless split keyboard), designed with simplicity in mind. It is inspired on the popular [corne](https://github.com/foostan/crkbd), [ferris](https://github.com/pierrechevalier83/ferris) and [sweep](https://github.com/davidphilipbarr/Sweep) keyboards, aiming to provide a more ergonomic (stronger column stagger) corne-like layout with a simple, easy to assemble and cheap design.
We upgraded blackpill version to STM32F411 8Mhz therefore original firmware maintained by [Diego Palacios](https://github.com/diepala) must be adapted to this hardware.
A case design has beed made to get a full 3DP Cantor project (see below)
* Keyboard Maintainer: [HLB H3lli0n](https://github.com/H3lli0n)
* Hardware Supported: Blackpill STM32F411 8Mhz only
* Hardware Availability: https://github.com/H3lli0n/CantorMx-3DP-case
This firmware is made for EE_HANDS split, to build and flash your firmwares (left and right) please follow the examples below with hand in DFU mode:
Make+flash example for this split (after setting up your build environment):
make hlb/cantor:vial::dfu-util-split-left
make hlb/cantor:vial::dfu-util-split-right
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 thumb key on the left and plug in the keyboard. For the right side, hold the thumb key on the right and plug the keyboard.
* **Physical reset button**:
* Press and hold the BOOT0 button.
* Press and release the NRST button.
* Release the BOOT0 button.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View file

@ -0,0 +1,492 @@
{
"manufacturer": "HLB",
"keyboard_name": "hyperbolas",
"maintainer": "H3lli0n",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": [
"GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23", "GP24",
"GP12", "GP6", "GP5", "GP4", "GP3", "GP25", "GP2", "GP1", "GP0"
],
"rows": ["GP11", "GP10", "GP9", "GP8", "GP7", "GP15"]
},
"processor": "RP2040",
"usb": {
"device_version": "1.0.0",
"pid": "0x0007",
"vid": "0x3025"
},
"layouts": {
"LAYOUT_tkl_ansi": {
"layout": [
{"matrix": [0,0], "label":"Esc", "x":0, "y":0},
{"matrix": [0,2], "label":"F1", "x":2, "y":0},
{"matrix": [0,3], "label":"F2", "x":3, "y":0},
{"matrix": [0,4], "label":"F3", "x":4, "y":0},
{"matrix": [0,5], "label":"F4", "x":5, "y":0},
{"matrix": [0,6], "label":"F5", "x":6.5, "y":0},
{"matrix": [0,7], "label":"F6", "x":7.8, "y":0},
{"matrix": [0,8], "label":"F7", "x":8.5, "y":0},
{"matrix": [0,9], "label":"F8", "x":9.5, "y":0},
{"matrix": [0,10], "label":"F9", "x":11, "y":0},
{"matrix": [0,11], "label":"F10", "x":12, "y":0},
{"matrix": [0,12], "label":"F11", "x":13, "y":0},
{"matrix": [0,13], "label":"F12", "x":14, "y":0},
{"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0},
{"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0},
{"matrix": [0,17], "label":"Pause", "x":17.25, "y":0},
{"matrix": [1,0], "label":"~", "x":0, "y":1.25},
{"matrix": [1,1], "label":"!", "x":1, "y":1.25},
{"matrix": [1,2], "label":"@", "x":2, "y":1.25},
{"matrix": [1,3], "label":"#", "x":3, "y":1.25},
{"matrix": [1,4], "label":"$", "x":4, "y":1.25},
{"matrix": [1,5], "label":"%", "x":5, "y":1.25},
{"matrix": [1,6], "label":"^", "x":6, "y":1.25},
{"matrix": [1,7], "label":"&", "x":7, "y":1.25},
{"matrix": [1,8], "label":"*", "x":8, "y":1.25},
{"matrix": [1,9], "label":"(", "x":9, "y":1.25},
{"matrix": [1,10], "label":")", "x":10, "y":1.25},
{"matrix": [1,11], "label":"_", "x":11, "y":1.25},
{"matrix": [1,12], "label":"+", "x":12, "y":1.25},
{"matrix": [1,14], "label":"Backspace", "x":13, "y":2.25},
{"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25},
{"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25},
{"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25},
{"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5},
{"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25},
{"matrix": [2,2], "label":"W", "x":2.5, "y":2.25},
{"matrix": [2,3], "label":"E", "x":3.5, "y":2.25},
{"matrix": [2,4], "label":"R", "x":4.5, "y":2.25},
{"matrix": [2,5], "label":"T", "x":5.5, "y":2.25},
{"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25},
{"matrix": [2,7], "label":"U", "x":7.5, "y":2.25},
{"matrix": [2,8], "label":"I", "x":8.5, "y":2.25},
{"matrix": [2,9], "label":"O", "x":9.5, "y":2.25},
{"matrix": [2,10], "label":"P", "x":10.5, "y":2.25},
{"matrix": [2,11], "label":"{", "x":11.5, "y":2.25},
{"matrix": [2,12], "label":"}", "x":12.5, "y":2.25},
{"matrix": [2,13], "label":"|", "x":13.5, "y":2.25, "w":1.5},
{"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25},
{"matrix": [2,16], "label":"End", "x":16.25, "y":2.25},
{"matrix": [2,17], "label":"PgDown", "x":17.25, "y":2.25},
{"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
{"matrix": [3,1], "label":"A", "x":1.75, "y":3.25},
{"matrix": [3,2], "label":"S", "x":2.75, "y":3.25},
{"matrix": [3,3], "label":"D", "x":3.75, "y":3.25},
{"matrix": [3,4], "label":"F", "x":4.75, "y":3.25},
{"matrix": [3,5], "label":"G", "x":5.75, "y":3.25},
{"matrix": [3,6], "label":"H", "x":6.75, "y":3.25},
{"matrix": [3,7], "label":"J", "x":7.75, "y":3.25},
{"matrix": [3,8], "label":"K", "x":8.75, "y":3.25},
{"matrix": [3,9], "label":"L", "x":9.75, "y":3.25},
{"matrix": [3,10], "label":":", "x":10.75, "y":3.25},
{"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25},
{"matrix": [3,13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25},
{"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":2.25},
{"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25},
{"matrix": [4,3], "label":"X", "x":3.25, "y":4.25},
{"matrix": [4,4], "label":"C", "x":4.25, "y":4.25},
{"matrix": [4,5], "label":"V", "x":5.25, "y":4.25},
{"matrix": [4,6], "label":"B", "x":6.25, "y":4.25},
{"matrix": [4,7], "label":"N", "x":7.25, "y":4.25},
{"matrix": [4,8], "label":"M", "x":8.25, "y":4.25},
{"matrix": [4,9], "label":"<", "x":9.25, "y":4.25},
{"matrix": [4,10], "label":">", "x":10.25, "y":4.25},
{"matrix": [4,11], "label":"?", "x":11.25, "y":4.25},
{"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75},
{"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25},
{"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25},
{"matrix": [5,1], "label":"Win", "x":1.25, "y":5.25, "w":1.25},
{"matrix": [5,2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25},
{"matrix": [5,6], "label":"Space", "x":3.75, "y":5.25, "w":6.25},
{"matrix": [5,10], "label":"Alt", "x":10, "y":5.25, "w":1.25},
{"matrix": [5,11], "label":"Alt", "x":11.25, "y":5.25, "w":1.25},
{"matrix": [5,12], "label":"Win", "x":12.5, "y":5.25, "w":1.25},
{"matrix": [5,13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25},
{"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25},
{"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25},
{"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25}
]
},
"LAYOUT_tkl_ansi_tsangan": {
"layout": [
{"matrix": [0,0], "label":"Esc", "x":0, "y":0},
{"matrix": [0,2], "label":"F1", "x":2, "y":0},
{"matrix": [0,3], "label":"F2", "x":3, "y":0},
{"matrix": [0,4], "label":"F3", "x":4, "y":0},
{"matrix": [0,5], "label":"F4", "x":5, "y":0},
{"matrix": [0,6], "label":"F5", "x":6.5, "y":0},
{"matrix": [0,7], "label":"F6", "x":7.8, "y":0},
{"matrix": [0,8], "label":"F7", "x":8.5, "y":0},
{"matrix": [0,9], "label":"F8", "x":9.5, "y":0},
{"matrix": [0,10], "label":"F9", "x":11, "y":0},
{"matrix": [0,11], "label":"F10", "x":12, "y":0},
{"matrix": [0,12], "label":"F11", "x":13, "y":0},
{"matrix": [0,13], "label":"F12", "x":14, "y":0},
{"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0},
{"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0},
{"matrix": [0,17], "label":"Pause", "x":17.25, "y":0},
{"matrix": [1,0], "label":"~", "x":0, "y":1.25},
{"matrix": [1,1], "label":"!", "x":1, "y":1.25},
{"matrix": [1,2], "label":"@", "x":2, "y":1.25},
{"matrix": [1,3], "label":"#", "x":3, "y":1.25},
{"matrix": [1,4], "label":"$", "x":4, "y":1.25},
{"matrix": [1,5], "label":"%", "x":5, "y":1.25},
{"matrix": [1,6], "label":"^", "x":6, "y":1.25},
{"matrix": [1,7], "label":"&", "x":7, "y":1.25},
{"matrix": [1,8], "label":"*", "x":8, "y":1.25},
{"matrix": [1,9], "label":"(", "x":9, "y":1.25},
{"matrix": [1,10], "label":")", "x":10, "y":1.25},
{"matrix": [1,11], "label":"_", "x":11, "y":1.25},
{"matrix": [1,12], "label":"+", "x":12, "y":1.25},
{"matrix": [1,14], "label":"Backspace", "x":13, "y":2.25},
{"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25},
{"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25},
{"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25},
{"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5},
{"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25},
{"matrix": [2,2], "label":"W", "x":2.5, "y":2.25},
{"matrix": [2,3], "label":"E", "x":3.5, "y":2.25},
{"matrix": [2,4], "label":"R", "x":4.5, "y":2.25},
{"matrix": [2,5], "label":"T", "x":5.5, "y":2.25},
{"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25},
{"matrix": [2,7], "label":"U", "x":7.5, "y":2.25},
{"matrix": [2,8], "label":"I", "x":8.5, "y":2.25},
{"matrix": [2,9], "label":"O", "x":9.5, "y":2.25},
{"matrix": [2,10], "label":"P", "x":10.5, "y":2.25},
{"matrix": [2,11], "label":"{", "x":11.5, "y":2.25},
{"matrix": [2,12], "label":"}", "x":12.5, "y":2.25},
{"matrix": [2,13], "label":"|", "x":13.5, "y":2.25, "w":1.5},
{"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25},
{"matrix": [2,16], "label":"End", "x":16.25, "y":2.25},
{"matrix": [2,17], "label":"PgDown", "x":17.25, "y":2.25},
{"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
{"matrix": [3,1], "label":"A", "x":1.75, "y":3.25},
{"matrix": [3,2], "label":"S", "x":2.75, "y":3.25},
{"matrix": [3,3], "label":"D", "x":3.75, "y":3.25},
{"matrix": [3,4], "label":"F", "x":4.75, "y":3.25},
{"matrix": [3,5], "label":"G", "x":5.75, "y":3.25},
{"matrix": [3,6], "label":"H", "x":6.75, "y":3.25},
{"matrix": [3,7], "label":"J", "x":7.75, "y":3.25},
{"matrix": [3,8], "label":"K", "x":8.75, "y":3.25},
{"matrix": [3,9], "label":"L", "x":9.75, "y":3.25},
{"matrix": [3,10], "label":":", "x":10.75, "y":3.25},
{"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25},
{"matrix": [3,13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25},
{"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":2.25},
{"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25},
{"matrix": [4,3], "label":"X", "x":3.25, "y":4.25},
{"matrix": [4,4], "label":"C", "x":4.25, "y":4.25},
{"matrix": [4,5], "label":"V", "x":5.25, "y":4.25},
{"matrix": [4,6], "label":"B", "x":6.25, "y":4.25},
{"matrix": [4,7], "label":"N", "x":7.25, "y":4.25},
{"matrix": [4,8], "label":"M", "x":8.25, "y":4.25},
{"matrix": [4,9], "label":"<", "x":9.25, "y":4.25},
{"matrix": [4,10], "label":">", "x":10.25, "y":4.25},
{"matrix": [4,11], "label":"?", "x":11.25, "y":4.25},
{"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75},
{"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25},
{"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.5},
{"matrix": [5,1], "label":"Win", "x":1.5, "y":5.25, "w":1.5},
{"matrix": [5,2], "label":"Alt", "x":3, "y":5.25, "w":1.5},
{"matrix": [5,6], "label":"Space", "x":4.5, "y":5.25, "w":7},
{"matrix": [5,11], "label":"Alt", "x":11.5, "y":5.25, "w":1.5},
{"matrix": [5,12], "label":"Win", "x":13, "y":5.25, "w":1.5},
{"matrix": [5,13], "label":"Ctrl", "x":14.5, "y":5.25, "w":1.5},
{"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25},
{"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25},
{"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25}
]
},
"LAYOUT_tkl_iso": {
"layout": [
{"matrix": [0,0], "label":"Esc", "x":0, "y":0},
{"matrix": [0,2], "label":"F1", "x":2, "y":0},
{"matrix": [0,3], "label":"F2", "x":3, "y":0},
{"matrix": [0,4], "label":"F3", "x":4, "y":0},
{"matrix": [0,5], "label":"F4", "x":5, "y":0},
{"matrix": [0,6], "label":"F5", "x":6.5, "y":0},
{"matrix": [0,7], "label":"F6", "x":7.8, "y":0},
{"matrix": [0,8], "label":"F7", "x":8.5, "y":0},
{"matrix": [0,9], "label":"F8", "x":9.5, "y":0},
{"matrix": [0,10], "label":"F9", "x":11, "y":0},
{"matrix": [0,11], "label":"F10", "x":12, "y":0},
{"matrix": [0,12], "label":"F11", "x":13, "y":0},
{"matrix": [0,13], "label":"F12", "x":14, "y":0},
{"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0},
{"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0},
{"matrix": [0,17], "label":"Pause", "x":17.25, "y":0},
{"matrix": [1,0], "label":"~", "x":0, "y":1.25},
{"matrix": [1,1], "label":"!", "x":1, "y":1.25},
{"matrix": [1,2], "label":"@", "x":2, "y":1.25},
{"matrix": [1,3], "label":"#", "x":3, "y":1.25},
{"matrix": [1,4], "label":"$", "x":4, "y":1.25},
{"matrix": [1,5], "label":"%", "x":5, "y":1.25},
{"matrix": [1,6], "label":"^", "x":6, "y":1.25},
{"matrix": [1,7], "label":"&", "x":7, "y":1.25},
{"matrix": [1,8], "label":"*", "x":8, "y":1.25},
{"matrix": [1,9], "label":"(", "x":9, "y":1.25},
{"matrix": [1,10], "label":")", "x":10, "y":1.25},
{"matrix": [1,11], "label":"_", "x":11, "y":1.25},
{"matrix": [1,12], "label":"+", "x":12, "y":1.25},
{"matrix": [1,14], "label":"Backspace", "x":13, "y":2.25},
{"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25},
{"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25},
{"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25},
{"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5},
{"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25},
{"matrix": [2,2], "label":"W", "x":2.5, "y":2.25},
{"matrix": [2,3], "label":"E", "x":3.5, "y":2.25},
{"matrix": [2,4], "label":"R", "x":4.5, "y":2.25},
{"matrix": [2,5], "label":"T", "x":5.5, "y":2.25},
{"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25},
{"matrix": [2,7], "label":"U", "x":7.5, "y":2.25},
{"matrix": [2,8], "label":"I", "x":8.5, "y":2.25},
{"matrix": [2,9], "label":"O", "x":9.5, "y":2.25},
{"matrix": [2,10], "label":"P", "x":10.5, "y":2.25},
{"matrix": [2,11], "label":"{", "x":11.5, "y":2.25},
{"matrix": [2,12], "label":"}", "x":12.5, "y":2.25},
{"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25},
{"matrix": [2,16], "label":"End", "x":16.25, "y":2.25},
{"matrix": [2,17], "label":"PgDown", "x":17.25, "y":2.25},
{"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
{"matrix": [3,1], "label":"A", "x":1.75, "y":3.25},
{"matrix": [3,2], "label":"S", "x":2.75, "y":3.25},
{"matrix": [3,3], "label":"D", "x":3.75, "y":3.25},
{"matrix": [3,4], "label":"F", "x":4.75, "y":3.25},
{"matrix": [3,5], "label":"G", "x":5.75, "y":3.25},
{"matrix": [3,6], "label":"H", "x":6.75, "y":3.25},
{"matrix": [3,7], "label":"J", "x":7.75, "y":3.25},
{"matrix": [3,8], "label":"K", "x":8.75, "y":3.25},
{"matrix": [3,9], "label":"L", "x":9.75, "y":3.25},
{"matrix": [3,10], "label":":", "x":10.75, "y":3.25},
{"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25},
{"matrix": [3,12], "label":"|", "x":12.75, "y":3.25},
{"matrix": [3,13], "label":"Enter", "x":13.75, "y":3.25, "w": 1.25, "h": 2},
{"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":1.25},
{"matrix": [4,1], "label":"<>", "x":1.25, "y":4.25},
{"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25},
{"matrix": [4,3], "label":"X", "x":3.25, "y":4.25},
{"matrix": [4,4], "label":"C", "x":4.25, "y":4.25},
{"matrix": [4,5], "label":"V", "x":5.25, "y":4.25},
{"matrix": [4,6], "label":"B", "x":6.25, "y":4.25},
{"matrix": [4,7], "label":"N", "x":7.25, "y":4.25},
{"matrix": [4,8], "label":"M", "x":8.25, "y":4.25},
{"matrix": [4,9], "label":"<", "x":9.25, "y":4.25},
{"matrix": [4,10], "label":">", "x":10.25, "y":4.25},
{"matrix": [4,11], "label":"?", "x":11.25, "y":4.25},
{"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75},
{"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25},
{"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25},
{"matrix": [5,1], "label":"Win", "x":1.25, "y":5.25, "w":1.25},
{"matrix": [5,2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25},
{"matrix": [5,6], "label":"Space", "x":3.75, "y":5.25, "w":6.25},
{"matrix": [5,10], "label":"Alt", "x":10, "y":5.25, "w":1.25},
{"matrix": [5,11], "label":"Alt", "x":11.25, "y":5.25, "w":1.25},
{"matrix": [5,12], "label":"Win", "x":12.5, "y":5.25, "w":1.25},
{"matrix": [5,13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25},
{"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25},
{"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25},
{"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25}
]
},
"LAYOUT_tkl_iso_tsangan": {
"layout": [
{"matrix": [0,0], "label":"Esc", "x":0, "y":0},
{"matrix": [0,2], "label":"F1", "x":2, "y":0},
{"matrix": [0,3], "label":"F2", "x":3, "y":0},
{"matrix": [0,4], "label":"F3", "x":4, "y":0},
{"matrix": [0,5], "label":"F4", "x":5, "y":0},
{"matrix": [0,6], "label":"F5", "x":6.5, "y":0},
{"matrix": [0,7], "label":"F6", "x":7.8, "y":0},
{"matrix": [0,8], "label":"F7", "x":8.5, "y":0},
{"matrix": [0,9], "label":"F8", "x":9.5, "y":0},
{"matrix": [0,10], "label":"F9", "x":11, "y":0},
{"matrix": [0,11], "label":"F10", "x":12, "y":0},
{"matrix": [0,12], "label":"F11", "x":13, "y":0},
{"matrix": [0,13], "label":"F12", "x":14, "y":0},
{"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0},
{"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0},
{"matrix": [0,17], "label":"Pause", "x":17.25, "y":0},
{"matrix": [1,0], "label":"~", "x":0, "y":1.25},
{"matrix": [1,1], "label":"!", "x":1, "y":1.25},
{"matrix": [1,2], "label":"@", "x":2, "y":1.25},
{"matrix": [1,3], "label":"#", "x":3, "y":1.25},
{"matrix": [1,4], "label":"$", "x":4, "y":1.25},
{"matrix": [1,5], "label":"%", "x":5, "y":1.25},
{"matrix": [1,6], "label":"^", "x":6, "y":1.25},
{"matrix": [1,7], "label":"&", "x":7, "y":1.25},
{"matrix": [1,8], "label":"*", "x":8, "y":1.25},
{"matrix": [1,9], "label":"(", "x":9, "y":1.25},
{"matrix": [1,10], "label":")", "x":10, "y":1.25},
{"matrix": [1,11], "label":"_", "x":11, "y":1.25},
{"matrix": [1,12], "label":"+", "x":12, "y":1.25},
{"matrix": [1,14], "label":"Backspace", "x":13, "y":2.25},
{"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25},
{"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25},
{"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25},
{"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5},
{"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25},
{"matrix": [2,2], "label":"W", "x":2.5, "y":2.25},
{"matrix": [2,3], "label":"E", "x":3.5, "y":2.25},
{"matrix": [2,4], "label":"R", "x":4.5, "y":2.25},
{"matrix": [2,5], "label":"T", "x":5.5, "y":2.25},
{"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25},
{"matrix": [2,7], "label":"U", "x":7.5, "y":2.25},
{"matrix": [2,8], "label":"I", "x":8.5, "y":2.25},
{"matrix": [2,9], "label":"O", "x":9.5, "y":2.25},
{"matrix": [2,10], "label":"P", "x":10.5, "y":2.25},
{"matrix": [2,11], "label":"{", "x":11.5, "y":2.25},
{"matrix": [2,12], "label":"}", "x":12.5, "y":2.25},
{"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25},
{"matrix": [2,16], "label":"End", "x":16.25, "y":2.25},
{"matrix": [2,17], "label":"PgDown", "x":17.25, "y":2.25},
{"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
{"matrix": [3,1], "label":"A", "x":1.75, "y":3.25},
{"matrix": [3,2], "label":"S", "x":2.75, "y":3.25},
{"matrix": [3,3], "label":"D", "x":3.75, "y":3.25},
{"matrix": [3,4], "label":"F", "x":4.75, "y":3.25},
{"matrix": [3,5], "label":"G", "x":5.75, "y":3.25},
{"matrix": [3,6], "label":"H", "x":6.75, "y":3.25},
{"matrix": [3,7], "label":"J", "x":7.75, "y":3.25},
{"matrix": [3,8], "label":"K", "x":8.75, "y":3.25},
{"matrix": [3,9], "label":"L", "x":9.75, "y":3.25},
{"matrix": [3,10], "label":":", "x":10.75, "y":3.25},
{"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25},
{"matrix": [3,12], "label":"|", "x":12.75, "y":3.25},
{"matrix": [3,13], "label":"Enter", "x":13.75, "y":3.25, "w": 1.25, "h": 2},
{"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":1.25},
{"matrix": [4,1], "label":"<>", "x":1.25, "y":4.25},
{"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25},
{"matrix": [4,3], "label":"X", "x":3.25, "y":4.25},
{"matrix": [4,4], "label":"C", "x":4.25, "y":4.25},
{"matrix": [4,5], "label":"V", "x":5.25, "y":4.25},
{"matrix": [4,6], "label":"B", "x":6.25, "y":4.25},
{"matrix": [4,7], "label":"N", "x":7.25, "y":4.25},
{"matrix": [4,8], "label":"M", "x":8.25, "y":4.25},
{"matrix": [4,9], "label":"<", "x":9.25, "y":4.25},
{"matrix": [4,10], "label":">", "x":10.25, "y":4.25},
{"matrix": [4,11], "label":"?", "x":11.25, "y":4.25},
{"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75},
{"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25},
{"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.5},
{"matrix": [5,1], "label":"Win", "x":1.5, "y":5.25, "w":1.5},
{"matrix": [5,2], "label":"Alt", "x":3, "y":5.25, "w":1.5},
{"matrix": [5,6], "label":"Space", "x":4.5, "y":5.25, "w":7},
{"matrix": [5,11], "label":"Alt", "x":11.5, "y":5.25, "w":1.5},
{"matrix": [5,12], "label":"Win", "x":13, "y":5.25, "w":1.5},
{"matrix": [5,13], "label":"Ctrl", "x":14.5, "y":5.25, "w":1.5},
{"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25},
{"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25},
{"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25}
]
},
"LAYOUT_all": {
"layout": [
{"matrix": [0,0], "label":"Esc", "x":0, "y":0},
{"matrix": [0,2], "label":"F1", "x":2, "y":0},
{"matrix": [0,3], "label":"F2", "x":3, "y":0},
{"matrix": [0,4], "label":"F3", "x":4, "y":0},
{"matrix": [0,5], "label":"F4", "x":5, "y":0},
{"matrix": [0,6], "label":"F5", "x":6.5, "y":0},
{"matrix": [0,7], "label":"F6", "x":7.8, "y":0},
{"matrix": [0,8], "label":"F7", "x":8.5, "y":0},
{"matrix": [0,9], "label":"F8", "x":9.5, "y":0},
{"matrix": [0,10], "label":"F9", "x":11, "y":0},
{"matrix": [0,11], "label":"F10", "x":12, "y":0},
{"matrix": [0,12], "label":"F11", "x":13, "y":0},
{"matrix": [0,13], "label":"F12", "x":14, "y":0},
{"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0},
{"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0},
{"matrix": [0,17], "label":"Pause", "x":17.25, "y":0},
{"matrix": [1,0], "label":"~", "x":0, "y":1.25},
{"matrix": [1,1], "label":"!", "x":1, "y":1.25},
{"matrix": [1,2], "label":"@", "x":2, "y":1.25},
{"matrix": [1,3], "label":"#", "x":3, "y":1.25},
{"matrix": [1,4], "label":"$", "x":4, "y":1.25},
{"matrix": [1,5], "label":"%", "x":5, "y":1.25},
{"matrix": [1,6], "label":"^", "x":6, "y":1.25},
{"matrix": [1,7], "label":"&", "x":7, "y":1.25},
{"matrix": [1,8], "label":"*", "x":8, "y":1.25},
{"matrix": [1,9], "label":"(", "x":9, "y":1.25},
{"matrix": [1,10], "label":")", "x":10, "y":1.25},
{"matrix": [1,11], "label":"_", "x":11, "y":1.25},
{"matrix": [1,12], "label":"+", "x":12, "y":1.25},
{"matrix": [1,13], "label":"1U Split Bksp", "x":13, "y":1.25},
{"matrix": [1,14], "label":"Backspace", "x":14, "y":1.25},
{"matrix": [1,15], "label":"/", "x":15.25, "y":1.25},
{"matrix": [1,16], "label":"*", "x":16.25, "y":1.25},
{"matrix": [1,17], "label":"-", "x":17.25, "y":1.25},
{"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5},
{"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25},
{"matrix": [2,2], "label":"W", "x":2.5, "y":2.25},
{"matrix": [2,3], "label":"E", "x":3.5, "y":2.25},
{"matrix": [2,4], "label":"R", "x":4.5, "y":2.25},
{"matrix": [2,5], "label":"T", "x":5.5, "y":2.25},
{"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25},
{"matrix": [2,7], "label":"U", "x":7.5, "y":2.25},
{"matrix": [2,8], "label":"I", "x":8.5, "y":2.25},
{"matrix": [2,9], "label":"O", "x":9.5, "y":2.25},
{"matrix": [2,10], "label":"P", "x":10.5, "y":2.25},
{"matrix": [2,11], "label":"{", "x":11.5, "y":2.25},
{"matrix": [2,12], "label":"}", "x":12.5, "y":2.25},
{"matrix": [2,13], "label":"|", "x":13.5, "y":2.25, "w":1.5},
{"matrix": [2,15], "label":"7", "x":15.25, "y":2.25},
{"matrix": [2,16], "label":"8", "x":16.25, "y":2.25},
{"matrix": [2,17], "label":"9", "x":17.25, "y":2.25},
{"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
{"matrix": [3,1], "label":"A", "x":1.75, "y":3.25},
{"matrix": [3,2], "label":"S", "x":2.75, "y":3.25},
{"matrix": [3,3], "label":"D", "x":3.75, "y":3.25},
{"matrix": [3,4], "label":"F", "x":4.75, "y":3.25},
{"matrix": [3,5], "label":"G", "x":5.75, "y":3.25},
{"matrix": [3,6], "label":"H", "x":6.75, "y":3.25},
{"matrix": [3,7], "label":"J", "x":7.75, "y":3.25},
{"matrix": [3,8], "label":"K", "x":8.75, "y":3.25},
{"matrix": [3,9], "label":"L", "x":9.75, "y":3.25},
{"matrix": [3,10], "label":":", "x":10.75, "y":3.25},
{"matrix": [3,11], "label":"\"", "x":12.75, "y":3.25},
{"matrix": [3,12], "label":"|", "x":13.75, "y":3.25},
{"matrix": [3,13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25},
{"matrix": [3,15], "label":"4", "x":15.25, "y":3.25},
{"matrix": [3,16], "label":"5", "x":16.25, "y":3.25},
{"matrix": [3,17], "label":"6", "x":17.25, "y":3.25},
{"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":1.25},
{"matrix": [4,1], "label":"<>", "x":1.25, "y":4.25},
{"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25},
{"matrix": [4,3], "label":"X", "x":3.25, "y":4.25},
{"matrix": [4,4], "label":"C", "x":4.25, "y":4.25},
{"matrix": [4,5], "label":"V", "x":5.25, "y":4.25},
{"matrix": [4,6], "label":"B", "x":6.25, "y":4.25},
{"matrix": [4,7], "label":"N", "x":7.25, "y":4.25},
{"matrix": [4,8], "label":"M", "x":8.25, "y":4.25},
{"matrix": [4,9], "label":"<", "x":9.25, "y":4.25},
{"matrix": [4,10], "label":">", "x":10.25, "y":4.25},
{"matrix": [4,11], "label":"?", "x":11.25, "y":4.25},
{"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":1.75},
{"matrix": [4,13], "label":"Fn", "x":14, "y":4.25},
{"matrix": [4,15], "label":"1", "x":15.25, "y":4.25},
{"matrix": [4,16], "label":"2", "x":16.25, "y":4.25},
{"matrix": [4,17], "label":"3", "x":17.25, "y":4.25},
{"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25},
{"matrix": [5,1], "label":"Win", "x":1.25, "y":5.25, "w":1.25},
{"matrix": [5,2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25},
{"matrix": [5,6], "label":"Space", "x":3.75, "y":5.25, "w":6.25},
{"matrix": [5,10], "label":"Alt", "x":10, "y":5.25, "w":1.25},
{"matrix": [5,11], "label":"Alt", "x":11.25, "y":5.25, "w":1.25},
{"matrix": [5,12], "label":"Win", "x":12.5, "y":5.25, "w":1.25},
{"matrix": [5,13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25},
{"matrix": [5,15], "label":"0", "x":15.25, "y":5.25},
{"matrix": [5,16], "label":"0", "x":16.25, "y":5.25},
{"matrix": [5,17], "label":".", "x":17.25, "y":5.25}
]
}
}
}

View file

@ -0,0 +1,41 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
* │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│
* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │/ │ * │ - │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │ 7 │ 8 │ 9 │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ├───┼───┼───┤
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ | 1 │ 2 │ 3 |
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ├───┼───┼───┤
* │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ 0 │ 0 │ . │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
*/
[0] = LAYOUT_all(
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_BSPC, KC_PSLS, KC_PAST, KC_PMNS,
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_P7, KC_P8, KC_P9,
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_P4, KC_P5, KC_P6,
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_P1, KC_P2, KC_P3,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_P0, KC_P0, KC_PDOT
),
[1] = 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,
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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RIGHT
)
};

View file

@ -0,0 +1,13 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xBE, 0xF5, 0xDB, 0xD4, 0xA3, 0x2A, 0xAC, 0xDE}
#define VIAL_UNLOCK_COMBO_ROWS { 2, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
#define VIAL_TAP_DANCE_ENTRIES 10
#define VIAL_COMBO_ENTRIES 15
#define VIAL_KEY_OVERRIDE_ENTRIES 10

View file

@ -0,0 +1,41 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
* │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│
* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │/ │ * │ - │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │ 7 │ 8 │ 9 │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ├───┼───┼───┤
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ | 1 │ 2 │ 3 |
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ├───┼───┼───┤
* │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ 0 │ 0 │ . │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
*/
[0] = LAYOUT_all(
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_BSPC, KC_PSLS, KC_PAST, KC_PMNS,
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_P7, KC_P8, KC_P9,
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_P4, KC_P5, KC_P6,
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_P1, KC_P2, KC_P3,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_P0, KC_P0, KC_PDOT
),
[1] = 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,
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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RIGHT
)
};

View file

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

View file

@ -0,0 +1,296 @@
{
"matrix": {
"rows": 6,
"cols": 18
},
"layouts": {
"labels": [
"Split Backspace",
"ISO Enter",
"Split Left Shift",
"Split Right Shift",
"Numpad 00",
["Bottom Row", "7U", "6.25U", "WKL"]
],
"keymap": [
[
{
"x": 2.5
},
"0,0",
{
"x": 1
},
"0,2",
"0,3",
"0,4",
"0,5",
{
"x": 0.5
},
"0,6",
"0,7",
"0,8",
"0,9",
{
"x": 0.5
},
"0,10",
"0,11",
"0,12",
"0,13",
{
"x": 0.25
},
"0,15",
"0,16",
"0,17"
],
[
{
"y": 0.25,
"x": 2.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": 2
},
"1,14\n\n\n0,0",
{
"x": 0.25
},
"1,15",
"1,16",
"1,17",
{
"x": 0.25
},
"1,13\n\n\n0,1",
"1,14\n\n\n0,1"
],
[
{
"x": 2.5,
"w": 1.5
},
"2,0",
"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
},
"2,13\n\n\n1,0",
{
"x": 0.25
},
"2,15",
"2,16",
"2,17",
{
"x": 1.75,
"w": 1.25,
"h": 2,
"w2": 1.5,
"h2": 1,
"x2": -0.25
},
"3,13\n\n\n1,1"
],
[
{
"x": 2.5,
"w": 1.75
},
"3,0",
"3,1",
"3,2",
"3,3",
"3,4",
"3,5",
"3,6",
"3,7",
"3,8",
"3,9",
"3,10",
"3,11",
{
"w": 2.25
},
"3,13\n\n\n1,0",
{
"x": 0.25
},
"3,15",
"3,16",
"3,17",
{
"x": 0.75
},
"3,12\n\n\n1,1"
],
[
{
"w": 1.25
},
"4,0\n\n\n2,1",
"4,1\n\n\n2,1",
{
"x": 0.25,
"w": 2.25
},
"4,0\n\n\n2,0",
"4,2",
"4,3",
"4,4",
"4,5",
"4,6",
"4,7",
"4,8",
"4,9",
"4,10",
"4,11",
{
"w": 2.75
},
"4,12\n\n\n3,0",
{
"x": 0.25
},
"4,15",
"4,16",
"4,17",
{
"x": 0.25,
"w": 1.75
},
"4,12\n\n\n3,1",
"4,13\n\n\n3,1"
],
[
{
"x": 2.5,
"w": 1.5
},
"5,0\n\n\n5,0",
"5,1\n\n\n5,0",
{
"w": 1.5
},
"5,2\n\n\n5,0",
{
"w": 7
},
"5,6\n\n\n5,0",
{
"w": 1.5
},
"5,11\n\n\n5,0",
"5,12\n\n\n5,0",
{
"w": 1.5
},
"5,13\n\n\n5,0",
{
"x": 0.25
},
"5,15\n\n\n4,0",
"5,16\n\n\n4,0",
"5,17",
{
"x": 0.25,
"w": 2
},
"5,15\n\n\n4,1"
],
[
{
"y": 0.25,
"x": 2.5,
"w": 1.25
},
"5,0\n\n\n5,1",
{
"w": 1.25
},
"5,1\n\n\n5,1",
{
"w": 1.25
},
"5,2\n\n\n5,1",
{
"w": 6.25
},
"5,6\n\n\n5,1",
{
"w": 1.25
},
"5,10\n\n\n5,1",
{
"w": 1.25
},
"5,11\n\n\n5,1",
{
"w": 1.25
},
"5,12\n\n\n5,1",
{
"w": 1.25
},
"5,13\n\n\n5,1"
],
[
{
"x": 2.5,
"w": 1.5
},
"5,0\n\n\n5,2",
{
"d": true
},
"5,1\n\n\n5,2",
{
"w": 1.5
},
"5,2\n\n\n5,2",
{
"w": 7
},
"5,6\n\n\n5,2",
{
"w": 1.5
},
"5,11\n\n\n5,2",
{
"d": true
},
"5,12\n\n\n5,2",
{
"w": 1.5
},
"5,13\n\n\n5,2"
]
]
}
}

View file

@ -0,0 +1,26 @@
# Hyperbolas
![hyperbolas](https://mint-tomato-83b.notion.site/image/attachment%3A80a8f4b8-9c85-41f6-8fe5-5ce0d04d3ee3%3A4k_2025v6_Hyperbolas16.jpg?table=block&id=2303f3e3-ee19-8076-9b95-e92cb368dec3&spaceId=41a0dc7a-fdbe-4a75-8b60-e3a45cfce97f&width=2000&userId=&cache=v2)
TKL project from HLB with 8K pcb layout compatibility.
* Keyboard Maintainer: [H3lli0n](https://github.com/H3lli0n)
* Hardware Supported: HLB Hyperbolas
Make example for this keyboard (after setting up your build environment):
make hlb/hyperbolas/hyp-s:default
Flashing example for this keyboard:
make hlb/hyperbolas/hyp-s: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 down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard.
* **Physical reset button**: Press 2 times the physical reset button.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available.

View file

@ -0,0 +1,21 @@
/*
* 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 WS2812_EXTERNAL_PULLUP
#define RGBLIGHT_LAYERS
#define RGBLIGHT_LAYER_BLINK
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF

View file

@ -0,0 +1,320 @@
{
"manufacturer": "HLB",
"keyboard_name": "PoorKoi",
"maintainer": "H3lli0n",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "A2", "pin_b": "A1", "resolution": 2}
]
},
"features": {
"bootmagic": true,
"extrakey": true,
"key_lock": true,
"mousekey": true,
"encoder": false,
"nkro": true,
"rgblight": true
},
"matrix_pins": {
"cols": ["B2", "A5", "A4", "A3", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"],
"rows": ["B14", "A9", "B6", "B5", "B4"]
},
"processor": "STM32F072",
"rgblight": {
"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
},
"led_count": 17,
"driver": "ws2812"
},
"usb": {
"device_version": "0.0.5",
"pid": "0x0014",
"vid": "0x4444"
},
"ws2812": {
"pin": "A8"
},
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_hhkb": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}
]
},
"LAYOUT_60_iso_tsangan": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_all": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "Backspace", "matrix": [2, 13], "x": 14, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2},
{"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3},
{"label": "Space", "matrix": [4, 6], "x": 7, "y": 4},
{"label": "Space", "matrix": [4, 8], "x": 8, "y": 4, "w": 3},
{"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
]
}
}
}

View file

@ -0,0 +1,61 @@
/*
Copyright 2024 HLB
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
#include "poorkoi.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// main layer
[_BASE] = 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_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_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(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
// basic function layer
[_FN] = 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_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_TRNS, KC_TRNS,
KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_VOLD, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_MUTE, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS),
// rgb/media layer
[_MEDIA] = LAYOUT_all(
KC_TRNS, KC_MPRV, KC_MNXT, KC_MPLY, KC_VOLU, KC_VOLD, KC_MUTE, 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_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, RGB_VAI, RGB_VAD, 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),
// gaming layer
[_GAME] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
// mac
[_MAC] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_RALT, KC_TRNS)
};

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