Compare commits

...

101 Commits

Author SHA1 Message Date
Nick Brassel dccada95aa Remove debugging prints. (#24271) 2024-08-12 23:25:29 +10:00
Nick Brassel 380e0c9cad Userspace: add support for adding environment variables during build (#22887) 2024-08-12 22:34:22 +10:00
Nick Brassel 158aaef78c ChibiOS update script updates. (#24267) 2024-08-12 20:35:56 +10:00
Andrew Kannan 5acc3b2b7b Add extra compatibility to Sat75 HS PCB (#24156) 2024-08-07 14:40:31 -06:00
stephen776 78900720fd JJ50 v2 Support (#24212)
* add support for JJ50 V2 PCB

* fix bootloader config

* update mousekey setting

* run format-json

---------

Co-authored-by: Steve Jacobs <sjacobs@truefit.io>
2024-08-07 14:34:21 -06:00
Sắn c67c3d375b Add support for bunnygirl65 (#24244)
* Add support for bunnygirl65

* Update keyboard.json

* Update keymap.c

* Update keymap.c

* Update keyboards/sawnsprojects/bunnygirl65/readme.md

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

* Update keyboards/sawnsprojects/bunnygirl65/keyboard.json

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

* Update keyboards/sawnsprojects/bunnygirl65/keyboard.json

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
2024-08-07 14:28:41 -06:00
eason 75402109e9 Add Void65h (#24183) 2024-08-04 00:46:12 +01:00
Ryan fa657fef70 atlantis/ak81_ve: move RGB Matrix LED config to data driven (#24115) 2024-08-04 00:38:26 +01:00
Ryan eb78ca1c1a handwired/p65rgb: move RGB Matrix LED config to data driven (#24124) 2024-08-04 00:37:57 +01:00
Christian Greene d28a50e176 FX19 Support (#24220) 2024-08-03 23:11:49 +01:00
akyp c7662e4f36 [Keyboard] Add archerkeyboard/desire65 (#23776)
Co-authored-by: jack <0x6a73@protonmail.com>
2024-07-31 10:07:51 +10:00
Cipulot 73cb6fd89f cipulot/ec_60x: Fix VIA layout options (#24217)
This fixes the issue of one layout option not being applied correctly because it was out of bound.
2024-07-30 22:21:42 +01:00
Dasky d538451adb Remove AVR GCC version warning (#24206) 2024-07-28 19:16:15 +01:00
Dasky cf84ea7662 Fix Reverb lockup when using GCC14 (#24199) 2024-07-26 01:41:54 +01:00
Nick Brassel 8c35011d0a [CLI] Only generate files if contents change. (#24038)
Don't overwrite if the content doesn't change.
2024-07-24 06:16:51 +01:00
Joel Challis 8c5acdea12 Update to automatic-approve-action fork (#24188) 2024-07-24 04:50:38 +01:00
dependabot[bot] 60c5ad821c Bump actions/labeler from 4 to 5 (#22608)
* Bump actions/labeler from 4 to 5

Bumps [actions/labeler](https://github.com/actions/labeler) from 4 to 5.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>

* Update

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: zvecr <git@zvecr.com>
2024-07-24 00:05:50 +01:00
Ryan 622dc56250 kingly_keys/ave: adjust layout names (#24179) 2024-07-23 21:20:17 +10:00
Ryan d079372580 meme: adjust layout names (#24178) 2024-07-23 21:03:02 +10:00
Ikko Eltociear Ashimine af70e3759a [docs] update serial.md (#24182)
capabilites -> capabilities
2024-07-23 11:37:19 +01:00
Ryan 4bcc80ad46 merge/um80: reduce firmware size (#24177) 2024-07-22 17:12:55 +01:00
Ryan d09c11dc78 kprepublic/bm40hsrgb/rev2: reduce firmware size (#24176) 2024-07-22 17:12:34 +01:00
Ryan 82f9019cc9 melgeek/mojo68/rev1: reduce firmware size (#24171) 2024-07-23 01:29:40 +10:00
Ryan 4e2effc538 rubi: reduce firmware size (#24170) 2024-07-23 01:16:00 +10:00
Ryan 8d5517fa63 doro67/rgb: reduce firmware size (#24169) 2024-07-23 01:04:34 +10:00
Ryan ee1505971f handwired/hnah108: reduce firmware size (#24168) 2024-07-23 00:52:31 +10:00
yiancar b6e1a20950 Keycult TKL (#24148)
Co-authored-by: yiancar <yiancar@gmail.com>
2024-07-21 13:29:45 -07:00
Dasky f2c789bb4a Fix build failures noticed in #24163 CI log. (#24164) 2024-07-21 09:56:39 +10:00
Ryan fab50be817 mwstudio/mw75: reduce size (#24161) 2024-07-21 07:59:45 +10:00
Ryan f04fd13dff mechlovin/delphine/rgb_led: reduce size (#24160) 2024-07-21 07:57:10 +10:00
Ryan eb60235cd5 handwired/tractyl_manuform/5x6_right/arduinomicro: reduce size (#24159) 2024-07-21 07:53:04 +10:00
Joel Challis 2fb9816c77 Remove incorrect use of split.main (#24158) 2024-07-20 14:03:57 +01:00
Ryan 6fbe91aecd keychron/q2: fix RGB Matrix config for JIS variant (#24138) 2024-07-20 10:56:51 +01:00
Ryan a6857872f2 kopibeng/xt60/xt60_singa: reduce firmware size (#24149) 2024-07-19 06:56:00 +01:00
Ryan 56323f75c6 pixelspace/capsule65i: reduce firmware size (#24150) 2024-07-19 06:54:50 +01:00
Ryan 11031adc1b clueboard/66/rev3: reduce firmware size (#24152) 2024-07-19 06:53:56 +01:00
Ryan d79f46e408 vertex/angler2: reduce firmware size (#24140) 2024-07-19 08:04:40 +10:00
Ryan 2ddfd60be7 amjkeyboard/amj60: reduce firmware size (#24139) 2024-07-18 08:10:45 +01:00
Joel Challis 63ef6516d3 Avoid path issues with qmk flash on Windows (#24130) 2024-07-17 20:31:18 +01:00
yiancar 522bf1daf2 Skelett40 (#24121)
Co-authored-by: yiancar <yiancar@gmail.com>
2024-07-15 21:43:26 -07:00
Ryan a763dd5bbd matrix/noah: move RGB Matrix LED config to data driven (#24117) 2024-07-15 18:41:44 +10:00
Logan Butler c70c99367a Add matchstickworks normiepad (#23183)
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-07-14 22:29:37 -07:00
Ryan b5b06f1094 checkerboards/axon40: adjust layout name (#24119) 2024-07-15 06:04:27 +01:00
Ryan caa7599b83 checkerboards/pursuit40: adjust layout name (#24118) 2024-07-15 06:04:00 +01:00
Lex Brugman c2dbbc060a Add MMkeyboard Class60 (#22972)
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: Joel Challis <git@zvecr.com>
2024-07-14 21:58:35 -07:00
Ryan 875eb43a28 dp60: move RGB Matrix LED config to data driven (#24022) 2024-07-13 23:40:36 +10:00
Alabahuy 2908f0b846 Add Aums Work keyboard (#23600) 2024-07-13 06:24:11 -07:00
Ryan a3d938d822 ryanskidmore/rskeys100: move RGB Matrix LED config to data driven (#24114) 2024-07-13 14:19:07 +01:00
Yue Wu 6dfd7ed46f Fix i2c received value in georgi and bajjak (#24113) 2024-07-13 22:43:52 +10:00
c0ldbru 7b5d7907df adds veilid SAO macropad (#23868)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: c0ldbru <c0ldbrusec@gmail.com>
2024-07-12 19:11:00 -07:00
paradoxskin 79ad561b67 Fix typo in Keychron comments: "lcok" to "lock" (#24107) 2024-07-12 14:46:38 -06:00
Ryan 5a5f68038e mechwild/bbpad: fix build (#24106) 2024-07-12 10:35:32 +01:00
Nick Brassel 4d4d7b76b0 [CI] Disable Discord webhook when CI run is cancelled. (#24104)
* Disable Discord webhook when CI run is cancelled.

* Include link to binaries in Discord output.
2024-07-12 01:19:33 +01:00
zvecr c58c5fa8fa Fix missing hashbang 2024-07-12 01:18:50 +01:00
Nick Brassel 565bb704e0 fixup CI exec flag 2024-07-12 09:48:38 +10:00
Nick Brassel 890909c2d7 [CI] Remove via keymap builds. (#24103) 2024-07-12 09:19:04 +10:00
Nick Brassel f15fff3258 [CI] Pull full history before generating index (#24102)
For some reason the history generation is way out.
2024-07-12 00:01:20 +01:00
QMK Bot 7d94db8661 [CI] Format code according to conventions (#24100) 2024-07-12 08:58:57 +10:00
Joel Challis 063f1444c6 Add json index of files to CI uploads (#24097) 2024-07-12 08:48:43 +10:00
QMK Bot 2e671cfd8b [CI] Format code according to conventions (#24095)
Format code according to conventions
2024-07-11 14:50:39 +01:00
Nick Brassel 1b8b6801d4 [CI] Add index page generator. (#23737) 2024-07-11 14:43:26 +01:00
jack cc62eb503d [Keyboard] Add boardsource/sessenta (#23823) 2024-07-11 14:39:45 +01:00
4pplet 0c4fd514f1 Adding support for IBE60 (#24075) 2024-07-11 13:51:43 +01:00
Ryan 9be6d76c61 mt/mt64rgb: move RGB Matrix config to data driven (#24089) 2024-07-11 13:50:26 +01:00
Ryan 3d10171e2c mt/mt84: move RGB Matrix config to data driven (#24090) 2024-07-11 13:49:45 +01:00
tarxvf e3ef5b2d9d mntre_v3: fix matrix bottom row (#24077) 2024-07-11 13:46:54 +01:00
Dasky f8cf58a512 Remove a user keymap from crkbd. (#24091)
remove personal keymap
2024-07-11 13:10:28 +01:00
era efa5b30cfd [Keyboard] Add Linx3 FAve65S (#24034)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-07-10 19:50:09 -07:00
Ryan fb54a59bba jadookb/jkb65: move RGB Matrix LED config to data driven (#24080) 2024-07-10 17:09:41 -07:00
Ryan fbbc71ec34 kakunpc/rabbit_capture_plan: update keymap layout name (#24079)
`kakunpc/rabbit_capture_plan`: update keymap layout names
2024-07-08 10:27:09 -06:00
Ryan a0bb7ff992 latinpad/latin60rgb: move RGB Matrix LED config to data driven (#24076) 2024-07-08 15:57:45 +10:00
Ryan 6eb6e3048a pearlboards/zeuspad: add additional layouts (#24066) 2024-07-08 15:57:29 +10:00
Ryan d08da05cb8 mechlovin/olly/octagon: move LED Matrix LED config to data driven (#24069) 2024-07-08 15:57:13 +10:00
Ryan 8336b5c72f ash1800: add additional layouts (#24065) 2024-07-08 15:56:57 +10:00
Less/Rikki b23ddb9ad8 [keyboard] mechwild/bbpad (#24072)
* Initial bbpad commit

* refactor: bbpad

---------

Co-authored-by: Kyle McCreery <mccreery.kyle@gmail.com>
2024-07-07 13:09:48 -06:00
Lex Brugman 67d512e639 Fix enter for two ANSI layouts on the TKD Cycle7 (#24070) 2024-07-07 00:58:04 +01:00
Ryan 4fbb395602 ano: fix layout name (#24067) 2024-07-06 09:21:11 +01:00
Nick Brassel 300505bd9e [docs] Fixup home link. (#24068) 2024-07-06 16:08:55 +10:00
Ryan 38f07e1fd2 handwired/swiftrax/bumblebee: fix layout name (#24064) 2024-07-06 03:23:54 +01:00
Ryan b82f6ac402 [docs] Update RGBLight (Underglow) keycode names (#23999) 2024-07-06 11:14:09 +10:00
Ryan be967d42d2 playkbtw/pk64rgb: move RGB Matrix LED config to data driven (#24062) 2024-07-05 23:41:32 +01:00
dependabot[bot] af72a58c8f Bump JamesIves/github-pages-deploy-action from 4.6.1 to 4.6.3 (#24063)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.1 to 4.6.3.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.1...v4.6.3)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-05 23:25:48 +01:00
Ryan 9fb51cfe2b kbdfans/baguette66: fix layout name (#24061) 2024-07-05 11:57:39 +01:00
ai03 6d21898c14 Add support for Equinox XL (#23695) 2024-07-05 11:55:25 +01:00
Ryan 096dc672c1 kakunpc/rabbit_capture_plan: add additional layouts (#24059) 2024-07-05 16:35:48 +10:00
Ryan 8e64ff574a kakunpc/angel64: add additional layouts (#24058) 2024-07-05 16:35:35 +10:00
Ryan 5e2368984e ash_xiix: add additional layouts (#24057) 2024-07-05 16:35:15 +10:00
Ryan 15af5d7d0d handwired/tkk: fix layout name (#24056) 2024-07-04 23:25:00 -06:00
Ryan 62c1787d72 dc01/arrow: fix layout name (#24025) 2024-07-05 15:10:02 +10:00
Coby Sher 8fe667a1a4 Add Sleepy Craft Studios Sleepy Keeb Split (#23844) 2024-07-04 18:35:29 -07:00
Ryan 031ccd4887 salicylic_acid3/setta21: fix RGB Matrix LED config (#24041) 2024-07-05 00:49:05 +01:00
Ryan 43fc7b5a4f kikoslab/kl90: add additional layouts (#24024) 2024-07-05 00:44:23 +01:00
Ryan Neff 4ced8d9371 Fixes duplicate pid/vid for sofle_choc (#24030) 2024-07-04 13:49:55 -06:00
Cipulot 1c6cdb8d74 [Keyboard] Addition of EC 60X (#24028)
* Addition of EC 60X

* Update keyboards/cipulot/ec_60x/keymaps/via/keymap.c

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

* Update keyboards/cipulot/ec_60x/keymaps/default/keymap.c

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

* Update keyboards/cipulot/ec_60x/keyboard.json

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

* Update keyboards/cipulot/ec_60x/keyboard.json

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

* Update keyboards/cipulot/ec_60x/keyboard.json

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

* Update keyboards/cipulot/ec_60x/keyboard.json

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

* Revert "Update keyboards/cipulot/ec_60x/keyboard.json"

This reverts commit 5f49ef63cd.

* Revert "Update keyboards/cipulot/ec_60x/keyboard.json"

This reverts commit 5fb9706acd.

* revert of what was done with the layouts

* Update keyboards/cipulot/ec_60x/mcuconf.h

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-07-03 20:42:07 -06:00
chalex c663f5e9f3 [Keyboard] Add chlx lfn merro (#24026)
* add previous working files to new branch

* update config files. tested via version

* update per qmk PR requested changes - 1. rename info.json -> keyboard.json, move config.h -> keyamps/via/config.h, remove rules.mk

* update photo link for pcb

* remove redundant community keymaps

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

correct keycode for iso keys

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

* switch image url to source from imgur instead of github

---------

Co-authored-by: chalex <alejandrelee+magbogbro@gmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2024-07-03 20:40:24 -06:00
Guanzhong Chen 977918982d monsgeek/m5: make numlock and capslock LEDs work (#24027) 2024-07-03 20:38:38 -06:00
James Gzowski c2f7974c8e [Keyboard] Add Ashwing66 (#24031)
* Create hello.txt

* Add files via upload

* Create keymap.c

* Ashwing66

* Update readme.md

* Update keymap.c

* Ashwing66 addition

* Ashwing66 addition

* Changes as per request

* Changes as per request

* Changes as per request, Updated repo, fixed filenames

* 02-Jul-11:04:08
2024-07-03 20:34:17 -06:00
Nick Brassel bc8ac86422 Minimum python version listing. (#23989) 2024-07-03 22:00:53 +10:00
Ryan 33adb8cba0 vertex/arc60h: add additional layouts (#24023) 2024-07-03 20:31:49 +10:00
kopibeng e754c9f2b4 Update keymap for KLC x TGR Lena (#23688) 2024-07-03 01:38:57 -07:00
Cipulot 869b7d9ae6 Fix index EC Dolice (#24033)
* Update keyboard.json

Fixed wrong index in keyboard.json

* Small touch layout
2024-07-02 15:35:26 -06:00
308 changed files with 13256 additions and 1820 deletions
+46 -36
View File
@@ -1,46 +1,56 @@
core:
- quantum/**/*
- tmk_core/**/*
- drivers/**/*
- tests/**/*
- util/**/*
- platforms/**/*
- builddefs/**/*
- Makefile
- '*.mk'
- changed-files:
- any-glob-to-any-file:
- quantum/**
- tmk_core/**
- drivers/**
- tests/**
- util/**
- platforms/**
- builddefs/*.mk
- Makefile
- '*.mk'
dependencies:
- any:
- 'lib/**/*'
- '!lib/python/**/*'
- all:
- changed-files:
- any-glob-to-any-file: lib/**
- all-globs-to-all-files: '!lib/python/**'
keyboard:
- any:
- 'keyboards/**/*'
- '!keyboards/**/keymaps/**/*'
- all:
- changed-files:
- any-glob-to-any-file: keyboards/**
- all-globs-to-all-files: '!keyboards/**/keymaps/**'
keymap:
- users/**/*
- layouts/**/*
- keyboards/**/keymaps/**/*
- changed-files:
- any-glob-to-any-file:
- users/**
- layouts/**
- keyboards/**/keymaps/**
via:
- keyboards/**/keymaps/via/*
- changed-files:
- any-glob-to-any-file:
- keyboards/**/keymaps/via/*
cli:
- requirements.txt
- lib/python/**/*
- changed-files:
- any-glob-to-any-file:
- requirements.txt
- lib/python/**
python:
- '**/*.py'
- changed-files:
- any-glob-to-any-file:
- '**/*.py'
documentation:
- docs/**/*
translation:
- docs/fr-fr/**/*
- docs/es/**/*
- docs/ja/**/*
- docs/he-il/**/*
- docs/pt-br/**/*
- docs/zh-cn/**/*
- docs/de/**/*
- docs/ru-ru/**/*
- changed-files:
- any-glob-to-any-file:
- docs/**
- builddefs/docsgen/**
CI:
- .github/**/*
- changed-files:
- any-glob-to-any-file:
- .github/**
dd:
- data/constants/**/*
- data/mappings/**/*
- data/schemas/**/*
- changed-files:
- any-glob-to-any-file:
- data/constants/**
- data/mappings/**
- data/schemas/**
+3 -3
View File
@@ -13,8 +13,8 @@ jobs:
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: mheap/automatic-approve-action@v1
- uses: zvecr/automatic-approve-action@safe_files
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
workflows: "format.yml,lint.yml,unit_test.yml"
dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
workflows: "labeler.yml,lint.yml,docs.yml"
safe_files: "keyboards/,docs/"
+25 -9
View File
@@ -52,9 +52,9 @@ jobs:
run: |
target_count=$( {
qmk find -km default 2>/dev/null
qmk find -km via 2>/dev/null
# qmk find -km xap 2>/dev/null
} | sort | uniq | wc -l)
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution as we're splitting default and via
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution
echo "slice_length=$slice_length" >> $GITHUB_OUTPUT
build_targets:
@@ -63,7 +63,8 @@ jobs:
strategy:
fail-fast: false
matrix:
keymap: [default, via]
keymap: [default]
# keymap: [default, xap]
uses: ./.github/workflows/ci_build_major_branch_keymap.yml
with:
branch: ${{ inputs.branch || github.ref_name }}
@@ -77,44 +78,59 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Disable safe.directory check
run: |
git config --global --add safe.directory '*'
- name: Checkout QMK Firmware
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download firmwares
uses: actions/download-artifact@v4
with:
pattern: firmware-*
path: firmwares
path: .
merge-multiple: true
- name: Generate index page
run: |
python3 -m pip install -r ./util/ci/requirements.txt
./util/ci/index_generator.py > index.html
./util/ci/firmware_list_generator.py > firmware_list.json
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
env:
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
SOURCE_DIR: firmwares
SOURCE_DIR: .
DEST_DIR: ${{ inputs.branch || github.ref_name }}/${{ github.sha }}
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
env:
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
SOURCE_DIR: firmwares
SOURCE_DIR: .
DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest
- name: Check if failure marker file exists
id: check_failure_marker
uses: andstor/file-existence-action@v3
with:
files: firmwares/.failed
files: ./.failed
- name: Fail build if needed
if: steps.check_failure_marker.outputs.files_exists == 'true'
@@ -172,10 +172,10 @@ jobs:
targets-${{ inputs.keymap }}
- name: 'CI Discord Notification'
if: always()
if: always() && !cancelled()
working-directory: util/ci/
env:
DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
run: |
python3 -m pip install -r requirements.txt
python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --sha $(git rev-parse HEAD) --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+1 -1
View File
@@ -56,7 +56,7 @@ jobs:
- name: Deploy
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
uses: JamesIves/github-pages-deploy-action@v4.6.1
uses: JamesIves/github-pages-deploy-action@v4.6.3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
+5 -10
View File
@@ -1,18 +1,13 @@
name: "Pull Request Labeler"
permissions:
contents: read
pull-requests: write
on:
pull_request_target:
types: [opened, synchronize, reopened, ready_for_review, locked]
- pull_request_target
jobs:
triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: '.github/labeler.yml'
- uses: actions/labeler@v5
+2
View File
@@ -25,6 +25,8 @@
*.la
*.stackdump
*.sym
index.html
firmware_list.json
# QMK-specific
api_data/v1
+8 -5
View File
@@ -34,10 +34,13 @@ ifeq ($(strip $(DUMP_CI_METADATA)),yes)
endif
# Force expansion
TARGET := $(TARGET)
override TARGET := $(TARGET)
ifneq ($(FORCE_LAYOUT),)
TARGET := $(TARGET)_$(FORCE_LAYOUT)
override TARGET := $(TARGET)_$(FORCE_LAYOUT)
endif
ifneq ($(CONVERT_TO),)
override TARGET := $(TARGET)_$(CONVERT_TO)
endif
# Object files and generated keymap directory
@@ -58,9 +61,6 @@ ifdef SKIP_GIT
VERSION_H_FLAGS += --skip-git
endif
# Generate the board's version.h file.
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
# Determine which subfolders exist.
KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
@@ -218,6 +218,9 @@ endif
include $(BUILDDEFS_PATH)/converters.mk
# Generate the board's version.h file.
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
MCU_ORIG := $(MCU)
include $(wildcard $(PLATFORM_PATH)/*/mcu_selection.mk)
-3
View File
@@ -32,9 +32,6 @@ ifneq ($(CONVERT_TO),)
PLATFORM_KEY = $(shell echo $(CONVERTER) | cut -d "/" -f2)
# force setting as value can be from environment
override TARGET := $(TARGET)_$(CONVERT_TO)
# Configure any defaults
OPT_DEFS += -DCONVERT_TO_$(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]')
OPT_DEFS += -DCONVERTER_TARGET=\"$(CONVERT_TO)\"
+1 -1
View File
@@ -33,7 +33,7 @@ export default defineConfig(({ mode }) => {
},
title: 'QMK Firmware',
nav: [{ text: "Home", link: "./" }],
nav: [{ text: "Home", link: "/" }],
search: {
provider: "local",
+17 -6
View File
@@ -16,12 +16,6 @@
"type": "object",
"additionalProperties": {"type": "boolean"}
},
"build_target": {
"oneOf": [
{"$ref": "#/keyboard_keymap_tuple"},
{"$ref": "#/json_file_path"}
]
},
"filename": {
"type": "string",
"minLength": 1,
@@ -53,6 +47,19 @@
{"$ref": "#/keyboard"},
{"$ref": "#/filename"}
],
"minItems": 2,
"maxItems": 2,
"unevaluatedItems": false
},
"keyboard_keymap_env": {
"type": "array",
"prefixItems": [
{"$ref": "#/keyboard"},
{"$ref": "#/filename"},
{"$ref": "#/kvp_object"}
],
"minItems": 3,
"maxItems": 3,
"unevaluatedItems": false
},
"keycode": {
@@ -87,6 +94,10 @@
"maxLength": 7,
"pattern": "^[A-Z][A-Zs_0-9]*$"
},
"kvp_object": {
"type": "object",
"additionalProperties": {"type": "string"}
},
"layout_macro": {
"oneOf": [
{
+9 -1
View File
@@ -3,6 +3,14 @@
"$id": "qmk.user_repo.v1",
"title": "User Repository Information",
"type": "object",
"definitions": {
"build_target": {
"oneOf": [
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
{"$ref": "qmk.definitions.v1#/json_file_path"}
]
},
},
"required": [
"userspace_version",
"build_targets"
@@ -15,7 +23,7 @@
"build_targets": {
"type": "array",
"items": {
"$ref": "qmk.definitions.v1#/build_target"
"$ref": "#/definitions/build_target"
}
}
}
+31
View File
@@ -0,0 +1,31 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"$id": "qmk.user_repo.v1_1",
"title": "User Repository Information",
"type": "object",
"definitions": {
"build_target": {
"oneOf": [
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
{"$ref": "qmk.definitions.v1#/keyboard_keymap_env"},
{"$ref": "qmk.definitions.v1#/json_file_path"}
]
},
},
"required": [
"userspace_version",
"build_targets"
],
"properties": {
"userspace_version": {
"type": "string",
"enum": ["1.1"]
},
"build_targets": {
"type": "array",
"items": {
"$ref": "#/definitions/build_target"
}
}
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
# 'serial' Driver
The Serial driver powers the [Split Keyboard](../features/split_keyboard) feature. Several implementations are available that cater to the platform and capabilites of MCU in use. Note that none of the drivers support split keyboards with more than two halves.
The Serial driver powers the [Split Keyboard](../features/split_keyboard) feature. Several implementations are available that cater to the platform and capabilities of MCU in use. Note that none of the drivers support split keyboards with more than two halves.
| Driver | AVR | ARM | Connection between halves |
| --------------------------------------- | ------------------ | ------------------ | --------------------------------------------------------------------------------------------- |
+3 -3
View File
@@ -85,9 +85,9 @@ Your `keymap.c` will then need an encoder mapping defined (for four layers and t
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[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) },
[1] = { ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU) },
[2] = { ENCODER_CCW_CW(UG_VALD, UG_VALU), ENCODER_CCW_CW(UG_SPDD, UG_SPDU) },
[3] = { ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
};
#endif
```
+25 -23
View File
@@ -59,30 +59,32 @@ Changing the **Value** sets the overall brightness.<br>
## Keycodes
|Key |Aliases |Description |
|-------------------|----------|--------------------------------------------------------------------|
|`RGB_TOG` | |Toggle RGB lighting on or off |
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode |
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode |
|Key |Aliases |Description |
|------------------------------|----------|---------------------------------------------------------------------|
|`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off |
|`QK_UNDERGLOW_MODE_NEXT` |`UG_NEXT` |Cycle through modes, reverse direction when Shift is held |
|`QK_UNDERGLOW_MODE_PREVIOUS` |`UG_PREV` |Cycle through modes in reverse, forward direction when Shift is held |
|`QK_UNDERGLOW_HUE_UP` |`UG_HUEU` |Increase hue, decrease hue when Shift is held |
|`QK_UNDERGLOW_HUE_DOWN` |`UG_HUED` |Decrease hue, increase hue when Shift is held |
|`QK_UNDERGLOW_SATURATION_UP` |`UG_SATU` |Increase saturation, decrease saturation when Shift is held |
|`QK_UNDERGLOW_SATURATION_DOWN`|`UG_SATD` |Decrease saturation, increase saturation when Shift is held |
|`QK_UNDERGLOW_VALUE_UP` |`UG_VALU` |Increase value (brightness), decrease value when Shift is held |
|`QK_UNDERGLOW_VALUE_DOWN` |`UG_VALD` |Decrease value (brightness), increase value when Shift is held |
|`QK_UNDERGLOW_SPEED_UP` |`UG_SPDU` |Increase effect speed (brightness), decrease speed when Shift is held|
|`QK_UNDERGLOW_SPEED_DOWN` |`UG_SPDD` |Decrease effect speed (brightness), increase speed when Shift is held|
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode (deprecated) |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode (deprecated) |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode (deprecated) |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode (deprecated) |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode (deprecated) |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode (deprecated) |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode (deprecated) |
|`RGB_MODE_GRADIENT` |`RGB_M_G` |Static gradient animation mode (deprecated) |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode (deprecated) |
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode (deprecated) |
::: tip
`RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUI)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
These keycodes cannot be used with functions like `tap_code16()` as they are not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
:::
@@ -358,7 +360,7 @@ Lighting layers on split keyboards will require layer state synced to the slave
### Overriding RGB Lighting on/off status
Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `RGB_TOG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`.
Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `UG_TOGG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`.
### Retain brightness
+23 -20
View File
@@ -701,26 +701,29 @@ See also: [Dynamic Tapping Term](tap_hold#dynamic-tapping-term)
See also: [RGB Lighting](features/rgblight)
|Key |Aliases |Description |
|-------------------|----------|--------------------------------------------------------------------|
|`RGB_TOG` | |Toggle RGB lighting on or off |
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red,Green,Blue test animation mode |
|Key |Aliases |Description |
|------------------------------|----------|---------------------------------------------------------------------|
|`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off |
|`QK_UNDERGLOW_MODE_NEXT` |`UG_NEXT` |Cycle through modes, reverse direction when Shift is held |
|`QK_UNDERGLOW_MODE_PREVIOUS` |`UG_PREV` |Cycle through modes in reverse, forward direction when Shift is held |
|`QK_UNDERGLOW_HUE_UP` |`UG_HUEU` |Increase hue, decrease hue when Shift is held |
|`QK_UNDERGLOW_HUE_DOWN` |`UG_HUED` |Decrease hue, increase hue when Shift is held |
|`QK_UNDERGLOW_SATURATION_UP` |`UG_SATU` |Increase saturation, decrease saturation when Shift is held |
|`QK_UNDERGLOW_SATURATION_DOWN`|`UG_SATD` |Decrease saturation, increase saturation when Shift is held |
|`QK_UNDERGLOW_VALUE_UP` |`UG_VALU` |Increase value (brightness), decrease value when Shift is held |
|`QK_UNDERGLOW_VALUE_DOWN` |`UG_VALD` |Decrease value (brightness), increase value when Shift is held |
|`QK_UNDERGLOW_SPEED_UP` |`UG_SPDU` |Increase effect speed (brightness), decrease speed when Shift is held|
|`QK_UNDERGLOW_SPEED_DOWN` |`UG_SPDD` |Decrease effect speed (brightness), increase speed when Shift is held|
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode (deprecated) |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode (deprecated) |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode (deprecated) |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode (deprecated) |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode (deprecated) |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode (deprecated) |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode (deprecated) |
|`RGB_MODE_GRADIENT` |`RGB_M_G` |Static gradient animation mode (deprecated) |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode (deprecated) |
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode (deprecated) |
## RGB Matrix Lighting {#rgb-matrix-lighting}
+94
View File
@@ -0,0 +1,94 @@
{
"manufacturer": "4pplet",
"keyboard_name": "IBE60 Rev A",
"maintainer": "4pplet",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"key_lock": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["B2", "A5", "A4", "A3", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"],
"rows": ["B14", "A9", "B6", "B5", "B4"]
},
"processor": "STM32F072",
"usb": {
"device_version": "0.0.1",
"pid": "0x0001",
"vid": "0x4448"
},
"indicators": {
"caps_lock": "A8"
},
"community_layouts": ["60_hhkb"],
"layouts": {
"LAYOUT_60_hhkb": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 9], "x": 11, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 10], "x": 12.5, "y": 4}
]
}
}
}
@@ -0,0 +1,34 @@
/*
Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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] = {
// main layer
[0] = LAYOUT_60_hhkb(
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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),
// basic function layer
[1] = LAYOUT_60_hhkb(
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};
@@ -0,0 +1,35 @@
/*
Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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] = {
// main layer
[0] = LAYOUT_60_hhkb(
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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),
// basic function layer
[1] = LAYOUT_60_hhkb(
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};
@@ -0,0 +1 @@
VIA_ENABLE = yes
+24
View File
@@ -0,0 +1,24 @@
# IBE60
PCB mounted 60% PCB for the IBE60 in fixed true HHKB layout
* Keyboard Maintainer: [Stefan Sundin](https://github.com/4pplet)
* Hardware Supported: IBE60 Solder PCB
Make example for this keyboard (after setting up your build environment):
make 4pplet/ibe60:default
Flashing example for this keyboard:
make 4pplet/ibe60: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 Escape key and plug in the keyboard
* **Physical reset button**: Short the reset-header (labled BL/RESET) on the back of the PCB for about 2 seconds for the keyboard to enter bootloader
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+2
View File
@@ -0,0 +1,2 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -p FFFF -v FFFF
+89
View File
@@ -0,0 +1,89 @@
{
"manufacturer": "ai03 Design Studio",
"keyboard_name": "Equinox XL",
"maintainer": "ai03",
"bootloader": "atmel-dfu",
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"indicators": {
"caps_lock": "F1",
"on_state": 0
},
"matrix_pins": {
"cols": ["F5", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1", "D0"],
"rows": ["B7", "F4", "F6", "F7"]
},
"processor": "atmega32u4",
"url": "https://ai03.com/projects/equinox-xl/",
"usb": {
"device_version": "0.0.1",
"pid": "0x0020",
"vid": "0xA103"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
{"matrix": [0, 1], "x": 1.5, "y": 0},
{"matrix": [0, 2], "x": 2.5, "y": 0},
{"matrix": [0, 3], "x": 3.5, "y": 0},
{"matrix": [0, 4], "x": 4.5, "y": 0},
{"matrix": [0, 5], "x": 5.5, "y": 0},
{"matrix": [0, 6], "x": 6.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.5, "y": 0},
{"matrix": [0, 10], "x": 10.5, "y": 0},
{"matrix": [0, 11], "x": 11.5, "y": 0},
{"matrix": [0, 12], "x": 12.5, "y": 0},
{"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
{"matrix": [1, 1], "x": 1.75, "y": 1},
{"matrix": [1, 2], "x": 2.75, "y": 1},
{"matrix": [1, 3], "x": 3.75, "y": 1},
{"matrix": [1, 4], "x": 4.75, "y": 1},
{"matrix": [1, 5], "x": 5.75, "y": 1},
{"matrix": [1, 6], "x": 6.75, "y": 1},
{"matrix": [1, 7], "x": 7.75, "y": 1},
{"matrix": [1, 8], "x": 8.75, "y": 1},
{"matrix": [1, 9], "x": 9.75, "y": 1},
{"matrix": [1, 10], "x": 10.75, "y": 1},
{"matrix": [1, 11], "x": 11.75, "y": 1},
{"matrix": [1, 13], "x": 12.75, "y": 1, "w": 2.25},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
{"matrix": [2, 1], "x": 1.25, "y": 2},
{"matrix": [2, 2], "x": 2.25, "y": 2},
{"matrix": [2, 3], "x": 3.25, "y": 2},
{"matrix": [2, 4], "x": 4.25, "y": 2},
{"matrix": [2, 5], "x": 5.25, "y": 2},
{"matrix": [2, 6], "x": 6.25, "y": 2},
{"matrix": [2, 7], "x": 7.25, "y": 2},
{"matrix": [2, 8], "x": 8.25, "y": 2},
{"matrix": [2, 9], "x": 9.25, "y": 2},
{"matrix": [2, 10], "x": 10.25, "y": 2},
{"matrix": [2, 11], "x": 11.25, "y": 2},
{"matrix": [2, 12], "x": 12.25, "y": 2, "w": 1.75},
{"matrix": [2, 13], "x": 14, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [3, 1], "x": 1.5, "y": 3},
{"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.5},
{"matrix": [3, 5], "x": 4, "y": 3, "w": 3},
{"matrix": [3, 7], "x": 7, "y": 3},
{"matrix": [3, 9], "x": 8, "y": 3, "w": 3},
{"matrix": [3, 11], "x": 11, "y": 3, "w": 1.5},
{"matrix": [3, 12], "x": 12.5, "y": 3},
{"matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.5}
]
}
}
}
@@ -0,0 +1,15 @@
// Copyright 2024 ai03
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_GRV,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
};
@@ -0,0 +1,15 @@
// Copyright 2024 ai03
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_GRV,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
};
@@ -0,0 +1 @@
VIA_ENABLE = yes
+28
View File
@@ -0,0 +1,28 @@
# Equinox XL
![Cover image](https://i.imgur.com/sQpe0Zv.jpg)
A numrowless 50% keyboard
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
* Hardware Supported: The Equinox XL PCB, powered by the Atmega32u4
* Hardware Availability: Available via group buy
Make example for this keyboard (after setting up your build environment):
make ai03/equinox_xl:default
Flashing example for this keyboard:
make ai03/equinox_xl:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Press the reset button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
@@ -120,7 +120,6 @@
"matrix": [4, 7]
},
"enabled": true,
"main": "matrix_grid",
"matrix_pins": {
"right": {
"cols": ["GP7", "GP8", "GP9", "GP11", "GP12", "GP13", "GP14", "GP15"],
+2 -3
View File
@@ -11,8 +11,8 @@
"features": {
"backlight": true,
"bootmagic": false,
"command": true,
"console": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": false,
"nkro": true,
@@ -45,7 +45,6 @@
"knight": true,
"christmas": true,
"static_gradient": true,
"rgb_test": true,
"alternating": true,
"twinkle": true
}
+4 -1
View File
@@ -36,8 +36,11 @@
},
"processor": "STM32F303",
"bootloader": "stm32-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
+2 -2
View File
@@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MEDIA_PLAY_PAUSE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_B,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS,
@@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_all(
[1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -0,0 +1,192 @@
{
"manufacturer": "archerkeyboard",
"keyboard_name": "desire65",
"maintainer": "akyp",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"indicators": {
"caps_lock": "GP18"
},
"matrix_pins": {
"cols": ["GP21", "GP29", "GP1", "GP0", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP2", "GP5", "GP4", "GP3"],
"rows": ["GP24", "GP25", "GP19", "GP16", "GP17"]
},
"processor": "RP2040",
"rgblight": {
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"static_gradient": true,
"twinkle": true
},
"default": {
"animation": "rainbow_mood",
"val": 128
},
"driver": "ws2812",
"led_count": 17,
"sleep": true
},
"url": "https://archerkeyboard.com",
"usb": {
"device_version": "0.0.1",
"pid": "0x0002",
"vid": "0x0361"
},
"ws2812": {
"driver": "vendor",
"pin": "GP26"
},
"community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"],
"layouts": {
"LAYOUT_65_ansi_blocker_tsangan": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
{"label": "Home", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 12], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 13], "x": 12.5, "y": 1},
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
{"label": "End", "matrix": [1, 15], "x": 15, "y": 1},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
{"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 11], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 12], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
{"label": "PgUp", "matrix": [2, 15], "x": 15, "y": 2},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Up", "matrix": [3, 14], "x": 14, "y": 3},
{"label": "PgDn", "matrix": [3, 15], "x": 15, "y": 3},
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "Left", "matrix": [4, 13], "x": 13, "y": 4},
{"label": "Down", "matrix": [4, 14], "x": 14, "y": 4},
{"label": "Right", "matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_tsangan_split_bs": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"label": "Home", "matrix": [0, 15], "x": 15, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 12], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 13], "x": 12.5, "y": 1},
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
{"label": "End", "matrix": [1, 15], "x": 15, "y": 1},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
{"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 11], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 12], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
{"label": "PgUp", "matrix": [2, 15], "x": 15, "y": 2},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Up", "matrix": [3, 14], "x": 14, "y": 3},
{"label": "PgDn", "matrix": [3, 15], "x": 15, "y": 3},
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "Left", "matrix": [4, 13], "x": 13, "y": 4},
{"label": "Down", "matrix": [4, 14], "x": 14, "y": 4},
{"label": "Right", "matrix": [4, 15], "x": 15, "y": 4}
]
}
}
}
@@ -0,0 +1,24 @@
// Copyright 2024 ArcherKeyboard (archerkeyboard2022@gmail.com)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______,
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
),
};
@@ -0,0 +1,24 @@
// Copyright 2024 ArcherKeyboard (archerkeyboard2022@gmail.com)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______,
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
),
};
@@ -0,0 +1 @@
VIA_ENABLE = yes
@@ -0,0 +1,27 @@
# desire65
![desire65](https://i.imgur.com/bTjvGzC.jpg)
A desirable 65% keyboard
* Keyboard Maintainer: [ArcherKeyboard](https://github.com/akyp)
* Hardware Supported: Desire65 PCB
* Hardware Availability: [Open source on GitHub](https://github.com/akyp/desire65-pcb)
Make example for this keyboard (after setting up your build environment):
make archerkeyboard/desire65:default
Flashing example for this keyboard:
make archerkeyboard/desire65: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**: Hold the "USB_BOOT" button on the back of the PCB (the one closest to the MCU) and briefly press the "RESET" button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+492
View File
@@ -155,6 +155,498 @@
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [2, 9], "x": 12.75, "y": 4},
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 5},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_iso_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [2, 9], "x": 12.75, "y": 4},
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 5},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
+26
View File
@@ -0,0 +1,26 @@
# Matrix Diagram for ASH1800
```
┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
│00 ││01 │02 │03 │60 ││61 │62 │63 │04 ││05 │06 │07 │08 │ │54 │55 │56 │57 │
└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ ├───┼───┼───┼───┤
│64 │65 │66 │67 │
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ├───┼───┼───┼───┤
│10 │11 │12 │13 │70 │71 │72 │73 │14 │15 │16 │17 │18 │19 │ │74 │75 │76 │77 │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ ┌─────┐
│20 │21 │22 │23 │80 │81 │82 │83 │24 │25 │26 │27 │28 │29 │ │84 │85 │86 │87 │ │38 │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┼───┤ ┌──┴┐ │ ISO Enter
│30 │31 │32 │33 │90 │91 │92 │93 │34 │35 │36 │37 │38 │ │94 │95 │96 │97 │ │29 │ │
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ └───┴────┘
│40 │41 │42 │43 │A0 │A1 │A2 │A3 │44 │45 │46 │47 │48 │┌───┐│A4 │A5 │A6 │A7 │
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│A9 │└───┼───┼───┤ │
│50 │51 │52 │53 │B4 │B7 │┌───┼───┼───┐│B5 │B6 │ │
└────┴────┴────┴────────────────────────┴─────┴─────┘│A8 │B8 │B9 │└───┴───┴───┘
└───┴───┴───┘
┌────────┐
│40 │ 2.25u LShift
└────────┘
┌─────┬─────┬───────────────────────────┬─────┬─────┐
│50 │51 │53 │B4 │B7 │ WKL
└─────┴─────┴───────────────────────────┴─────┴─────┘
```
+492
View File
@@ -156,6 +156,498 @@
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [2, 9], "x": 12.75, "y": 4},
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 5},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_iso_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [2, 9], "x": 12.75, "y": 4},
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 5},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
+26
View File
@@ -0,0 +1,26 @@
# Matrix Diagram for ASH-XIIX
```
┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
│00 ││01 │02 │03 │60 ││61 │62 │63 │04 ││05 │06 │07 │08 │ │54 │55 │56 │57 │
└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ ├───┼───┼───┼───┤
│64 │65 │66 │67 │
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ├───┼───┼───┼───┤
│10 │11 │12 │13 │70 │71 │72 │73 │14 │15 │16 │17 │18 │19 │ │74 │75 │76 │77 │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ ┌─────┐
│20 │21 │22 │23 │80 │81 │82 │83 │24 │25 │26 │27 │28 │29 │ │84 │85 │86 │87 │ │38 │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┼───┤ ┌──┴┐ │ ISO Enter
│30 │31 │32 │33 │90 │91 │92 │93 │34 │35 │36 │37 │38 │ │94 │95 │96 │97 │ │29 │ │
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ └───┴────┘
│40 │41 │42 │43 │A0 │A1 │A2 │A3 │44 │45 │46 │47 │48 │┌───┐│A4 │A5 │A6 │A7 │
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│A9 │└───┼───┼───┤ │
│50 │51 │52 │53 │B4 │B7 │┌───┼───┼───┐│B5 │B6 │ │
└────┴────┴────┴────────────────────────┴─────┴─────┘│A8 │B8 │B9 │└───┴───┴───┘
└───┴───┴───┘
┌────────┐
│40 │ 2.25u LShift
└────────┘
┌─────┬─────┬───────────────────────────┬─────┬─────┐
│50 │51 │53 │B4 │B7 │ WKL
└─────┴─────┴───────────────────────────┴─────┴─────┘
```
+6
View File
@@ -0,0 +1,6 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define ENCODER_MAP_KEY_DELAY 10
#define ENCODER_DEFAULT_POS 0x3
+166
View File
@@ -0,0 +1,166 @@
{
"manufacturer": "gzowski",
"keyboard_name": "Ashwing66",
"maintainer": "gzowski",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "GP12", "pin_b": "GP11"}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP14", "GP15", "GP16", "GP17", "GP19", "GP20", "GP21", "GP22", "GP26", "GP27"],
"rows": ["GP28", "GP8", "GP9", "GP10", "GP13"]
},
"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,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 16, "y": 1, "flags": 4},
{"matrix": [0, 2], "x": 33, "y": 2, "flags": 4},
{"matrix": [0, 3], "x": 49, "y": 4, "flags": 4},
{"matrix": [0, 4], "x": 65, "y": 7, "flags": 4},
{"matrix": [0, 5], "x": 81, "y": 11, "flags": 4},
{"matrix": [3, 6], "x": 86, "y": 39, "flags": 4},
{"matrix": [4, 6], "x": 81, "y": 56, "flags": 4},
{"matrix": [4, 7], "x": 96, "y": 63, "flags": 4},
{"matrix": [4, 8], "x": 126, "y": 63, "flags": 4},
{"matrix": [4, 9], "x": 141, "y": 56, "flags": 4},
{"matrix": [3, 9], "x": 136, "y": 39, "flags": 4},
{"matrix": [0, 10], "x": 141, "y": 11, "flags": 4},
{"matrix": [0, 11], "x": 157, "y": 7, "flags": 4},
{"matrix": [0, 12], "x": 173, "y": 4, "flags": 4},
{"matrix": [0, 13], "x": 189, "y": 2, "flags": 4},
{"matrix": [0, 14], "x": 206, "y": 1, "flags": 4},
{"matrix": [0, 15], "x": 223, "y": 0, "flags": 4}
],
"led_flush_limit": 16,
"led_process_limit": 5,
"max_brightness": 125,
"sleep": true
},
"url": "https://github.com/gzowski",
"usb": {
"device_version": "1.0.0",
"pid": "0x6F64",
"vid": "0x7372"
},
"ws2812": {
"driver": "vendor",
"pin": "GP0"
},
"layouts": {
"LAYOUT_5x16": {
"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, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "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, 10], "x": 10, "y": 1},
{"matrix": [1, 11], "x": 11, "y": 1},
{"matrix": [1, 12], "x": 12, "y": 1},
{"matrix": [1, 13], "x": 13, "y": 1},
{"matrix": [1, 14], "x": 14, "y": 1},
{"matrix": [1, 15], "x": 15, "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, 10], "x": 10, "y": 2},
{"matrix": [2, 11], "x": 11, "y": 2},
{"matrix": [2, 12], "x": 12, "y": 2},
{"matrix": [2, 13], "x": 13, "y": 2},
{"matrix": [2, 14], "x": 14, "y": 2},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 5], "x": 5, "y": 3},
{"matrix": [3, 6], "x": 6, "y": 3},
{"matrix": [3, 8], "x": 8, "y": 3},
{"matrix": [3, 9], "x": 9, "y": 3},
{"matrix": [3, 10], "x": 10, "y": 3},
{"matrix": [3, 11], "x": 11, "y": 3},
{"matrix": [3, 12], "x": 12, "y": 3},
{"matrix": [3, 13], "x": 13, "y": 3},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [4, 4], "x": 4, "y": 4},
{"matrix": [4, 5], "x": 5, "y": 4},
{"matrix": [4, 6], "x": 6, "y": 4},
{"matrix": [4, 7], "x": 7, "y": 4},
{"matrix": [4, 8], "x": 8, "y": 4},
{"matrix": [4, 9], "x": 9, "y": 4},
{"matrix": [4, 10], "x": 10, "y": 4},
{"matrix": [4, 11], "x": 11, "y": 4},
{"matrix": [4, 12], "x": 12, "y": 4},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
}
}
}
@@ -0,0 +1,41 @@
// Copyright 2023 James GzowskiMO(_LAYERB)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layer {
_LAYERA,
_LAYERB,
_LAYERC,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LAYERA] = LAYOUT_5x16(
KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_GRV ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_MINS ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
),
[_LAYERB] = LAYOUT_5x16(
KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_LBRC,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
),
[_LAYERC] = LAYOUT_5x16(
KC_ESC ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_GRV ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_UP ,KC_O ,KC_P ,KC_EQL ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_F11 ,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_F12
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
[_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
};
#endif
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
+41
View File
@@ -0,0 +1,41 @@
// Copyright 2023 James GzowskiMO(_LAYERB)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layer {
_LAYERA,
_LAYERB,
_LAYERC,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LAYERA] = LAYOUT_5x16(
KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_GRV ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_MINS ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
),
[_LAYERB] = LAYOUT_5x16(
KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_LBRC,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
),
[_LAYERC] = LAYOUT_5x16(
KC_ESC ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_GRV ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_UP ,KC_O ,KC_P ,KC_EQL ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_F11 ,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_F12
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
[_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
};
#endif
+2
View File
@@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes
+23
View File
@@ -0,0 +1,23 @@
# Ashwing66
66 key winged unibody split
* Keyboard Maintainer: [James Gzowski](https://github.com/gzowski)
* Hardware Supported: Pi Pico or equivilent
* Build Guide: [Ashwing66](https://github.com/gzowski/Ashwing66)
Make example for this keyboard (after setting up your build environment):
make ashwing66:default
Flashing example for this keyboard:
make ashwing66: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
* **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 PCB, if using a RP2040 press repeatidly to enter boot mode.
* **Hold down boot loader button on MCU** Hold down the boot loader button on the MCU while plugging in the keyboard
-30
View File
@@ -16,36 +16,6 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
// Key Matrix to LED Index
{ 12, 11, 10, 9, 8, 7, 6, 5, 4, NO_LED, 3, 2, 1, 0 }, // 13 keys
{ 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13 }, // 15 keys
{ 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28 }, // 15 keys
{ 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED, 43 }, // 14 keys
{ 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, NO_LED, 58, 57 }, // 14 keys
{ 79, 78, 77, NO_LED, NO_LED, NO_LED, 76, NO_LED, NO_LED, NO_LED, 75, 74, 73, 72, 71 } // 9 keys
}, {
// LED Index to Physical Positon
{ 240, 0 }, { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 32, 0 },
{ 240, 13 }, { 224, 13 }, { 208, 13 }, { 192 , 13 }, { 176, 13 }, { 160, 13 }, { 144, 13 }, { 128, 13 }, { 112, 13 }, { 96, 13 }, { 80, 13 }, { 64, 13}, { 48, 13 }, { 32, 13 }, { 16, 13 },
{ 240, 26 }, { 224, 26 }, { 208, 26 }, { 192 , 26 }, { 176, 26 }, { 160, 26 }, { 144, 26 }, { 128, 26 }, { 112, 26 }, { 96, 26 }, { 80, 26 }, { 64, 26}, { 48, 26 }, { 32, 26 }, { 16, 26 },
{ 240, 39 }, { 216, 39 }, { 192 , 39 }, { 176, 39 }, { 160, 39 }, { 144, 39 }, { 128, 39 }, { 112, 39 }, { 96, 39 }, { 80, 39 }, { 64, 39}, { 48, 39 }, { 32, 39 }, { 16, 39 },
{ 240, 52 }, { 224, 52 }, { 208, 52 }, { 192 , 52 }, { 176, 52 }, { 160, 52 }, { 144, 52 }, { 128, 52 }, { 112, 52 }, { 96, 52 }, { 80, 52 }, { 64, 52}, { 48, 52 }, { 24, 52 },
{ 240, 64 }, { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 112, 64 }, { 48, 64 }, { 32, 64 }, { 16, 64 },
{ 0, 26 }, { 0, 46 }, { 0, 64 }, { 48, 64 }, { 72, 64 }, { 104, 64 }, { 136, 64 }, { 168, 64 }, { 208, 64 }, { 232, 58 }, { 232, 45 }, { 232, 32 }, { 232, 20 }, { 232, 7 }, { 176, 0 }, { 112, 0 }
}, {
// LED Index to Flag
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
} };
#endif
#if defined(ENCODER_ENABLE) && !defined(ENCODER_MAP_ENABLE)
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) {
+117 -1
View File
@@ -58,7 +58,123 @@
},
"driver": "ws2812",
"max_brightness": 130,
"sleep": true
"sleep": true,
"layout": [
{"matrix": [0, 13], "x": 193, "y": 0, "flags": 4},
{"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
{"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
{"matrix": [0, 10], "x": 152, "y": 0, "flags": 4},
{"matrix": [0, 8], "x": 131, "y": 0, "flags": 4},
{"matrix": [0, 7], "x": 117, "y": 0, "flags": 4},
{"matrix": [0, 6], "x": 103, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 90, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 55, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 41, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 28, "y": 0, "flags": 4},
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
{"matrix": [1, 14], "x": 224, "y": 12, "flags": 1},
{"matrix": [1, 13], "x": 186, "y": 12, "flags": 1},
{"matrix": [1, 12], "x": 165, "y": 12, "flags": 4},
{"matrix": [1, 11], "x": 152, "y": 12, "flags": 4},
{"matrix": [1, 10], "x": 138, "y": 12, "flags": 4},
{"matrix": [1, 9], "x": 124, "y": 12, "flags": 4},
{"matrix": [1, 8], "x": 110, "y": 12, "flags": 4},
{"matrix": [1, 7], "x": 96, "y": 12, "flags": 4},
{"matrix": [1, 6], "x": 83, "y": 12, "flags": 4},
{"matrix": [1, 5], "x": 69, "y": 12, "flags": 4},
{"matrix": [1, 4], "x": 55, "y": 12, "flags": 4},
{"matrix": [1, 3], "x": 41, "y": 12, "flags": 4},
{"matrix": [1, 2], "x": 28, "y": 12, "flags": 4},
{"matrix": [1, 1], "x": 14, "y": 12, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
{"matrix": [2, 14], "x": 224, "y": 24, "flags": 1},
{"matrix": [2, 13], "x": 190, "y": 24, "flags": 1},
{"matrix": [2, 12], "x": 172, "y": 24, "flags": 4},
{"matrix": [2, 11], "x": 159, "y": 24, "flags": 4},
{"matrix": [2, 10], "x": 145, "y": 24, "flags": 4},
{"matrix": [2, 9], "x": 131, "y": 24, "flags": 4},
{"matrix": [2, 8], "x": 117, "y": 24, "flags": 4},
{"matrix": [2, 7], "x": 103, "y": 24, "flags": 4},
{"matrix": [2, 6], "x": 90, "y": 24, "flags": 4},
{"matrix": [2, 5], "x": 76, "y": 24, "flags": 4},
{"matrix": [2, 4], "x": 62, "y": 24, "flags": 4},
{"matrix": [2, 3], "x": 48, "y": 24, "flags": 4},
{"matrix": [2, 2], "x": 34, "y": 24, "flags": 4},
{"matrix": [2, 1], "x": 21, "y": 24, "flags": 4},
{"matrix": [2, 0], "x": 3, "y": 24, "flags": 1},
{"matrix": [3, 14], "x": 224, "y": 37, "flags": 1},
{"matrix": [3, 12], "x": 184, "y": 37, "flags": 1},
{"matrix": [3, 11], "x": 162, "y": 37, "flags": 4},
{"matrix": [3, 10], "x": 148, "y": 37, "flags": 4},
{"matrix": [3, 9], "x": 134, "y": 37, "flags": 4},
{"matrix": [3, 8], "x": 121, "y": 37, "flags": 4},
{"matrix": [3, 7], "x": 107, "y": 37, "flags": 4},
{"matrix": [3, 6], "x": 93, "y": 37, "flags": 4},
{"matrix": [3, 5], "x": 79, "y": 37, "flags": 4},
{"matrix": [3, 4], "x": 65, "y": 37, "flags": 4},
{"matrix": [3, 3], "x": 52, "y": 37, "flags": 4},
{"matrix": [3, 2], "x": 38, "y": 37, "flags": 4},
{"matrix": [3, 1], "x": 24, "y": 37, "flags": 4},
{"matrix": [3, 0], "x": 5, "y": 37, "flags": 1},
{"matrix": [4, 14], "x": 224, "y": 49, "flags": 1},
{"matrix": [4, 13], "x": 196, "y": 52, "flags": 4},
{"matrix": [4, 11], "x": 174, "y": 49, "flags": 1},
{"matrix": [4, 10], "x": 155, "y": 49, "flags": 4},
{"matrix": [4, 9], "x": 141, "y": 49, "flags": 4},
{"matrix": [4, 8], "x": 128, "y": 49, "flags": 4},
{"matrix": [4, 7], "x": 114, "y": 49, "flags": 4},
{"matrix": [4, 6], "x": 100, "y": 49, "flags": 4},
{"matrix": [4, 5], "x": 86, "y": 49, "flags": 4},
{"matrix": [4, 4], "x": 72, "y": 49, "flags": 4},
{"matrix": [4, 3], "x": 59, "y": 49, "flags": 4},
{"matrix": [4, 2], "x": 45, "y": 49, "flags": 4},
{"matrix": [4, 1], "x": 31, "y": 49, "flags": 4},
{"matrix": [4, 0], "x": 9, "y": 49, "flags": 1},
{"matrix": [5, 14], "x": 210, "y": 64, "flags": 4},
{"matrix": [5, 13], "x": 196, "y": 64, "flags": 4},
{"matrix": [5, 12], "x": 183, "y": 64, "flags": 4},
{"matrix": [5, 11], "x": 157, "y": 61, "flags": 1},
{"matrix": [5, 10], "x": 140, "y": 61, "flags": 1},
{"matrix": [5, 6], "x": 88, "y": 61, "flags": 4},
{"matrix": [5, 2], "x": 36, "y": 61, "flags": 1},
{"matrix": [5, 1], "x": 19, "y": 61, "flags": 1},
{"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
{"x": 28, "y": 61, "flags": 2},
{"x": 56, "y": 61, "flags": 2},
{"x": 79, "y": 61, "flags": 2},
{"x": 107, "y": 61, "flags": 2},
{"x": 128, "y": 61, "flags": 2},
{"x": 170, "y": 61, "flags": 2},
{"x": 220, "y": 55, "flags": 2},
{"x": 220, "y": 43, "flags": 2},
{"x": 220, "y": 30, "flags": 2},
{"x": 220, "y": 18, "flags": 2},
{"x": 220, "y": 6, "flags": 2},
{"x": 141, "y": 0, "flags": 2},
{"x": 79, "y": 0, "flags": 2},
{"x": 0, "y": 24, "flags": 2},
{"x": 0, "y": 43, "flags": 2},
{"x": 0, "y": 61, "flags": 2}
]
},
"build": {
"lto": true
+1 -1
View File
@@ -146,7 +146,7 @@ static matrix_row_t read_cols(uint8_t row) {
// reading GPIOB (column port) since in mcp23018's sequential mode
// it is addressed directly after writing to GPIOA in select_row()
mcp23018_status = i2c_receive(I2C_ADDR, &data, 1, BAJJAK_EZ_I2C_TIMEOUT);
return data;
return ~data;
}
} else {
/* read from teensy
@@ -0,0 +1,255 @@
{
"manufacturer": "Boardsource",
"keyboard_name": "Sessanta",
"maintainer": "waffle87",
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "D3"],
"rows": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"band_sat": true,
"band_val": true,
"breathing": true,
"gradient_left_right": true
},
"driver": "ws2812",
"layout": [
{"x": 224, "y": 4, "flags": 2},
{"x": 156, "y": 0, "flags": 2},
{"x": 82, "y": 0, "flags": 2},
{"x": 13, "y": 4, "flags": 2},
{"x": 24, "y": 50, "flags": 2},
{"x": 68, "y": 52, "flags": 2},
{"x": 121, "y": 52, "flags": 2},
{"x": 220, "y": 52, "flags": 2},
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
{"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
{"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
{"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
{"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
{"matrix": [1, 0], "x": 134, "y": 0, "flags": 4},
{"matrix": [1, 1], "x": 149, "y": 0, "flags": 4},
{"matrix": [1, 2], "x": 164, "y": 0, "flags": 4},
{"matrix": [1, 3], "x": 179, "y": 0, "flags": 4},
{"matrix": [1, 4], "x": 202, "y": 0, "flags": 1},
{"matrix": [1, 5], "x": 4, "y": 16, "flags": 1},
{"matrix": [1, 6], "x": 22, "y": 16, "flags": 4},
{"matrix": [1, 7], "x": 37, "y": 16, "flags": 4},
{"matrix": [1, 8], "x": 52, "y": 16, "flags": 4},
{"matrix": [2, 0], "x": 67, "y": 16, "flags": 4},
{"matrix": [2, 1], "x": 82, "y": 16, "flags": 4},
{"matrix": [2, 2], "x": 97, "y": 16, "flags": 4},
{"matrix": [2, 3], "x": 112, "y": 16, "flags": 4},
{"matrix": [2, 4], "x": 127, "y": 16, "flags": 4},
{"matrix": [2, 5], "x": 142, "y": 16, "flags": 4},
{"matrix": [2, 6], "x": 157, "y": 16, "flags": 4},
{"matrix": [2, 7], "x": 172, "y": 16, "flags": 4},
{"matrix": [2, 8], "x": 187, "y": 16, "flags": 4},
{"matrix": [3, 0], "x": 205, "y": 16, "flags": 1},
{"matrix": [3, 1], "x": 6, "y": 32, "flags": 1},
{"matrix": [3, 2], "x": 26, "y": 32, "flags": 4},
{"matrix": [3, 3], "x": 41, "y": 32, "flags": 4},
{"matrix": [3, 4], "x": 56, "y": 32, "flags": 4},
{"matrix": [3, 5], "x": 71, "y": 32, "flags": 4},
{"matrix": [3, 6], "x": 86, "y": 32, "flags": 4},
{"matrix": [3, 7], "x": 101, "y": 32, "flags": 4},
{"matrix": [3, 8], "x": 116, "y": 32, "flags": 4},
{"matrix": [4, 0], "x": 131, "y": 32, "flags": 4},
{"matrix": [4, 1], "x": 146, "y": 32, "flags": 4},
{"matrix": [4, 2], "x": 161, "y": 32, "flags": 4},
{"matrix": [4, 3], "x": 175, "y": 32, "flags": 4},
{"matrix": [4, 4], "x": 200, "y": 32, "flags": 1},
{"matrix": [4, 5], "x": 224, "y": 32, "flags": 1},
{"matrix": [4, 6], "x": 9, "y": 48, "flags": 1},
{"matrix": [4, 7], "x": 34, "y": 48, "flags": 4},
{"matrix": [4, 8], "x": 49, "y": 48, "flags": 4},
{"matrix": [5, 0], "x": 63, "y": 48, "flags": 4},
{"matrix": [5, 1], "x": 78, "y": 48, "flags": 4},
{"matrix": [5, 2], "x": 93, "y": 48, "flags": 4},
{"matrix": [5, 3], "x": 108, "y": 48, "flags": 4},
{"matrix": [5, 4], "x": 123, "y": 48, "flags": 4},
{"matrix": [5, 5], "x": 138, "y": 48, "flags": 4},
{"matrix": [5, 6], "x": 153, "y": 48, "flags": 4},
{"matrix": [5, 7], "x": 168, "y": 48, "flags": 4},
{"matrix": [5, 8], "x": 196, "y": 48, "flags": 1},
{"matrix": [6, 0], "x": 224, "y": 48, "flags": 1},
{"matrix": [6, 1], "x": 2, "y": 64, "flags": 1},
{"matrix": [6, 2], "x": 21, "y": 64, "flags": 1},
{"matrix": [6, 3], "x": 39, "y": 64, "flags": 1},
{"matrix": [6, 4], "x": 95, "y": 64, "flags": 4},
{"matrix": [6, 5], "x": 151, "y": 64, "flags": 1},
{"matrix": [6, 6], "x": 170, "y": 64, "flags": 1},
{"matrix": [6, 7], "x": 189, "y": 64, "flags": 1},
{"matrix": [6, 8], "x": 207, "y": 64, "flags": 1},
{"matrix": [7, 0], "x": 224, "y": 64, "flags": 1}
],
"max_brightness": 150,
"sleep": true
},
"url": "https://boardsource.xyz",
"usb": {
"device_version": "1.0.0",
"pid": "0x17AC",
"vid": "0x4273"
},
"ws2812": {
"pin": "D2"
},
"layouts": {
"LAYOUT_625_bar": {
"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": [1, 0], "x": 9, "y": 0},
{"matrix": [1, 1], "x": 10, "y": 0},
{"matrix": [1, 2], "x": 11, "y": 0},
{"matrix": [1, 3], "x": 12, "y": 0},
{"matrix": [1, 4], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 5], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 6], "x": 1.5, "y": 1},
{"matrix": [1, 7], "x": 2.5, "y": 1},
{"matrix": [1, 8], "x": 3.5, "y": 1},
{"matrix": [2, 0], "x": 4.5, "y": 1},
{"matrix": [2, 1], "x": 5.5, "y": 1},
{"matrix": [2, 2], "x": 6.5, "y": 1},
{"matrix": [2, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [2, 5], "x": 9.5, "y": 1},
{"matrix": [2, 6], "x": 10.5, "y": 1},
{"matrix": [2, 7], "x": 11.5, "y": 1},
{"matrix": [2, 8], "x": 12.5, "y": 1},
{"matrix": [3, 0], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [3, 1], "x": 0, "y": 2, "w": 1.75},
{"matrix": [3, 2], "x": 1.75, "y": 2},
{"matrix": [3, 3], "x": 2.75, "y": 2},
{"matrix": [3, 4], "x": 3.75, "y": 2},
{"matrix": [3, 5], "x": 4.75, "y": 2},
{"matrix": [3, 6], "x": 5.75, "y": 2},
{"matrix": [3, 7], "x": 6.75, "y": 2},
{"matrix": [3, 8], "x": 7.75, "y": 2},
{"matrix": [4, 0], "x": 8.75, "y": 2},
{"matrix": [4, 1], "x": 9.75, "y": 2},
{"matrix": [4, 2], "x": 10.75, "y": 2},
{"matrix": [4, 3], "x": 11.75, "y": 2},
{"matrix": [4, 4], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [4, 5], "x": 15, "y": 2},
{"matrix": [4, 6], "x": 0, "y": 3, "w": 2.25},
{"matrix": [4, 7], "x": 2.25, "y": 3},
{"matrix": [4, 8], "x": 3.25, "y": 3},
{"matrix": [5, 0], "x": 4.25, "y": 3},
{"matrix": [5, 1], "x": 5.25, "y": 3},
{"matrix": [5, 2], "x": 6.25, "y": 3},
{"matrix": [5, 3], "x": 7.25, "y": 3},
{"matrix": [5, 4], "x": 8.25, "y": 3},
{"matrix": [5, 5], "x": 9.25, "y": 3},
{"matrix": [5, 6], "x": 10.25, "y": 3},
{"matrix": [5, 7], "x": 11.25, "y": 3},
{"matrix": [5, 8], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [6, 0], "x": 15, "y": 3},
{"matrix": [6, 1], "x": 0, "y": 4, "w": 1.25},
{"matrix": [6, 2], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [6, 3], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [6, 4], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [6, 5], "x": 10, "y": 4, "w": 1.25},
{"matrix": [6, 6], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [6, 7], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [6, 8], "x": 13.75, "y": 4, "w": 1.25},
{"matrix": [7, 0], "x": 15, "y": 4}
]
},
"LAYOUT_all": {
"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": [1, 0], "x": 9, "y": 0},
{"matrix": [1, 1], "x": 10, "y": 0},
{"matrix": [1, 2], "x": 11, "y": 0},
{"matrix": [1, 3], "x": 12, "y": 0},
{"matrix": [1, 4], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 5], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 6], "x": 1.5, "y": 1},
{"matrix": [1, 7], "x": 2.5, "y": 1},
{"matrix": [1, 8], "x": 3.5, "y": 1},
{"matrix": [2, 0], "x": 4.5, "y": 1},
{"matrix": [2, 1], "x": 5.5, "y": 1},
{"matrix": [2, 2], "x": 6.5, "y": 1},
{"matrix": [2, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [2, 5], "x": 9.5, "y": 1},
{"matrix": [2, 6], "x": 10.5, "y": 1},
{"matrix": [2, 7], "x": 11.5, "y": 1},
{"matrix": [2, 8], "x": 12.5, "y": 1},
{"matrix": [3, 0], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [3, 1], "x": 0, "y": 2, "w": 1.75},
{"matrix": [3, 2], "x": 1.75, "y": 2},
{"matrix": [3, 3], "x": 2.75, "y": 2},
{"matrix": [3, 4], "x": 3.75, "y": 2},
{"matrix": [3, 5], "x": 4.75, "y": 2},
{"matrix": [3, 6], "x": 5.75, "y": 2},
{"matrix": [3, 7], "x": 6.75, "y": 2},
{"matrix": [3, 8], "x": 7.75, "y": 2},
{"matrix": [4, 0], "x": 8.75, "y": 2},
{"matrix": [4, 1], "x": 9.75, "y": 2},
{"matrix": [4, 2], "x": 10.75, "y": 2},
{"matrix": [4, 3], "x": 11.75, "y": 2},
{"matrix": [4, 4], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [4, 5], "x": 15, "y": 2},
{"matrix": [4, 6], "x": 0, "y": 3, "w": 2.25},
{"matrix": [4, 7], "x": 2.25, "y": 3},
{"matrix": [4, 8], "x": 3.25, "y": 3},
{"matrix": [5, 0], "x": 4.25, "y": 3},
{"matrix": [5, 1], "x": 5.25, "y": 3},
{"matrix": [5, 2], "x": 6.25, "y": 3},
{"matrix": [5, 3], "x": 7.25, "y": 3},
{"matrix": [5, 4], "x": 8.25, "y": 3},
{"matrix": [5, 5], "x": 9.25, "y": 3},
{"matrix": [5, 6], "x": 10.25, "y": 3},
{"matrix": [5, 7], "x": 11.25, "y": 3},
{"matrix": [5, 8], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [6, 0], "x": 15, "y": 3},
{"matrix": [6, 1], "x": 0, "y": 4, "w": 1.25},
{"matrix": [6, 2], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [6, 3], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [7, 1], "x": 3.75, "y": 4, "w": 1.5},
{"matrix": [7, 2], "x": 5.25, "y": 4},
{"matrix": [6, 4], "x": 6.25, "y": 4, "w": 1.25},
{"matrix": [7, 3], "x": 7.5, "y": 4},
{"matrix": [7, 4], "x": 8.5, "y": 4, "w": 1.5},
{"matrix": [6, 5], "x": 10, "y": 4, "w": 1.25},
{"matrix": [6, 6], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [6, 7], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [6, 8], "x": 13.75, "y": 4, "w": 1.25},
{"matrix": [7, 0], "x": 15, "y": 4}
]
}
}
}
@@ -0,0 +1,21 @@
{
"keyboard": "boardsource/sessanta",
"keymap": "default",
"layout": "LAYOUT_625_bar",
"layers": [
[
"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_VOLU",
"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_MPLY",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "MO(1)", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_VOLD"
],
[
"QK_BOOT", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_F13",
"QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
]
]
}
@@ -0,0 +1,26 @@
{
"keyboard": "boardsource/sessanta",
"keymap": "via",
"layout": "LAYOUT_all",
"config": {
"features": {
"via": true
}
},
"layers": [
[
"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_VOLU",
"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_MPLY",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "MO(1)", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_VOLD"
],
[
"QK_BOOT", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_F13",
"QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
]
]
}
+27
View File
@@ -0,0 +1,27 @@
# Sessanta
![image](https://i.imgur.com/ALvvC53.jpeg)
A 60% keyboard offered in an MX or Choc PCB with per-key RGB
* Keyboard Maintainer: [waffle87](https://github.com/waffle87)
* Hardware Supported: Sessanta PCB w/ Pro Micro compatible microcontroller
* Hardware Availability: [boardsource.xyz](https://boardsource.xyz)
Make example for this keyboard (after setting up your build environment):
make boardsource/sessanta:default
Flashing example for this keyboard:
make boardsource/sessanta: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 and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB near microcontroller
* **Keycode in layout**: Press the key mapped to `QK_BOOT`
@@ -112,8 +112,9 @@
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.5},
{"matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1},
{"matrix": [5, 9], "x": 12, "y": 5.25, "w": 1},
{"matrix": [5, 12], "x": 13.25, "y": 5.5},
{"matrix": [5, 13], "x": 14.25, "y": 5.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.5}
@@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OLED_TOGG,
@@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLOCK_SET,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
@@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OLED_TOGG,
@@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLOCK_SET,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
+4 -1
View File
@@ -50,8 +50,11 @@
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | OS | Alt | Layer | Space | Alt | Caps | |
* `-----------------------------------------------------------------------------------'
*/
[0] = LAYOUT_all(
[0] = LAYOUT(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
@@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `---------------------------------------------------------------------------------------'
*/
[1] = LAYOUT_all(
[1] = LAYOUT(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______,
@@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `---------------------------------------------------------------------------------------'
*/
[2] = LAYOUT_all(
[2] = LAYOUT(
RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI,
RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[0] = LAYOUT_all(
[0] = LAYOUT(
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
@@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[1] = LAYOUT_all(
[1] = LAYOUT(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______,
@@ -78,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[2] = LAYOUT_all(
[2] = LAYOUT(
RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI,
RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
@@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[3] = LAYOUT_all(
[3] = LAYOUT(
RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI,
RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
@@ -51,8 +51,11 @@
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS |
* `-----------------------------------------------------------------------------------------'
*/
[0] = LAYOUT_all(
[0] = LAYOUT(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
@@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
* `---------------------------------------------------------------------------------------'
*/
[1] = LAYOUT_all(
[1] = LAYOUT(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______,
@@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | QK_BOOT | | | | | | | |
* `---------------------------------------------------------------------------------------'
*/
[2] = LAYOUT_all(
[2] = LAYOUT(
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS |
* `-----------------------------------------------------------------------------------------'
*/
[0] = LAYOUT_all(
[0] = LAYOUT(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
@@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
* `---------------------------------------------------------------------------------------'
*/
[1] = LAYOUT_all(
[1] = LAYOUT(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______,
@@ -71,30 +71,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | QK_BOOT | | | | | | | |
* `---------------------------------------------------------------------------------------'
*/
[2] = LAYOUT_all(
[2] = LAYOUT(
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
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, _______, _______, _______, _______, _______, _______, _______
),
/* [3]
* ,---------------------------------------------------------------------------------------.
* |------------+------+------+------+------+------+------+------+------+------+------+----|
* | | | | | | | | | | | | | |
* |------------+------+------+------+------+-------------+------+------+------+------+----|
* | | | | | | | | | | | | | |
* |------------+------+------+------+------+------|------+------+------+------+------+----|
* | | | | | | | | | | | | | |
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
* | | | | | | | | | | | | | |
* `---------------------------------------------------------------------------------------'
*/
[3] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
};
+957
View File
@@ -0,0 +1,957 @@
{
"manufacturer": "chlx bsmt",
"keyboard_name": "lfn.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": "B2",
"on_state": 0,
"compose": "B0"
},
"matrix_pins": {
"rows": ["F5", "F1", "F4", "F0", "F7", "F6", "D3", "D5", "B3", "B7"],
"cols": ["C6", "B6", "B5", "B4", "D7", "D6", "D4"]
},
"processor": "atmega32u4",
"url": "www.github.com/gaclee3b",
"usb": {
"device_version": "2.0.1",
"pid": "0x0604",
"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}
]
}
}
}
@@ -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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
[1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
KC_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, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};
@@ -1,5 +1,5 @@
/*
Copyright 2019 marhalloweenvt
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
@@ -17,4 +17,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define RGB_MATRIX_LED_COUNT 83
/* VIA related config */
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
@@ -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, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_LSCR, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
[1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
KC_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, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};
@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
+27
View File
@@ -0,0 +1,27 @@
# lfn.merro60
![lfn.merro60 PCB](https://i.imgur.com/naIgvKy.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.
- Meant to be manufactured in 2mm thickness.
* Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b)
* Hardware Supported: chlx PCB lfn.merro60.x.x.x
Make example for this keyboard (after setting up your build environment):
make chlx/lfn_merro60:default
Flashing example for this keyboard:
make chlx/lfn_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
- After plugging in, press and release the reset button on the pcb top-side near the spacebar switch locations
- After plugging in, short out the two reset metal contacts near the 'z' key (accessible through the switch LED slot)
+71
View File
@@ -0,0 +1,71 @@
/* Copyright 2024 Cipulot
*
* 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 3 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 MATRIX_ROWS 5
#define MATRIX_COLS 15
#define MATRIX_ROW_PINS \
{ A8, A15, B12, B8, B9}
#define AMUX_COUNT 1
#define AMUX_MAX_COLS_COUNT 16
#define AMUX_EN_PINS \
{ B5 }
#define AMUX_SEL_PINS \
{ B6, B7, B4, B3 }
#define AMUX_COL_CHANNELS_SIZES \
{ 15 }
#define AMUX_0_COL_CHANNELS \
{ 7, 6, 5, 4, 3, 2, 1, 0, 8, 14, 13, 10, 9, 12, 11}
#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS
#define DISCHARGE_PIN A2
#define ANALOG_PORT A3
#define DEFAULT_ACTUATION_MODE 0
#define DEFAULT_MODE_0_ACTUATION_LEVEL 550
#define DEFAULT_MODE_0_RELEASE_LEVEL 500
#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL
#define DEFAULT_MODE_1_ACTUATION_OFFSET 70
#define DEFAULT_MODE_1_RELEASE_OFFSET 70
#define DEFAULT_EXTREMUM 1023
#define EXPECTED_NOISE_FLOOR 0
#define NOISE_FLOOR_THRESHOLD 50
#define BOTTOMING_CALIBRATION_THRESHOLD 50
#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30
#define DEFAULT_BOTTOMING_READING 1023
#define DEFAULT_CALIBRATION_STARTER true
#define DISCHARGE_TIME 10
// #define DEBUG_MATRIX_SCAN_RATE
#define EECONFIG_KB_DATA_SIZE 159
// PWM driver with direct memory access (DMA) support
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
#define WS2812_PWM_DRIVER PWMD1
#define WS2812_PWM_CHANNEL 3
#define WS2812_PWM_PAL_MODE 1
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_DMA_CHANNEL 6
#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM1_UP
+23
View File
@@ -0,0 +1,23 @@
/* Copyright 2024 Cipulot
*
* 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 3 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_ADC TRUE
#define HAL_USE_PAL TRUE
#define HAL_USE_PWM TRUE
#include_next <halconf.h>
+330
View File
@@ -0,0 +1,330 @@
{
"manufacturer": "Cipulot",
"keyboard_name": "EC 60X",
"maintainer": "Cipulot",
"bootloader": "stm32-dfu",
"build": {
"lto": true
},
"diode_direction": "COL2ROW",
"eeprom": {
"wear_leveling": {
"backing_size": 4096
}
},
"features": {
"bootmagic": false,
"console": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"processor": "STM32F411",
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"led_count": 22
},
"usb": {
"device_version": "0.0.1",
"pid": "0x6BC7",
"shared_endpoint": {
"keyboard": true
},
"vid": "0x6369"
},
"ws2812": {
"driver": "pwm",
"pin": "B15"
},
"layouts": {
"LAYOUT_60_ansi_tsangan": {
"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, 14], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"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, 13], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "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": 12.5, "y": 4},
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan": {
"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, 14], "x": 13, "y": 0, "w": 2},
{"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": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2},
{"matrix": [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, 13], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "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": 12.5, "y": 4},
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_jis": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"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},
{"matrix": [3, 13], "x": 13.25, "y": 3, "w": 1.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 4], "x": 4, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 2.5},
{"matrix": [4, 8], "x": 8, "y": 4, "w": 1.5},
{"matrix": [4, 10], "x": 9.5, "y": 4, "w": 1.5},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 12.5, "y": 4},
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 0.75},
{"matrix": [1, 14], "x": 14.25, "y": 1, "w": 0.75},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3},
{"matrix": [3, 13], "x": 13.25, "y": 3, "w": 0.75},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 4], "x": 4, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 2.5},
{"matrix": [4, 8], "x": 8, "y": 4, "w": 1.5},
{"matrix": [4, 10], "x": 9.5, "y": 4, "w": 1.5},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 12.5, "y": 4},
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
}
}
}
@@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[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_ENTER,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL),
[1] = LAYOUT_60_ansi_tsangan(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______,
_______, _______, _______, _______, MO(2), _______, _______),
[2] = LAYOUT_60_ansi_tsangan(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______)
// clang-format on
};
@@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[0] = LAYOUT_60_iso_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_ENTER,
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_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, MO(1), KC_RCTL),
[1] = LAYOUT_60_iso_tsangan(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______,
_______, _______, _______, _______, MO(2), _______, _______),
[2] = LAYOUT_60_iso_tsangan(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______)
// clang-format on
};
@@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[0] = LAYOUT_60_jis(
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_INT3, 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_ENTER,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, MO(1), KC_RCTL),
[1] = LAYOUT_60_jis(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______),
[2] = LAYOUT_60_jis(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
// clang-format on
};
@@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[0] = LAYOUT_all(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER,
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_ENTER,
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_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL),
[1] = LAYOUT_all(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______),
[2] = LAYOUT_all(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
// clang-format on
};
@@ -1,8 +1,8 @@
/* Copyright 2022 @fOmey
/* Copyright 2024 Cipulot
*
* 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
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
@@ -16,4 +16,4 @@
#pragma once
#define RGB_MATRIX_LED_COUNT 96
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
@@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[0] = LAYOUT_all(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER,
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_ENTER,
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_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL),
[1] = LAYOUT_all(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______),
[2] = LAYOUT_all(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
// clang-format on
};
@@ -0,0 +1 @@
VIA_ENABLE = yes
+25
View File
@@ -0,0 +1,25 @@
/* Copyright 2024 Cipulot
*
* 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 3 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_ADC_USE_ADC1
#define STM32_ADC_USE_ADC1 TRUE
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
+3
View File
@@ -0,0 +1,3 @@
ifeq ($(strip $(VIA_ENABLE)), yes)
SRC += keyboards/cipulot/common/via_ec.c
endif
+26
View File
@@ -0,0 +1,26 @@
# EC 60X
![EC 60X PCB](https://i.imgur.com/aYQgeSn.png)
Universal 60% Electrostatic Capacitive PCB, with multi-layout support.
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
* Hardware Supported: EC 60X
* Hardware Availability: TBD
Make example for this keyboard (after setting up your build environment):
make cipulot/ec_60x:default
Flashing example for this keyboard:
make cipulot/ec_60x: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:
* **Physical reset**: Long short the exposed pins on the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+5
View File
@@ -0,0 +1,5 @@
CUSTOM_MATRIX = lite
ANALOG_DRIVER_REQUIRED = yes
VPATH += keyboards/cipulot/common
SRC += matrix.c ec_board.c ec_switch_matrix.c
OPT = 2
+4 -4
View File
@@ -100,7 +100,7 @@
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 17.25, "y": 3},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
@@ -170,7 +170,7 @@
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 17.25, "y": 3},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
@@ -238,7 +238,7 @@
{"matrix": [3, 12], "x": 14.5, "y": 3},
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 2.75},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
@@ -307,7 +307,7 @@
{"matrix": [3, 12], "x": 14.5, "y": 3},
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 2.75},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
@@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_PSCR, 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_DEL,
KC_PSCR, 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_BSPC,
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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
@@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_PSCR, 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_DEL,
KC_PSCR, 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_BSPC,
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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+1 -2
View File
@@ -9,7 +9,7 @@
"backlight": true,
"bootmagic": false,
"command": false,
"console": true,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
@@ -30,7 +30,6 @@
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
@@ -1,115 +0,0 @@
/*
Copyright 2019 @foostan
Copyright 2023 @asdfire1
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
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// #define RGBLIGHT_EFFECT_TWINKLE
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#ifdef RGB_MATRIX_ENABLE
//# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_MATRIX_SLEEP // turn off effects when suspended
//# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
# define RGB_MATRIX_HUE_STEP 8
# define RGB_MATRIX_SAT_STEP 8
# define RGB_MATRIX_VAL_STEP 8
# define RGB_MATRIX_SPD_STEP 10
/* Enable the animations you want/need. You may need to enable only a small number of these because *
* they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
//# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
//# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
//# define ENABLE_RGB_MATRIX_BREATHING
//# define ENABLE_RGB_MATRIX_BAND_SAT
//# define ENABLE_RGB_MATRIX_BAND_VAL
//# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
//# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
//# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
//# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
//# define ENABLE_RGB_MATRIX_CYCLE_ALL
//# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
//# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
//# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
//# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
//# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
//# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
//# define ENABLE_RGB_MATRIX_DUAL_BEACON
//# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
//# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
//# define ENABLE_RGB_MATRIX_RAINDROPS
//# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
//# define ENABLE_RGB_MATRIX_HUE_BREATHING
//# define ENABLE_RGB_MATRIX_HUE_PENDULUM
//# define ENABLE_RGB_MATRIX_HUE_WAVE
//# define ENABLE_RGB_MATRIX_PIXEL_RAIN
//# define ENABLE_RGB_MATRIX_PIXEL_FLOW
//# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
//# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
//# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
//# define ENABLE_RGB_MATRIX_SPLASH
//# define ENABLE_RGB_MATRIX_MULTISPLASH
//# define ENABLE_RGB_MATRIX_SOLID_SPLASH
//# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
#define SPLIT_LAYER_STATE_ENABLE
#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268).
#define NO_ACTION_ONESHOT
//#define SPLIT_OLED_ENABLE
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
@@ -1,385 +0,0 @@
/*
Copyright 2019 @foostan
Copyright 2021 @HellSingCoder
Copyright 2023 @asdfire1
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 <stdio.h>
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//COLEMAK
[0] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, MO(3), KC_SPC, KC_ENT, MO(4), KC_RALT
//`--------------------------' `--------------------------'
),
//GAME1
[1] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LALT, MO(2), KC_SPC, KC_ENT, MO(4), KC_RALT
//`--------------------------' `--------------------------'
),
//GAME2
[2] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_F1, KC_F2, XXXXXXX, XXXXXXX, KC_6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, MO(5), KC_RALT
//`--------------------------' `--------------------------'
),
//LOWER
[3] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, KC_MPRV, XXXXXXX, KC_MINS, KC_P7, KC_P8, KC_P9, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, KC_MPLY, XXXXXXX, KC_PLUS, KC_P4, KC_P5, KC_P6, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MNXT, XXXXXXX, KC_EQL, KC_P1, KC_P2, KC_P3, KC_F13,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_SPC, MO(5), KC_P0
//`--------------------------' `--------------------------'
),
//RAISE
[4] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_CAPS, KC_CIRC, KC_AMPR, KC_LCBR, KC_LBRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_RCBR, XXXXXXX, KC_END, KC_PGDN,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_ASTR, KC_UNDS, KC_BSLS, KC_PIPE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, MO(5), KC_BSPC, _______, _______, KC_LALT
//`--------------------------' `--------------------------'
),
//ADJUST
[5] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
QK_BOOT, TG(1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, _______, _______, _______, KC_LALT
//`--------------------------' `--------------------------'
)
};
// clang-format on
#ifdef OLED_ENABLE
/* 32 * 32 logo */
static void render_logo(void) {
static const char PROGMEM hexagram_logo[] = {
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x70, 0x18, 0x06,
0x06, 0x18, 0x70, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0x07, 0x1f, 0x32, 0x66, 0xc4, 0x6c, 0x38, 0x1e, 0x37, 0x61, 0xc0, 0x80, 0x80,
0x80, 0x80, 0xc0, 0x61, 0x37, 0x1e, 0x38, 0x6c, 0xc4, 0x66, 0x32, 0x1f, 0x07, 0x01, 0x00, 0x00,
0x00, 0x00, 0x80, 0xe0, 0xf8, 0x4c, 0x66, 0x23, 0x36, 0x1c, 0x78, 0xec, 0x86, 0x03, 0x01, 0x01,
0x01, 0x01, 0x03, 0x86, 0xec, 0x78, 0x1c, 0x36, 0x23, 0x66, 0x4c, 0xf8, 0xe0, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0e, 0x18, 0x60,
0x60, 0x18, 0x0e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
};
oled_write_raw_P(hexagram_logo, sizeof(hexagram_logo));
}
/* KEYBOARD PET START */
/* settings */
# define MIN_WALK_SPEED 10
# define MIN_RUN_SPEED 40
/* advanced settings */
# define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms
# define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024
/* timers */
uint32_t anim_timer = 0;
uint32_t anim_sleep = 0;
/* current frame */
uint8_t current_frame = 0;
/* status variables */
int current_wpm = 0;
led_t led_usb_state;
bool isSneaking = false;
bool isJumping = false;
bool showedJump = true;
bool isBarking = false;
/* logic */
static void render_luna(int LUNA_X, int LUNA_Y) {
/* Sit */
static const char PROGMEM sit[2][ANIM_SIZE] = {/* 'sit1', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
/* 'sit2', 32x22px */
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
/* Walk */
static const char PROGMEM walk[2][ANIM_SIZE] = {/* 'walk1', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
/* 'walk2', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}};
/* Run */
static const char PROGMEM run[2][ANIM_SIZE] = {/* 'run1', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
},
/* 'run2', 32x22px */
{
0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}};
/* Bark */
static const char PROGMEM bark[2][ANIM_SIZE] = {/* 'bark1', 32x22px */
{
0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
/* 'bark2', 32x22px */
{
0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}};
/* Sneak */
static const char PROGMEM sneak[2][ANIM_SIZE] = {/* 'sneak1', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
},
/* 'sneak2', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
}};
/* animation */
void animate_luna(void) {
/* jump */
if (isJumping || !showedJump) {
/* clear */
oled_set_cursor(LUNA_X, LUNA_Y + 2);
oled_write(" ", false);
oled_set_cursor(LUNA_X, LUNA_Y - 1);
showedJump = true;
} else {
/* clear */
oled_set_cursor(LUNA_X, LUNA_Y - 1);
oled_write(" ", false);
oled_set_cursor(LUNA_X, LUNA_Y);
}
/* switch frame */
current_frame = (current_frame + 1) % 2;
/* current status */
if (led_usb_state.caps_lock) {
oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE);
} else if (isSneaking) {
oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE);
} else if (current_wpm <= MIN_WALK_SPEED) {
oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE);
} else if (current_wpm <= MIN_RUN_SPEED) {
oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE);
} else {
oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE);
}
}
/* animation timer */
if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
anim_timer = timer_read32();
animate_luna();
}
/* this fixes the screen on and off bug */
if (current_wpm > 0) {
oled_on();
anim_sleep = timer_read32();
} else if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
/* clear */
oled_set_cursor(0,0);
oled_write(" ", false);
oled_off();
oled_set_cursor(LUNA_X,LUNA_Y);
}
}
/* KEYBOARD PET END */
static void print_logo_narrow(void) {
render_logo();
if (current_wpm > 0) {
anim_sleep = timer_read32();
/* wpm counter */
oled_set_cursor(0, 14);
oled_write(get_u8_str(get_current_wpm(), '0'), false);
oled_set_cursor(0, 15);
oled_write(" wpm", false);
/* this fixes the screen on and off bug */
} else if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
/* clear */
oled_set_cursor(0,0);
oled_write(" ", false);
oled_off();
}
}
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case 0:
rgb_matrix_reload_from_eeprom();
break;
case 1:
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
rgb_matrix_sethsv_noeeprom(HSV_TEAL);
break;
case 2:
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
rgb_matrix_sethsv_noeeprom(HSV_PURPLE);
break;
case 5:
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
rgb_matrix_sethsv_noeeprom(HSV_YELLOW);
break;
}
return state;
}
static void print_status_narrow(void) {
/* Print current layer */
oled_write("LAYER", false);
oled_set_cursor(0, 6);
switch (get_highest_layer(layer_state)) {
case 0:
oled_write("Base ", false);
break;
case 1:
oled_write("Game ", false);
break;
case 2:
oled_write("Game2", false);
break;
case 3:
oled_write("Lower", false);
break;
case 4:
oled_write("Raise", false);
break;
case 5:
oled_write("Adj ", false);
break;
default:
oled_write("Undef", false);
}
/* KEYBOARD PET RENDER START */
render_luna(0, 13);
/* KEYBOARD PET RENDER END */
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
bool oled_task_user(void) {
/* KEYBOARD PET VARIABLES START */
current_wpm = get_current_wpm();
led_usb_state = host_keyboard_led_state();
/* KEYBOARD PET VARIABLES END */
if (is_keyboard_master()) {
print_status_narrow();
} else {
print_logo_narrow();
}
return false;
}
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
/* KEYBOARD PET STATUS START */
case KC_LCTL:
isSneaking = record->event.pressed;
break;
case KC_SPC:
isJumping = record->event.pressed;
if (isJumping) {
showedJump = false;
}
break;
case KC_CAPS:
isBarking = record->event.pressed;
break;
/* KEYBOARD PET STATUS END */
}
return true;
}
@@ -1,17 +0,0 @@
# Personal keymap for the CRKBD
My own keymap with some custom OLED features, Colemak base layer and gaming layers. The F13 key on multiple layers can be bound to something, I use it as toggle mute microphone on Discord.
## Layers
- Colemak - Default layer
- Lower - Has numbers and arrows
- Raise - Has symbols
- Game1 - A QWERTY Gaming layer
- Game2 - An alternate lower layer when Game1 is active, has numbers and other keys that may be needed
- Adjust - Has F-keys and settings, allows to set the Game1 as base layer.
## Custom OLED
- Left side:
- Layer indicator
- Keyboard pet Luna from @HellSingCoder <https://github.com/HellSingCoder/qmk_firmware/tree/master/keyboards/sofle/keymaps/helltm>
- Right side
- Unicursal hexagram pixel art logo
- WPM counter
@@ -1,7 +0,0 @@
MOUSEKEY_ENABLE = no # Mouse keys
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = yes # Enable WS2812 RGB underlight.
VIA_ENABLE = yes # Enable VIA
OLED_ENABLE = yes
LTO_ENABLE = yes
WPM_ENABLE = yes
@@ -19,4 +19,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define MASTER_LEFT
#define OLED_FONT_H "keyboards/claw44/lib/glcdfont.c"
#define OLED_FONT_H "claw44/lib/glcdfont.c"
+1 -1
View File
@@ -9,6 +9,7 @@
#include <math.h>
static painter_image_handle_t reverb_logo;
static painter_image_handle_t splash_image;
static deferred_token display_task_token;
static uint32_t key_pressed_count = 0;
@@ -32,7 +33,6 @@ void display_init_kb(void) {
if (!display_init_user()) {
return;
}
painter_image_handle_t splash_image;
splash_image = qp_load_image_mem(gfx_splash);
reverb_logo = qp_load_image_mem(gfx_reverb);
qp_drawimage(reverb_display, 0, 0, splash_image);
+4 -1
View File
@@ -23,8 +23,11 @@
"resync": true
}
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -16,7 +16,7 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all( /* Base */
[0] = LAYOUT( /* Base */
KC_INS, KC_HOME, KC_PGUP,
KC_DEL, KC_END, KC_PGDN,
+2 -23
View File
@@ -16,31 +16,10 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all( /* Base */
[0] = LAYOUT( /* Base */
KC_INS, KC_HOME, KC_PGUP,
KC_DEL, KC_END, KC_PGDN,
KC_UP,
KC_LEFT, KC_DOWN, KC_RIGHT),
[1] = LAYOUT_all( /* Empty for Dynamic keymap */
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT_all( /* Empty for Dynamic keymap */
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT_all( /* Empty for Dynamic keymap */
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_RIGHT)
};
-2
View File
@@ -39,8 +39,6 @@
"pixel_rain": true,
"pixel_flow": true,
"pixel_fractal": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
+1 -4
View File
@@ -18,8 +18,7 @@
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
#define DIODE_DIRECTION COL2ROW
#define MATRIX_COLS 14
/*
* Feature disable options
@@ -35,5 +34,3 @@
//rgb matrix setting
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define RGB_MATRIX_LED_COUNT 72
+72 -124
View File
@@ -24,135 +24,83 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
* | | G location
* | | | B location
* | | | | */
// left CA
{0, C1_1, C3_2, C4_2},
{0, C1_2, C2_2, C4_3},
{0, C1_3, C2_3, C3_3},
{0, C1_4, C2_4, C3_4},
{0, C1_5, C2_5, C3_5},
{0, C1_6, C2_6, C3_6},
{0, C1_7, C2_7, C3_7},
{0, C1_8, C2_8, C3_8},
{0, C1_9, C3_10, C4_10}, // RGB101
{0, C1_10, C2_10, C4_11}, // RGB102
{0, C1_11, C2_11, C3_11}, // RGB103
{0, C1_12, C2_12, C3_12}, // RGB104
{0, C1_13, C2_13, C3_13}, // RGB105
{0, C1_14, C2_14, C3_14}, // RGB106
{0, C1_15, C2_15, C3_15}, // RGB107
{1, C5_1, C4_1, C6_1}, // RGB108
{1, C1_1, C3_2, C4_2}, // RGB109
{1, C1_2, C2_2, C4_3}, // RGB1010
{1, C1_3, C2_3, C3_3}, // RGB1011
{1, C1_4, C2_4, C3_4}, // RGB1012
{1, C1_5, C2_5, C3_5}, // RGB1013
{1, C1_6, C2_6, C3_6}, // RGB1014
{1, C1_7, C2_7, C3_7}, // RGB1015-2
{1, C1_8, C2_8, C3_8}, // RGB1015
{0, C5_1, C4_1, C6_1},
{0, C5_8, C4_8, C6_8},
{0, C5_9, C4_9, C6_9}, // RGB201
{0, C5_16, C4_16, C6_16}, // RGB202
{0, C9_9, C8_9, C7_9}, // RGB203
{0, C9_10, C8_10, C7_10}, // RGB204
{0, C9_11, C8_11, C7_11}, // RGB205
{0, C9_12, C8_12, C7_12}, // RGB206
{0, C1_16, C2_16, C3_16}, // RGB207
{1, C5_8, C4_8, C6_8}, // RGB208
{1, C9_1, C8_1, C7_1}, // RGB209
{1, C9_2, C8_2, C7_2}, // RGB2010
{1, C9_3, C8_3, C7_3}, // RGB2011
{1, C9_4, C8_4, C7_4}, // RGB2012
{1, C9_5, C8_5, C7_5}, // RGB2013
{1, C9_6, C8_6, C7_6}, // RGB2014
{0, C9_1, C8_1, C7_1},
{0, C9_2, C8_2, C7_2},
{0, C9_3, C8_3, C7_3},
{0, C9_4, C8_4, C7_4},
{0, C9_5, C8_5, C7_5},
{0, C9_6, C8_6, C7_6},
{0, C9_7, C8_7, C6_6},
{0, C9_8, C7_7, C6_7},
// left CB
{0, C1_9, C3_10, C4_10},
{0, C1_10, C2_10, C4_11},
{0, C1_11, C2_11, C3_11},
{0, C1_12, C2_12, C3_12},
{0, C1_13, C2_13, C3_13},
{0, C1_14, C2_14, C3_14},
{0, C1_15, C2_15, C3_15},
{0, C1_16, C2_16, C3_16},
{0, C5_1, C4_1, C6_1}, // RGB301
{0, C5_8, C4_8, C6_8}, // RGB302
{0, C1_1, C3_2, C4_2}, // RGB303
{0, C9_13, C8_13, C7_13}, // RGB304
{0, C9_14, C8_14, C7_14}, // RGB305
{0, C9_15, C8_15, C6_14}, // RGB306
{0, C9_16, C7_15, C6_15}, // RGB307
{1, C1_9, C3_10, C4_10}, // RGB308
{1, C1_10, C2_10, C4_11}, // RGB309
{1, C1_11, C2_11, C3_11}, // RGB3010
{1, C1_12, C2_12, C3_12}, // RGB3011
{1, C1_13, C2_13, C3_13}, // RGB3012
{1, C1_14, C2_14, C3_14}, // RGB3014
{1, C9_7, C8_7, C6_6}, // RGB3013-2
{1, C9_8, C7_7, C6_7}, // RGB3013
{0, C5_9, C4_9, C6_9},
{0, C5_16, C4_16, C6_16},
{0, C9_1, C8_1, C7_1}, // RGB401-2
{0, C9_2, C8_2, C7_2}, // RGB401
{0, C9_3, C8_3, C7_3}, // RGB4014
{0, C9_4, C8_4, C7_4}, // RGB402
{0, C1_2, C2_2, C4_3}, // RGB403
{0, C1_3, C2_3, C3_3}, // RGB404
{0, C1_4, C2_4, C3_4}, // RGB405
{0, C1_5, C2_5, C3_5}, // RGB406
{0, C1_6, C2_6, C3_6}, // RGB407
{1, C5_9, C4_9, C6_9}, // RGB408
{1, C5_16, C4_16, C6_16}, // RGB409
{1, C9_9, C8_9, C7_9}, // RGB4010
{1, C9_10, C8_10, C7_10}, // RGB4011
{1, C9_11, C8_11, C7_11}, // RGB4012
{1, C1_15, C2_15, C3_15}, // RGB4012-2
{1, C1_16, C2_16, C3_16}, // RGB4013
{0, C9_9, C8_9, C7_9},
{0, C9_10, C8_10, C7_10},
{0, C9_11, C8_11, C7_11},
{0, C9_12, C8_12, C7_12},
{0, C9_13, C8_13, C7_13},
{0, C9_14, C8_14, C7_14},
{0, C9_15, C8_15, C6_14},
{0, C9_16, C7_15, C6_15},
// right CA
{1, C1_1, C3_2, C4_2},
{1, C1_2, C2_2, C4_3},
{1, C1_3, C2_3, C3_3},
{1, C1_4, C2_4, C3_4},
{1, C1_5, C2_5, C3_5},
{1, C1_6, C2_6, C3_6},
{1, C1_7, C2_7, C3_7},
{1, C1_8, C2_8, C3_8},
{1, C5_1, C4_1, C6_1},
{1, C5_8, C4_8, C6_8},
{1, C9_1, C8_1, C7_1},
{1, C9_2, C8_2, C7_2},
{1, C9_3, C8_3, C7_3},
{1, C9_4, C8_4, C7_4},
{1, C9_5, C8_5, C7_5},
{1, C9_6, C8_6, C7_6},
{1, C9_7, C8_7, C6_6},
{1, C9_8, C7_7, C6_7},
// right CB
{1, C1_9, C3_10, C4_10},
{1, C1_10, C2_10, C4_11},
{1, C1_11, C2_11, C3_11},
{1, C1_12, C2_12, C3_12},
{1, C1_13, C2_13, C3_13},
{1, C1_14, C2_14, C3_14},
{1, C1_15, C2_15, C3_15},
{1, C1_16, C2_16, C3_16},
{1, C5_9, C4_9, C6_9},
{1, C5_16, C4_16, C6_16},
{1, C9_9, C8_9, C7_9},
{1, C9_10, C8_10, C7_10},
{1, C9_11, C8_11, C7_11},
{1, C9_12, C8_12, C7_12},
{1, C9_13, C8_13, C7_13},
{1, C9_14, C8_14, C7_14},
{1, C9_15, C8_15, C6_14},
{1, C9_16, C7_15, C6_15},
{0, C9_8, C7_7, C6_7}, // RGB501
{0, C9_7, C8_7, C6_6}, // RGB502
{0, C9_6, C8_6, C7_6}, // RGB503
{0, C9_5, C8_5, C7_5}, // RGBSP1
{0, C1_8, C2_8, C3_8}, // RGB506-2
{0, C1_7, C2_7, C3_7}, // RGB506-3
{1, C9_12, C8_12, C7_12}, // RGBSP2
{1, C9_13, C8_13, C7_13}, // RGB507
{1, C9_14, C8_14, C7_14}, // RGB508
{1, C9_15, C8_15, C6_14}, // RGB509
{1, C9_16, C7_15, C6_15} // RGB5010
};
led_config_t g_led_config = {
{
{ 0, 1, 2, 3, 4, 5, 6, 36, 37, 38, 39, 40, 41, 42},
{ 8, 9, 10, 11, 12, 13, 7, 45, 46, 47, 48, 49, 50, 51},
{ 26,27, 18, 14, 15, 16, 17, 54, 55, 56, 57, 58, 59, 53},
{ 29,30, 31, 19, 20, 21, 22, 23, 62, 63, 64, 65, 66, 61},
{ 35,34, 33, NO_LED, NO_LED, NO_LED, 24, 44, NO_LED, NO_LED, 68, 69, 70, 71},
},
{
{ 32, 32},{ 48, 48},{ 64, 48},{ 80, 48},{ 96, 48},{112, 48},{ 96, 64},{ 96, 64},
{ 0, 32},{ 16, 32},
{ 0, 48},{ 0, 48},{ 16, 48},{ 32, 48},{ 64, 64},{ 32, 64},{ 16, 64},{ 0, 64},
{ 0, 0},{ 16, 0},{ 32, 0},{ 48, 0},{ 64, 0},{ 80, 0},{ 96, 0},{ 96, 16},
{ 0, 16},{ 16, 16},
{ 32, 16},{ 48, 16},{ 64, 16},{ 80, 16},{ 48, 32},{ 64, 32},{ 80, 32},{ 96, 32},
{128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{216, 0},{224, 0},
{112, 0},{128, 16},
{144, 16},{160, 16},{176, 16},{192, 16},{208, 16},{224, 16},{224, 32},{216, 32},
{128, 32},{144, 32},{160, 32},{176, 32},{192, 32},{208, 32},{208, 48},{224, 48},
{128, 48},{144, 48},
{160, 48},{176, 48},{192, 48},{142, 64},{160, 64},{176, 64},{208, 64},{224, 64}
},
{
4, 4, 4, 4, 4, 4, 4, 4,
1, 4,
4, 4, 1, 1, 1, 4, 4, 4,
1, 4, 4, 4, 4, 4, 4, 4,
1, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 1, 1,
4, 4,
4, 4, 4, 4, 4, 1, 1, 1,
4, 4, 4, 4, 4, 4, 4, 1,
1, 4,
4, 4, 4, 4, 1, 1, 1, 1,
}
};
#endif
#ifdef WEBUSB_ENABLE

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