1
0

Compare commits

...

60 Commits

Author SHA1 Message Date
David Allemang
05e0426609 rework mod-tap keys 2025-04-11 15:47:04 -04:00
David Allemang
25c65cbb7b swap eql, pipe. 2024-02-22 13:51:06 -05:00
David Allemang
71546949c3 clean up layers 2024-02-22 12:34:50 -05:00
David Allemang
8f9386395e clean up config and rules.mk 2024-02-22 09:36:07 -05:00
David Allemang
ba8348a81d update versor readme 2024-02-21 13:59:09 -05:00
David Allemang
fde5fef067 remove crkbd layout notes 2024-02-21 13:56:05 -05:00
David Allemang
dad5e774a7 update versor layout 2024-02-21 13:56:05 -05:00
David Allemang
8b77e4ea9f fix nkro and tapping term settigs 2024-02-20 17:07:45 -05:00
David Allemang
a656de0e17 crkbd layout 2024-02-20 14:49:58 -05:00
Nick Brassel
7df44ffb75 Fix double code indenting (#23117) 2024-02-20 00:45:25 +00:00
VertorWang
672986a078 [Keyboard] Add moky88 (#22954)
* Update

* 代码对齐

* 修改键盘名称

* 增加Readme

* Add copyright notice

* Update keyboards/moky/moky88/info.json

Delete solid_color

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/moky/moky88/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/moky/moky88/moky88.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/moky/moky88/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/moky/moky88/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/moky/moky88/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/moky/moky88/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/moky/moky88/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/moky/moky88/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/moky/moky88/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/moky/moky88/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/moky/moky88/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Add a key to enter the bootloader, and add instructions to the readme documentation

* delete maintainer

* add default/rules.mk

* Update readme.md

* Update readme.md

---------

Co-authored-by: vertor <zhen.wang@westberrytech.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-02-19 14:51:04 -07:00
Mathias Andersson
958ddea52e [Keyboard] Add iNETT Studio SQUARE 80% (#21082)
This keyboard comes stock with a forked version of QMK that is quite
outdated at this point.

I decided to go with the name `sq80` to stay in line with the existing
`sqx`, and "SQ80" has been used in some of the communication from the
creators.
2024-02-19 14:48:17 -07:00
chalex
496d093fc3 [Keyboard] Add chlx ppr merro (#23014)
* add ppr files

* update readme

* update imgur link

* Update keyboards/chlx/ppr_merro60/keymaps/default/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/chlx/ppr_merro60/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/chlx/ppr_merro60/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/chlx/ppr_merro60/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/chlx/ppr_merro60/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/chlx/ppr_merro60/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/chlx/ppr_merro60/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/chlx/ppr_merro60/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* run 'qmk format-json -i info.json'

* Update keyboards/chlx/ppr_merro60/readme.md

Co-authored-by: Joel Challis <git@zvecr.com>

* remove 60_ansi_split_bs_rshift from list of avail layouts

* Update keyboards/chlx/ppr_merro60/keymaps/via/rules.mk

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/chlx/ppr_merro60/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/chlx/ppr_merro60/readme.md

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/chlx/ppr_merro60/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/chlx/ppr_merro60/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/chlx/ppr_merro60/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* add ansi variants

* row / col was flipped from last working version. local corruption. update row/col and working test.

* Apply suggestions from code review

---------

Co-authored-by: chalex <alejandrelee+magbogbro@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2024-02-16 16:35:10 -07:00
Aeonstrife
83a3357e74 [Keyboard] Added MW60 (#22505)
* Init files

* Update keyboards/buildakb/mw60/readme.md

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

* Update keyboards/buildakb/mw60/readme.md

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

* fixed stuff

* Update readme

* Update keyboards/buildakb/mw60/rules.mk

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/buildakb/mw60/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/buildakb/mw60/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/buildakb/mw60/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/buildakb/mw60/info.json

Co-authored-by: jack <0x6a73@protonmail.com>

* formatted info.json, removed config.h

* Update keyboards/buildakb/mw60/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/buildakb/mw60/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/buildakb/mw60/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/buildakb/mw60/keymaps/default/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/buildakb/mw60/keymaps/default/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/buildakb/mw60/keymaps/via/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* formatted info.json

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-02-16 16:23:00 -07:00
c0ldbru
b7b14678b2 [Keyboard] Add rot13labs rotc0n macropad (#23028)
* asdds rot13labs rotc0n macropad

* Update keyboards/rot13labs/rotc0n/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Delete keyboards/rot13labs/rotc0n/config.h

removing config.h

* Update keyboards/rot13labs/rotc0n/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

---------

Co-authored-by: c0ldbru <c0ldbrusec@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-02-14 14:51:50 -07:00
spacehangover
1e7c2a8926 Added SoyuzXL Macropad (#23075)
* added mercury macropad WWA

* Revert "added mercury macropad WWA"

This reverts commit 81b48185d3.

* added Mercury macropad WWA

* added Soyuz Macropad

* Added Soyuz XL Macropad
2024-02-14 11:31:19 -07:00
spacehangover
1ddff6e30d Added Soyuz Macropad WWA (#23072)
* added mercury macropad WWA

* Revert "added mercury macropad WWA"

This reverts commit 81b48185d3.

* added Mercury macropad WWA

* added Soyuz Macropad
2024-02-13 19:20:04 -07:00
spacehangover
c4414af9f3 [Keyboard] Add Mercury Macropad (#23071)
* added mercury macropad WWA

* Revert "added mercury macropad WWA"

This reverts commit 81b48185d3.

* added Mercury macropad WWA
2024-02-13 17:04:05 -07:00
yiancar
c5a75eb16f [Keyboard] Add Artifact LvL 1 HS (#22964)
* initial commit lvl1

* Add APM32 option

* update stuff:)

* White

* Update to yaml

* Update keyboards/artifact/lvl/rev_hs01/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update info.json

* Update info.json

Ups...

* Update mcuconf.h

* Update halconf.h

* Update info.json

* Update keyboards/artifact/lvl/rev_hs01/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

---------

Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-02-13 14:40:01 -07:00
azhizhinov
23d21c85fe El Cantor HS. Update info.json (#23020)
Fix for wrong key's placement.
2024-02-12 01:49:58 -07:00
Steven Karrmann
cfe8c4dee3 Add Sha keyboard (#22664)
* Implement Sha keyboard with default layout

* Adjust readme and info.json per PR checklist

* Fix RGB Light description in default keymap readme

* Update keyboards/sha/rules.mk

Move configuration to info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/sha/info.json

Move configuration to info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/sha/info.json

Move configuration to info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/sha/info.json

Define RGB animations in info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Enable RGB Lighting Layers at keymap level, not keyboard level

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2024-02-11 18:26:22 -07:00
Ryan
45ae4dec4d WS2812: Better error message when trying to use bitbang driver on RP2040 (#23025) 2024-02-06 08:09:22 +01:00
Apricity-Projects
fa2fb9bbe0 KK65 VID Correction (#23007) 2024-02-03 16:17:07 +00:00
gkeyboard
e97ec68692 Add GreatPad macropad under gkeyboard (#22696)
* Add GreatPad under gkeyboard

Add GreatPad macropad

* Update keyboards/gkeyboard/greatpad/config.h

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/gkeyboard/greatpad/greatpad.c

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/gkeyboard/greatpad/info.json

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/gkeyboard/greatpad/info.json

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/gkeyboard/greatpad/keymaps/default/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/gkeyboard/greatpad/keymaps/default/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/gkeyboard/greatpad/keymaps/via/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/gkeyboard/greatpad/keymaps/via/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

* Add a license header

 Add a license header to glcdfont.c

* Update glcdfont.c

* delete file

* Revert "delete file"

This reverts commit 388e6f03e4.

* Update keyboards/gkeyboard/greatpad/mcuconf.h

Co-authored-by: jack <0x6a73@protonmail.com>

* Update .vscode/settings.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/gkeyboard/greatpad/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Enable encoder

Enable encoder in file info.json

* Update keyboards/gkeyboard/greatpad/greatpad.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update info.json

Run qmk format-json -i file info.json

---------

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-02-02 09:01:10 -07:00
leyew
39f06c3afb [Keyboard] Add dnworks numpad (#22882)
* add dnworks numpad

* Apply suggestions from code review (Added community layouts)

Co-authored-by: Drashna Jaelre <drashna@live.com>

* fix linting

* formatted json

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-02-02 08:37:03 -07:00
Joe Scotto
06ed8dd14f Add ScottoDeck handwired macropad (#22935)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-02-01 11:05:12 -08:00
Álvaro A. Volpato
20886529c5 Add Valhalla v2 PCB support (#22914)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-02-01 11:04:59 -08:00
adophoxia
382c3bd0bd Add Doio KB04 (#22754)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-01-31 23:46:08 -08:00
txdyqiang
276130bdef Theone keyboard (#22749)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2024-01-31 23:28:39 -08:00
Habib
5c84d935f9 [Keyboard] Add mntre_v3 (#22739) 2024-01-31 23:26:05 -08:00
Duncan Sutherland
6fed854e58 add ISO layouts for alfredlabs/swift65/solder (#22672) 2024-01-31 23:15:45 -08:00
Duncan Sutherland
997f04b636 add matrix diagram for hineybush/h101 (#22252) 2024-01-31 18:23:02 -08:00
Ben
33a3cd26ab [Keyboard] Add Kimiko Rev2 (#21719)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Ex3c4Def <Joe_No@gmx.net>
Co-authored-by: Ben Roe <ben@MacBookzPro-M2.lan>
Co-authored-by: Ben Roe <ben@MacBook-Pro-von-Ben.local>
2024-01-31 18:21:59 -08:00
mechlovin
f3d3b16ebb [Keyboard] Add Zed1800 platform PCB (#19250)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-01-31 17:57:46 -08:00
Nostril
7ebeb5d93f [Keyboard] Add Synth Labs 065 Keyboard (#21040)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2024-01-31 17:57:21 -08:00
Vino Rodrigues
d8cda43d14 [Keyboard] Add BINEPAD BNK9 (#22831) 2024-01-31 15:01:22 +00:00
yuezp
777a6e0e58 [Keyboard] Add rena (#22902)
* Added keyboard rena

* format file info.json

* modify info.json file

* modify 16mhz to 8mhz

* modify info.json file

* Delete redundant Spaces

* Delete redundant Spaces

* Delete redundant Spaces

* Delete redundant Spaces

---------

Co-authored-by: “yuezp” <“yuezpchn@126.com”>
2024-01-31 00:20:32 -07:00
フィルターペーパー
0a6a203fb5 Update asymmetric debounce code comment (#22981) 2024-01-30 19:34:45 -08:00
Wilba
18f8e51cb7 Added WT65-H2 (Bauer Lite) (#22885) 2024-01-30 19:34:20 -08:00
Apricity-Projects
a4b124e906 [Keyboard] Add KK65 (#22772)
* adding my keyboard

* Update keyboards/kk/65/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/kk/65/keymaps/via/rules.mk

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/kk/65/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/kk/65/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/kk/65/rules.mk

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/kk/65/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Added photo imgur photo link to readme.md

* Adjusted keyboard level config and added config files with tapping_toggle to keymaps.

* Update keyboards/kk/65/readme.md

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Migrated qmk.locking settings to info.json and removed config.h

* Update keyboards/kk/65/keymaps/default/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/kk/65/keymaps/via/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

---------

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-01-30 13:20:24 -07:00
フィルターペーパー
567f808ea5 [Doc] Use number indexes for encoder code example (#22980) 2024-01-29 19:28:23 +00:00
Joel Challis
b7468f4785 Workaround for dfu-programmer on Fedora 39 (#22945) 2024-01-23 10:02:03 +00:00
Ryan
3495cbc638 Fix missing joystick.h include (#22946) 2024-01-22 13:18:20 +00:00
kopibeng
cdbfcb6c14 Add lock indicators for KLC x TGR LENA (#22931) 2024-01-22 11:36:05 +00:00
Joel Challis
58721a433b Move layout macro OOB checks to lint (#22610) 2024-01-22 11:35:51 +00:00
Tommi Pääkkö
1522695cef Add VIA support for Atreus62 (#22913)
Co-authored-by: Tommi Pääkkö <tommi.paakko@symbio.com>
2024-01-20 11:46:52 -08:00
Danny
a31707fdc2 Add Iris CE Rev. 1 (#22930)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2024-01-20 11:43:04 -08:00
Nick Brassel
62d19fc2ac Copy compile_commands.json to userspace, if in use. (#22925) 2024-01-20 08:11:17 +11:00
dependabot[bot]
c38fdfec9c Bump tj-actions/changed-files from 41 to 42 (#22915)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 41 to 42.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v41...v42)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-18 20:15:48 +00:00
James Gzowski
dcc47ea31b Add Proteus67 keyboard (#22439)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-01-13 22:07:59 -08:00
Joy Lee
a81ae7dd04 Add tac-k1 keyboard (#22522)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-01-13 22:06:37 -08:00
Jesse Leventhal
114a43e1ea Add The Mad Noodle Udon13 (#22704)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2024-01-13 19:16:11 -08:00
Vertex-kb
33c5a64b5a add Cycle8 (#22734)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-13 19:10:26 -08:00
Wilba
624d0964c1 Added WT20-H1 (HIBI JUNIOR) (#22893) 2024-01-12 23:37:10 -08:00
Duncan Sutherland
bea97291dc Remove community layout from mode/m80*/m80*h (#22461) 2024-01-12 23:22:15 -08:00
ziptyze
f401649855 add lets split v3 (#22465)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-12 23:13:45 -08:00
ziptyze
452ac581a5 [Keyboard] pi60rgb_v2 (#22156)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-01-12 22:13:09 -08:00
Nick Brassel
c6ed3cdf10 Add more unwanted compilation output files to .gitignore. (#22894) 2024-01-12 12:08:11 +00:00
Joy Lee
6cc56f3f8c Added skiller_sgk50_s3 keyboard (#22382)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-01-09 22:24:11 +11:00
Thomas White
31fdf7d899 add pywinusb lib to list of example libs for HID (#22747) 2024-01-09 22:13:51 +11:00
326 changed files with 15465 additions and 586 deletions

View File

@@ -35,7 +35,7 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v41
uses: tj-actions/changed-files@v42
- name: Run qmk formatters
shell: 'bash {0}'

View File

@@ -27,7 +27,7 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v41
uses: tj-actions/changed-files@v42
- name: Print info
run: |

5
.gitignore vendored
View File

@@ -18,6 +18,11 @@
*.lst
*.map
*.o
*.a
*.so
*.dylib
*.dll
*.la
*.stackdump
*.sym

View File

@@ -333,27 +333,26 @@ will give the _NAV layer as a reference to it's self. All other layers
will have the default for their combo reference layer. If the default
is not set, all other layers will reference themselves.
```c
#define COMBO_REF_DEFAULT _MY_COMBO_LAYER
...
```c
#define COMBO_REF_DEFAULT _MY_COMBO_LAYER
uint8_t combo_ref_from_layer(uint8_t layer){
switch (get_highest_layer(layer_state)){
case _DVORAK: return _QWERTY;
case _NAV: return _NAV;
default: return _MY_COMBO_LAYER;
}
return layer; // important if default is not in case.
uint8_t combo_ref_from_layer(uint8_t layer){
switch (get_highest_layer(layer_state)){
case _DVORAK: return _QWERTY;
case _NAV: return _NAV;
default: return _MY_COMBO_LAYER;
}
```
return layer; // important if default is not in case.
}
```
The equivalent definition using the combo macros is this:
```c
COMBO_REF_LAYER(_DVORAK, _QWERTY)
COMBO_REF_LAYER(_NAV, _NAV)
DEFAULT_REF_LAYER(_MY_COMBO_LAYER).
```
```c
COMBO_REF_LAYER(_DVORAK, _QWERTY)
COMBO_REF_LAYER(_NAV, _NAV)
DEFAULT_REF_LAYER(_MY_COMBO_LAYER).
```
## User callbacks

View File

@@ -82,10 +82,10 @@ Your `keymap.c` will then need an encoder mapping defined (for four layers and t
```c
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BASE] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LOWER] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
[_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
[0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
[3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
};
#endif
```

View File

@@ -28,7 +28,7 @@ To send data to the keyboard, you must first find a library for communicating wi
* **Node.js:** [node-hid](https://github.com/node-hid/node-hid)
* **C/C++:** [hidapi](https://github.com/libusb/hidapi)
* **Java:** [purejavahidapi](https://github.com/nyholku/purejavahidapi) and [hid4java](https://github.com/gary-rowe/hid4java)
* **Python:** [pyhidapi](https://pypi.org/project/hid/)
* **Python:** [pyhidapi](https://pypi.org/project/hid/) and [pywinusb](https://pypi.org/project/pywinusb)
Please refer to these libraries' own documentation for instructions on usage. Remember to close the device once you are finished with it!

View File

@@ -0,0 +1,258 @@
{
"manufacturer": "1upkeyboards",
"keyboard_name": "pi60_rgb_v2",
"maintainer": "ziptyze",
"processor": "RP2040",
"bootloader": "rp2040",
"usb": {
"device_version": "1.0.0",
"pid": "0x5612",
"vid": "0x6F75"
},
"diode_direction": "COL2ROW",
"dynamic_keymap": {
"layer_count": 10
},
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"rgb_matrix": true,
},
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"matrix_pins": {
"cols": ["GP25", "GP1", "GP15", "GP4", "GP5", "GP14", "GP6", "GP7", "GP8", "GP13", "GP12", "GP9", "GP11", "GP10"],
"rows": ["GP29", "GP27", "GP26", "GP17", "GP16"]
},
"rgb_matrix": {
"max_brightness": 125,
"sleep": true,
"animations": {
"alphas_mods": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"driver": "ws2812",
"layout": [
{"x": 4, "y": 5, "flags": 2},
{"matrix": [0, 0], "x": 8, "y": 7, "flags": 1},
{"matrix": [0, 1], "x": 23, "y": 7, "flags": 4},
{"x": 30, "y": 7, "flags": 2},
{"matrix": [0, 2], "x": 37, "y": 7, "flags": 4},
{"x": 45, "y": 7, "flags": 2},
{"matrix": [0, 3], "x": 52, "y": 7, "flags": 4},
{"x": 60, "y": 7, "flags": 2},
{"matrix": [0, 4], "x": 67, "y": 7, "flags": 4},
{"x": 75, "y": 7, "flags": 2},
{"matrix": [0, 5], "x": 82, "y": 7, "flags": 4},
{"x": 90, "y": 7, "flags": 2},
{"matrix": [0, 6], "x": 97, "y": 7, "flags": 4},
{"x": 105, "y": 7, "flags": 2},
{"matrix": [0, 7], "x": 112, "y": 7, "flags": 4},
{"x": 120, "y": 7, "flags": 2},
{"matrix": [0, 8], "x": 127, "y": 7, "flags": 4},
{"x": 135, "y": 7, "flags": 2},
{"matrix": [0, 9], "x": 142, "y": 7, "flags": 4},
{"x": 149, "y": 7, "flags": 2},
{"matrix": [0, 10], "x": 157, "y": 7, "flags": 4},
{"x": 164, "y": 7, "flags": 2},
{"matrix": [0, 11], "x": 172, "y": 7, "flags": 4},
{"x": 179, "y": 7, "flags": 2},
{"matrix": [0, 12], "x": 187, "y": 7, "flags": 4},
{"x": 198, "y": 7, "flags": 2},
{"matrix": [0, 13], "x": 209, "y": 7, "flags": 1},
{"x": 220, "y": 7, "flags": 2},
{"x": 220, "y": 19, "flags": 2},
{"matrix": [1, 13], "x": 213, "y": 19, "flags": 1},
{"matrix": [1, 12], "x": 194, "y": 19, "flags": 4},
{"matrix": [1, 11], "x": 179, "y": 19, "flags": 4},
{"matrix": [1, 10], "x": 164, "y": 19, "flags": 4},
{"matrix": [1, 9], "x": 149, "y": 19, "flags": 4},
{"matrix": [1, 8], "x": 134, "y": 19, "flags": 4},
{"matrix": [1, 7], "x": 119, "y": 19, "flags": 4},
{"matrix": [1, 6], "x": 105, "y": 19, "flags": 4},
{"matrix": [1, 5], "x": 90, "y": 19, "flags": 4},
{"matrix": [1, 4], "x": 75, "y": 19, "flags": 4},
{"matrix": [1, 3], "x": 60, "y": 19, "flags": 4},
{"matrix": [1, 2], "x": 45, "y": 19, "flags": 4},
{"matrix": [1, 1], "x": 30, "y": 19, "flags": 4},
{"matrix": [1, 0], "x": 11, "y": 19, "flags": 1},
{"x": 4, "y": 19, "flags": 2},
{"x": 4, "y": 32, "flags": 2},
{"matrix": [2, 0], "x": 13, "y": 32, "flags": 1},
{"matrix": [2, 1], "x": 34, "y": 32, "flags": 4},
{"matrix": [2, 2], "x": 49, "y": 32, "flags": 4},
{"matrix": [2, 3], "x": 64, "y": 32, "flags": 4},
{"matrix": [2, 4], "x": 79, "y": 32, "flags": 4},
{"matrix": [2, 5], "x": 94, "y": 32, "flags": 4},
{"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
{"matrix": [2, 7], "x": 123, "y": 32, "flags": 4},
{"matrix": [2, 8], "x": 138, "y": 32, "flags": 4},
{"matrix": [2, 9], "x": 153, "y": 32, "flags": 4},
{"matrix": [2, 10], "x": 168, "y": 32, "flags": 4},
{"matrix": [2, 11], "x": 183, "y": 32, "flags": 4},
{"matrix": [2, 13], "x": 207, "y": 32, "flags": 1},
{"x": 220, "y": 32, "flags": 2},
{"x": 220, "y": 45, "flags": 2},
{"matrix": [3, 13], "x": 203, "y": 45, "flags": 1},
{"matrix": [3, 10], "x": 175, "y": 45, "flags": 4},
{"matrix": [3, 9], "x": 161, "y": 45, "flags": 4},
{"matrix": [3, 8], "x": 146, "y": 45, "flags": 4},
{"matrix": [3, 7], "x": 135, "y": 45, "flags": 4},
{"matrix": [3, 6], "x": 116, "y": 45, "flags": 4},
{"matrix": [3, 5], "x": 101, "y": 45, "flags": 4},
{"matrix": [3, 4], "x": 86, "y": 45, "flags": 4},
{"matrix": [3, 3], "x": 71, "y": 45, "flags": 4},
{"matrix": [3, 2], "x": 56, "y": 45, "flags": 4},
{"matrix": [3, 1], "x": 41, "y": 45, "flags": 4},
{"matrix": [3, 0], "x": 17, "y": 45, "flags": 1},
{"x": 4, "y": 45, "flags": 2},
{"x": 4, "y": 57, "flags": 2},
{"matrix": [4, 0], "x": 9, "y": 57, "flags": 1},
{"x": 15, "y": 57, "flags": 2},
{"x": 23, "y": 57, "flags": 2},
{"matrix": [4, 1], "x": 28, "y": 57, "flags": 1},
{"x": 34, "y": 57, "flags": 2},
{"x": 41, "y": 57, "flags": 2},
{"matrix": [4, 2], "x": 47, "y": 57, "flags": 1},
{"x": 53, "y": 57, "flags": 2},
{"x": 67, "y": 57, "flags": 2},
{"x": 71, "y": 57, "flags": 1},
{"x": 81, "y": 57, "flags": 2},
{"x": 95, "y": 57, "flags": 2},
{"matrix": [4, 5], "x": 103, "y": 57, "flags": 1},
{"x": 110, "y": 57, "flags": 2},
{"x": 125, "y": 57, "flags": 2},
{"x": 134, "y": 57, "flags": 1},
{"x": 139, "y": 57, "flags": 2},
{"x": 153, "y": 57, "flags": 2},
{"matrix": [4, 9], "x": 159, "y": 57, "flags": 1},
{"x": 165, "y": 57, "flags": 2},
{"x": 172, "y": 57, "flags": 2},
{"matrix": [4, 10], "x": 177, "y": 57, "flags": 1},
{"x": 183, "y": 57, "flags": 2},
{"x": 190, "y": 57, "flags": 2},
{"matrix": [4, 12], "x": 196, "y": 57, "flags": 1},
{"x": 202, "y": 57, "flags": 2},
{"x": 209, "y": 57, "flags": 2},
{"matrix": [4, 13], "x": 215, "y": 57, "flags": 1},
{"x": 220, "y": 57, "flags": 2}
]
},
"ws2812": {
"driver": "vendor",
"pin": "GP28"
},
"community_layouts" : ["60_ansi"],
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "BS", "matrix": [0, 13], "w": 2, "x": 13, "y": 0},
{"label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1},
{"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], "w": 1.5, "x": 13.5, "y": 1},
{"label": "Caps", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2},
{"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": [2, 13], "w": 2.25, "x": 12.75, "y": 2},
{"label": "LShift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3},
{"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3},
{"label": ",", "matrix": [3, 8], "x": 9.25, "y": 3},
{"label": ".", "matrix": [3, 9], "x": 10.25, "y": 3},
{"label": "/", "matrix": [3, 10], "x": 11.25, "y": 3},
{"label": "RShift", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3},
{"label": "LCtrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4},
{"label": "LGui", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4},
{"label": "LAlt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4},
{"label": "Space", "matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4},
{"label": "RAlt", "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4},
{"label": "RGui", "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4},
{"label": "FN", "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4},
{"label": "RCtrl", "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4}
]
}
}
}

View File

@@ -0,0 +1,28 @@
/* 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_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_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, KC_RGUI, KC_APP, KC_RCTL
)
};

View File

@@ -0,0 +1,44 @@
/* 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, KC_RGUI, MO(1), 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,
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS
),
[2] = LAYOUT_60_ansi(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

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

View File

@@ -0,0 +1,24 @@
# 1up pi60 rgb v2
![1up pi60 rgb v2](https://i.imgur.com/H1tRGZh.png)
The pi60 RGB v2 is a 60% pcb from 1upkeyboards. This keyboard features an ANSI layout hot swap PCB with per-key in-switch RGB lighting as well as RGB underglow. The controller is a Raspberry Pi rp2040 microcontroller.
* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze)
Make example for this keyboard (after setting up your build environment):
make 1upkeyboards/pi60_rgb_v2:default
Flashing example for this keyboard:
make 1upkeyboards/pi60_rgb_v2: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 2 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
* **Bootloader button**: Hold the button on the back of the PCB and plug in the keyboard

View File

@@ -349,6 +349,322 @@
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_iso_625u_space": {
"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, "w": 2},
{"matrix": [0, 14], "x": 15.25, "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, 14], "x": 15.25, "y": 1},
{"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": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 15.25, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_iso_625u_space_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 15], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "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, 14], "x": 15.25, "y": 1},
{"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": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 15.25, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_iso_7u_space": {
"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, "w": 2},
{"matrix": [0, 14], "x": 15.25, "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, 14], "x": 15.25, "y": 1},
{"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": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 15.25, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_iso_7u_space_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 15], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "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, 14], "x": 15.25, "y": 1},
{"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": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 15.25, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}

View File

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

View File

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

View File

@@ -0,0 +1,232 @@
{
"manufacturer": "Yiancar-Designs",
"keyboard_name": "LvL Type-01/80",
"maintainer": "Yiancar-Designs",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"indicators": {
"caps_lock": "B6",
"on_state": 0
},
"matrix_pins": {
"cols": ["A1", "B9", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "A8"],
"rows": ["A2", "A14", "A15", "B3", "B4", "B5"]
},
"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
},
"default": {
"sat": 0
},
"led_count": 1
},
"url": "https://yiancar-designs.com",
"usb": {
"device_version": "0.0.1",
"pid": "0x4C56",
"vid": "0x8968"
},
"ws2812": {
"driver": "pwm",
"pin": "A9"
},
"community_layouts": ["tkl_ansi_tsangan"],
"layouts": {
"LAYOUT_tkl_ansi_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [0, 2], "x": 3, "y": 0},
{"matrix": [0, 3], "x": 4, "y": 0},
{"matrix": [0, 4], "x": 5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 11, "y": 0},
{"matrix": [0, 10], "x": 12, "y": 0},
{"matrix": [0, 11], "x": 13, "y": 0},
{"matrix": [0, 12], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
{"matrix": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [3, 12], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
{"matrix": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
{"matrix": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [0, 2], "x": 3, "y": 0},
{"matrix": [0, 3], "x": 4, "y": 0},
{"matrix": [0, 4], "x": 5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 11, "y": 0},
{"matrix": [0, 10], "x": 12, "y": 0},
{"matrix": [0, 11], "x": 13, "y": 0},
{"matrix": [0, 12], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
{"matrix": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [3, 12], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
{"matrix": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
{"matrix": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,32 @@
# LvL Type-01/80
This is a standard TKL layout PCB. It supports VIA.
* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar)
* Hardware Supported: A TKL keyboard with STM32F072CB
* Hardware Availability: https://artifact-industries.com
## Instructions
### Build
Make example for this keyboard (after setting up your build environment):
make artifact/lvl/rev_hs01:default
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).
### Reset
- Unplug
- Hold Escape
- Plug In
- Unplug
- Release Escape
### Flash
- Unplug
- Hold Escape
- Plug In
- Flash using QMK Toolbox or CLI (`make artifact/lvl/rev_hs01:<keymap>:flash`)

View File

@@ -0,0 +1,21 @@
/* Copyright 2024 Yiancar-Designs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
void led_init_ports(void) {
// Set our LED pins as open drain outputs
setPinOutputOpenDrain(LED_CAPS_LOCK_PIN);
}

View File

@@ -0,0 +1,2 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF

View File

@@ -4,7 +4,7 @@
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0xFEED",
"vid": "0x5072",
"pid": "0x6062",
"device_version": "0.0.1"
},

View File

@@ -0,0 +1,50 @@
/* Copyright 2024 Tommi Pääkkö (@Glenf)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers {
_DEFAULT,
_NAV,
_RESET,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT] = LAYOUT( /* qwerty */
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_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC ,
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_LBRC ,
KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(_NAV),KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_EQL, KC_MINS, KC_QUOT, KC_ENT, KC_RGUI
),
[_NAV] = LAYOUT(
TO(_DEFAULT), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 ,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS ,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS ,
TO(_RESET), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[_RESET] = LAYOUT(
TO(_DEFAULT), KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , QK_BOOT
)
};

View File

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

View File

@@ -0,0 +1,12 @@
// Copyright 2023 binepad (@binepad)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define ENCODER_DEFAULT_POS 0x3 // enable 1:1 resolution
// Default PIO0 cases flickering in this board. Setting to PIO1 resolves this issue.
#define WS2812_PIO_USE_PIO1
// Timing for SK6812
#define WS2812_T1H 650

View File

@@ -0,0 +1,86 @@
{
"manufacturer": "binepad",
"keyboard_name": "BNK9",
"maintainer": "binepad",
"board": "GENERIC_RP_RP2040",
"bootloader": "rp2040",
"bootloader_instructions": "Hold down the key at (0x0) in the matrix (the 'knob' / rotary encoder) and plug in the keyboard.",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "GP13", "pin_b": "GP14"}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP1", "GP2", "GP3"],
"rows": ["GP12", "GP4", "GP5", "GP6"]
},
"processor": "RP2040",
"rgb_matrix": {
"animations": {
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_pinwheel": true,
"cycle_up_down": true,
"jellybean_raindrops": true,
"riverflow": true,
"solid_reactive": true,
"solid_reactive_simple": true,
"solid_splash": true,
"splash": true,
"starlight": true,
"starlight_dual_hue": true,
"starlight_dual_sat": true
},
"driver": "ws2812",
"layout": [
{"matrix": [1, 0], "x": 80, "y": 0, "flags": 4},
{"matrix": [1, 1], "x": 112, "y": 0, "flags": 4},
{"matrix": [1, 2], "x": 144, "y": 0, "flags": 4},
{"matrix": [2, 2], "x": 144, "y": 32, "flags": 4},
{"matrix": [2, 1], "x": 112, "y": 32, "flags": 4},
{"matrix": [2, 0], "x": 80, "y": 32, "flags": 4},
{"matrix": [3, 0], "x": 80, "y": 64, "flags": 4},
{"matrix": [3, 1], "x": 112, "y": 64, "flags": 4},
{"matrix": [3, 2], "x": 144, "y": 64, "flags": 4}
],
"led_process_limit": 9,
"max_brightness": 180,
"sleep": true
},
"url": "https://www.binepad.com/product-page/bnk9",
"usb": {
"device_version": "1.0.0",
"pid": "0x4E39",
"vid": "0x4249"
},
"ws2812": {
"driver": "vendor",
"pin": "GP11"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "Knob", "matrix": [0, 0], "x": 0, "y": 0, "w": 3, "h": 3, "encoder": 0},
{"label": "1", "matrix": [1, 0], "x": 3.25, "y": 0},
{"label": "2", "matrix": [1, 1], "x": 4.25, "y": 0},
{"label": "3", "matrix": [1, 2], "x": 5.25, "y": 0},
{"label": "4", "matrix": [2, 0], "x": 3.25, "y": 1},
{"label": "5", "matrix": [2, 1], "x": 4.25, "y": 1},
{"label": "6", "matrix": [2, 2], "x": 5.25, "y": 1},
{"label": "7", "matrix": [3, 0], "x": 3.25, "y": 2},
{"label": "8", "matrix": [3, 1], "x": 4.25, "y": 2},
{"label": "9", "matrix": [3, 2], "x": 5.25, "y": 2}
]
}
}
}

View File

@@ -0,0 +1,28 @@
// Copyright 2023 Binepad (@binpad)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE,
KC_P1, KC_P2, KC_P3,
KC_P4, KC_P5, KC_P6,
KC_P7, KC_P8, LT(1, KC_P9)
),
[1] = LAYOUT(
RGB_TOG,
RGB_HUI, RGB_SAI, RGB_SPI,
RGB_HUD, RGB_SAD, RGB_SPD,
RGB_RMOD, RGB_MOD, _______
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
};
#endif

View File

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

View File

@@ -0,0 +1,28 @@
// Copyright 2023 Binepad (@binpad)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE,
KC_P1, KC_P2, KC_P3,
KC_P4, KC_P5, KC_P6,
KC_P7, KC_P8, LT(1, KC_P9)
),
[1] = LAYOUT(
RGB_TOG,
RGB_HUI, RGB_SAI, RGB_SPI,
RGB_HUD, RGB_SAD, RGB_SPD,
RGB_RMOD, RGB_MOD, _______
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
};
#endif

View File

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

View File

@@ -0,0 +1,27 @@
# BINEPAD BNK9
![BINEPAD BNK9](https://i.imgur.com/FrkVRhhh.jpg)
A 3x3 macropad with a large rotary encoder.
* Keyboard Maintainer: [binepad](https://github.com/binepad)
* Hardware Supported: BINPAD BNK9
* Hardware Availability: [binepad.com](https://www.binepad.com/product-page/bnk9)
Make example for this keyboard (after setting up your build environment):
make binepad/bnk9:default
Flashing example for this keyboard:
make binepad/bnk9: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 (0x0) in the matrix (the 'knob' / rotary encoder) and plug in the keyboard.
* **Physical reset button**: Briefly press the PCB button located on the back of the PCB.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` *(or* `RESET` *in VIA)* if it is available.

View File

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

View File

@@ -0,0 +1,945 @@
{
"manufacturer": "Maelkworks",
"keyboard_name": "mw60",
"maintainer": "Maelkk",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["F0", "C7", "C6", "B6", "B5", "F5", "B4", "D7", "D6", "D4", "D5", "D3", "F6", "D2"],
"rows": ["E6", "D1", "F7", "F4", "F1"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0004",
"vid": "0x4A56"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k407", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k407", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi_tsangan": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_wkl": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_hhkb": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4}
]
},
"LAYOUT_60_iso": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k407", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_iso_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k407", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_iso_tsangan": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_wkl": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_wkl_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_all": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k405", "matrix": [4, 5], "x": 4, "y": 4, "w": 2.75},
{"label": "k407", "matrix": [4, 7], "x": 6.75, "y": 4, "w": 1.5},
{"label": "k409", "matrix": [4, 9], "x": 8.25, "y": 4, "w": 2.75},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
}
}
}

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,24 @@
# MW60 PCB
![MW60 PCB](https://i.imgur.com/5E48mAPh.jpg)
A simple standard 60% PCB available in hotswap and solderable variants
- Keyboard Maintainer: [Maelkk](https://github.com/Aeonstrife)
- Hardware Supported: MW60 PCB
- Hardware Availability: [sandkeys.me](https://sandkeys.me/product/petals-60-addon-pcbs/)
Make example for this keyboard (after setting up your build environment):
make buildakb/mw60:default
Flashing example for this keyboard:
make buildakb/mw60:default:flash
To reset into bootloader mode:
While plugged in, press the RESET switch located on the back of the pcb.
The keyboard should now be in bootloader mode.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

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

View File

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

View File

@@ -0,0 +1,957 @@
{
"manufacturer": "chlx bsmt",
"keyboard_name": "ppr.merro60",
"maintainer": "gaclee3b",
"bootloader": "atmel-dfu",
"diode_direction": "ROW2COL",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"indicators": {
"caps_lock": "C7",
"on_state": 0,
"scroll_lock": "F0"
},
"matrix_pins": {
"rows": ["F6", "F4", "F5", "F1", "B1", "B0", "C6", "B6", "D2", "D4"],
"cols": ["F7", "B2", "B3", "B7", "D7", "B4", "B5"]
},
"processor": "atmega32u4",
"url": "www.github.com/gaclee3b",
"usb": {
"device_version": "1.0.1",
"pid": "0x0603",
"vid": "0x4358"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_hhkb": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4}
]
},
"LAYOUT_60_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_iso_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_iso_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_wkl_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 2], "x": 3.75, "y": 4, "w": 2.75},
{"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25},
{"matrix": [9, 3], "x": 7.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
}
}
}

View File

@@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
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, KC_RGUI, MO(1), 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,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
[1] = LAYOUT_60_ansi_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_tsangan(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
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, KC_RGUI, KC_RCTL),
[1] = LAYOUT_60_ansi_tsangan(
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_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______,
_______, _______, _______, _______, _______, _______, _______),
};

View File

@@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_wkl(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
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_LALT, KC_SPC, KC_RALT, KC_RCTL),
[1] = LAYOUT_60_ansi_wkl(
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_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______,
_______, _______, _______, _______, _______),
};

View File

@@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_wkl_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_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_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL),
[1] = LAYOUT_60_ansi_wkl_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______),
};

View File

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

View File

@@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_hhkb(
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_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT),
[1] = LAYOUT_60_hhkb(
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_DEL,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______),
};

View File

@@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_iso(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
[1] = LAYOUT_60_iso(
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, QK_BOOT,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
_______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_tsangan_hhkb(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
[1] = LAYOUT_60_tsangan_hhkb(
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_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______),
};

View File

@@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT,
KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_LSCR, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
[1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
_______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

View File

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

View File

@@ -0,0 +1,28 @@
# ppr.merro60
![ppr.merro60 PCB](https://i.imgur.com/xyQA68Xh.jpg)
- Standard 60% format keyboard PCB with USB-C and unified daughterboard compatibility.
- Modified cutouts to allow usage of certain tray mount cases into gummy gasket o-ring mount.
- Additional center flex cut.
- Meant to be manufactured in 1.2mm thickness.
* Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b)
* Hardware Supported: chlx PCB ppr.merro60.x.x.x
Make example for this keyboard (after setting up your build environment):
make chlx/ppr_merro60:default
Flashing example for this keyboard:
make chlx/ppr_merro60: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 bootloader mode by any of the following options -
- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard
- When plugged in, pressing and releasing the reset button on the pcb bottom behind the CAPSLOCK / A-key region
- When plugged in, shorting out the two reset metal contacts near the 'z' key (accessible through the switch LED slot)

View File

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

View File

@@ -0,0 +1,49 @@
/*
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
#define EE_HANDS
#define USE_SERIAL_PD2
#define LAYER_STATE_8BIT
#undef MANUFACTURER
#define MANUFACTURER "allemangd"
#undef PRODUCT
#define PRODUCT "Corne"
#define OLED_DISABLE_TIMEOUT
#define OLED_BRIGHTNESS 128
#define ENABLE_COMPILE_KEYCODE
#define FORCE_NKRO
#define USB_POLLING_INTERVAL_MS 1
#define QMK_KEYS_PER_SCAN 4
#define PERMISSIVE_HOLD
#define TAPPING_TERM 160
#define NO_ACTION_ONESHOT
#define NO_MUSIC_NODE
#undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE

View File

@@ -0,0 +1,89 @@
/*
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
#include "allemangd.h"
#define UNWRAP_LAYOUT(...) LAYOUT_split_3x6_3(__VA_ARGS__)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DVORAK] = UNWRAP_LAYOUT(
KC_TAB, __DVORAK_L1________________________________, __DVORAK_R1________________________________, KC_BSPC,
KC_ESC, __DVORAK_L2________________________________, __DVORAK_R2________________________________, KC_MINS,
KC_LSFT, __DVORAK_L3________________________________, __DVORAK_R3________________________________, KC_RSFT,
KC_DEL, TL_LOWR, KC_ENT, KC_SPC, TL_UPPR, KC_APP
),
[_LOWER] = UNWRAP_LAYOUT(
_______, __LOWER_L1_________________________________, __LOWER_R1_________________________________, _______,
_______, __LOWER_L2_________________________________, __LOWER_R2_________________________________, _______,
_______, __LOWER_L3_________________________________, __LOWER_R3_________________________________, _______,
_______, _______, _______, _______, _______, _______
),
[_RAISE] = UNWRAP_LAYOUT(
KC_GRV, __RAISE_L1_________________________________, __RAISE_R1_________________________________, _______,
_______, __RAISE_L2_________________________________, __RAISE_R2_________________________________, _______,
_______, __RAISE_L3_________________________________, __RAISE_R3_________________________________, _______,
_______, _______, _______, _______, _______, _______
),
[_ADJUST] = UNWRAP_LAYOUT(
QK_MAKE, __ADJUST_L1________________________________, __ADJUST_R1________________________________, QK_BOOT,
KC_VRSN, __ADJUST_L2________________________________, __ADJUST_R2________________________________, KC_PSCR,
_______, __ADJUST_L3________________________________, __ADJUST_R3________________________________, _______,
_______, _______, _______, _______, _______, _______
),
};
// clang-format on
static void oled_render_layer_state(void) {
oled_write_P(PSTR("layer: "), false);
switch (get_highest_layer(layer_state)) {
case 0:
oled_write_ln_P(PSTR("dvorak"), false);
break;
case 1:
oled_write_ln_P(PSTR("lower"), false);
break;
case 2:
oled_write_ln_P(PSTR("raise"), false);
break;
case 3:
oled_write_ln_P(PSTR("adjust"), false);
break;
default:
oled_write_ln_P(PSTR("undef"), false);
break;
}
}
void oled_render_logo(void);
bool oled_task_user(void) {
if (is_keyboard_master()) {
oled_render_layer_state();
} else {
oled_render_logo();
}
return false;
}

View File

@@ -0,0 +1,5 @@
BOOTLOADER = caterina
BLUETOOTH_ENABLE = no
OLED_ENABLE = yes
OLED_DRIVER = ssd1306

View File

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

View File

@@ -0,0 +1,73 @@
{
"manufacturer": "dnworks",
"keyboard_name": "DN Numpad Rev1",
"maintainer": "itsme-zeix",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["GP5", "GP6", "GP7", "GP25"],
"rows": ["GP11", "GP4", "GP3", "GP2", "GP1", "GP0", "GP24"]
},
"processor": "RP2040",
"usb": {
"device_version": "0.0.1",
"pid": "0x2937",
"vid": "0x4C23"
},
"community_layouts": ["numpad_6x4", "ortho_6x4"],
"layouts": {
"LAYOUT_numpad_6x4": {
"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": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [6, 3], "x": 3, "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.25},
{"matrix": [3, 0], "x": 0, "y": 3.25},
{"matrix": [3, 1], "x": 1, "y": 3.25},
{"matrix": [3, 2], "x": 2, "y": 3.25},
{"matrix": [3, 3], "x": 3, "y": 2.25, "h": 2},
{"matrix": [4, 0], "x": 0, "y": 4.25},
{"matrix": [4, 1], "x": 1, "y": 4.25},
{"matrix": [4, 2], "x": 2, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 2},
{"matrix": [5, 2], "x": 2, "y": 5.25},
{"matrix": [5, 3], "x": 3, "y": 4.25, "h": 2}
]
},
"LAYOUT_ortho_6x4": {
"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": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [6, 3], "x": 3, "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.25},
{"matrix": [2, 3], "x": 3, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25},
{"matrix": [3, 1], "x": 1, "y": 3.25},
{"matrix": [3, 2], "x": 2, "y": 3.25},
{"matrix": [3, 3], "x": 3, "y": 3.25},
{"matrix": [4, 0], "x": 0, "y": 4.25},
{"matrix": [4, 1], "x": 1, "y": 4.25},
{"matrix": [4, 2], "x": 2, "y": 4.25},
{"matrix": [4, 3], "x": 3, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25},
{"matrix": [5, 1], "x": 1, "y": 5.25},
{"matrix": [5, 2], "x": 2, "y": 5.25},
{"matrix": [5, 3], "x": 3, "y": 5.25}
]
}
}
}

View File

@@ -0,0 +1,29 @@
/*
Copyright 2023 zeix (@itsme-zeix)
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_ortho_6x4(
KC_ESC, KC_APP, KC_TAB, KC_BSPC,
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PENT,
KC_P0, KC_P0, KC_PDOT, KC_PENT
),
};

View File

@@ -0,0 +1,29 @@
/*
Copyright 2023 zeix (@itsme-zeix)
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_ortho_6x4(
KC_ESC, KC_APP, KC_TAB, KC_BSPC,
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PENT,
KC_P0, KC_P0, KC_PDOT, KC_PENT
),
};

View File

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

View File

@@ -0,0 +1,25 @@
# Matrix Diagram for dnworks numpad rev1
```
Top Left 2u
┌───────┐┌───────┐
│00 ││02 │ Top Right 2u
└───────┘└───────┘
┌───┬───┬───┬───┐
│00 │01 │02 │03 │
└───┴───┴───┴───┘
┌───┬───┬───┬───┐
│10 │11 │12 │63 │
├───┼───┼───┼───┤ ┌───┐
│20 │21 │22 │ │ │23 │
├───┼───┼───┤33 │ ├───┤ Split Plus
│30 │31 │32 │ │ │33 │
├───┼───┼───┼───┤ └───┘ ┌───┐
│40 │41 │42 │ │ │43 │
├───┴───┼───┤53 │ ├───┤ Split Enter
│50 │52 │ │ │53 │
└───────┴───┴───┘ └───┘
┌───┬───┐
│50 │51 │ Split Zero
└───┴───┘
```

View File

@@ -0,0 +1,27 @@
# DN Numpad Rev1
![DN Numpad Rev1](https://i.imgur.com/OpklWTih.png)
PCB that supports the numpad designed by dnworks.
* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix)
* Hardware Supported: DN Numpad Rev1
* Hardware Availability: dnworks.co
Make example for this keyboard (after setting up your build environment):
make dnworks/numpad:default
Flashing example for this keyboard:
make dnworks/numpad: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 top left key and plug in the keyboard
* **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

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

View File

@@ -0,0 +1,111 @@
{
"manufacturer": "DOIO",
"keyboard_name": "KB04-01",
"maintainer": "filmstarr",
"bootloader": "stm32duino",
"build": {
"lto": true
},
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "B6"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": false,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["B14", "B13", "B12", "B0", "A7"],
"rows": ["B3"]
},
"processor": "STM32F103",
"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,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": 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
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
{"matrix": [0, 1], "x": 75, "y": 0, "flags": 1},
{"matrix": [0, 2], "x": 149, "y": 0, "flags": 1},
{"matrix": [0, 3], "x": 224, "y": 0, "flags": 1},
{"x": 112, "y": 64, "flags": 1},
{"x": 112, "y": 64, "flags": 1},
{"x": 112, "y": 64, "flags": 1},
{"x": 112, "y": 64, "flags": 1}
],
"max_brightness": 200,
"sleep": true
},
"url": "https://www.keebmonkey.com/products/megalodon-macro-pad-with-a-knob",
"usb": {
"device_version": "0.0.1",
"pid": "0x0401",
"vid": "0xD010"
},
"ws2812": {
"pin": "A10"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "1!", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "2@", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "3#", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "4$", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "Encoder", "matrix": [0, 4], "x": 1.5, "y": 1}
]
}
}
}

View File

@@ -0,0 +1,48 @@
/* Copyright 2022 filmstarr <https://github.com/filmstarr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layer_names {
_LAY0,
_LAY1
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
L0:
┌───┬───┬───┬───┐ ┌───┐
│MO1│Prv│Ply│Nxt│ │Mut│
└───┴───┴───┴───┘ └───┘
L1:
┌───┬───┬───┬───┐ ┌───┐
│ │Hud│Tog│Mod│ │ │
└───┴───┴───┴───┘ └───┘
*/
[_LAY0] = LAYOUT(
MO(_LAY1), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE
),
[_LAY1] = LAYOUT(
KC_TRNS, RGB_HUD, RGB_TOG, RGB_MOD, KC_TRNS
)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAY0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif

View File

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

View File

@@ -0,0 +1,48 @@
/* Copyright 2022 filmstarr <https://github.com/filmstarr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layer_names {
_LAY0,
_LAY1
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
L0:
┌───┬───┬───┬───┐ ┌───┐
│MO1│Prv│Ply│Nxt│ │Mut│
└───┴───┴───┴───┘ └───┘
L1:
┌───┬───┬───┬───┐ ┌───┐
│ │Hud│Tog│Mod│ │ │
└───┴───┴───┴───┘ └───┘
*/
[_LAY0] = LAYOUT(
MO(_LAY1), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE
),
[_LAY1] = LAYOUT(
KC_TRNS, RGB_HUD, RGB_TOG, RGB_MOD, KC_TRNS
)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAY0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif

View File

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

View File

@@ -0,0 +1,27 @@
# doio/kb04
![doio/kb04](https://i.imgur.com/lqABZw4h.png)
A macropad that have 4-key keyboard made by DOIO, which controlled by an APM32F103CBT6 chipset. The keyboard features per-key RGB and 1 encoder.
* Keyboard Maintainer: [filmstarr](https://github.com/filmstarr)
* Hardware Supported: DOIO Knob Board - KB04
* Hardware Availability: [keebmonkey.com](https://www.keebmonkey.com/products/megalodon-macro-pad-with-a-knob)
Make example for this keyboard (after setting up your build environment):
qmk compile -kb doio/kb04 -km default
Flashing example for this keyboard:
qmk flash -kb doio/kb04 -km default
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 (1! key) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

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

View File

@@ -20,7 +20,7 @@
["B1", "B10", "A8", "B15", "B14", "B13"],
["B9", "B8", "B5", "B4", "B3", "A15"],
["A3", "A4", "A5", "A6", "A7", "B0"],
["B12","A2", "A1", "A0", null, null]
["A2", "A1", "A0", "B12", null, null]
]
},
"split": {
@@ -34,7 +34,7 @@
["B13", "B14", "B15", "A8", "B10", "B1"],
["A15", "B3", "B4", "B5", "B8", "B9"],
["B0", "A7", "A6", "A5", "A4", "A3"],
["A0", "A1", "A2", "B12", null, null]
["B12", "A0", "A1", "A2", null, null]
]
}
}

View File

@@ -0,0 +1,11 @@
// Copyright 2023 gkeyboard (@gkeyboard)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define OLED_DISPLAY_128X64
#define I2C1_SCL_PIN GP21
#define I2C1_SDA_PIN GP20
#define I2C_DRIVER I2CD0
#define OLED_BRIGHTNESS 128
#define OLED_FONT_H "lib/glcdfont.c"

View File

@@ -0,0 +1,577 @@
/* Copyright 2023 gkeyboard (@gkeyboard)
*
* 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 OLED_ENABLE
uint16_t startup_timer;
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
return OLED_ROTATION_180;
}
static void render_logo(void) {
static const char PROGMEM raw_logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x02, 0x82, 0xc2,
0xe2, 0xe2, 0xe2, 0xc2, 0x82, 0x02, 0x02, 0x02, 0x02, 0x02, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2,
0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0xc2, 0xe2, 0xe2, 0xe2, 0xc2,
0x82, 0x02, 0x02, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x03, 0x07,
0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x07,
0x03, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x3e,
0x3e, 0x3e, 0x3e, 0x3e, 0x00, 0x00, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x00, 0x00, 0x3e, 0x3e, 0x3e,
0x3e, 0x3e, 0x00, 0x00, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x00, 0x00, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x9f,
0x9f, 0x9f, 0x9f, 0x9f, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x00, 0x00, 0x9f, 0x9f, 0x9f,
0x9f, 0x9f, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcf,
0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0xcf, 0xcf, 0xcf,
0xcf, 0xcf, 0x00, 0x00, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf,
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x40, 0x40, 0x40, 0x47,
0x47, 0x47, 0x47, 0x47, 0x40, 0x40, 0x47, 0x47, 0x47, 0x47, 0x47, 0x40, 0x40, 0x47, 0x47, 0x47,
0x47, 0x47, 0x40, 0x40, 0x47, 0x47, 0x47, 0x47, 0x47, 0x40, 0x40, 0x47, 0x47, 0x47, 0x47, 0x47,
0x40, 0x40, 0x40, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_logo, sizeof(raw_logo));
}
static void render_LAYER_0(void) {
static const char PROGMEM raw_LAYER_0[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_0, sizeof(raw_LAYER_0));
}
static void render_LAYER_1(void) {
static const char PROGMEM raw_LAYER_1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0,
0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_1, sizeof(raw_LAYER_1));
}
static void render_LAYER_2(void) {
static const char PROGMEM raw_LAYER_2[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
0xd8, 0xd8, 0xd8, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_2, sizeof(raw_LAYER_2));
}
static void render_LAYER_3(void) {
static const char PROGMEM raw_LAYER_3[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_3, sizeof(raw_LAYER_3));
}
static void render_LAYER_4(void) {
static const char PROGMEM raw_LAYER_4[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_4, sizeof(raw_LAYER_4));
}
static void render_LAYER_5(void) {
static const char PROGMEM raw_LAYER_5[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c,
0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_5, sizeof(raw_LAYER_5));
}
static void render_LAYER_6(void) {
static const char PROGMEM raw_LAYER_6[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
0x6d, 0x6d, 0x6d, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_6, sizeof(raw_LAYER_6));
}
static void render_LAYER_7(void) {
static const char PROGMEM raw_LAYER_7[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0,
0xb0, 0xb0, 0xb0, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
0x6d, 0x6d, 0x6d, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_7, sizeof(raw_LAYER_7));
}
static void render_LAYER_8(void) {
static const char PROGMEM raw_LAYER_8[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6,
0xb6, 0xb6, 0xb6, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
0x6d, 0x6d, 0x6d, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_8, sizeof(raw_LAYER_8));
}
static void render_LAYER_9(void) {
static const char PROGMEM raw_LAYER_9[] = {
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6,
0xb6, 0xb6, 0xb6, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
0x6d, 0x6d, 0x6d, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_9, sizeof(raw_LAYER_9));
}
static void render_LAYER_UNDEF(void) {
static const char PROGMEM raw_LAYER_UNDEF[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_UNDEF, sizeof(raw_LAYER_UNDEF));
}
/* Shows the name of the current layer and locks for the host (Cap etc.) */
static void render_info(void) {
oled_write_P(PSTR(" GreatPad\n"), false);
oled_write_P(PSTR("\n"), false);
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.caps_lock ? PSTR("Cap(x) ") : PSTR("Cap( ) "), false);
oled_write_P(led_state.num_lock ? PSTR("Num(x) ") : PSTR("Num( ) "), false);
oled_write_P(led_state.scroll_lock ? PSTR("Scrl(x)") : PSTR("Scrl( )"), false);
oled_write_P(PSTR("\n"), false);
switch (get_highest_layer(layer_state)) {
case 0:
render_LAYER_0();
break;
case 1:
render_LAYER_1();
break;
case 2:
render_LAYER_2();
break;
case 3:
render_LAYER_3();
break;
case 4:
render_LAYER_4();
break;
case 5:
render_LAYER_5();
break;
case 6:
render_LAYER_6();
break;
case 7:
render_LAYER_7();
break;
case 8:
render_LAYER_8();
break;
case 9:
render_LAYER_9();
break;
default:
render_LAYER_UNDEF();
}
}
#define SHOW_LOGO 5000
bool oled_task_kb(void) {
if (!oled_task_user()) {
return false;
}
static bool finished_timer = false;
if (!finished_timer && (timer_elapsed(startup_timer) < SHOW_LOGO)) {
render_logo();
} else {
if (!finished_timer) {
oled_clear();
finished_timer = true;
}
render_info();
}
return false;
}
#endif

View File

@@ -0,0 +1,7 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>

View File

@@ -0,0 +1,151 @@
{
"manufacturer": "gkeyboard",
"keyboard_name": "GreatPad",
"maintainer": "gkeyboard",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"dynamic_keymap": {
"layer_count": 10
},
"encoder": {
"rotary": [
{"pin_a": "GP25", "pin_b": "GP26"},
{"pin_a": "GP0", "pin_b": "GP1"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"oled": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP24", "GP23", "GP16", "GP11", "GP10"],
"rows": ["GP6", "GP5", "GP4", "GP3", "GP2"]
},
"processor": "RP2040",
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_color": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"driver": "ws2812",
"layout": [
{"matrix": [1, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [1, 1], "x": 56, "y": 0, "flags": 4},
{"matrix": [1, 2], "x": 112, "y": 0, "flags": 4},
{"matrix": [1, 3], "x": 168, "y": 0, "flags": 4},
{"matrix": [1, 4], "x": 224, "y": 0, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 21, "flags": 4},
{"matrix": [2, 1], "x": 56, "y": 21, "flags": 4},
{"matrix": [2, 2], "x": 112, "y": 21, "flags": 4},
{"matrix": [2, 3], "x": 168, "y": 21, "flags": 4},
{"matrix": [2, 4], "x": 224, "y": 21, "flags": 4},
{"matrix": [3, 0], "x": 0, "y": 43, "flags": 4},
{"matrix": [3, 1], "x": 56, "y": 43, "flags": 4},
{"matrix": [3, 2], "x": 112, "y": 43, "flags": 4},
{"matrix": [3, 3], "x": 168, "y": 43, "flags": 4},
{"matrix": [3, 4], "x": 224, "y": 43, "flags": 4},
{"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
{"matrix": [4, 1], "x": 56, "y": 64, "flags": 4},
{"matrix": [4, 2], "x": 112, "y": 64, "flags": 4},
{"matrix": [4, 3], "x": 168, "y": 64, "flags": 4},
{"matrix": [4, 4], "x": 224, "y": 64, "flags": 4},
{"x": 196, "y": 53, "flags": 2},
{"x": 196, "y": 10, "flags": 2},
{"x": 140, "y": 10, "flags": 2},
{"x": 84, "y": 10, "flags": 2},
{"x": 28, "y": 10, "flags": 2},
{"x": 28, "y": 53, "flags": 2},
{"x": 84, "y": 53, "flags": 2},
{"x": 140, "y": 53, "flags": 2}
],
"max_brightness": 170,
"sleep": true
},
"url": "https://github.com/gkeyboard/GreatPad",
"usb": {
"device_version": "1.0.0",
"pid": "0x4203",
"vid": "0x474B"
},
"ws2812": {
"driver": "vendor",
"pin": "GP22"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.5},
{"matrix": [1, 1], "x": 1, "y": 1.5},
{"matrix": [1, 2], "x": 2, "y": 1.5},
{"matrix": [1, 3], "x": 3, "y": 1.5},
{"matrix": [1, 4], "x": 4, "y": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2.5},
{"matrix": [2, 1], "x": 1, "y": 2.5},
{"matrix": [2, 2], "x": 2, "y": 2.5},
{"matrix": [2, 3], "x": 3, "y": 2.5},
{"matrix": [2, 4], "x": 4, "y": 2.5},
{"matrix": [3, 0], "x": 0, "y": 3.5},
{"matrix": [3, 1], "x": 1, "y": 3.5},
{"matrix": [3, 2], "x": 2, "y": 3.5},
{"matrix": [3, 3], "x": 3, "y": 3.5},
{"matrix": [3, 4], "x": 4, "y": 3.5},
{"matrix": [4, 0], "x": 0, "y": 4.5},
{"matrix": [4, 1], "x": 1, "y": 4.5},
{"matrix": [4, 2], "x": 2, "y": 4.5},
{"matrix": [4, 3], "x": 3, "y": 4.5},
{"matrix": [4, 4], "x": 4, "y": 4.5}
]
}
}
}

View File

@@ -0,0 +1,21 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE, RGB_TOG,
KC_P7, KC_P8, KC_P9, KC_PSLS, KC_NUM,
KC_P4, KC_P5, KC_P6, KC_PAST, KC_PGUP,
KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PGDN,
KC_P0, KC_PDOT, KC_PENT, KC_PPLS, _______
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
};
#endif

View File

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

View File

@@ -0,0 +1,21 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE, RGB_TOG,
KC_P7, KC_P8, KC_P9, KC_PSLS, KC_NUM,
KC_P4, KC_P5, KC_P6, KC_PAST, KC_PGUP,
KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PGDN,
KC_P0, KC_PDOT, KC_PENT, KC_PPLS, _______
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
};
#endif

View File

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

View File

@@ -0,0 +1,236 @@
// Copyright 2023 gkeyboard (@gkeyboard)
// SPDX-License-Identifier: GPL-2.0-or-later
// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
// See gfxfont.h for newer custom bitmap font info.
#pragma once
#include "progmem.h"
static const unsigned char PROGMEM font[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
0x94, 0xB6, 0xFF, 0xB6, 0x94, 0x00,
0x08, 0x0C, 0x7E, 0x0C, 0x08, 0x00,
0x10, 0x30, 0x7E, 0x30, 0x10, 0x00,
0x08, 0x08, 0x3E, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x3E, 0x08, 0x08, 0x00,
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
0x14, 0x3E, 0x14, 0x3E, 0x14, 0x00,
0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00,
0x20, 0x12, 0x08, 0x24, 0x02, 0x00,
0x37, 0x49, 0x49, 0x37, 0x50, 0x00,
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
0x7F, 0x51, 0x49, 0x45, 0x7F, 0x00,
0x08, 0x04, 0x02, 0x7F, 0x00, 0x00,
0x71, 0x49, 0x49, 0x49, 0x4F, 0x00,
0x41, 0x41, 0x49, 0x49, 0x77, 0x00,
0x0F, 0x10, 0x10, 0x10, 0x7F, 0x00,
0x4F, 0x49, 0x49, 0x49, 0x71, 0x00,
0x7E, 0x49, 0x49, 0x49, 0x70, 0x00,
0x01, 0x01, 0x71, 0x09, 0x07, 0x00,
0x77, 0x49, 0x49, 0x49, 0x77, 0x00,
0x07, 0x49, 0x49, 0x49, 0x3F, 0x00,
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
0x01, 0x01, 0x59, 0x09, 0x0F, 0x00,
0x7F, 0x41, 0x5D, 0x59, 0x4F, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x7F, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x76, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x41, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x7E, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x49, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x09, 0x00,
0x7F, 0x41, 0x41, 0x49, 0x7B, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
0x00, 0x00, 0x7F, 0x00, 0x00, 0x00,
0x70, 0x40, 0x40, 0x40, 0x7F, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x77, 0x00,
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
0x7F, 0x01, 0x1F, 0x01, 0x7F, 0x00,
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x0F, 0x00,
0x7F, 0x41, 0x71, 0x41, 0x7F, 0x00,
0x7F, 0x09, 0x09, 0x19, 0x6F, 0x00,
0x47, 0x49, 0x49, 0x49, 0x79, 0x00,
0x01, 0x01, 0x7F, 0x01, 0x01, 0x00,
0x7F, 0x40, 0x40, 0x40, 0x7F, 0x00,
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
0x7F, 0x40, 0x7F, 0x40, 0x7F, 0x00,
0x77, 0x08, 0x08, 0x08, 0x77, 0x00,
0x4F, 0x48, 0x48, 0x48, 0x7F, 0x00,
0x61, 0x51, 0x49, 0x45, 0x43, 0x00,
0x00, 0x7F, 0x41, 0x41, 0x00, 0x00,
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
0x00, 0x41, 0x41, 0x7F, 0x00, 0x00,
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
0x00, 0x00, 0x07, 0x08, 0x00, 0x00,
0x60, 0x54, 0x54, 0x54, 0x7C, 0x00,
0x7F, 0x44, 0x44, 0x44, 0x78, 0x00,
0x7C, 0x44, 0x44, 0x44, 0x44, 0x00,
0x78, 0x44, 0x44, 0x44, 0x7F, 0x00,
0x7C, 0x54, 0x54, 0x54, 0x5C, 0x00,
0x08, 0x7F, 0x09, 0x09, 0x09, 0x00,
0x38, 0xA4, 0xA4, 0xA4, 0xFC, 0x00,
0x7F, 0x04, 0x04, 0x04, 0x78, 0x00,
0x00, 0x00, 0x7D, 0x00, 0x00, 0x00,
0x70, 0x40, 0x40, 0x7D, 0x00, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x76, 0x00,
0x00, 0x00, 0x7F, 0x40, 0x00, 0x00,
0x7C, 0x04, 0x7C, 0x04, 0x7C, 0x00,
0x7C, 0x04, 0x04, 0x04, 0x78, 0x00,
0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00,
0xFC, 0x24, 0x24, 0x24, 0x38, 0x00,
0x38, 0x24, 0x24, 0x24, 0xFC, 0x00,
0x7C, 0x04, 0x04, 0x04, 0x04, 0x00,
0x5C, 0x54, 0x54, 0x54, 0x74, 0x00,
0x04, 0x04, 0x7F, 0x04, 0x04, 0x00,
0x7C, 0x40, 0x40, 0x40, 0x7C, 0x00,
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
0x7C, 0x40, 0x7C, 0x40, 0x7C, 0x00,
0x6C, 0x10, 0x10, 0x10, 0x6C, 0x00,
0xBC, 0xA0, 0xA0, 0xA0, 0xFC, 0x00,
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0,
0xF0, 0xFE, 0xFF, 0x9F, 0x0F, 0x0F,
0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
0x0F, 0x0F, 0x9F, 0xFF, 0xFE, 0xF0,
0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00,
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00,
0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE0, 0x10, 0x08, 0x04, 0x02, 0x02,
0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x02, 0x02, 0x02, 0x04, 0x08,
0x10, 0xE0, 0x00, 0x00, 0x00, 0x00,
0xFF, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0xFF,
0x7F, 0x51, 0x55, 0x55, 0x45, 0x7F,
0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00,
0x7F, 0x41, 0x7B, 0x77, 0x41, 0x7F,
0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00,
0x7F, 0x41, 0x5D, 0x5D, 0x5D, 0x7F,
0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00,
0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0,
0xE6, 0xF7, 0xF3, 0xF0, 0x60, 0x00,
0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00,
0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00,
0xF8, 0x1C, 0xDE, 0x1F, 0xFF, 0xFF,
0xFF, 0x1F, 0xDE, 0x1C, 0xF8, 0x00,
0xC0, 0xE2, 0xB4, 0xF8, 0xF8, 0xF8,
0xF8, 0xF8, 0xB4, 0xE2, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F,
0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
0x87, 0xE1, 0xF9, 0xF9, 0xE1, 0x87,
0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xC0, 0x30, 0x0C,
0x33, 0xC0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00,
0xFF, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x38, 0xC8, 0x08, 0x08, 0x0F,
0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00,
0x78, 0x00, 0x00, 0x7E, 0x00, 0x00,
0x24, 0x24, 0x12, 0x12, 0x24, 0x24,
0x48, 0x48, 0x24, 0x24, 0x12, 0x12,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x3F,
0x3F, 0x7F, 0x7F, 0x38, 0x10, 0x00,
0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
0x0F, 0x14, 0x21, 0x40, 0x45, 0x41,
0x45, 0x40, 0x21, 0x14, 0x0F, 0x00,
0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D,
0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x0C, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0x0C, 0x30, 0x00,
0x00, 0x00, 0x00, 0x3F, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x01, 0x02, 0x04, 0x08, 0x10, 0x10,
0x10, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x10, 0x10, 0x10, 0x08, 0x04,
0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0x0C, 0x30,
0x40, 0x00, 0x00, 0x40, 0x00, 0x00,
0x40, 0x00, 0x00, 0x40, 0x00, 0x00,
0x1C, 0x3E, 0x3E, 0x3E, 0x1C, 0x00,
0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x00,
0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

View File

@@ -0,0 +1,8 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef RP_I2C_USE_I2C0
#define RP_I2C_USE_I2C0 TRUE

View File

@@ -0,0 +1,25 @@
# GreatPad
20 Keys Custom Macro Pad, 2 Encoders, OLED 128x64, with USB Type-C, RGB underglow, RGB Per Key Lighting.
* Keyboard Maintainer: [gkeyboard](https://github.com/gkeyboard)
* Hardware Supported: GreatPad PCB
* Hardware Availability: http://www.mltelectronic.com
Make example for this keyboard (after setting up your build environment):
make gkeyboard/greatpad:default
Flashing example for this keyboard:
make gkeyboard/greatpad: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 boot button**: Hold down the boot button on RP2040 and plug in the keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

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

View File

@@ -18,7 +18,6 @@
/* joystick configuration */
#define JOYSTICK_BUTTON_COUNT 25
#define JOYSTICK_AXIS_COUNT 2
#define JOYSTICK_AXIS_RESOLUTION 10
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */

View File

@@ -1,4 +1,3 @@
#pragma once
#define JOYSTICK_AXIS_COUNT 2
#define JOYSTICK_BUTTON_COUNT 1

View File

@@ -0,0 +1,52 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "ScottoDeck",
"maintainer": "joe-scotto",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "GP2", "pin_b": "GP3"},
{"pin_a": "GP27", "pin_b": "GP28"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"direct": [
["GP9", null, null, "GP21"],
["GP7", "GP8", "GP20", "GP23"],
["GP5", "GP6", "GP26", "GP22"]
]
},
"processor": "RP2040",
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0024",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2}
]
}
}
}

View File

@@ -0,0 +1,34 @@
/*
Copyright 2024 Joe Scotto
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
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(HYPR(KC_RIGHT), HYPR(KC_LEFT)), ENCODER_CCW_CW(HYPR(KC_UP), HYPR(KC_DOWN)) }
// Encoder 1 Encoder 2
};
#endif
// Keymap
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
HYPR(KC_9), HYPR(KC_0),
HYPR(KC_5), HYPR(KC_6), HYPR(KC_7), HYPR(KC_8),
HYPR(KC_1), HYPR(KC_2), HYPR(KC_3), HYPR(KC_4)
)
};

View File

@@ -0,0 +1,27 @@
# ScottoDeck
![ScottoDeck](https://i.imgur.com/xUl70qqh.jpeg)
An 8-key macropad with two EC11 encoders designed for live streaming. Case files available [here](https://github.com/joe-scotto/scottokeebs).
* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
* Hardware Supported: ATmega32U4
* Hardware Availability: [Amazon](https://amazon.com)
Make example for this keyboard (after setting up your build environment):
make handwired/scottokeebs/scottodeck:default
Flashing example for this keyboard:
make handwired/scottokeebs/scottodeck: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**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

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

View File

@@ -0,0 +1,40 @@
{
"manufacturer": "spacehangover",
"keyboard_name": "Mercury",
"maintainer": "spacehangover",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP2", "GP3"],
"rows": ["GP4", "GP5"]
},
"processor": "RP2040",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0003",
"vid": "0x5757"
},
"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": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1}
]
}
}
}

View File

@@ -0,0 +1,11 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F13, KC_F14, KC_F15, KC_F16,
KC_F17, KC_F18, KC_F19, KC_F20
)
};

View File

@@ -0,0 +1,11 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F13, KC_F14, KC_F15, KC_F16,
KC_F17, KC_F18, KC_F19, KC_F20
)
};

View File

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

View File

@@ -0,0 +1,27 @@
# mercury
![mercury](https://i.imgur.com/flE9SPwh.jpeg)
8 Key VIA Compatible Macropad
* Keyboard Maintainer: [spacehangover](https://github.com/spacehangover)
* Hardware Supported: RP2040 Handwired
* Hardware Availability: RP2040
Make example for this keyboard (after setting up your build environment):
make handwired/wwa/mercury:default
Flashing example for this keyboard:
make handwired/wwa/mercury: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**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

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

View File

@@ -0,0 +1,55 @@
{
"manufacturer": "spacehangover",
"keyboard_name": "Soyuz",
"maintainer": "spacehangover",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6"],
"rows": ["GP7", "GP8", "GP9"]
},
"processor": "RP2040",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0004",
"vid": "0x5757"
},
"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": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2},
{"matrix": [2, 6], "x": 6, "y": 2}
]
}
}
}

View File

@@ -0,0 +1,13 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17,
KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24
)
};

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