Compare commits

..

195 Commits

Author SHA1 Message Date
Joel Challis
5d7f2823c9 Implement GPIO abstraction for atsam (#13567)
* Implement GPIO abstraction for atsam

* Convert Drop boards to normal matrix config

* Work round pin conflicts and matrix delay
2021-07-22 23:01:19 +01:00
Tran Kim Tung
95a7c22824 [Keyboard] adds new revision: dztech/dz60rgb/v2_1 (#13636) 2021-07-22 09:39:08 -07:00
Md. Mashur Shalehin Sakib
58abdfc834 [Keyboard] Fixing info.json for h0oni/hotduck (#13640) 2021-07-22 09:35:28 -07:00
Trent Hoh
78a3f43c08 [Keyboard] Ymd40v2new layouts and fixed per-switch backlight (#13622) 2021-07-22 01:11:11 -07:00
Drashna Jaelre
8158473464 [Keyboard] Fix clawsome/hatchback and reviung5 compile issues (#13607) 2021-07-22 00:53:18 -07:00
drhigsby
336c8d3efe [Keyboard] add ogurec (#13242)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-22 00:17:47 -07:00
farfalleflickan
a400681ccf [Keyboard] Updated keyboard & keymaps (#12667)
Co-authored-by: pastapojken <6597735+pastapojken@users.noreply.github.com>
2021-07-21 23:57:35 -07:00
joedinkle
e9c3f71e74 [Keyboard] add SPRH keyboard (#12999)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-21 23:47:48 -07:00
Sắn
92cca84651 [Keyboard] Add keypad Satxri6key (#13423)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-21 23:40:24 -07:00
jmaynard
8e905a7a5c [Keyboard] Initial Tron Guy Labs keyboard implementation. (#13438)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Jay Maynard <jmaynard@conmicro.com>
2021-07-21 23:39:45 -07:00
Brandon Lewis
8c17a822a8 [Keyboard] Add Ristretto Keyboard (#13479)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Brandon Lewis <blewis308@users.noreply.github.com>
2021-07-21 23:31:03 -07:00
Kyle McCreery
5766b9bfb7 [Keyboard] New Keyboard - OBE (#13545)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-21 23:22:00 -07:00
Adam Abrams
fbe782534a [Keyboard] Add personal planck keymap (#13635) 2021-07-21 22:56:46 -07:00
Manassarn "Noom" Manoonchai
665af4fa8d [Keymap] narze/xd004 (#13634)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-21 22:46:15 -07:00
Md. Mashur Shalehin Sakib
5b8d2b5cde [Keyboard] Add h0oni hotduck keyboard (#13609) 2021-07-21 22:39:36 -07:00
Ryan
b564ba13ee Fix API generation failure caused by GRS-70EC (#13631) 2021-07-21 19:30:29 +01:00
Ryan
c79bc7c909 Fix MATRIX_COLS for peranekofactory/tone (#13632) 2021-07-21 19:28:58 +01:00
Alabahuy
2b260bd846 fixed number layer on keymap (#13627) 2021-07-21 19:25:21 +01:00
gkeyboard
ca1aa56c7f [Keyboard] Fix iso layout compile error (#13628)
Fix iso layout compile erreo on qmk web.
2021-07-21 10:14:04 -07:00
Xelus22
afc629210c [Bug] VIA compile fixes (#13626) 2021-07-21 08:35:10 -07:00
Alabahuy
ec1a6f6b8b [Keyboard] add rartland with via support (#13585)
* add rartland and via support

* moved encoder adn oled to c file

* update c file
2021-07-20 22:28:05 -07:00
Andrew Kannan
ddc2766537 Fix vicious40 rules (#13623) 2021-07-21 15:05:10 +10:00
Weirdo
dbca44ae8d [Keyboard] Add Tiger910 (#12605)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-20 13:09:53 -07:00
Conor Burns
81cac8eec6 [Keyboard] 0xcb 1337 - Added keymap "conor" and fixed some minor stuff (#12744)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-20 13:07:53 -07:00
kb-elmo
c1ba35363d [Keyboard] Added Kineticlabs Emu (#12968) 2021-07-20 10:48:17 -07:00
Paul Ewers
3591312fa3 [Keymap] Updates to personal Drop ALT keymap (#13058) 2021-07-20 10:46:52 -07:00
StefanGrindelwald
42ac7c0541 [Keyboard] Add Momoka ergo (#13127)
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-20 10:46:29 -07:00
gkeyboard
8c526703f8 [Keyboard] Update lm60n.h (#13249) 2021-07-20 10:43:44 -07:00
sekigon-gonnoc
c6698cfce3 [Keyboard] Add keyboard GRS-70EC (#11296) 2021-07-20 10:24:22 -07:00
aydenvis
8f6867ce95 [Docs] Added note about no split support (#12512)
Currently, this feature isn't supported on splits, spent about an hour troubleshooting my board and firmware before asking, and turns out it's not in place. Note added to save others from this in the future.
2021-07-20 10:11:49 -07:00
FateEverywhere
16e52980c4 [Keyboard] Hard Light - Add keyboard, basic keymap (#12654)
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-20 09:58:39 -07:00
imchipwood
ec78f8bca2 [Keymap] Adding user code & keymaps for dumbpad & hotdox (#12924)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-20 09:40:54 -07:00
AlisGraveNil
4f880801ec [Keyboard] luggage rack (#12959) 2021-07-20 09:34:56 -07:00
lfgberg
9d523499af [Keyboard] add anomalykb a65i (#12967)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-20 09:34:18 -07:00
Andrew Kannan
388a4ae817 [Keyboard] Add Vicious40 to QMK (#12981)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-20 09:19:26 -07:00
Carl-Fredrik Arvidson
3486870ee4 Adds Swedish Mac ISO and ANSI keymaps (#13055)
* Adds Swedish Mac ISO and ANSI keymaps

* Replaces NBSP with space

* Adds missing keys

* Remove duplicates

* Remove duplicates

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Change case and remove whitespace

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Fix uppercase

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Add specific files for Swedish Pro

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

Remove whitespace

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

* Update quantum/keymap_extras/keymap_swedish_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

* Update quantum/keymap_extras/keymap_swedish_osx_iso.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-20 09:16:17 -07:00
Ryan
7ea1b97785 Fix CRLF in xbows/knight:via config.h (#13614) 2021-07-20 14:04:36 +01:00
projectcain
815c17b726 [Keyboard] Add vault45 (#13119)
* adding my keymap

* Update keyboards/projectcain/vault45/keymaps/default/config.h

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

* Update keyboards/projectcain/vault45/keymaps/default/keymap.c

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

* Update keyboards/projectcain/vault45/keymaps/default/keymap.c

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

* Update keyboards/projectcain/vault45/vault45.c

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

* Update keyboards/projectcain/vault45/keymaps/default/keymap.c

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

* Update readme.md

* Update keyboards/projectcain/vault45/keymaps/default/config.h

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

* Update keymap.c

* Update keyboards/projectcain/vault45/keymaps/default/config.h

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

* Update keyboards/projectcain/vault45/readme.md

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update info.json

* Update keyboards/projectcain/vault45/vault45.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/projectcain/vault45/readme.md

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

* Update keyboards/projectcain/vault45/readme.md

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

* Update keyboards/projectcain/vault45/readme.md

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-19 22:28:32 -07:00
Ryan Boone
b887a1b995 [Keyboard] Add q4z keyboard (#13198)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-19 22:27:18 -07:00
Uy Bui
1256915583 [Keyboard] Add we27 numpad (#13137)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-19 22:26:26 -07:00
Michael
35ee990bd0 [Keyboard] fix LED issue BOCC keyboard (#13175)
Co-authored-by: Michael Wamsley <wamsl@Michaels-MacBook-Pro.local>
2021-07-19 22:25:46 -07:00
yiancar
17933a884a [Keyboard] mnk1800s initial commit (#13444) 2021-07-19 22:24:40 -07:00
cole smith
6ab0593f44 [Keyboard] Boardsource technik (#13111)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-19 21:04:43 -07:00
TerryMathews
9941cf0051 [Keyboard] PORTICO: add support for wt_rgb (#13241)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-19 21:01:36 -07:00
ぺらねこ
8b0a996d5d [Keyboard] Add tone (#13337)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: kakunpc <15257475+kakunpc@users.noreply.github.com>
2021-07-19 20:49:45 -07:00
Andrew Kannan
f439bfd543 [Keyboard] Aella Keyboard PCB (#13372)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-19 20:46:01 -07:00
Andrew Kannan
46b8230468 [Keyboard] Add CannonKeys Balance PCB to QMK (#13489)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-19 18:49:26 -07:00
npspears
8e30ec1eee [Keyboard] enable RGB underglow on heckerboards/axon40 (#13490)
This PCB uses RGB underglow LEDs. If the user doesn't want them, they can turn them off with a keycode.
2021-07-19 18:48:58 -07:00
Adrian L Lange
1105f2eb47 [Keymap] Update bface p3lim keymap (#13582) 2021-07-19 18:48:00 -07:00
X-Bows Tech
5ee5280fa1 [Keyboard] Update the XBows/Knight keyboard (#13541)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-19 18:28:50 -07:00
Daegara
10905a6500 [Keyboard] CU65 layout update (#13589) 2021-07-19 17:52:19 -07:00
bomb
44a8ad265c [Keyboard] Repaired melgeek/mj63/ RGB lamp driver problem (#13579) 2021-07-19 17:52:00 -07:00
Giorgi Chavchanidze
8bc8eadaf9 [Keymap] Orthon keymap for idobo (#13584)
Co-authored-by: Giorgi Chavchanidze <giorgi@vivaldi.com>
2021-07-19 17:32:20 -07:00
Suschman
7e698c71cd Six Pack and ortho_ layout updates (#13587)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Suschman <suschman@gmail.com>
2021-07-19 17:30:09 -07:00
James Young
046429fa87 Knobgoblin: rename ortho keymap to default (#13592)
Keyboard did not previously have a `default` keymap.
2021-07-19 17:26:34 -07:00
James Young
4b55b7f852 converter/periboard_512: add Configurator layout data (#13600) 2021-07-19 17:06:45 -07:00
James Young
58f9321a77 fluxlab zplit: keymap restructuring (#13599) 2021-07-19 17:05:47 -07:00
Xelus22
5b6780f999 [Keyboard][Bug] Constellation Rev2 (#13595) 2021-07-19 17:04:14 -07:00
James Young
07ae72ea6b LazyDesigners Bolt: move via keymap to keymaps directory (#13581) 2021-07-17 17:41:29 -07:00
James Young
876f861715 Discipline layout macro/Configurator fixes (#13574)
* use human-friendly formatting in info.json

* move layout macro aliases to info.json

* correct and complete layout data

Corrects the layout data for a few layouts, adds the missing data, and renames some of the layout macros.

- rename LAYOUT_wkl_ansi_2_right_mods to LAYOUT_65_ansi_wkl
- rename LAYOUT_wkl_ansi_3_right_mods to LAYOUT_65_ansi_lwkl
- rename LAYOUT_wkl_iso_2_right_mods to LAYOUT_65_iso_wkl
- rename LAYOUT_wkl_iso_3_right_mods to LAYOUT_65_iso_lwkl
2021-07-17 16:25:56 -07:00
James Young
26e64f4fd3 ACR60 Refactor (#13575)
* modernize acr60.h

- use #pragma once include guard
- add license header
- use four-space indent
- use QMK three-character notation for layout macro arguments

* human-friendly format info.json

* remove `key_count` keys from info.json

* rename LAYOUT_2_shifts to LAYOUT_all

* move LAYOUT_all to top

* use QMK three-character notation in info.json

* refactor default keymap

- add license header
- remove third layer (does nothing)
- replace Shift-Escape keycode with KC_GESC
- use LAYOUT_all macro instead of LAYOUT

* modernize readme.md

- update header
- convert metadata section to list
- add flashing and bootloader jump instructions
- update Docs links

* use #pragma once include guard in config.h

* update LED Indicator API

* add license headers
2021-07-17 16:17:48 -07:00
James Young
ca0e7e7bd9 Cutie Club Giant Macro Pad: add info.json (#13576) 2021-07-17 10:16:20 -07:00
James Young
b127180c0c Xelus Akis Configurator Fixes (#13577)
* correct layout macro references

The keyboard's header file and info.json referenced different layout macro names.

* correct layout data

Insert an object for the Non-US Backslash key, which was previously missing.
2021-07-17 01:43:02 -07:00
Takeshi ISHII
d26537acc1 remove RGBLIGHT_H_DUMMY_DEFINE macro from rgblight.h (#13569) 2021-07-17 12:13:16 +09:00
Dasky
932a67ced2 Limit RGB brightness for crkbd when not defined (#13568) 2021-07-16 12:16:06 -07:00
Ryan
6c550cc7f7 Improve driver installation docs (#13562) 2021-07-17 02:49:33 +10:00
lukeski14
89eeb4987c adding tw40 via support (#13032) 2021-07-17 02:42:50 +10:00
Oliver Granlund
455a988aa6 [Keyboard] Neito + my DZ60 keymap tweaks (#11773) 2021-07-16 09:39:35 -07:00
shela
6cc03dd30a Remove unwanted notes (#13563) 2021-07-16 09:37:49 -07:00
Joel Challis
366be0f7e9 Migrate arm_atsam print logic to use common framework (#13554) 2021-07-16 17:08:34 +01:00
Takeshi ISHII
5fda0e2c04 remove #include "rgblight.h" when defined(RGB_MATRIX_ENABLE) from quantum.h (#13555) 2021-07-16 12:54:56 +09:00
Andre Brait
c330fa725d Set some default configurations for GMMK Pro (#13219)
* Set some default configurations for GMMK Pro

* Remove FORCE_NKRO to avoid issues with KVMs
2021-07-16 09:06:23 +10:00
bomb
68b1ef2d1d [Keyboard] correct the info.json for qmk configurator and add two empty layers for via (#13552) 2021-07-15 09:54:58 -07:00
Zach White
9d0b7ab9b9 [keyboard] Clueboard 2x1800 2021 Support (#13220)
* 2x1800 2021

* add support for writing a whole frame at a time

* improvements

* wip

* fix scrolling

* small tweak

* add a buffer that's larger than the display

* add the start of a font

* working upper and lower case letters

* add qmk animation

* integrate the message sign into the qmk task system

* add encoder defaults

* add MAX7219_LED_CUSTOM to config.h

* tweaks

* remove unneeded keymaps

* add a keymap showing how to control the signboard

* cleanup

* cleanup

* add a way to disable the startup test

* make it easier to define options at the keymap level

* Fix define names

Co-authored-by: Greg Cochard <gcochard@users.noreply.github.com>

* Apply suggestions from gcochard

Co-authored-by: Greg Cochard <gcochard@users.noreply.github.com>

* feedback from noroads

* format info.json

Co-authored-by: Greg Cochard <gcochard@users.noreply.github.com>
2021-07-14 21:24:15 -07:00
mechlovin
18c6e1d46d [Keyboard] Add Serratus PCB (#13281)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-14 13:55:52 -07:00
Koobaczech
867d60bd64 [Keyboard] Tidying up my projects and subprojects (#13289)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ethan Madden <maddene@madden.ninja>
2021-07-14 13:55:12 -07:00
Ryan
99f637e82c Fix some RGB Matrix-enabled keymaps referring to RGBLight mode (#13509) 2021-07-15 03:50:09 +10:00
Zach White
ffdfe3798b switch to qmk-dotty-dict (#13460) 2021-07-14 09:08:48 -07:00
mechlovin
1c9af238dc correct data info.json (#13544)
rouge87 and rogue87
2021-07-14 08:46:44 -07:00
bomb
9c4916e2e8 [Keyboard] Add MelGeek MJ6xy which is a 60% keyboard that support mul… (#13494)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-14 08:39:54 -07:00
James Young
dd5ead676b Traveller handwired layout macro refactor (#13539) 2021-07-13 21:28:56 -07:00
James Young
70efc82c1c Lucid Phantom soldered: layout macro touch-up (#13540) 2021-07-13 21:27:11 -07:00
Albert Y
b29179de1a RGB Matrix support for Scylla (#13415)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-07-13 21:26:00 -07:00
Joel Challis
ef8267d6a7 Refactor Drop boards to custom matrix lite (#13468) 2021-07-13 21:07:33 -07:00
Ian Klug
6cdba3a437 [Keyboard] Add ianklug grooveboard (#13536)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-13 21:04:14 -07:00
Anton
2fd4595955 [Keyboard} Add ISO support for the GMMK Pro (#13532)
* Added iso layer support for the GMMK Pro iso version

* Adjusted the mapping

* aligning with best practises
* aligning with comments from PR

* Added iso layout to info.json
2021-07-13 16:50:17 -07:00
James Young
d4399172d3 Ortho 5x14 handwired info.json correction (#13538)
* ortho5x14 handwired: correct info.json data

Last key was incorrectly positioned.

* fix readme typo
2021-07-13 14:15:38 -07:00
James Young
a3d60464ef 4pplet AEKISO60 keymap/macro touch-up (#13528)
Moves the ISO Enter keycode to the home row for more consistency with the rest of QMK. Also grid-aligns the keycodes and adds a block comment for the layout macro.
2021-07-13 14:04:22 -07:00
James Young
555a449488 Ergoarrows info.json touch-up (#13537)
* human-friendly formatting

Add line breaks between rows and halves.

* fix rounding issues

Fixes issues with y-offset values due to rounding in KLE.

* remove layout dead space; re-mirror halves

Removes the empty white space from the layout, and aligns the keys on the right half so they are a mirror of the left half.
2021-07-13 13:44:01 -07:00
AnthonyL
3cd6cb65bc [Keyboard] Montex add VIA support and keymap. (#13488)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Anthony Lowery <anthony.lowery@unity3d.com>
2021-07-13 10:11:02 -07:00
Cosmin
64e6ba0211 [Keyboard] fixes and additions to the Marauder keyboard (#13462)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-13 08:58:16 -07:00
James Young
bf70db479c AMJ60 Refactor (#13530)
* rename LAYOUT to LAYOUT_all

* refactor default keymap

- add license header
- use layer_names enum
- use LAYOUT_all macro
- update keymap to be more generic
- use QMK-native keycode aliases

* info.json: human-friendly formatting

* convert LAYOUT_iso into a proper LAYOUT_60_iso

* LAYOUT_all bugfix

In the physical sense, position k3d is to the left of k3c.

* rework LAYOUT_max into LAYOUT_60_ansi_split_bs_rshift

* remove LAYOUT_iso_splitrshift and iso_split_rshift keymap

* rework LAYOUT_hhkb into LAYOUT_60_hhkb

* amj60.h cleanup

- add license header
- use #pragma once include guard
- concatenate layout block comments
- remove unnecessary function headers

* add license header to amj60.c

* align config.h to QMK template

* align rules.mk to QMK template

* enable Community Layout support

* modernize readme.md

- add PCB image
- convert keyboard data to list
- add flashing and bootloader instructions
- update Docs links
2021-07-13 06:46:20 -07:00
Takeshi ISHII
b89abc402b [Keyboard] Update Symmetric70 keyboard prototype (#12707)
* update handwired/symmetric70_proto/matrix.c

* make keyboards/handwired/symmetric70_proto/promicro/

* add symmetric70_proto/debug_config.h, update symmetric70_proto/local_features.mk etc.

  set MATRIX_IO_DELAY macro
    make MTEST=mdelay0  symmetric70_proto/promicro:default:flash
    make MTEST=mdelay1  symmetric70_proto/promicro:default:flash
    make MTEST=mdelay10 symmetric70_proto/promicro:default:flash
    make MTEST=mdelay30 symmetric70_proto/promicro:default:flash
  set DEBUG_MATRIX_SCAN_RATE_ENABLE yes
    make MTEST=scan symmetric70_proto/promicro:default:flash
  set MATRIX_DEBUG_DELAY and MATRIX_IO_DELAY macro
    make MTEST=matrix_debug_delay,mdelay0 symmetric70_proto/promicro:default:flash
  set MATRIX_DEBUG_SCAN
    make MTEST=matrix_debug_scan symmetric70_proto/promicro:default:flash

* add symmetric70_proto/matrix_debug/readme.md

* update symmetric70_proto/matrix_debug/readme.md

* update handwired/symmetric70_proto/readme.md

* update handwired/symmetric70_proto/readme.md

* update handwired/symmetric70_proto/*/readme.md

* add handwired/symmetric70_proto/matrix_fast/

* update handwired/symmetric70_proto/matrix_fast/readme.md

* fix typo in handwired/symmetric70_proto/matrix_fast/readme.md

* update config.h under handwired/symmetric70_proto/promicro

* add Proton C support to handwired/symmetric70_proto

* add handwired/symmetric70_proto/proton_c/readme.md

* add promicro/*/readme.md proton_c/*/readme.md

* update handwired/symmetric70_proto/proton_c/proton_c.c

support MATRIX_IO_DELAY_DEFAULT for testing.

* Added another implementation of 'adaptive_delay'.

* update symmetric70_proto/local_features.mk

* update symmetric70_proto/matrix_fast/gpio_extr.h

* add matrix_output_unselect_delay_ports()

* add MTEST=adaptive_delay_fast option

* update symmetric70_proto/matrix_debug/readme.md

* update symmetric70_proto/matrix_fast/readme.md

* update symmetric70_proto/matrix_debug/readme.md

* Erase garbage

* fix symmetric70_proto/proton_c/proton_c.c

* improve adaptive_delay_fast in symmetric70_proto/matrix_debug/matrix.c

* update symmetric70_proto/matrix_debug/readme.md

* fix symmetric70_proto/matrix_debug/readme.md

* Update keyboards/handwired/symmetric70_proto/proton_c/rules.mk

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

* Update keyboards/handwired/symmetric70_proto/proton_c/rules.mk

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

* Update keyboards/handwired/symmetric70_proto/local_features.mk

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/handwired/symmetric70_proto/local_features.mk

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/handwired/symmetric70_proto/local_features.mk

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/handwired/symmetric70_proto/matrix_debug/readme.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/handwired/symmetric70_proto/matrix_debug/readme.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/handwired/symmetric70_proto/matrix_debug/readme.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/handwired/symmetric70_proto/matrix_fast/matrix_config_expand.c

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-07-13 18:14:27 +09:00
James Young
6b6ee5fa28 1UP Keyboards 1UP60HTE layout macro touch-up (#13529)
* rename LAYOUT_tsangan to LAYOUT_60_tsangan_hhkb

... and enable Community Layout support.

* use four-space indent and QMK-native keycode aliases

* rules.mk touch-up

- remove Bootloader selection header comments
- unify Build Options comment header to QMK template
- align inline comments

* readme.md touch-up

- convert metadata to list
- add Flashing command

* move layout macro alias to info.json

* apply friendly formatting to info.json

* restore badger keymap to previous (don't edit user keymap)
2021-07-13 00:18:07 -07:00
James Young
92a029d6f3 Ergonomic Vertical Keyboard (EVK) handwired info.json touch-up (#13527)
* scale layout data

Seems the KLE data that was imported to make the original file was scaled 1.25x. This commit removes the scaling.

* human-friendly formatting

Insert line breaks between physical layout rows.

* remove instances where width or height is set to 1

The width and height of a key is defaulted to 1 if not provided by the JSON data, so there's no reason to set it manually.
2021-07-12 23:44:56 -07:00
James Young
7d2f70f398 Checker Boards NOP60 touch-up (#13526)
* apply human-friendly formatting to info.json

* fix JSON tree errors in info.json

* rename layout macros

- rename LAYOUT_2x3u to LAYOUT_60_tsangan_hhkb_split_space
- rename LAYOUT_7u to LAYOUT_60_tsangan_hhkb

* rename 2x3u keymap to default
2021-07-12 23:32:54 -07:00
James Young
8f0bf52b25 ID67 codebase touch-up (#13521)
* correct layout data

Fix incorrect key sizes/positions.

* rename LAYOUT to LAYOUT_65_ansi_blocker

* tweak human-friendly formatting for info.json

Add new lines for new rows.

* adjust keycode alignment in via keymap

* clean up extra lines in readme file

* enable 65_ansi_blocker Community Layout support

* clean up rules.mk

Aligns the inline comments.
2021-07-12 10:14:18 -07:00
Albert Y
c024acd752 [Keyboard] RGB Matrix support for TBK Mini (#13506)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-07-12 08:52:32 -07:00
Kwabena Aduse-Poku
6b8168c378 [Keyboard] Add Bloop65 (#13388)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-12 00:23:33 -07:00
jackytrabbit
20a28d6752 [Keyboard] Update lazydesigners/the60/rev2/rev2.h (#13505)
Update lazydesigners/the60/rev2/rev2.h
2021-07-11 09:42:38 -07:00
Rys Sommefeldt
b71ee47c44 [Keyboard] CapsUnlocked CU7 (#13429)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-11 09:42:19 -07:00
Drashna Jaelre
4f3a4eca97 [Keymap] Fix Corne Via Layout properly (#13518) 2021-07-11 08:50:18 -07:00
James Young
0453b61e1a [Keyboard] Wuque Studio Ikki68 Aurora codebase touch-up (#13510) 2021-07-11 08:47:21 -07:00
Takeshi ISHII
877e81f963 Fixed the Helix keymap 'fraanrosi' compile issues (#13514)
According to `helix/rev2/keymaps/fraanrosi/readme.md`, this keymap should be compiled with the following command:

```
make helix/rev2/under:fraanrosi
```

Therefore, when compiling all helix keymaps with the following command, an error occurs when compiling `fraanrosi`.

```
make helix:all
```

Therefore, add `LED_UNDERGLOW_ENABLE = yes` to `keymaps/fraanrosi/rules.mk` to suppress the error.
2021-07-11 16:51:45 +09:00
Fredrik Salomonsson
0a8accae06 [Keymap] plattfot - Keymap updates for Kyria (#13449)
- Major change in the keymap to work with EurKey. Which relaxes some
  constraints it had before when it had to take in consideration two
  layouts.

  With this the parenthesis can be moved to a better location instead
  of being in the top right corner.

  This also allows esc, del and rctrl to be moved to the base layer.

  Only downside is that ctrl+lalt needed to be removed and instead
  AltGr takes it's place. Add rctrl on right thumb cluster to
  compensate for this which need some reorganization on the thumb
  cluster.

- Split the symbol and function keys layer into two layers, one for
  each hand. Make it easier to press symbols and function keys.

- Add some symbols specific for the EurKey layout.

- Change from running C-<tab> S-C-<tab> to page up/down for the right
  rotary. As holding ctrl and using page up/down works the same in
  firefox. Which allows the rotary to be useful for other things.

- Move scroll lock and insert to right rotary.

- Introducing close tap (CLO_TAP), which is a combination of the
  double tap feature and my macros. E.g. pressing CLO_TAP and ( will
  generate ()←. Which removes the need of the macros and makes it more
  useful than DBL_TAP as it now saves me some keypresses. CLO_TAP exist
  on both the left and right hand layers to make it easy to use.

- Use text for the secondary oled, firmware is too big after rebasing
  on upstream master.

- Update image in the readme to reflect my new layout.
2021-07-10 22:37:28 -07:00
GG
2c6cff4cb7 [Keyboard] add new firewave ikki68_aurora (#13364)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-10 22:08:26 -07:00
James Young
988942ce40 Clawsome Hatchback & SUV: fix improperly named keymap directories (#13508) 2021-07-10 17:35:27 +10:00
Drashna Jaelre
09474cbf04 Fix VIA compilation issues for RGB Matrix (#13503) 2021-07-10 02:32:56 +01:00
Zach White
baa65d2177 enable manual trigger for api data (#13000) 2021-07-09 09:10:45 -07:00
James Young
572a35d9a2 Mechmini V1 Refactor (#13498) 2021-07-09 19:40:59 +10:00
James Young
1e51bb39a3 nknl7en: correct key object order (#13482) 2021-07-08 10:58:42 -07:00
Takeshi ISHII
f44b48669d Updated docs/ja/feature_ps2_mouse.md. (#13472)
Changed following the change in the definition of `PS2_MOUSE_SCROLL_BTN_MASK` in the original document.
2021-07-08 18:47:39 +10:00
Takeshi ISHII
e10e67c9b9 [Update] Change Original TAGs of Japanese translations (#13473)
* Updated docs/ja/proton_c_conversion.md original tag.

* Updated docs/ja/other_vscode.md original tag.

* Updated docs/ja/feature_swap_hands.md original tag.

* Updated docs/ja/faq_general.md original tag.

* Updated docs/ja/feature_userspace.md original tag.

* Updated git co docs/ja/config_options.md original tag.
2021-07-08 18:47:09 +10:00
Takeshi ISHII
eab623f1ad [Docs] update Japanese translation of internals_gpio_control.md (#13401)
* Add 'Atomic Operation' section into docs/ja/internals_gpio_control.md

* Update docs/ja/internals_gpio_control.md

* Update docs/ja/internals_gpio_control.md

* Update docs/ja/internals_gpio_control.md
2021-07-08 18:46:28 +10:00
James Young
72540f7d83 Xelus Ninjin: rename LAYOUT_all to LAYOUT_tkl_ansi_tsangan; add info.json (#13477) 2021-07-07 11:28:11 +10:00
James Young
692d0268ca Kopibeng XT65: Layout Macro Refactor (#13476) 2021-07-07 11:27:23 +10:00
mfkiiyd
b976fcbb44 [Keyboard] Add poker87c and poker87d (#12810)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Water <mfkiiyd@163.com>
2021-07-06 18:06:39 -07:00
Blake
a0a57dc613 [Keyboard] Add new Elise, 65% Keyboard ANSI / ISO (#12782)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-06 18:05:53 -07:00
Simon
dba3f0d1eb [Keyboard] Add bm65iso (#13400)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-06 18:04:32 -07:00
gtips
09c4d536c3 [Keyboard] Add keyboard reviung5 (#13375) 2021-07-06 15:20:20 -07:00
KDon
c9c2916829 [Keyboard] Add kabedon98e (#13314) 2021-07-06 14:47:24 -07:00
Drashna Jaelre
792c4e7893 [Keyboard] Set reasonable defaults for Corne keyboard (#13440)
* [Keyboard] Set reasonable defaults for Corne keyboard

* Add note about bootmagic

* Make bootmagic config super weak

* cleanup

* Apply suggestions from code review

* Update keyboards/crkbd/readme.md
2021-07-06 10:47:26 -07:00
Kuba Tyszko
acf7de7a52 /bin/bash to /usr/bin/env bash (#13422) 2021-07-06 07:56:13 -07:00
Ryan
9ce6808015 Update MSG_PYTHON_MISSING (#13427) 2021-07-06 15:34:04 +10:00
David Luo
03a9baa44f [Keyboard] fix encoder_update_user for nullbitsco/nibble (#13451) 2021-07-05 10:15:24 -07:00
Ryan
4c1c112a16 Traveller cleanup (#13441)
* Traveller cleanup

* Update keyboards/handwired/traveller/info.json

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

Co-authored-by: Joel Challis <git@zvecr.com>
2021-07-05 11:45:31 +01:00
James Young
eb7178b542 LatinPadBLE: correct info.json data (#13452)
* correct info.json data

Removes an extra key object, and corrects the layout macro reference.

* refactor rules.mk file

- remove invalid `LAYOUTS` rule
- edits the rules.mk file to more closely resemble the file from QMK's AVR template.

* additional rules.mk cleanup per fauxpark

Apply suggestions from code review
2021-07-05 03:30:34 -07:00
James Young
5d52d01825 Jabberwocky: adjust key positioning in Configurator (#13447)
* adjust key positioning in Configurator

Some of the keys were visually overlapping when rendered. Adjusted the key positioning to remove the overlaps.

* update readme.md

- fix a broken URL
- rewrite the Bootloader access instructions
- remove trailing whitespace
2021-07-05 03:07:24 -07:00
James Young
673a5b0ea2 Molecule: Layout Macro Refactor (#13453) 2021-07-05 14:11:53 +10:00
wxyangf
fa309df895 [Docs] added list of MIDI keycodes (#13159) 2021-07-04 17:34:20 -07:00
James Young
b73f8de10b correct Configurator layout data (#13448)
The object for the rotary encoder was not previously included in the layout data.
2021-07-04 23:40:31 +01:00
James Young
af083b41cd Yampad: add info.json (#13445) 2021-07-04 08:34:50 -07:00
Yon Nor
4d4cac2d07 [Keyboard] Add CX60 (#13402)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-03 20:24:20 -07:00
James Young
6d8fac5e2d Specskeys Configurator Bugfix and Refactor (#13439) 2021-07-03 20:13:50 -07:00
AnthonyL
3e04e22edb [Keyboard] IDOBAO ID67 (#13378)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Anthony Lowery <anthony.lowery@unity3d.com>
2021-07-03 19:54:33 -07:00
cole smith
400844453a [Keyboard] ortho boards from the technik gb (#13382)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-03 18:06:05 -07:00
Drashna Jaelre
2161496d62 [Keyboard] Add soldered variant of Titan 65 keyboard. (#13270) 2021-07-03 16:48:51 -07:00
James Young
79751f5b15 Pisces: correct layout macro reference in info.json (#13410) 2021-07-03 09:44:15 -07:00
Manna Harbour
65f8da3034 [Keymap] Update Miryoku (#13307)
Fix reddit link

Duplicate open parenthesis next to close parenthesis on NSSL

Add customisation instructions

Add lily58

Add gergo
Co-authored-by: Jonathan Dayton <jonathandayton23@gmail.com>

Clean up LAYOUT macro formatting

Add alternative vi-style navigation layout

Add kyria

Add minidox

Change order of keyboards

Add iris

Expand TOC

Re-order userspace subheadings

Add atreus

Add customisation section

Add split_3x5_3 and split_3x6_3 layouts

Add for_science

Fix wrong paths in keyboard config.h and keymap.c headings

Fix keyboard ordering

Fix blank lines around headings

Add compatibility with new org-mode version.

Remove keyboards/crkbd now covered by layouts/split_3x6_3

Add Halmak

Alphabetise alternative alpha arrangements

Move build options out of base layer alphas headings

Add list of keyboards supporting split_3x5_3 layout

Enable Auto Shift and Retro Shift

Add Retro Shift (Auto Shift for Tap Hold via Retro Tapping)

Change kyria thumb key mapping

Add planck_mit layout

Remove alternative bottom row support from ortho_4x12

Remove minidox
 - Covered by split_3x5_3 layout

Add moonlander

Remove KC_ macros

Add 60_ansi layout

Add ortho_5x15 layout
Closes manna-harbour/qmk_firmware#5
Co-authored-by: Rob <rob@debank.tv>

Fix typo (manna-harbour/qmk_firmware#7)
Author: sonnius <sonnius@users.noreply.github.com>

Add redox_w (manna-harbour/qmk_firmware#8)
Author: Brian Romanko <hello@bromanko.com>
Co-authored-by: Manna Harbour <51143715+manna-harbour@users.noreply.github.com>

Add AUTO_SHIFT_NO_SETUP to reduce firmware size

Update image paths

Add instructions to checkout development branch

Add kyria extended thumbs option, change default, add KLE

Change clipboard keys
 - Change order to be mirror of windows bindings
 - Change default to use CUA bindings for Cut, Copy, and Paste, and Fun Cluster
bindings for Undo and Redo
 - Add alternative bindings
   - Fun Cluster (original miryoku bindings)
   - Mac
   - Windows
 - Change prefix for local macros from X_ to U_

Disable Retro Shift, enable Auto Shift for non-alphas

Revert "Add Retro Shift (Auto Shift for Tap Hold via Retro Tapping)"

Add Experimental Features section

Update miryoku image link

Update cover image link

Add dactyl_manuform/4x5

Add cutomisation examples

Add https to remote example

Fix dactyl_manuform/4x5 subset mapping

Add extended thumbs to ortho_4x12

Update Colemak Mod-DH naming
Closes manna-harbour/qmk_firmware#13

Add dactyl_manuform/5x6
Resolves manna-harbour/qmk_firmware#14
Co-authored-by: Sebastian Morales <sebastian.moralesd@gmail.com>

Add note on FORCE_LAYOUT
 - Needed to use EXTENDED_THUMBS on planck

Add parent directories to keyboard headings and re-order

Add keyboardio/atreus
Resolves manna-harbour/qmk_firmware#15

Add torn
Resolves manna-harbour/qmk_firmware#16
Author: Brian Romanko <hello@bromanko.com>
Co-authored-by: Manna Harbour <51143715+manna-harbour@users.noreply.github.com>

Change map to zip
 - Adds support for python3, still compatible with python2.
Resolves manna-harbour/qmk_firmware#10
Resolves manna-harbour/qmk_firmware#19
Co-authored-by: Ori <ori@oribarbut.com>

Add python-version

Add sofle

Add ergotravel

Add ortho_5x12

Add ortho_4x10

Add :main no header argument to C code blocks
resolves manna-harbour/qmk_firmware#11
resolves manna-harbour/qmk_firmware#12
Co-authored-by: RubioJr9 <u0893472@utah.edu>

Add flipped layers and inverted-T nav alternative layouts
 - Separate tap_table into alphas_table and thumbs_table
 - Add mode argument to table-layout-half
 - Remove layer_name
 - Rename layers
 - Add mods and clipboard to MBO and mirror
 - Add MIRYOKU_LAYERS=FLIP
 - Add MIRYOKU_NAV=INVERTEDT

Add layer diagrams

Update contact section

Update links for Bilateral Combinations and Retro Shift

Add description and no reverse angle option to 60_ansi layout

Update list of keyboards supporting community layouts
 - and example build command lines

Change moonlander thumb keys

Update list of keyboards supporting split_3x5_3

Add license to tangled C source files
2021-07-03 09:09:02 -07:00
yfuku
3b1506b741 [Keyboard] Add wings42 keyboard (#12734)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-03 09:04:30 -07:00
Faehriss
bec74aec1b [Keyboard] Added LAYOUT_60_iso_split_rshift to ok60 (#12902)
added lines to support split right shift ISO in QMK configurator.
2021-07-03 08:18:21 -07:00
Jonavin
002d90b357 [Keymap] Jonavin merc additional encoder functionality (#13039)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Jonavin <=>
2021-07-03 08:13:41 -07:00
Xelus22
4b6af0a507 [Bug] Pachi RGB - fix rgb placement (#13428) 2021-07-03 08:02:54 -07:00
Jonavin
d068b7c097 [Keymap] gmmk pro keymap with numpad, enhanced encoder functionality and Win key lock (#13406)
Co-authored-by: Jonavin <=>
2021-07-03 01:36:38 -07:00
Jonavin
5878e86c8a [Keymap] Jonavin quefrency keymap add encoder functionality + 2tap Shift CAPSLOCK (#13376)
Co-authored-by: Jonavin <=>
2021-07-03 01:16:16 -07:00
Albert Y
fdf71f1aa7 [Docs] RGB Matrix Caps Lock and Layer indicator example (#13367)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: filterpaper <filterpaper@localhost>
2021-07-03 01:07:01 -07:00
stanrc85
4b285d3f50 [Keymap] Add stanrc85 community layout (#13338) 2021-07-03 01:06:21 -07:00
Nick Abe
2ccca64514 [Keymap] 2Moons-JP Keymap Update (#13279)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-03 01:00:34 -07:00
rate
0339467814 [Keyboard] Added pistachio rev2 (#13248)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-03 00:59:52 -07:00
Nic Lake
7f41c5147b [Keymap] niclake - Keymap updates - Boardwalk updates & DZ60 create (#13245) 2021-07-03 00:59:30 -07:00
Rob Owens
c55bb3d478 [Keyboard] Add support for Idobao Montex (#13214)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-03 00:58:13 -07:00
X-Bows Tech
2af5d493e3 [Keyboard] Add X-Bows Knight_Plus Keyboard (#13221)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-03 00:57:27 -07:00
Manassarn "Noom" Manoonchai
45dec4911c [Keymap] Add narze lily58 keymap & update my other keymaps (#13110)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-03 00:50:32 -07:00
Ryan
06e0643541 Add "Ctrl+C to cancel" to "waiting for bootloader" messages (#13424) 2021-07-03 16:34:22 +10:00
Qiaowei Tang (Joel)
2ce8d26418 [Keymap] Think6.5v2 keymap with working caps-lock indicator (#12709)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-02 23:31:32 -07:00
David Rambo
170de06475 [Keymap] Update personal keymaps, add Corne keymap, and update non-kc LAYOUT for Iris (#12273)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-02 22:30:32 -07:00
Dino Fizzotti
f51d929bd9 [Keyboard] Add FnRow v1 keyboard by dinofizz (#11817)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Dino Fizzotti <dinofizz@pop-os.localdomain>
2021-07-02 20:56:23 -07:00
Conor Burns
8bba77db0d added 0xCB Static (#13047)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-07-02 19:38:53 +01:00
James Young
11a406f046 correct info.json data (#13409) 2021-07-02 14:12:05 +01:00
James Young
73dedb96f2 add maintainer value to info.json (#13411)
Configurator isn't using the data in this file, and I think this may be why...
2021-07-02 14:09:24 +01:00
Joel Challis
9f49ec51a1 Fix up recent checkerboards additions (#13414) 2021-07-02 14:00:55 +01:00
Xelus22
a8f6a36e1e [Bug] fix Dystopia.h comma (#13413) 2021-07-02 16:21:27 +10:00
Ryan
5046883531 Cleanup gitignore (#13390) 2021-07-02 16:08:34 +10:00
npspears
6db4b49fec add support for Axon40 and G_IDB60 (#13075)
* add support for Axon40

* add support for G_IDB60

* added bootloader reset instructions

* added bootloader reset instructions
2021-07-02 10:45:31 +10:00
Danny
db7fd6c3a1 Add missing Quefrency layouts for QMK Configurator (#13384)
* Reformat info.json using Prettier

* Add missing layouts needed for QMK Configurators
2021-07-01 12:39:16 -07:00
AfterThought
79a46708f8 [Keyboard] Adding Via support to the GON NerD60 (#13395) 2021-07-01 12:17:28 -07:00
Jakob Hærvig
bef73f44aa [Keymap] Add haervig userspace and keymaps (#13362) 2021-07-01 10:12:19 -07:00
Caleb Lightfoot
c275828ac2 Changed Yeehaw Default Keymap (#13341) 2021-07-01 20:47:43 +10:00
umi
57d9f01125 [Docs] update Japanese translation of other_eclipse.md (#12776)
* update other_eclipse.md translation

* update based on comment

* update based on comment
2021-07-01 18:22:48 +09:00
umi
a1582c4411 update Japanese translation of config_options.md (#12695)
* update config_options.md translation

* update config_options.md translation

* update based on comment

* update based on comment
2021-07-01 18:22:10 +09:00
s-show
397d388862 Translated 'feature_advanced_keycodes.md'. (#12454)
* Translated 'feature_advanced_keycodes.md'.

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_advanced_keycodes.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* update based on comment.

* update based on comment.

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* update based on comment.

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* update based on comment.

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

Co-authored-by: shela <shelaf@users.noreply.github.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2021-07-01 18:21:37 +09:00
s-show
882b90b729 [Docs] Japanese translation of docs/keycodes_basic.md (#11044)
* 'keycodes_basic.md' copied.

* Translation completed.

* update to "breakpoint_2021_05_29".

* Update docs/ja/keycodes_basic.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/keycodes_basic.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/keycodes_basic.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/keycodes_basic.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/keycodes_basic.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* update based on comment.

* update based on comment.

Co-authored-by: shela <shelaf@users.noreply.github.com>
2021-07-01 18:21:03 +09:00
James Young
e322462cd4 Illusion Rosa: correct layout macro names (#13387) 2021-07-01 01:24:06 -07:00
James Young
a001df5e80 FJLabs Midway60: physically arrange layout macro and fix info.json data (#13386) 2021-07-01 01:23:33 -07:00
James Young
1e809e28b7 Sanctified Dystopia: physically arrange layout macro (#13385)
Arranges the layout macro and keycodes to resemble the assembled keyboard.
2021-07-01 01:23:00 -07:00
Stefano Pace
c1813717a7 Updates for keymap: ut472/stefanopace (#13370) 2021-07-01 01:21:42 -07:00
Michael Stapelberg
2b8ad391ae [Keyboard] update debounce time on kint boards (#13351)
related to https://github.com/kinx-project/kint/issues/39
related to https://github.com/qmk/qmk_firmware/pull/12626
2021-07-01 01:07:37 -07:00
stanrc85
fb405c27ad [Keymap] RGB Timeout added to userspace (#13339) 2021-07-01 01:06:06 -07:00
kb-elmo
13533508e2 [Keyboard][Bug] Fix LED indicators on Skeletn87 (#13335) 2021-07-01 00:53:35 -07:00
Harshit Goel
4168e10c49 [Keyboard] Pteron36, open source 3x5_3 supporting layout (#13313) 2021-07-01 00:44:38 -07:00
Jesper Nellemann Jakobsen
54f429edd8 [Keymap] Create bingocaller keymap for DZ60RGB-ANSI (#13311)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-01 00:42:10 -07:00
Shandon Anderson
d8c491954e [Keyboard] Added flygone60 rev3 (#13280)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2021-07-01 00:29:30 -07:00
melonbred
cd68fd7e8d [Keyboard] mb44 - Update info.json and encoder (#13244) 2021-07-01 00:12:53 -07:00
Ryan
dc3896e31c Cleanup junk chars, part 4 (#13345) 2021-07-01 16:41:51 +10:00
Takeshi ISHII
8c982dba31 [Update] Change Original TAGs of Japanese translations (#13396)
* Updated docs/ja/how_a_matrix_works.md original tag.

* Updated docs/ja/api_overview.md original tag.

* Updated docs/ja/contributing.md original tag

* Updated docs/ja/coding_conventions_c.md original tag

* Updated docs/ja/reference_configurator_support.md original tag

* Updated docs/ja/reference_glossary.md original tag

* Updated docs/ja/api_docs.md original tag

* Updated docs/ja/feature_stenography.md original tag

* Updated docs/ja/documentation_templates.md original tag

* Updated docs/ja/faq_keymap.md original tag

* Updated docs/ja/understanding_qmk.md original tag
2021-07-01 14:04:38 +09:00
James Young
27d1e2909f Ergocheap handwired Layout Macro refactor (#13348)
* physically arrange layout macro

Arranges the layout macro and keycodes to resemble the assembled keyboard.

* update info.json data
2021-06-29 16:30:48 -07:00
jackytrabbit
2a07a87a7c Update lazydesigners/the40/the40.h (#13354)
Fix error in the40.h
2021-06-30 08:37:08 +10:00
nopunin10did
93e3e777d6 Jabberwocky quick fixes (#13369)
* cleaning up

* deleting to undelete

* Stub out defaults

* Jabberwocky firmware WIP

* Stubbing out keymap spacing

* Default keymap and layout updates

* start stubbing out JSON for configurator

* more WIP

* Update jabberwocky.h

* Add Readme

* Apply suggestions from code review

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

* Fix layout capitalization

* Updates to personal and default keymaps

* Add instructions for jumping the bootloader

* Update keyboards/nopunin10did/jabberwocky/rules.mk

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

* Add easier ctrl-alt-del to my keymap

* Undo changes from other master

* Add back DYNAMIC_KEYMAP_LAYER_COUNT constant

* Fix readme markup to use list items

* Give my layout VIA compatibility

Co-authored-by: Rossman360 <rmontsinger@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-06-29 18:19:02 +01:00
Danny
5538bffb8e [Keyboard] Add Quefrency Rev. 4 (#13368) 2021-06-28 20:38:59 -07:00
Xelus22
de8939aa5e [Keyboard] fix encoder void to bool (#13334) 2021-06-28 20:30:39 -07:00
James Young
2b2e8bfdb7 Swiftrax Nodu handwired: layout macro sequence fix (#13329) 2021-06-28 20:24:26 -07:00
Xelus22
e475c5bf38 [Bug] Missing empty line at the end of file (#13374) 2021-06-29 11:54:32 +10:00
James Young
f7faa7bfd0 FJLabs BKS65 Solder Layout Macro Refactor (#13347)
* grid align layout macro and keymaps

* physically arrange layout macro, phase 1

* physically arrange layout macro, phase 2

* replace KC_PAUSE with KC_PAUS

Makes the grid alignment nice. :)

* rename LAYOUT_65_ansi to LAYOUT_all

The included layout macro isn't actually correct for QMK's 65% ANSI community layout.

* add an actual LAYOUT_65_ansi

This is a semi-educated guess as to this macro; it may be wrong.
2021-06-28 10:30:52 -07:00
Ryan
53ace430fe Doctor: print CLI version (#13356) 2021-06-27 13:21:53 +10:00
Ryan
cbe761ea16 Exent cleanup (#13353) 2021-06-27 05:07:44 +10:00
1336 changed files with 55466 additions and 6876 deletions

View File

@@ -7,6 +7,7 @@ on:
paths:
- 'keyboards/**'
- 'layouts/community/**'
workflow_dispatch:
jobs:
api_data:

View File

@@ -7,6 +7,7 @@ on:
paths:
- 'keyboards/**'
- 'layouts/community/**'
workflow_dispatch:
jobs:
api_data:

93
.gitignore vendored
View File

@@ -1,36 +1,33 @@
.history/
.dep
*.o
*.bin
*.eep
# Junk files
*.bak
*.swp
*~
.DS_Store
# Build artifacts
.clang_complete
.build/
*.elf
*.hex
*.uf2
*.qmk
!util/bootloader.hex
!quantum/tools/eeprom_reset.hex
*.log
*.lss
*.lst
*.map
*.o
*.stackdump
*.sym
*.swp
tags
*~
# QMK-specific
api_data/v1
build/
.build/
*.bak
.vagrant/
quantum/version.h
.idea/
CMakeLists.txt
cmake-build-debug
.clang_complete
doxygen/
.DS_Store
/util/wsl_downloaded
/util/win_downloaded
quantum/version.h
!quantum/tools/eeprom_reset.hex
*.bin
*.eep
*.hex
*.qmk
*.uf2
# Old-style QMK Makefiles
/keyboards/*/Makefile
/keyboards/*/*/Makefile
/keyboards/*/*/*/Makefile
@@ -43,39 +40,49 @@ doxygen/
/keyboards/*/*/*/*/*/keymaps/Makefile
# Eclipse/PyCharm/Other IDE Settings
.cproject
.project
.settings/
.idea
*.iml
.browse.VC.db*
*.stackdump
.cproject
.idea
.idea/
.project
.settings/
.vagrant/
# ?
.dep
.history/
build/
cmake-build-debug
CMakeLists.txt
# Let these ones be user specific, since we have so many different configurations
*.code-workspace
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/tasks.json
.vscode/last.sql
.vscode/temp.sql
.vscode/ipch/
.stfolder
.tags
.vscode/c_cpp_properties.json
.vscode/ipch/
.vscode/last.sql
.vscode/launch.json
.vscode/tasks.json
.vscode/temp.sql
tags
# ignore image files
*.png
# Ignore image files
*.gif
*.jpg
*.png
# things travis sees
secrets.tar
id_rsa_*
# Things Travis sees
/.vs
id_rsa_*
secrets.tar
# python things
# Python things
__pycache__
.python-version
# prerequisites for updating ChibiOS
# Prerequisites for updating ChibiOS
/util/fmpp*
# Allow to exist but don't include it in the repo

View File

@@ -30,18 +30,38 @@ If you find that you can no longer type with the keyboard, you may have accident
![A healthy keyboard as seen by Zadig](https://i.imgur.com/Hx0E5kC.png)
Open the Device Manager and look for a device that looks like your keyboard.
Open the Device Manager, select **View → Devices by container**, and look for an entry with your keyboard's name.
![The board with the wrong driver installed, in Device Manager](https://i.imgur.com/L3wvX8f.png)
![The board with the wrong driver installed, in Device Manager](https://i.imgur.com/o7WLvBl.png)
Right-click it and hit **Uninstall device**. Make sure to tick **Delete the driver software for this device** first.
Right-click each entry and hit **Uninstall device**. Make sure to tick **Delete the driver software for this device** first if it appears.
![The Device Uninstall dialog, with the "delete driver" checkbox ticked](https://i.imgur.com/aEs2RuA.png)
Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat the process until Zadig reports the correct driver.
Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat this process until Zadig reports the correct driver.
?> A full reboot of your computer may sometimes be necessary at this point, to get Windows to pick up the new driver.
## Uninstallation
Uninstallation of bootloader devices is a little more involved than installation.
Open the Device Manager, select **View → Devices by container**, and look for the bootloader device. Match up the USB VID and PID in Zadig with one from [the table below](#list-of-known-bootloaders).
Find the `Inf name` value in the Details tab of the device properties. This should generally be something like `oemXX.inf`:
![Device properties showing the Inf name value](https://i.imgur.com/Bu4mk9m.png)
Then, open a new Command Prompt window as an Administrator (type in `cmd` into the Start menu and press Ctrl+Shift+Enter). Run `pnputil /enum-drivers` to verify the `Inf name` matches the `Published Name` field of one of the entries:
![pnputil output with matching driver highlighted](https://i.imgur.com/3RrSjzW.png)
Run `pnputil /delete-driver oemXX.inf /uninstall`. This will delete the driver and remove it from any devices using it. Note that this will not uninstall the device itself.
As with the previous section, this process may need to be repeated multiple times, as multiple drivers can be applicable to the same device.
!> **WARNING:** Be *extremely careful* when doing this! You could potentially uninstall the driver for some other critical device. If you are unsure, double check the output of `/enum-drivers`, and omit the `/uninstall` flag when running `/delete-driver`.
## List of Known Bootloaders
This is a list of known bootloader devices and their USB vendor and product IDs, as well as the correct driver to assign for flashing with QMK. Note that the usbser and HidUsb drivers are built in to Windows, and cannot be assigned with Zadig - if your device has an incorrect driver, you must use the Device Manager to uninstall it as described in the previous section.

View File

@@ -1,5 +1,7 @@
# LED Indicators
?> Currently, this feature is not supported for split keyboards
QMK provides methods to read 5 of the LEDs defined in the HID spec:
* Num Lock

View File

@@ -624,6 +624,39 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
```
### Indicator Examples :id=indicator-examples
Caps Lock indicator on alphanumeric flagged keys:
```c
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (host_keyboard_led_state().caps_lock) {
for (uint8_t i = led_min; i <= led_max; i++) {
if (g_led_config.flags[i] & LED_FLAG_KEYLIGHT) {
rgb_matrix_set_color(i, RGB_RED);
}
}
}
}
```
Layer indicator on all flagged keys:
```c
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
for (uint8_t i = led_min; i <= led_max; i++) {
switch(get_highest_layer(layer_state|default_layer_state)) {
case RAISE:
rgb_matrix_set_color(i, RGB_BLUE);
break;
case LOWER:
rgb_matrix_set_color(i, RGB_YELLOW);
break;
default:
break;
}
}
}
```
### Suspended state :id=suspended-state
To use the suspend feature, make sure that `#define RGB_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file.

View File

@@ -1,8 +1,8 @@
# QMK API
<!---
original document: 0.9.50:docs/api_docs.md
git diff 0.9.50 HEAD -- docs/api_docs.md | cat
original document: 0.13.15:docs/api_docs.md
git diff 0.13.15 HEAD -- docs/api_docs.md | cat
-->
このページは QMK API の使い方を説明します。もしあなたがアプリケーション開発者であれば、全ての [QMK](https://qmk.fm) キーボードのファームウェアをコンパイルするために、この API を使うことができます。

View File

@@ -1,8 +1,8 @@
# QMK API
<!---
original document: 0.9.50:docs/api_overview.md
git diff 0.9.50 HEAD -- docs/api_overview.md | cat
original document: 0.13.15:docs/api_overview.md
git diff 0.13.15 HEAD -- docs/api_overview.md | cat
-->
QMK API は、Web と GUI ツールが [QMK](https://qmk.fm/) によってサポートされるキーボード用の任意のキーマップをコンパイルするために使うことができる、非同期 API を提供します。標準のキーマップテンプレートは、C コードのサポートを必要としない全ての QMK キーコードをサポートします。キーボードのメンテナは独自のカスタムテンプレートを提供して、より多くの機能を実現することができます。

View File

@@ -1,8 +1,8 @@
# コーディング規約 (C)
<!---
original document: 0.9.19:docs/coding_conventions_c.md
git diff 0.9.19 HEAD -- docs/coding_conventions_c.md | cat
original document: 0.13.15:docs/coding_conventions_c.md
git diff 0.13.15 HEAD -- docs/coding_conventions_c.md | cat
-->
私たちのスタイルのほとんどはかなり理解しやすいですが、現時点では完全に一貫しているわけではありません。変更箇所周辺のコードのスタイルと一致させる必要がありますが、そのコードに一貫性が無い場合や不明瞭な場合は以下のガイドラインに従ってください:

View File

@@ -1,8 +1,8 @@
# QMK の設定
<!---
original document: 0.10.33:docs/config_options.md
git diff 0.10.33 HEAD -- docs/config_options.md | cat
original document: 0.13.17:docs/config_options.md
git diff 0.13.17 HEAD -- docs/config_options.md | cat
-->
QMK はほぼ無制限に設定可能です。可能なところはいかなるところでも、やりすぎな程、ユーザーがコードサイズを犠牲にしてでも彼らのキーボードをカスタマイズをすることを許しています。ただし、このレベルの柔軟性により設定が困難になります。
@@ -72,16 +72,22 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* (循環させるために)代替音声を有効にします
* `#define C4_AUDIO`
* ピン C4 のオーディオを有効にします
* 非推奨。`#define AUDIO_PIN C4` を使ってください
* `#define C5_AUDIO`
* ピン C5 のオーディオを有効にします
* 非推奨。`#define AUDIO_PIN C5` を使ってください
* `#define C6_AUDIO`
* ピン C6 のオーディオを有効にします
* 非推奨。`#define AUDIO_PIN C6` を使ってください
* `#define B5_AUDIO`
* ピン B5 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* ピン B5 のオーディオを有効にします (C ピンの1つとともに B ピンの1つが有効にされている場合、疑似ステレオが有効にされます)
* 非推奨。もし `AUDIO_PIN``C` ピンを有効にしている場合は、`#define AUDIO_PIN_ALT B5` を使い、そうでなければ `#define AUDIO_PIN B5` を使います。
* `#define B6_AUDIO`
* ピン B6 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* ピン B6 のオーディオを有効にします (C ピンの1つとともに B ピンの1つが有効にされている場合、疑似ステレオが有効にされます)
* 非推奨。もし `AUDIO_PIN``C` ピンを有効にしている場合は、`#define AUDIO_PIN_ALT B6` を使い、そうでなければ `#define AUDIO_PIN B6` を使います。
* `#define B7_AUDIO`
* ピン B7 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* ピン B7 のオーディオを有効にします (C ピンの1つとともに B ピンの1つが有効にされている場合、疑似ステレオが有効にされます)
* 非推奨。もし `AUDIO_PIN``C` ピンを有効にしている場合は、`#define AUDIO_PIN_ALT B7` を使い、そうでなければ `#define AUDIO_PIN B7` を使います。
* `#define BACKLIGHT_PIN B7`
* バックライトのピン
* `#define BACKLIGHT_LEVELS 3`
@@ -93,7 +99,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* `#define DEBOUNCE 5`
* ピンの値を読み取る時の遅延 (5がデフォルト)
* `#define LOCKING_SUPPORT_ENABLE`
* メカニカルロックのサポート。キーマップで KC_LCAP、 KC_LNUM そして KC_LSCR を使えるようにします
* メカニカルロックのサポート。キーマップで KC_LCAP、KC_LNUM そして KC_LSCR を使えるようにします
* `#define LOCKING_RESYNC_ENABLE`
* キーボードの LED の状態をスイッチの状態と一致させ続けようとします
* `#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)`
@@ -102,6 +108,8 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* デバイスの USB 経由の最大電力(mA) を設定します (デフォルト: 500)
* `#define USB_POLLING_INTERVAL_MS 10`
* キーボード、マウス および 共有 (NKRO/メディアキー) インタフェースのための USB ポーリングレートをミリ秒で設定します
* `#define USB_SUSPEND_WAKEUP_DELAY 200`
* ウェイクアップパケットを送信した後で一時停止するミリ秒を設定します
* `#define F_SCL 100000L`
* I2C を使用するキーボードのための I2C クロックレート速度を設定します。デフォルトは `400000L` ですが、`split_common` を使っているキーボードは別でデフォルトは `100000L` です。
@@ -142,6 +150,8 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* `#define RETRO_TAPPING`
* 押下とリリースの間に他のキーによる中断がなければ、TAPPING_TERM の後であってもとにかくタップします
* 詳細は [Retro Tapping](ja/tap_hold.md#retro-tapping) を見てください
* `#define RETRO_TAPPING_PER_KEY`
* キーごとの `RETRO_TAPPING` 設定の処理を有効にします
* `#define TAPPING_TOGGLE 2`
* トグルを引き起こす前のタップ数
* `#define PERMISSIVE_HOLD`
@@ -240,7 +250,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* DFU ブートローダを搭載したボードでは、これらの EEPROM ファイルを書き込むために `:dfu-split-left`/`:dfu-split-right` を使うことができます
* Caterina ブートローダを搭載したボード (標準的な Pro Micros など)では、`:avrdude-split-left`/`:avrdude-split-right` を使ってください
* ARM DFU ブートローダを搭載したボード (Proton C など)では、`:dfu-util-split-left`/`:dfu-util-split-right` を使ってください
3. `MASTER_RIGHT` を設定します: USBポートに差し込まれた側はマスター側で右側であると決定されます(デフォルトの逆)
3. `MASTER_RIGHT` を設定します: USB ポートに差し込まれた側はマスター側で右側であると決定されます(デフォルトの逆)
4. デフォルト: USB ポートに差し込まれている側がマスター側であり、左側であると見なされます。スレーブ側は右側です
#### 左右を定義します

View File

@@ -1,8 +1,8 @@
# 貢献方法
<!---
original document: 0.8.62:docs/contributing.md
git diff 0.8.62 HEAD -- docs/contributing.md | cat
original document: 0.13.15:docs/contributing.md
git diff 0.13.15 HEAD -- docs/contributing.md | cat
-->
👍🎉 まず、これを読み貢献する時間を作ってくれてありがとうございます!🎉👍

View File

@@ -1,8 +1,8 @@
# ドキュメントテンプレート
<!---
original document: 0.9.19:docs/documentation_templates.md
git diff 0.9.19 HEAD -- docs/documentation_templates.md | cat
original document: 0.13.15:docs/documentation_templates.md
git diff 0.13.15 HEAD -- docs/documentation_templates.md | cat
-->
このページでは、新しいキーマップやキーボードを QMK に提出する際に使うべきテンプレートをまとめています。

View File

@@ -1,8 +1,8 @@
# よくある質問
<!---
original document: 0.8.62:docs/faq_general.md
git diff 0.8.62 HEAD -- docs/faq_general.md | cat
original document: 0.13.17:docs/faq_general.md
git diff 0.13.17 HEAD -- docs/faq_general.md | cat
-->
## QMK とは何か?

View File

@@ -1,8 +1,8 @@
# キーマップの FAQ
<!---
original document: 0.8.62:docs/faq_keymap.md
git diff 0.8.62 HEAD -- docs/faq_keymap.md | cat
original document: 0.13.15:docs/faq_keymap.md
git diff 0.13.15 HEAD -- docs/faq_keymap.md | cat
-->
このページは人々がキーマップについてしばしば持つ疑問について説明します。まだ読んだことが無い場合には、[キーマップの概要](ja/keymap.md)を最初に読むべきです。

View File

@@ -1,8 +1,8 @@
# 修飾キー :id=modifier-keys
<!---
original document: 0.10.36:docs/feature_advanced_keycodes.md
git diff 0.10.36 HEAD -- docs/feature_advanced_keycodes.md | cat
original document: 0.12.29:docs/feature_advanced_keycodes.md
git diff 0.12.29 HEAD -- docs/feature_advanced_keycodes.md | cat
-->
以下のようにキーコードとモディファイアを組み合わせることができます。押すと、モディファイアのキーダウンイベントが送信され、次に `kc` のキーダウンイベントが送信されます。放すと、`kc` のキーアップイベントが送信され、次にモディファイアのキーアップイベントが送信されます。
@@ -28,6 +28,139 @@
また、それらを繋げることができます。例えば、`LCTL(LALT(KC_DEL))` または `C(A(KC_DEL))` は1回のキー押下で Control+Alt+Delete を送信するキーを作成します。
# モディファイアの状態を確認 :id=checking-modifier-state
現在のモディファイアの状態は、2つの関数によって主にアクセスされます。: `get_mods()` 関数は通常のモディファイアとモッドタップの状態を、`get_oneshot_mods()` 関数はワンショットモディファイアの状態を確認する関数です。(ワンショットモディファイアはキーが押されていない限り、通常のモディファイアキーのように動作します。)
1つ以上の特定のモディファイアが現在のモディファイアの状態に含まれているかどうかは、モディファイアの状態と、照合したいモディファイアの組み合わせに相当するモッドマスクとを AND 演算することで検出できます。
ビット演算が使われる理由は、モディファイアの状態が (GASC)<sub>R</sub>(GASC)<sub>L</sub> の形式で1バイトとして格納されるためです。
従って、例を挙げると、`01000010` は LShift+RALT の内部表現です。
C 言語におけるビット演算のより詳しい情報は、[ここ](https://en.wikipedia.org/wiki/Bitwise_operations_in_C) をクリックして、Wikipedia のページのトピックを開いてください。
実際には、`get_mods() & MOD_BIT(KC_<modifier>)`([モディファイアキーコードのリスト](ja/keycodes_basic.md#modifiers) 参照) で、あるモディファイアが有効かどうかをチェックできるということです、また左右のモディファイアの違いが重要ではなく、両方にマッチさせたい場合は、`get_mods() & MOD_MASK_<modifier>`とします。ワンショットモディファイアについても、`get_mods()``get_oneshot_mods()` に置き換えれば同じことができます。
モディファイアの特定の組み合わせが同時にアクティブなのか確認する*だけ*なら、上で説明したモディファイアの状態とモッドマスクの論理積と、モッドマスク自身の結果を比較します。: `get_mods() & <mod mask> == <mod mask>`
例えば、左 Control キーと 左 Shift キーのワンショットモディファイアがオンで、その他のワンショットモディファイアがオフの場合にカスタムコードを起動したいとしましょう。そうするには、`(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))` で左 Control キーと Shift キーのモッドビットを組み合わせて目的のモッドマスクを構成し、それらを差し込みます: `get_oneshot_mods & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT)) == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))`。モッドビットマスクの代わりに `MOD_MASK_CS` 使うと、条件を満たすために4つのモディファイアキー (左右両方の Control キーと Shift キー) を押す必要があります。
モッドマスクの完全なリストは、以下のとおりです。
| モッドマスク名 | マッチするモディファイア |
|--------------------|-------------------------------------------------------------|
| `MOD_MASK_CTRL` | 左 Control , 右 Control |
| `MOD_MASK_SHIFT` | 左 Shift , 右 Shift |
| `MOD_MASK_ALT` | 左 Alt , 右 Alt |
| `MOD_MASK_GUI` | 左 GUI , 右 GUI |
| `MOD_MASK_CS` | Control , Shift |
| `MOD_MASK_CA` | (左/右) Control , (左/右) Alt |
| `MOD_MASK_CG` | (左/右) Control , (左/右) GUI |
| `MOD_MASK_SA` | (左/右) Shift , (左/右) Alt |
| `MOD_MASK_SG` | (左/右) Shift , (左/右) GUI |
| `MOD_MASK_AG` | (左/右) Alt , (左/右) GUI |
| `MOD_MASK_CSA` | (左/右) Control , (左/右) Shift , (左/右) Alt |
| `MOD_MASK_CSG` | (左/右) Control , (左/右) Shift , (左/右) GUI |
| `MOD_MASK_CAG` | (左/右) Control , (左/右) Alt , (左/右) GUI |
| `MOD_MASK_SAG` | (左/右) Shift , (左/右) Alt , (左/右) GUI |
| `MOD_MASK_CSAG` | (左/右) Control , (左/右) Shift , (左/右) Alt , (左/右) GUI |
`get_mods()` 関数を使って現在アクティブなモディファイアにアクセスする以外に、モディファイアの状態を変更するために使えるいくつかの関数があります。ここでは、`mods` 引数はモディファイアビットマスクを表します。
* `add_mods(mods)`: その他のモディファイアに影響を与えずに `mods` を有効にします。
* `register_mods(mods)`: `add_mods` に似ていますが、キーボードにすぐにレポートを送信します。
* `del_mods(mods)`: その他のモディファイアに影響を与えずに `mods` を無効にします。
* `unregister_mods(mods)`: `del_mods` に似ていますが、キーボードにすぐにレポートを送信します。
* `set_mods(mods)`: `mods` で現在のモディファイアの状態を上書きします
* `clear_mods()`: 全てのモディファイアを無効にすることによって、モディファイアの状態をリセットします。
同様に、`get_oneshot_mods()` 関数に加えて、ワンショットモディファイアのための関数もあります。
* `add_oneshot_mods(mods)`: その他のワンショットモディファイアに影響を与えずに `mods` を有効にします
* `del_oneshot_mods(mods)`: その他のワンショットモディファイアに影響を与えずに `mods` を無効にします
* `set_oneshot_mods(mods)`: `mods` で現在のワンショットモディファイアの状態を上書きします
* `clear_oneshot_mods()`: 全てのワンショットモディファイアを無効にすることによって、ワンショットモディファイアの状態をリセットします。
## 例 :id=examples
次の例は、[マクロについてのページ](ja/feature_macros.md) で読める [高度なマクロ](ja/feature_macros.md?id=advanced-macro-functions) を使っています。
### Alt + Tab の代わりの Alt + Escape :id=alt-escape-for-alt-tab
左 Alt と `KC_ESC` が押されたときに、アプリ切り替えの(左 Alt と) `KC_TAB` のように振る舞うことを実現する単純な例です。この例は、左 Alt だけがアクティブになっているかを厳格に確認します。つまり、Alt+Shift+Esc によるアプリの逆順での切り替えはできません。また、この例は、実際の Alt+Escape キーボードショートカットを起動することはできなくなりますが、AltGr+Escape キーボードショートカットを起動することはできることに留意してください。
```c
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_ESC:
// 左 Alt だけがアクティブか検知します
if ((get_mods() & MOD_BIT(KC_LALT)) == MOD_BIT(KC_LALT)) {
if (record->event.pressed) {
// KC_LALT を登録する必要はありません。既にアクティブだからです。
// Alt モディファイアはこの KC_TAB に適用されます。
register_code(KC_TAB);
} else {
unregister_code(KC_TAB);
}
// QMK にこれ以上キーコードの処理をさせません。
return false;
}
// それ以外の場合は、QMK に通常通り KC_ESC の処理をさせます。
return true;
}
return true;
};
```
### Delete の代わりの Shift + Backspace :id=shift-backspace-for-delete
`KC_BSPC` と組み合わせることで Shift の本来の動作が取り消され、そして、`KC_DEL` に完全に置き換えられる高度な例です。この例を適切に動作させるために2つのメイン変数が作られます。: `mod_state``delkey_registered` です。最初の1つ目の変数は、モディファイアの状態を記憶し、`KC_DEL` を登録した後に元に戻すために使われます。2つ目の変数はブール型変数 (true または false) で、`KC_DEL` の状態を追跡して Backspace/Delete キー全体のリリースを正確に管理します。
前の例と対照的に、この例は厳格なモディファイアの確認を行いません。このカスタムコードを起動するには、1つまたは2つの Shift キーがアクティブな間に `KC_BSPC` を押せば十分で、他のモディファイアの状態は関係ありません。この方法は、いくつかの特典を提供します。: Ctrl+Shift+Backspace は次の単語を削除 (Control+Delete) し、Ctrl+Alt+Shift+Backspace は Ctrl+Alt+Del キーボードショートカットを実行します。
```c
// アクティブなモディファイアを表すバイナリデータを保持する変数を初期化します
uint8_t mod_state;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// 後々の参照のために現在のモディファイアの状態を変数に格納します
mod_state = get_mods();
switch (keycode) {
case KC_BSPC:
{
// Delete キーの状態(登録されているかどうか)を追跡するブール型変数を初期化します。
static bool delkey_registered;
if (record->event.pressed) {
// いずれかの Shift がアクティブか検知します
if (mod_state & MOD_MASK_SHIFT) {
// 最初に、 Shift キーを KC_DEL に適用しないため、
// 一時的に左右両方の Shift キーをキャンセルします
del_mods(MOD_MASK_SHIFT);
register_code(KC_DEL);
// KC_DEL の状態を反映させるためにブール型変数を更新します
delkey_registered = true;
// Backspace/Delete キーをタップした後でも押し続けている Shift キーが機能するように、
// モディファイアの状態を再適用します。
set_mods(mod_state);
return false;
}
} else { // KC_BSPC キーを離した場合
// KC_BSPC を離しても KC_DEL が送信されている場合
if (delkey_registered) {
unregister_code(KC_DEL);
delkey_registered = false;
return false;
}
}
// QMK に Shift キーを除いて KC_BSPC を通常通り処理させます
return true;
}
}
return true;
};
```
# 過去の内容 :id=legacy-content
このページには多くの機能が含まれていました。このページを構成していた多くのセクションをそれぞれのページに移動しました。これより下は全て単なるリダイレクトであるため、web上で古いリンクをたどっている人は探しているものを見つけることができます。

View File

@@ -1,8 +1,8 @@
# PS/2 マウスサポート :id=ps2-mouse-support
<!---
original document: 0.9.44:docs/feature_ps2_mouse.md
git diff 0.9.44 HEAD -- docs/feature_ps2_mouse.md | cat
original document: 0.13.17:docs/feature_ps2_mouse.md
git diff 0.13.17 HEAD -- docs/feature_ps2_mouse.md | cat
-->
PS/2 マウス (例えばタッチパッドあるいはトラックポイント)を複合デバイスとしてキーボードに接続することができます。
@@ -210,7 +210,7 @@ void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate);
この機能を有効にするには、以下のようにスクロールボタンマスクを設定する必要があります:
```c
#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BUTTON_MIDDLE) /* Default */
#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BTN_MIDDLE) /* Default */
```
スクロールボタン機能を無効にするには:

View File

@@ -1,8 +1,8 @@
# QMK での速記 :id=stenography-in-qmk
<!---
original document: 0.10.33:docs/feature_stenography.md
git diff 0.10.33 HEAD -- docs/feature_stenography.md | cat
original document: 0.13.15:docs/feature_stenography.md
git diff 0.13.15 HEAD -- docs/feature_stenography.md | cat
-->
[速記](https://en.wikipedia.org/wiki/Stenotype)は裁判所のレポート、字幕および耳が不自由な人のためのリアルタイムの文字起こしで最もよく使われる記述方法です。速記では単語はスペル、音声およびショートカット(短い)ストロークが混在する音節ごとに音節化されます。プロの速記者は、標準的なタイピングで通常見られる負担を掛けずに、はるかに少ないエラー(99.9%より高い精度)で、200-300 WPM に到達できます。

View File

@@ -1,8 +1,8 @@
# スワップハンドアクション
<!---
original document: 0.8.177:docs/feature_swap_hands.md
git diff 0.8.177 HEAD -- docs/feature_swap_hands.md | cat
original document: 0.13.17:docs/feature_swap_hands.md
git diff 0.13.17 HEAD -- docs/feature_swap_hands.md | cat
-->
スワップハンドアクションにより、別のレイヤーを必要とせずに片手入力をサポートします。Makefile に `SWAP_HANDS_ENABLE` を設定し、キーマップに `hand_swap_config` エントリを定義します。これで `ACTION_SWAP_HANDS` コマンドキーが押されるたびにキーボードがミラーされます。例えば、QWERTY で "Hello, World" を入力するには、`^Ge^s^s^w^c W^wr^sd` を入力します。

View File

@@ -1,8 +1,8 @@
# ユーザスペース: キーマップ間でのコードの共有
<!---
original document: 0.9.43:docs/feature_userspace.md
git diff 0.9.43 HEAD -- docs/feature_userspace.md | cat
original document: 0.13.17:docs/feature_userspace.md
git diff 0.13.17 HEAD -- docs/feature_userspace.md | cat
-->
似たキーマップを複数のキーボードで使う場合、それらの間でコードを共有できるという利点が得られることがあります。`users/`に以下の構造でキーマップ(理想的には GitHub のユーザ名、`<name>`)と同じ名前の独自のフォルダを作成します:

View File

@@ -1,8 +1,8 @@
# キーボードマトリックスの仕組み
<!---
original document: 0.9.32:docs/how_a_matrix_works.md
git diff 0.9.32 HEAD -- docs/how_a_matrix_works.md | cat
original document: 0.13.15:docs/how_a_matrix_works.md
git diff 0.13.15 HEAD -- docs/how_a_matrix_works.md | cat
-->
キーボードスイッチのマトリックスは行と列に配置されます。マトリックス回路がなければ、各スイッチはコントローラに直接配線する必要があります。

View File

@@ -1,8 +1,8 @@
# GPIO 制御 :id=gpio-control
<!---
original document: 0.9.34:docs/internals_gpio_control.md
git diff 0.9.34 HEAD -- docs/internals_gpio_control.md | cat
original document: 0.13.15:docs/internals_gpio_control.md
git diff 0.13.15 HEAD -- docs/internals_gpio_control.md | cat
-->
QMK には、マイクロコントローラに依存しない GPIO 制御抽象レイヤーがあります。これは異なるプラットフォーム間でピン制御に簡単にアクセスできるようにするためのものです。
@@ -26,3 +26,22 @@ QMK には、マイクロコントローラに依存しない GPIO 制御抽象
## 高度な設定 :id=advanced-settings
各マイクロコントローラは GPIO に関して複数の高度な設定を持つことができます。この抽象レイヤーは、アーキテクチャー固有の機能の使用法を制限しません。上級ユーザは、目的のデバイスのデータシートを参照し、必要なライブラリを含めてください。AVR については、標準 avr/io.h ライブラリが使われます; STM32 については ChibiOS [PAL ライブラリ](https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html)が使われます。
## アトミック操作 :id=atomic-operation
上記の関数は、必ずしもアトミックに動作することが保証されているわけではありません。そのため、上記の関数を複数組み合わせて使用する際に、操作の途中での割り込みを防ぎたい場合は、以下の `ATOMIC_BLOCK_FORCEON` マクロを使用してください。
例:
```c
void some_function() {
// 通常の処理
ATOMIC_BLOCK_FORCEON {
// アトミックであることが必要な処理
}
// 通常の処理
}
```
`ATOMIC_BLOCK_FORCEON` は、ブロックが実行される前に、割り込みが有効か無効かに関わらず、強制的に割り込みを無効にします。そして、ブロックが実行された後に、割り込みを有効にします。
したがって、`ATOMIC_BLOCK_FORCEON`は、ブロックの実行前に割り込みが有効になっていることがわかっている場合や、ブロックの完了時に割り込みを有効にしても問題ないことがわかっている場合のみ使用できることに注意してください。

261
docs/ja/keycodes_basic.md Normal file
View File

@@ -0,0 +1,261 @@
# 基本的なキーコード
<!---
original document: 0.11.25:docs/keycodes_basic.md
git diff 0.11.25 HEAD -- docs/keycodes_basic.md | cat
-->
基本的なキーコードのセットは、`KC_NO``KC_TRNS``0xA5-DF` の範囲のキーコードを除いて、[HID Keyboard/Keypad Usage Page (0x07)](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) に基づいています。
## 文字と数字
|キー |説明 |
|------|----------|
|`KC_A`|`a``A`|
|`KC_B`|`b``B`|
|`KC_C`|`c``C`|
|`KC_D`|`d``D`|
|`KC_E`|`e``E`|
|`KC_F`|`f``F`|
|`KC_G`|`g``G`|
|`KC_H`|`h``H`|
|`KC_I`|`i``I`|
|`KC_J`|`j``J`|
|`KC_K`|`k``K`|
|`KC_L`|`l``L`|
|`KC_M`|`m``M`|
|`KC_N`|`n``N`|
|`KC_O`|`o``O`|
|`KC_P`|`p``P`|
|`KC_Q`|`q``Q`|
|`KC_R`|`r``R`|
|`KC_S`|`s``S`|
|`KC_T`|`t``T`|
|`KC_U`|`u``U`|
|`KC_V`|`v``V`|
|`KC_W`|`w``W`|
|`KC_X`|`x``X`|
|`KC_Y`|`y``Y`|
|`KC_Z`|`z``Z`|
|`KC_1`|`1``!`|
|`KC_2`|`2``@`|
|`KC_3`|`3``#`|
|`KC_4`|`4``$`|
|`KC_5`|`5``%`|
|`KC_6`|`6``^`|
|`KC_7`|`7``&`|
|`KC_8`|`8``*`|
|`KC_9`|`9``(`|
|`KC_0`|`0``)`|
## ファンクションキー
|キー |説明 |
|--------|-----|
|`KC_F1` |F1 |
|`KC_F2` |F2 |
|`KC_F3` |F3 |
|`KC_F4` |F4 |
|`KC_F5` |F5 |
|`KC_F6` |F6 |
|`KC_F7` |F7 |
|`KC_F8` |F8 |
|`KC_F9` |F9 |
|`KC_F10`|F10 |
|`KC_F11`|F11 |
|`KC_F12`|F12 |
|`KC_F13`|F13 |
|`KC_F14`|F14 |
|`KC_F15`|F15 |
|`KC_F16`|F16 |
|`KC_F17`|F17 |
|`KC_F18`|F18 |
|`KC_F19`|F19 |
|`KC_F20`|F20 |
|`KC_F21`|F21 |
|`KC_F22`|F22 |
|`KC_F23`|F23 |
|`KC_F24`|F24 |
## パンクチュエーション
|キー |エイリアス |説明 |
|-----------------|-------------------|----------------------------------------------|
|`KC_ENTER` |`KC_ENT` |Return (Enter) |
|`KC_ESCAPE` |`KC_ESC` |Escape |
|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |
|`KC_TAB` | |Tab |
|`KC_SPACE` |`KC_SPC` |Spacebar |
|`KC_MINUS` |`KC_MINS` |`-``_` |
|`KC_EQUAL` |`KC_EQL` |`=``+` |
|`KC_LBRACKET` |`KC_LBRC` |`[``{` |
|`KC_RBRACKET` |`KC_RBRC` |`]``}` |
|`KC_BSLASH` |`KC_BSLS` |`\``\|` |
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#``~` |
|`KC_SCOLON` |`KC_SCLN` |`;``:` |
|`KC_QUOTE` |`KC_QUOT` |`'``"` |
|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK`|<code>&#96;</code>`~`, JIS 全角/半角 |
|`KC_COMMA` |`KC_COMM` |`,``<` |
|`KC_DOT` | |`.``>` |
|`KC_SLASH` |`KC_SLSH` |`/``?` |
|`KC_NONUS_BSLASH`|`KC_NUBS` |Non-US `\``\|` |
## ロックキー
|キー |エイリアス |説明 |
|-------------------|--------------------|---------------------------------------|
|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS`|Caps Lock |
|`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD`|Scroll Lock, 画面の明るさダウン (macOS)|
|`KC_NUMLOCK` |`KC_NLCK` |テンキー Num Lock と Clear |
|`KC_LOCKING_CAPS` |`KC_LCAP` |Caps Lock のロック |
|`KC_LOCKING_NUM` |`KC_LNUM` |Num Lock のロック |
|`KC_LOCKING_SCROLL`|`KC_LSCR` |Scroll Lock のロック |
## 修飾キー
|キー |エイリアス |説明 |
|-----------|--------------------|---------------------------------|
|`KC_LCTRL` |`KC_LCTL` |左 Control |
|`KC_LSHIFT`|`KC_LSFT` |左 Shift |
|`KC_LALT` |`KC_LOPT` |左 Alt (Option) |
|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|左 GUI (Windows/Command/Meta キー)|
|`KC_RCTRL` |`KC_RCTL` |右 Control |
|`KC_RSHIFT`|`KC_RSFT` |右 Shift |
|`KC_RALT` |`KC_ROPT`, `KC_ALGR`|右 Alt (Option/AltGr) |
|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|右 GUI (Windows/Command/Meta キー)|
## 国際化対応キー
|キー |エイリアス|説明 |
|----------|----------|---------------------|
|`KC_INT1` |`KC_RO` |JIS `\`` _` |
|`KC_INT2` |`KC_KANA` |JIS カタカナ/ひらがな|
|`KC_INT3` |`KC_JYEN` |JIS `¥``\ |` |
|`KC_INT4` |`KC_HENK` |JIS 変換 |
|`KC_INT5` |`KC_MHEN` |JIS 無変換 |
|`KC_INT6` | |JIS テンキー `,` |
|`KC_INT7` | |International 7 |
|`KC_INT8` | |International 8 |
|`KC_INT9` | |International 9 |
|`KC_LANG1`|`KC_HAEN` |ハングル/英語 |
|`KC_LANG2`|`KC_HANJ` |韓文漢字 |
|`KC_LANG3`| |JIS カタカナ |
|`KC_LANG4`| |JIS ひらがな |
|`KC_LANG5`| |JIS 全角/半角 |
|`KC_LANG6`| |Language 6 |
|`KC_LANG7`| |Language 7 |
|`KC_LANG8`| |Language 8 |
|`KC_LANG9`| |Language 9 |
## コマンドキー
|キー |エイリアス |説明 |
|------------------|------------------------------|-------------------------------------------------------|
|`KC_PSCREEN` |`KC_PSCR` |Print Screen |
|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, 画面の明るさアップ (macOS) |
|`KC_INSERT` |`KC_INS` |Insert |
|`KC_HOME` | |Home |
|`KC_PGUP` | |Page Up |
|`KC_DELETE` |`KC_DEL` |Forward Delete |
|`KC_END` | |End |
|`KC_PGDOWN` |`KC_PGDN` |Page Down |
|`KC_RIGHT` |`KC_RGHT` |右矢印 |
|`KC_LEFT` | |左矢印 |
|`KC_DOWN` | |下矢印 |
|`KC_UP` | |上矢印 |
|`KC_APPLICATION` |`KC_APP` |アプリケーションキー (Windows コンテキストメニューキー)|
|`KC_POWER` | |システム電源 |
|`KC_EXECUTE` |`KC_EXEC` |Execute |
|`KC_HELP` | |Help |
|`KC_MENU` | |Menu |
|`KC_SELECT` |`KC_SLCT` |Select |
|`KC_STOP` | |Stop |
|`KC_AGAIN` |`KC_AGIN` |Again |
|`KC_UNDO` | |アンドゥ |
|`KC_CUT` | |カット |
|`KC_COPY` | |コピー |
|`KC_PASTE` |`KC_PSTE` |ペースト |
|`KC_FIND` | |検索 |
|`KC__MUTE` | |ミュート |
|`KC__VOLUP` | |音量アップ |
|`KC__VOLDOWN` | |音量ダウン |
|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase |
|`KC_SYSREQ` | |SysReq/Attention |
|`KC_CANCEL` | |Cancel |
|`KC_CLEAR` |`KC_CLR` |Clear |
|`KC_PRIOR` | |Prior |
|`KC_RETURN` | |Return |
|`KC_SEPARATOR` | |Separator |
|`KC_OUT` | |Out |
|`KC_OPER` | |Oper |
|`KC_CLEAR_AGAIN` | |Clear/Again |
|`KC_CRSEL` | |CrSel/Props |
|`KC_EXSEL` | |ExSel |
## メディアキー
これらのキーコードは、HID Keyboard/Keypad usage ページにはありません。`SYSTEM_` キーコードは、Generic Desktop ページで見つかります。また、その他は Consumer ページにあります。
?> これらのキーコードのいくつかは、OS によって異なる動作をする可能性があります。例として、macOS では `KC_MEDIA_FAST_FORWARD``KC_MEDIA_REWIND``KC_MEDIA_NEXT_TRACK``KC_MEDIA_PREV_TRACK` は、押している間は現在の曲の中でスキップしますが、タップした時は曲全体をスキップします。
|キー |エイリアス |説明 |
|-----------------------|-----------|----------------------|
|`KC_SYSTEM_POWER` |`KC_PWR` |システム電源オフ |
|`KC_SYSTEM_SLEEP` |`KC_SLEP` |システムスリープ |
|`KC_SYSTEM_WAKE` |`KC_WAKE` |システムスリープ解除 |
|`KC_AUDIO_MUTE` |`KC_MUTE` |ミュート |
|`KC_AUDIO_VOL_UP` |`KC_VOLU` |音量アップ |
|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |音量ダウン |
|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |次の曲へ |
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |前の曲へ |
|`KC_MEDIA_STOP` |`KC_MSTP` |再生停止 |
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |再生/一時停止 |
|`KC_MEDIA_SELECT` |`KC_MSEL` |Media Player 起動 |
|`KC_MEDIA_EJECT` |`KC_EJCT` |イジェクト |
|`KC_MAIL` | |メール起動 |
|`KC_CALCULATOR` |`KC_CALC` |電卓起動 |
|`KC_MY_COMPUTER` |`KC_MYCM` |マイコンピュータを開く|
|`KC_WWW_SEARCH` |`KC_WSCH` |ブラウザ検索 |
|`KC_WWW_HOME` |`KC_WHOM` |ブラウザホーム画面 |
|`KC_WWW_BACK` |`KC_WBAK` |ブラウザ戻る |
|`KC_WWW_FORWARD` |`KC_WFWD` |ブラウザ進む |
|`KC_WWW_STOP` |`KC_WSTP` |ブラウザ読み込み中止 |
|`KC_WWW_REFRESH` |`KC_WREF` |ブラウザ再読み込み |
|`KC_WWW_FAVORITES` |`KC_WFAV` |ブラウザお気に入り |
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |次の曲へ |
|`KC_MEDIA_REWIND` |`KC_MRWD` |前の曲へ |
|`KC_BRIGHTNESS_UP` |`KC_BRIU` |画面の明るさアップ |
|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |画面の明るさダウン |
## テンキー
|キー |エイリアス |説明 |
|-------------------|-----------|-------------------------------|
|`KC_KP_SLASH` |`KC_PSLS` |テンキー `/` |
|`KC_KP_ASTERISK` |`KC_PAST` |テンキー `*` |
|`KC_KP_MINUS` |`KC_PMNS` |テンキー `-` |
|`KC_KP_PLUS` |`KC_PPLS` |テンキー `+` |
|`KC_KP_ENTER` |`KC_PENT` |テンキー Enter |
|`KC_KP_1` |`KC_P1` |テンキー `1` と End |
|`KC_KP_2` |`KC_P2` |テンキー `2` と 下矢印 |
|`KC_KP_3` |`KC_P3` |テンキー `3` と Page Down |
|`KC_KP_4` |`KC_P4` |テンキー `4` と 左矢印 |
|`KC_KP_5` |`KC_P5` |テンキー `5` |
|`KC_KP_6` |`KC_P6` |テンキー `6` と 右矢印 |
|`KC_KP_7` |`KC_P7` |テンキー `7` と Home |
|`KC_KP_8` |`KC_P8` |テンキー `8` と 上矢印 |
|`KC_KP_9` |`KC_P9` |テンキー `9` と Page Up |
|`KC_KP_0` |`KC_P0` |テンキー `0` と Insert |
|`KC_KP_DOT` |`KC_PDOT` |テンキー `.` と Delete |
|`KC_KP_EQUAL` |`KC_PEQL` |テンキー `=` |
|`KC_KP_COMMA` |`KC_PCMM` |テンキー `,` |
|`KC_KP_EQUAL_AS400`| |AS/400 キーボードのテンキー `=`|
## 特別なキー
これらのキーコードに加えて、`0xA5-DF` の範囲のキーコードは、内部処理のために予約されています。
|キー |エイリアス |説明 |
|----------------|--------------------|-----------------------------------|
|`KC_NO` |`XXXXXXX` |このキーを無視します (NOOP) |
|`KC_TRANSPARENT`|`KC_TRNS`, `_______`|次に低いレイヤーの非透過キーを使う |

View File

@@ -2,8 +2,8 @@
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0.12.45:docs/newbs_getting_started.md
git diff 0.12.45 HEAD -- docs/newbs_getting_started.md | cat
original document: 0.13.20:docs/newbs_getting_started.md
git diff 0.13.20 HEAD -- docs/newbs_getting_started.md | cat
-->
キーマップをビルドする前に、いくつかのソフトウェアをインストールしてビルド環境を構築する必要があります。
@@ -57,9 +57,7 @@ MSYS2 をインストールしたら、開いている MSYS の全ターミナ
次のコマンドを実行して、QMK CLI をインストールします:
PYTHONUTF8=1 python3 -m pip install qmk
!> **訳注:** 現在、日本語版 Windows 環境では、環境変数として `PYTHONUTF8=1` を指定してインストールする必要があります。この環境変数を指定しない場合、システムのロケール設定が原因で一部の Python モジュールのインストールでエラーが発生します。この問題は該当モジュールのソースコードでは修正済みですが、配布モジュールはまだ修正されていません。
python3 -m pip install qmk
</details>

View File

@@ -1,8 +1,8 @@
# QMK 開発のための Eclipse セットアップ
<!---
original document: 0.9.34:docs/other_eclipse.md
git diff 0.9.34 HEAD -- docs/other_eclipse.md | cat
original document: 0.12.41:docs/other_eclipse.md
git diff 0.12.41 HEAD -- docs/other_eclipse.md | cat
-->
[Eclipse][1]は Java 開発のために広く使われているオープンソースの [統合開発環境](https://en.wikipedia.org/wiki/Integrated_development_environment) (IDE) ですが、他の言語および用途のためにカスタマイズできる拡張可能なプラグインシステムがあります。
@@ -55,7 +55,7 @@ Workspace 選択で入力を促された場合は、Eclipse メタデータと
### [ANSI Escape in Console](https://marketplace.eclipse.org/content/ansi-escape-console)
このプラグインは QMK makefile によって生成された色付きビルド出力を適切に表示するために必要です。
1. <kbd><kbd>Help</kbd> > <kbd>Eclipse Marketplace…</kbd></kbd> を開きます
1. <kbd>Help</kbd> > <kbd>Eclipse Marketplace…</kbd> を開きます
2. _ANSI Escape in Console_ を検索します
3. プラグインの <samp>Install</samp> ボタンをクリックします
4. 指示に従い、未署名コンテンツのセキュリティ警告に再度同意します。
@@ -64,7 +64,7 @@ Workspace 選択で入力を促された場合は、Eclipse メタデータと
# QMK 用の Eclipse の設定
## プロジェクトのインポート
1. <kbd><kbd>File</kbd> > <kbd>New</kbd> > <kbd>Makefile Project with Existing Code</kbd></kbd> をクリックします
1. <kbd>File</kbd> > <kbd>New</kbd> > <kbd>Makefile Project with Existing Code</kbd> をクリックします
2. 次の画面で:
* _Existing Code Location_ としてリポジトリをクローンしたディレクトリを選択します。
* (オプション) プロジェクトに別の名前を付けます¹ 例えば _QMK_ あるいは _Quantum_;
@@ -78,16 +78,12 @@ Workspace 選択で入力を促された場合は、Eclipse メタデータと
¹ カスタム名でプロジェクトをインポートすると問題が発生するかもしれません。正しく動作しない場合は、デフォルトのプロジェクト名 (つまり、ディレクトリの名前、おそらく `qmk_firmware`) のままにしてみてください。
## キーボードのビルド
ここで、プロジェクトをクリーンし、選択したキーマップをビルドする make target を設定します。
1. 画面の右側で、<kbd>Make Target</kbd> タブを選択します
2. フォルダツリーを選択したキーボードまで展開します。例えば、`qmk_firmware/keyboards/ergodox`
3. キーボードフォルダを右クリックして、<kbd>New…</kbd> を選択します (あるいはフォルダを選択し、ツリーの上にある <kbd>New Make Target</kbd> アイコンをクリックします)
4. ビルド target の名前を選択します。例えば、_clean \<your keymap\>_
5. Make Target: これはコマンドラインからビルドする時に `make` に渡す引数です。target 名がこれらの引数と一致しない場合は、<kbd>Same as target name</kbd> のチェックを外し、正しい引数を入力します。例えば、`clean <your keymap>`
6. 他のオプションはチェックしたままにして、<kbd>OK</kbd> をクリックします。これで、選択されたキーボードの下に、make target が表示されます。
7. (オプション) target ツリーの上にある <kbd>Hide Empty Folders</kbd> アイコンボタンを、ビルド target だけが表示されるように切り替えます。
8. 作成したビルド target をダブルクリックし、ビルドを起動します。
9. 下部の <kbd>Console</kbd> ビューを選択し、実行中のビルドを眺めます。
プロジェクトのデフォルトの make 対象を `all` から私たちが取り組んでいる特定のキーボードとキーマップの組み合わせ、例えば `kinesis/kint36:stapelberg` に変更します。このようにすると、プロジェクトのクリーニングやビルドのようなプロジェクト全体のアクションは迅速に完了し、長い時間がかかったり Eclipse が完全にロックしたりすることがなくなります。
1. プロジェクト内の editor タブへフォーカスします
2. `Project` > `Properties` ウィンドウを開き、`C/C++ Build` リストエントリを選択して、`Behavior` タブに切り替えます。
3. 有効な全てのビルドのデフォルトの `Make build target` テキストフィールドを、`all` から例えば `kinesis/kint41:stapelberg` に変更します。
4. `Project` > `Clean...` を選択して、セットアップが動作することを確認します。
[1]: https://en.wikipedia.org/wiki/Eclipse_(software)

View File

@@ -1,8 +1,8 @@
# QMK 開発用の Visual Studio Code のセットアップ
<!---
original document: 0.10.33:docs/other_vscode.md
git diff 0.10.33 HEAD -- docs/other_vscode.md | cat
original document: 0.13.17:docs/other_vscode.md
git diff 0.13.17 HEAD -- docs/other_vscode.md | cat
-->
[Visual Studio Code](https://code.visualstudio.com/) (VS Code) は多くの異なるプログラミング言語をサポートするオープンソースのコードエディタです。

View File

@@ -2,8 +2,8 @@
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0.9.46:docs/proton_c_conversion.md
git diff 0.9.46 HEAD -- docs/proton_c_conversion.md | cat
original document: 0.13.17:docs/proton_c_conversion.md
git diff 0.13.17 HEAD -- docs/proton_c_conversion.md | cat
-->
Proton C は Pro Micro の差し替え可能品であるため、簡単に使用することができます。

View File

@@ -1,8 +1,8 @@
# QMK Configurator でのキーボードのサポート
<!---
original document: 0.9.46:docs/reference_configurator_support.md
git diff 0.9.46 HEAD -- docs/reference_configurator_support.md | cat
original document: 0.13.15:docs/reference_configurator_support.md
git diff 0.13.15 HEAD -- docs/reference_configurator_support.md | cat
-->
このページは [QMK Configurator](https://config.qmk.fm/) でキーボードを適切にサポートする方法について説明します。

View File

@@ -1,8 +1,8 @@
# QMK 用語集
<!---
original document: 0.9.46:docs/reference_glossary.md
git diff 0.9.46 HEAD -- docs/reference_glossary.md | cat
original document: 0.13.15:docs/reference_glossary.md
git diff 0.13.15 HEAD -- docs/reference_glossary.md | cat
-->
## ARM

View File

@@ -1,8 +1,8 @@
# QMK のコードの理解
<!---
original document: 0.9.55:docs/understanding_qmk.md
git diff 0.9.55 HEAD -- docs/understanding_qmk.md | cat
original document: 0.13.15:docs/understanding_qmk.md
git diff 0.13.15 HEAD -- docs/understanding_qmk.md | cat
-->
このドキュメントでは、QMK ファームウェアがどのように機能するかを非常に高いレベルから説明しようとしています。基本的なプログラミングの概念を理解していることを前提としていますが、(実例を示す必要がある場合を除き) C に精通していることを前提にはしていません。以下のドキュメントの基本的な知識があることを前提としています。

View File

@@ -354,6 +354,157 @@ See also: [Leader Key](feature_leader_key.md)
|---------|------------------------|
|`KC_LEAD`|Begins a leader sequence|
## MIDI :id=midi
See also: [MIDI](feature_midi.md)
|Key |Aliases |Description |
|------------|---------|---------------------------------|
|`MI_ON` | |Turn MIDI on |
|`MI_OFF` | |Turn MIDI off |
|`MI_TOG` | |Toggle MIDI enabled |
|`MI_C` | |C octave 0 |
|`MI_Cs` |`MI_Db` |C♯/D♭ octave 0 |
|`MI_D` | |D octave 0 |
|`MI_Ds` |`MI_Eb` |D♯/E♭ octave 0 |
|`MI_E` | |E octave 0 |
|`MI_F` | |F octave 0 |
|`MI_Fs` |`MI_Gb` |F♯/G♭ octave 0 |
|`MI_G` | |G octave 0 |
|`MI_Gs` |`MI_Gs` |G♯/A♭ octave 0 |
|`MI_A` | |A octave 0 |
|`MI_As` |`MI_Bb` |A♯/B♭ octave 0 |
|`MI_B` | |B octave 0 |
|`MI_C_1` | |C octave 1 |
|`MI_Cs_1` |`MI_Db_1`|C♯/D♭ octave 1 |
|`MI_D_1` | |D octave 1 |
|`MI_Ds_1` |`MI_Eb_1`|D♯/E♭ octave 1 |
|`MI_E_1` | |E octave 1 |
|`MI_F_1` | |F octave 1 |
|`MI_Fs_1` |`MI_Gb_1`|F♯/G♭ octave 1 |
|`MI_G_1` | |G octave 1 |
|`MI_Gs_1` |`MI_Ab_1`|G♯/A♭ octave 1 |
|`MI_A_1` | |A octave 1 |
|`MI_As_1` |`MI_Bb_1`|A♯/B♭ octave 1 |
|`MI_B_1` | |B octave 1 |
|`MI_C_2` | |C octave 2 |
|`MI_Cs_2` |`MI_Db_2`|C♯/D♭ octave 2 |
|`MI_D_2` | |D octave 2 |
|`MI_Ds_2` |`MI_Eb_2`|D♯/E♭ octave 2 |
|`MI_E_2` | |E octave 2 |
|`MI_F_2` | |F octave 2 |
|`MI_Fs_2` |`MI_Gb_2`|F♯/G♭ octave 2 |
|`MI_G_2` | |G octave 2 |
|`MI_Gs_2` |`MI_Ab_2`|G♯/A♭ octave 2 |
|`MI_A_2` | |A octave 2 |
|`MI_As_2` |`MI_Bb_2`|A♯/B♭ octave 2 |
|`MI_B_2` | |B octave 2 |
|`MI_C_3` | |C octave 3 |
|`MI_Cs_3` |`MI_Db_3`|C♯/D♭ octave 3 |
|`MI_D_3` | |D octave 3 |
|`MI_Ds_3` |`MI_Eb_3`|D♯/E♭ octave 3 |
|`MI_E_3` | |E octave 3 |
|`MI_F_3` | |F octave 3 |
|`MI_Fs_3` |`MI_Gb_3`|F♯/G♭ octave 3 |
|`MI_G_3` | |G octave 3 |
|`MI_Gs_3` |`MI_Ab_3`|G♯/A♭ octave 3 |
|`MI_A_3` | |A octave 3 |
|`MI_As_3` |`MI_Bb_3`|A♯/B♭ octave 3 |
|`MI_B_3` | |B octave 3 |
|`MI_C_4` | |C octave 4 |
|`MI_Cs_4` |`MI_Db_4`|C♯/D♭ octave 4 |
|`MI_D_4` | |D octave 4 |
|`MI_Ds_4` |`MI_Eb_4`|D♯/E♭ octave 4 |
|`MI_E_4` | |E octave 4 |
|`MI_F_4` | |F octave 4 |
|`MI_Fs_4` |`MI_Gb_4`|F♯/G♭ octave 4 |
|`MI_G_4` | |G octave 4 |
|`MI_Gs_4` |`MI_Ab_4`|G♯/A♭ octave 4 |
|`MI_A_4` | |A octave 4 |
|`MI_As_4` |`MI_Bb_4`|A♯/B♭ octave 4 |
|`MI_B_4` | |B octave 4 |
|`MI_C_5` | |C octave 5 |
|`MI_Cs_5` |`MI_Db_5`|C♯/D♭ octave 5 |
|`MI_D_5` | |D octave 5 |
|`MI_Ds_5` |`MI_Eb_5`|D♯/E♭ octave 5 |
|`MI_E_5` | |E octave 5 |
|`MI_F_5` | |F octave 5 |
|`MI_Fs_5` |`MI_Gb_5`|F♯/G♭ octave 5 |
|`MI_G_5` | |G octave 5 |
|`MI_Gs_5` |`MI_Ab_5`|G♯/A♭ octave 5 |
|`MI_A_5` | |A octave 5 |
|`MI_As_5` |`MI_Bb_5`|A♯/B♭ octave 5 |
|`MI_B_5` | |B octave 5 |
|`MI_OCT_N2` | |Set octave to -2 |
|`MI_OCT_N1` | |Set octave to -1 |
|`MI_OCT_0` | |Set octave to 0 |
|`MI_OCT_1` | |Set octave to 1 |
|`MI_OCT_2` | |Set octave to 2 |
|`MI_OCT_3` | |Set octave to 3 |
|`MI_OCT_4` | |Set octave to 4 |
|`MI_OCT_5` | |Set octave to 5 |
|`MI_OCT_6` | |Set octave to 6 |
|`MI_OCT_7` | |Set octave to 7 |
|`MI_OCTD` | |Move down an octave |
|`MI_OCTU` | |Move up an octave |
|`MI_TRNS_N6`| |Set transposition to -6 semitones|
|`MI_TRNS_N5`| |Set transposition to -5 semitones|
|`MI_TRNS_N4`| |Set transposition to -4 semitones|
|`MI_TRNS_N3`| |Set transposition to -3 semitones|
|`MI_TRNS_N2`| |Set transposition to -2 semitones|
|`MI_TRNS_N1`| |Set transposition to -1 semitone |
|`MI_TRNS_0` | |No transposition |
|`MI_TRNS_1` | |Set transposition to +1 semitone |
|`MI_TRNS_2` | |Set transposition to +2 semitones|
|`MI_TRNS_3` | |Set transposition to +3 semitones|
|`MI_TRNS_4` | |Set transposition to +4 semitones|
|`MI_TRNS_5` | |Set transposition to +5 semitones|
|`MI_TRNS_6` | |Set transposition to +6 semitones|
|`MI_TRNSD` | |Decrease transposition |
|`MI_TRNSU` | |Increase transposition |
|`MI_VEL_0` | |Set velocity to 0 |
|`MI_VEL_1` | |Set velocity to 12 |
|`MI_VEL_2` | |Set velocity to 25 |
|`MI_VEL_3` | |Set velocity to 38 |
|`MI_VEL_4` | |Set velocity to 51 |
|`MI_VEL_5` | |Set velocity to 64 |
|`MI_VEL_6` | |Set velocity to 76 |
|`MI_VEL_7` | |Set velocity to 89 |
|`MI_VEL_8` | |Set velocity to 102 |
|`MI_VEL_9` | |Set velocity to 114 |
|`MI_VEL_10` | |Set velocity to 127 |
|`MI_VELD` | |Decrease velocity |
|`MI_VELU` | |Increase velocity |
|`MI_CH1` | |Set channel to 1 |
|`MI_CH2` | |Set channel to 2 |
|`MI_CH3` | |Set channel to 3 |
|`MI_CH4` | |Set channel to 4 |
|`MI_CH5` | |Set channel to 5 |
|`MI_CH6` | |Set channel to 6 |
|`MI_CH7` | |Set channel to 7 |
|`MI_CH8` | |Set channel to 8 |
|`MI_CH9` | |Set channel to 9 |
|`MI_CH10` | |Set channel to 10 |
|`MI_CH11` | |Set channel to 11 |
|`MI_CH12` | |Set channel to 12 |
|`MI_CH13` | |Set channel to 13 |
|`MI_CH14` | |Set channel to 14 |
|`MI_CH15` | |Set channel to 15 |
|`MI_CH16` | |Set channel to 16 |
|`MI_CHD` | |Decrease channel |
|`MI_CHU` | |Increase channel |
|`MI_ALLOFF` | |Stop all notes |
|`MI_SUS` | |Sustain |
|`MI_PORT` | |Portmento |
|`MI_SOST` | |Sostenuto |
|`MI_SOFT` | |Soft Pedal |
|`MI_LEG` | |Legato |
|`MI_MOD` | |Modulation |
|`MI_MODSD` | |Decrease modulation speed |
|`MI_MODSU` | |Increase modulation speed |
|`MI_BENDD` | |Bend pitch down |
|`MI_BENDU` | |Bend pitch up |
## Mouse Keys :id=mouse-keys
See also: [Mouse Keys](feature_mouse_keys.md)

View File

@@ -20,13 +20,6 @@ void eeconfig_init_kb(void) {
#ifdef BACKLIGHT_ENABLE
backlight_enable();
backlight_level(5);
#endif
#ifdef RGBLIGHT_ENABLE
rgblight_enable();
rgblight_sethsv(0, 255, 255);
#ifdef RGBLIGHT_ANIMATIONS
rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2);
#endif
#endif
eeconfig_update_kb(0);

View File

@@ -26,6 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
// clang-format off
#define LAYOUT( \
KA1, KA2, KA3, \
KB1, KB2, KB3, \
@@ -36,3 +37,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
{ KB1, KB2, KB3 }, \
{ KC1, KC2, KC3 } \
}
// clang-format on

View File

@@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#include "config_common.h"
// clang-format off
/* USB Device descriptor parameter */
#define VENDOR_ID 0xCB00
@@ -47,19 +48,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#define RGBLED_NUM 5
#define RGBLED_NUM 4
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
// #define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_ANIMATIONS /* comment this and uncomment the lines below to save space */
// #define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
/* default setup after eeprom reset */
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_EFFECT_BREATHING + 2
#define RGBLIGHT_DEFAULT_HUE 152
#define RGBLIGHT_DEFAULT_SAT 232
#define RGBLIGHT_DEFAULT_VAR 255
#define RGBLIGHT_DEFAULT_SPD 2
#endif
// clang-format on
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5

View File

@@ -15,7 +15,7 @@ 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 "progmem.h"
// clang-format off
static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
@@ -274,3 +274,4 @@ static const unsigned char font[] PROGMEM = {
0x07, 0x07, 0x0F, 0x0F, 0x1E, 0x3E,
0x3C, 0x7C, 0x70, 0xC0, 0x80, 0x00,
};
// clang-format on

View File

@@ -0,0 +1,185 @@
/*
Copyright 2021 0xCB - Conor Burns
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// clang-format off
enum layer_names {
_HOME,
_MISC,
_RGB,
_BLED
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_MPRV, KC_MNXT, KC_MPLY,
KC_PGUP, KC_PGDN, TO(3),
KC_HOME, KC_END, TO(1)
),
[_MISC] = LAYOUT(
_______, _______, _______,
_______, _______, TO(0),
_______, _______, TO(2)
),
[_RGB] = LAYOUT(
RGB_HUI, RGB_HUD, RGB_MOD,
RGB_SAI, RGB_SAD, TO(1),
RGB_SPI, RGB_SPD, TO(3)
),
[_BLED] = LAYOUT(
BL_STEP, BL_BRTG, BL_TOGG,
BL_ON, BL_OFF, TO(2),
BL_INC, BL_DEC, TO(0)
)
};
// clang-format on
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
if (IS_LAYER_ON(_RGB)) {
#ifdef RGBLIGHT_ENABLE
if (clockwise) {
rgblight_increase_val();
} else {
rgblight_decrease_val();
}
#endif
} else if (IS_LAYER_ON(_BLED)) {
if (clockwise) {
backlight_increase();
} else {
backlight_decrease();
}
} else {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
return true;
}
#endif
/* oled stuff :) */
#ifdef OLED_DRIVER_ENABLE
uint16_t startup_timer;
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
startup_timer = timer_read();
return rotation;
}
static void render_logo(void) {
static const char PROGMEM raw_logo[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0,
0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0,
0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
oled_write_raw_P(raw_logo, sizeof(raw_logo));
}
static void render_logo_font(void) {
static const char PROGMEM qmk_logo[] = {
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0x9C, 0x9D, 0xCB, 0xCB,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xBB, 0xBC, 0xBD, 0xBE, 0xCB,
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xDB, 0xDC, 0xDD, 0xDE, 0xCB,
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x00
};
oled_write_P(qmk_logo, false);
}
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
static void render_info(void) {
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _HOME:
oled_write_ln_P(PSTR("HOME"), false);
break;
case _MISC:
oled_write_ln_P(PSTR("MISC"), false);
break;
case _RGB:
oled_write_ln_P(PSTR("RGB"), false);
break;
case _BLED:
oled_write_ln_P(PSTR("Backlight"), false);
break;
default:
oled_write_ln_P(PSTR("Undefined"), false);
}
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
static void render_rgbled_status(bool) {
char string[4];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
uint16_t m = rgblight_get_mode();
string[3] = '\0';
string[2] = '0' + m % 10;
string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
string[0] = m / 10 ? '0' + m / 10 : ' ';
oled_write_P(PSTR("Conf:"), false);
oled_write(string, false);
uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
string[3] = '\0';
string[2] = '0' + h % 10;
string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
string[0] = h / 10 ? '0' + h / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
string[3] = '\0';
string[2] = '0' + s % 10;
string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
string[0] = s / 10 ? '0' + s / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
string[3] = '\0';
string[2] = '0' + v % 10;
string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
string[0] = v / 10 ? '0' + v / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
}
void oled_task_user(void) {
static bool finished_timer = false;
if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
render_logo();
} else {
if (!finished_timer) {
oled_clear();
finished_timer = true;
}
render_info();
render_rgbled_status(true);
render_logo_font();
}
}
#endif

View File

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

View File

@@ -15,8 +15,7 @@ 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>
// clang-format off
enum layer_names {
_HOME,
_MISC,
@@ -46,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
BL_INC, BL_DEC, TO(0)
)
};
// clang-format on
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
#ifdef ENCODER_ENABLE
@@ -100,10 +99,10 @@ static void render_logo(void) {
}
static void render_logo_font(void) {
static const char PROGMEM qmk_logo[] = {
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4,
0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00
};
oled_write_P(qmk_logo, false);
@@ -133,24 +132,41 @@ static void render_info(void) {
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
static void render_rgbled_status(bool full) {
#ifdef RGBLIGHT_ENABLE
char buf[30];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
if (full) {
snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n",
rgblight_get_mode(),
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
rgblight_get_val()/RGBLIGHT_VAL_STEP);
} else {
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
}
oled_write(buf, false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
#endif
static void render_rgbled_status(bool) {
char string[4];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
uint16_t m = rgblight_get_mode();
string[3] = '\0';
string[2] = '0' + m % 10;
string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
string[0] = m / 10 ? '0' + m / 10 : ' ';
oled_write_P(PSTR("Conf:"), false);
oled_write(string, false);
uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
string[3] = '\0';
string[2] = '0' + h % 10;
string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
string[0] = h / 10 ? '0' + h / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
string[3] = '\0';
string[2] = '0' + s % 10;
string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
string[0] = s / 10 ? '0' + s / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
string[3] = '\0';
string[2] = '0' + v % 10;
string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
string[0] = v / 10 ? '0' + v / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
}
void oled_task_user(void) {
static bool finished_timer = false;

View File

@@ -15,8 +15,7 @@ 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>
// clang-format off
enum layer_names {
_HOME,
_MISC,
@@ -46,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
BL_INC, BL_DEC, TO(0)
)
};
// clang-format on
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
#ifdef ENCODER_ENABLE
@@ -100,10 +99,10 @@ static void render_logo(void) {
}
static void render_logo_font(void) {
static const char PROGMEM qmk_logo[] = {
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4,
0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00
};
oled_write_P(qmk_logo, false);
@@ -133,24 +132,41 @@ static void render_info(void) {
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
static void render_rgbled_status(bool full) {
#ifdef RGBLIGHT_ENABLE
char buf[30];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
if (full) {
snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n",
rgblight_get_mode(),
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
rgblight_get_val()/RGBLIGHT_VAL_STEP);
} else {
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
}
oled_write(buf, false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
#endif
static void render_rgbled_status(bool) {
char string[4];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
uint16_t m = rgblight_get_mode();
string[3] = '\0';
string[2] = '0' + m % 10;
string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
string[0] = m / 10 ? '0' + m / 10 : ' ';
oled_write_P(PSTR("Conf:"), false);
oled_write(string, false);
uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
string[3] = '\0';
string[2] = '0' + h % 10;
string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
string[0] = h / 10 ? '0' + h / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
string[3] = '\0';
string[2] = '0' + s % 10;
string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
string[0] = s / 10 ? '0' + s / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
string[3] = '\0';
string[2] = '0' + v % 10;
string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
string[0] = v / 10 ? '0' + v / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
}
void oled_task_user(void) {
static bool finished_timer = false;

View File

@@ -15,8 +15,7 @@ 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>
// clang-format off
enum layer_names {
_HOME,
_MISC,
@@ -46,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
BL_INC, BL_DEC, TO(0)
)
};
// clang-format on
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
#ifdef ENCODER_ENABLE
@@ -100,10 +99,10 @@ static void render_logo(void) {
}
static void render_logo_font(void) {
static const char PROGMEM qmk_logo[] = {
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4,
0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00
};
oled_write_P(qmk_logo, false);
@@ -133,24 +132,41 @@ static void render_info(void) {
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
static void render_rgbled_status(bool full) {
#ifdef RGBLIGHT_ENABLE
char buf[30];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
if (full) {
snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n",
rgblight_get_mode(),
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
rgblight_get_val()/RGBLIGHT_VAL_STEP);
} else {
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
}
oled_write(buf, false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
#endif
static void render_rgbled_status(void) {
char string[4];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
uint16_t m = rgblight_get_mode();
string[3] = '\0';
string[2] = '0' + m % 10;
string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
string[0] = m / 10 ? '0' + m / 10 : ' ';
oled_write_P(PSTR("Conf:"), false);
oled_write(string, false);
uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
string[3] = '\0';
string[2] = '0' + h % 10;
string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
string[0] = h / 10 ? '0' + h / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
string[3] = '\0';
string[2] = '0' + s % 10;
string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
string[0] = s / 10 ? '0' + s / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
string[3] = '\0';
string[2] = '0' + v % 10;
string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
string[0] = v / 10 ? '0' + v / 10 : ' ';
oled_write_P(PSTR(","), false);
oled_write(string, false);
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
}
void oled_task_user(void) {
static bool finished_timer = false;
@@ -162,7 +178,7 @@ void oled_task_user(void) {
finished_timer = true;
}
render_info();
render_rgbled_status(true);
render_rgbled_status();
render_logo_font();
}
}

View File

@@ -3,16 +3,16 @@
Macro keypad
* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns)
* Hardware Supported: https://github.com/conor-burns/0xcb-1337
* Hardware Availability: Soon on tindie or order your own parts - the hardware in the repo is Open Source :D
* Hardware Supported: https://github.com/0xcb-dev/0xcb-1337
* Hardware Availability: On [tindie](https://www.tindie.com/products/0xcb/0xcb-1337-a-customizable-macro-keyboard-with-qmk/) or order your own parts - the hardware in the repo is Open Source :D
* PCB renders :)
![](https://github.com/Conor-Burns/0xcb-1337/blob/main/PCB/top.png)
![](https://github.com/0xCB-dev/0xcb-1337/blob/main/PCB/rev3.0/top.png)
![](https://github.com/Conor-Burns/0xcb-1337/blob/main/PCB/bottom.png)
![](https://github.com/0xCB-dev/0xcb-1337/blob/main/PCB/rev3.0/bottom.png)
To go to bootloader press row 0 col 0 key (top left) while plugging in the board.
More Pictures [here](https://0xcb.dev/1337/)
To go to bootloader press row 0 col 0 key (top left) while plugging in the board. (Or press the reset button on V2.0 and v3.0)
Make example for this keyboard (after setting up your build environment):

View File

@@ -0,0 +1,70 @@
/*
Copyright 2021 0xCB - Conor Burns
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
// clang-format off
/* USB Device descriptor parameter */
#define VENDOR_ID 0xCB00
#define PRODUCT_ID 0xA455
#define DEVICE_VER 0x0001
#define MANUFACTURER 0xCB
#define PRODUCT Static
/* key matrix size */
#define MATRIX_ROWS 8
#define MATRIX_COLS 6
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { D5, D6, D7, B0, B1, B2, B3, B4 }
#define MATRIX_COL_PINS { B5, D4, C0, C1, C2, C3 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define TAP_CODE_DELAY 10
#define ENCODER_DIRECTION_FLIP
#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }
// clang-format on
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* oled custom font */
#define OLED_FONT_END 255
#define OLED_FONT_H "gfxfont.c"
/* bootmagic */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0

View File

@@ -0,0 +1,277 @@
/*
Copyright 2021 0xCB - Conor Burns
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 "progmem.h"
// clang-format off
static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
0x18, 0x24, 0x24, 0x18, 0xFC, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
0x4C, 0x10, 0x10, 0x10, 0x7C, 0x00,
0x44, 0xE4, 0xD4, 0x4C, 0x44, 0x00,
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
0x00, 0xE0, 0xFC, 0x1E, 0x06, 0xC6,
0xC6, 0x06, 0x1E, 0xFC, 0xE0, 0x00,
0x00, 0x00, 0x60, 0xE0, 0x80, 0x00,
0x00, 0x80, 0xE0, 0x60, 0x00, 0x00,
0x00, 0x00, 0xE0, 0xF8, 0x3C, 0x0E,
0x06, 0x06, 0x06, 0x0E, 0x0C, 0x00,
0x00, 0x00, 0xFE, 0xFE, 0x86, 0x86,
0x86, 0x86, 0x8C, 0x78, 0x70, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0x38, 0x38, 0xC0, 0xC0,
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0xFF, 0xFF, 0x0C, 0x0C, 0xF0, 0xF0,
0x0C, 0x0C, 0xFF, 0xFF, 0x00, 0x00,
0xFF, 0xFF, 0x7F, 0x07, 0x07, 0x07,
0x03, 0x03, 0x00, 0x00, 0x00, 0x07,
0x07, 0x00, 0x00, 0x00, 0x03, 0x03,
0x07, 0x07, 0x07, 0x7F, 0xFF, 0xFF,
0x70, 0xD0, 0x70, 0x00, 0x07, 0x05,
0x07, 0x02, 0x02, 0x82, 0xC2, 0x42,
0x7E, 0xC0, 0xC0, 0xC0, 0x40, 0x7E,
0x42, 0xC2, 0x82, 0x02, 0x02, 0x07,
0x05, 0x07, 0x00, 0x70, 0xD0, 0x70,
0x00, 0x07, 0x3F, 0x78, 0x60, 0x63,
0x63, 0x60, 0x78, 0x3F, 0x07, 0x00,
0x00, 0x00, 0x60, 0x79, 0x19, 0x06,
0x06, 0x19, 0x79, 0x60, 0x00, 0x00,
0x00, 0x00, 0x07, 0x1F, 0x3C, 0x70,
0x60, 0x60, 0x60, 0x70, 0x30, 0x00,
0x00, 0x00, 0x7F, 0x7F, 0x61, 0x61,
0x61, 0x61, 0x31, 0x1E, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00,
0x07, 0x07, 0x3F, 0x3F, 0x00, 0x00,
0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30,
0x30, 0x30, 0x0F, 0x0F, 0x00, 0x00,
0x3F, 0x3F, 0x00, 0x00, 0x03, 0x03,
0x00, 0x00, 0x3F, 0x3F, 0x00, 0x00,
0x83, 0x83, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0xFE,
0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x83, 0x83,
0xC0, 0x5F, 0xD0, 0x90, 0x90, 0x90,
0xFC, 0x06, 0x01, 0xF8, 0xFC, 0xFC,
0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00,
0x3C, 0x3C, 0x30, 0x01, 0x06, 0xFC,
0x90, 0x90, 0x90, 0xD0, 0x5F, 0xC0,
0x00, 0x18, 0x18, 0x86, 0x86, 0x86,
0x86, 0x86, 0x86, 0x78, 0x78, 0x00,
0x00, 0x06, 0x06, 0x06, 0x06, 0x86,
0x86, 0xE6, 0xE6, 0x1E, 0x1E, 0x00,
0x00, 0x80, 0x80, 0x60, 0x60, 0x18,
0x18, 0xFE, 0xFE, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0xFC, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x0C, 0x0C, 0x00, 0x00,
0xF0, 0xF0, 0x0C, 0x0C, 0x03, 0x03,
0x0C, 0x0C, 0xF0, 0xF0, 0x00, 0x00,
0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3,
0xC3, 0xC3, 0x3C, 0x3C, 0x00, 0x00,
0xC1, 0xC1, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x60, 0x7F,
0x7F, 0x60, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xC1, 0xC1,
0x01, 0xFD, 0x05, 0x04, 0x04, 0x04,
0x1F, 0x30, 0x40, 0x87, 0x9F, 0x1F,
0x01, 0x81, 0xFF, 0xFF, 0x00, 0x00,
0x1E, 0x9E, 0x86, 0x40, 0x30, 0x1F,
0x04, 0x04, 0x04, 0x05, 0xFD, 0x01,
0x00, 0x7E, 0x7E, 0x61, 0x61, 0x61,
0x61, 0x61, 0x61, 0x60, 0x60, 0x00,
0x00, 0x18, 0x18, 0x60, 0x60, 0x61,
0x61, 0x61, 0x61, 0x1E, 0x1E, 0x00,
0x00, 0x07, 0x07, 0x06, 0x06, 0x06,
0x06, 0x7F, 0x7F, 0x06, 0x06, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30,
0x30, 0x30, 0x0C, 0x0C, 0x00, 0x00,
0x3F, 0x3F, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x3F, 0x3F, 0x00, 0x00,
0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFE, 0xE0, 0xE0, 0xE0,
0xC0, 0xC0, 0x00, 0x00, 0x00, 0xE0,
0xE0, 0x00, 0x00, 0x00, 0xC0, 0xC0,
0xE0, 0xE0, 0xE0, 0xFE, 0xFF, 0xFF,
0x07, 0x05, 0x07, 0x00, 0x70, 0x50,
0x70, 0x20, 0x20, 0x20, 0x21, 0x3F,
0x01, 0x61, 0x9F, 0x9F, 0x61, 0x01,
0x3F, 0x21, 0x20, 0x20, 0x20, 0x70,
0x50, 0x70, 0x00, 0x07, 0x05, 0x07,
};
// clang-format on

View File

@@ -0,0 +1,102 @@
{
"keyboard_name": "0xCB Static",
"url": "https://0xCB.dev",
"maintainer": "Conor-Burns",
"width": 12,
"height": 5,
"layouts": {
"LAYOUT": {
"layout": [
{"x":11, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":10, "y":1},
{"x":11, "y":1},
{"x":0, "y":2, "w":1.25},
{"x":1.25, "y":2},
{"x":2.25, "y":2},
{"x":3.25, "y":2},
{"x":4.25, "y":2},
{"x":5.25, "y":2},
{"x":6.25, "y":2},
{"x":7.25, "y":2},
{"x":8.25, "y":2},
{"x":9.25, "y":2},
{"x":10.25, "y":2, "w":1.75},
{"x":0, "y":3, "w":1.75},
{"x":1.75, "y":3},
{"x":2.75, "y":3},
{"x":3.75, "y":3},
{"x":4.75, "y":3},
{"x":5.75, "y":3},
{"x":6.75, "y":3},
{"x":7.75, "y":3},
{"x":8.75, "y":3},
{"x":9.75, "y":3},
{"x":10.75, "y":3, "w":1.25},
{"x":0, "y":4},
{"x":1, "y":4},
{"x":2, "y":4},
{"x":3, "y":4, "w":2.75},
{"x":5.75, "y":4},
{"x":6.75, "y":4, "w":2.25},
{"x":9, "y":4},
{"x":10, "y":4},
{"x":11, "y":4}
]
},
"LAYOUT_bigbar": {
"layout": [
{"x":11, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":10, "y":1},
{"x":11, "y":1},
{"x":0, "y":2, "w":1.25},
{"x":1.25, "y":2},
{"x":2.25, "y":2},
{"x":3.25, "y":2},
{"x":4.25, "y":2},
{"x":5.25, "y":2},
{"x":6.25, "y":2},
{"x":7.25, "y":2},
{"x":8.25, "y":2},
{"x":9.25, "y":2},
{"x":10.25, "y":2, "w":1.75},
{"x":0, "y":3, "w":1.75},
{"x":1.75, "y":3},
{"x":2.75, "y":3},
{"x":3.75, "y":3},
{"x":4.75, "y":3},
{"x":5.75, "y":3},
{"x":6.75, "y":3},
{"x":7.75, "y":3},
{"x":8.75, "y":3},
{"x":9.75, "y":3},
{"x":10.75, "y":3, "w":1.25},
{"x":0, "y":4, "w":1.25},
{"x":1.25, "y":4},
{"x":2.25, "y":4},
{"x":3.25, "y":4, "w":6.25},
{"x":9.5, "y":4, "w":1.25},
{"x":10.75, "y":4, "w":1.25}
]
}
}
}

View File

@@ -0,0 +1,190 @@
/*
Copyright 2021 0xCB - Conor Burns
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// clang-format off
enum layer_names {
_HOME,
_FN2,
_FN3,
_FN4
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_MPLY,
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2)
),
[_FN2] = LAYOUT(
RESET,
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_FN3] = LAYOUT(
EEP_RST,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_FN4] = LAYOUT(
_______,
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______,
_______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______,
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
// clang-format on
/*layer switcher */
layer_state_t layer_state_set_user(layer_state_t state) {
state = update_tri_layer_state(state, _FN2, _FN3, _FN4);
return state;
}
/* rotary encoder (MX12) - add different functions for layers here */
#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
if (IS_LAYER_ON(_FN4)) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (IS_LAYER_ON(_FN3)) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (IS_LAYER_ON(_FN2)) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
return true;
}
#endif
/* oled stuff :) */
#ifdef OLED_DRIVER_ENABLE
uint16_t startup_timer = 0;
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
startup_timer = timer_read();
return rotation;
}
static void render_logo(void) {
static const char PROGMEM raw_logo[] = {
0, 8, 0,192,194,192,192, 60, 60, 44, 60,188, 60, 60, 60, 60, 44, 61, 60,192,192,192,208, 1, 0,252,252,180,252, 60, 60, 44, 60,252,253,252,252, 60, 60, 44, 60,244,220,252,252, 0, 0, 16, 0, 0, 0,192,192, 65,192, 60, 60, 52, 60,192,193,192,192, 16, 0, 0,144, 4, 0,252,125,244, 60, 60, 60, 60, 61,252,252,244,252, 60, 60, 60, 61,248,108,252, 0, 0, 61, 60,188, 60, 52,252,252,220,252, 61, 60, 60, 52, 0, 0,192,210, 64,192, 60, 60, 44, 61, 60, 60, 60, 61, 52, 60, 60, 60,192,192, 64,196, 0, 4, 0,
0, 16, 0, 61, 63, 55, 63,192, 64,192,196,192,192,192,200,192,196,192,192, 3, 3, 2, 11, 0, 0, 35, 3, 3, 3, 0, 64, 2, 0,255,255,253,247, 0, 0, 0, 32, 1, 0, 1, 65, 8, 0,189,244,252,236, 3,130, 3, 1, 0, 68, 0, 0, 3, 34,131, 3,252,252,236,252, 0, 32, 17, 1, 1, 0, 0, 32, 0, 2,255,255,127,247, 0, 1, 0, 8, 1, 1, 1, 0, 0, 0, 16, 0, 64, 0,255,191,255,251, 0,129, 0, 2, 32, 0,255,255,239,255, 0, 0, 2, 0, 0, 0, 8, 64, 0, 1, 0, 0, 3, 35, 3, 3, 0, 8, 0,
1, 16, 0,192, 64,194,192, 3, 67, 3, 3, 9, 3, 3, 3, 3, 2, 83, 3,252,252,188,244, 0, 2, 32, 0, 0, 2, 0,144, 0, 0,255,255,237,255, 0, 16, 0, 0, 0, 64, 2, 0,128, 0,255,123,255,255, 60, 52, 60, 60, 60, 60, 60, 60, 44, 60, 56, 60,239,255,126,255, 0, 2, 32, 0, 0, 34, 0, 0, 16, 0,255,255,255,223, 0, 0, 4, 0, 0, 0, 33, 0, 0, 17, 0, 0, 0, 0,255,255,239,255, 0,128, 0, 0, 72, 0,255,253,247,255, 0, 0, 1, 0,144, 0, 4, 0, 32, 0, 0, 2,192,192,192,200, 0, 16, 0,
64, 4, 0, 3, 7, 3, 3, 60, 60, 52,188, 60, 61, 60, 60, 60, 60, 44, 60, 67, 3, 3, 3, 0, 0, 64, 0, 0, 4, 0, 0, 16, 0, 47, 63, 62, 63, 0, 0,132, 0, 0, 0, 0,128, 8, 0,255,255,111,127, 0, 0, 0, 2,128, 0, 0, 0, 64, 4, 0,128,127,127,107,127, 0, 32, 0, 0, 0, 66, 0, 0, 0,136, 55, 63, 61, 63, 0, 0, 0, 2, 0, 64, 0,136, 0, 0, 60, 44,189, 60, 63, 63, 63, 59, 60, 60,172, 60, 0, 64, 3, 2, 3,131, 60, 44, 60, 60, 60, 60,188, 60, 56, 44, 60, 60, 3, 3,131, 2, 0, 32, 2,
};
oled_write_raw_P(raw_logo, sizeof(raw_logo));
}
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
static void render_layer(void) {
led_t led_state = host_keyboard_led_state();
// clang-format off
static const char PROGMEM logo[][3][7] = {
{{0x97, 0x98, 0x99, 0x9A, 0}, {0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0}, {0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0}}, /* l num CB */
{{0xB7, 0xB8, 0xB9, 0xBA, 0}, {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0}, {0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0}}, /* 1 num CB */
{{0xD7, 0xD8, 0xD9, 0xDA, 0}, {0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0}, {0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0}}, /* 1 cap CB */
{{0xF7, 0xF8, 0xF9, 0xFA, 0}, {0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0}, {0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0}}, /* l cap CB */
{{0xB7, 0xC0, 0xC1, 0xBA, 0}, {0xB7, 0xC2, 0xC3, 0xBA, 0}, {0xB7, 0xC4, 0xC5, 0xBA, 0}}, /* 2 3 4 */
{{0xD7, 0xE0, 0xE1, 0xDA, 0}, {0xD7, 0xE2, 0xE3, 0xDA, 0}, {0xD7, 0xE4, 0xE5, 0xDA, 0}}, /* 2 3 4 */
};
// clang-format on
oled_set_cursor(0, 0);
oled_write_P(logo[0][0], false);
oled_set_cursor(0, 3);
oled_write_P(logo[3][0], false);
switch (get_highest_layer(layer_state)) {
case _HOME:
oled_set_cursor(0, 1);
oled_write_P(logo[1][0], false);
oled_set_cursor(0, 2);
oled_write_P(logo[2][0], false);
break;
case _FN2:
oled_set_cursor(0, 1);
oled_write_P(logo[4][0], false);
oled_set_cursor(0, 2);
oled_write_P(logo[5][0], false);
break;
case _FN3:
oled_set_cursor(0, 1);
oled_write_P(logo[4][1], false);
oled_set_cursor(0, 2);
oled_write_P(logo[5][1], false);
break;
case _FN4:
oled_set_cursor(0, 1);
oled_write_P(logo[4][2], false);
oled_set_cursor(0, 2);
oled_write_P(logo[5][2], false);
break;
default:
oled_set_cursor(0, 1);
oled_write_P(PSTR(" "), false);
oled_set_cursor(0, 2);
oled_write_P(PSTR(" "), false);
}
oled_set_cursor(8, 0);
oled_write_P(led_state.num_lock ? logo[0][1] : PSTR(" "), false);
oled_set_cursor(8, 1);
oled_write_P(led_state.num_lock ? logo[1][1] : PSTR(" "), false);
oled_set_cursor(8, 2);
oled_write_P(led_state.caps_lock ? logo[2][1] : PSTR(" "), false);
oled_set_cursor(8, 3);
oled_write_P(led_state.caps_lock ? logo[3][1] : PSTR(" "), false);
oled_set_cursor(16, 0);
oled_write_P(logo[0][2], false);
oled_set_cursor(16, 1);
oled_write_P(logo[1][2], false);
oled_set_cursor(16, 2);
oled_write_P(logo[2][2], false);
oled_set_cursor(16, 3);
oled_write_P(logo[3][2], false);
}
void oled_task_user(void) {
static bool finished_timer = false;
if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) {
render_logo();
} else {
if (!finished_timer) {
oled_clear();
finished_timer = true;
}
render_layer();
}
}
#endif

View File

@@ -0,0 +1,197 @@
/*
Copyright 2021 0xCB - Conor Burns
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// clang-format off
enum layer_names {
_HOME,
_FN2,
_FN3,
_FN4
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_MPLY,
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2)
),
[_FN2] = LAYOUT(
RESET,
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_FN3] = LAYOUT(
EEP_RST,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[_FN4] = LAYOUT(
_______,
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______,
_______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______,
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
// clang-format on
/*layer switcher */
layer_state_t layer_state_set_user(layer_state_t state) {
state = update_tri_layer_state(state, _FN2, _FN3, _FN4);
return state;
}
/* rotary encoder (MX12) - add different functions for layers here */
#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
if (IS_LAYER_ON(_FN4)) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (IS_LAYER_ON(_FN3)) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (IS_LAYER_ON(_FN2)) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
return true;
}
#endif
/* oled stuff :) */
#ifdef OLED_DRIVER_ENABLE
uint16_t startup_timer = 0;
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
startup_timer = timer_read();
return rotation;
}
static void render_logo(void) {
static const char PROGMEM raw_logo[] = {
0, 8, 0,192,194,192,192, 60, 60, 44, 60,188, 60, 60, 60, 60, 44, 61, 60,192,192,192,208, 1, 0,252,252,180,252, 60, 60, 44, 60,252,253,252,252, 60, 60, 44, 60,244,220,252,252, 0, 0, 16, 0, 0, 0,192,192, 65,192, 60, 60, 52, 60,192,193,192,192, 16, 0, 0,144, 4, 0,252,125,244, 60, 60, 60, 60, 61,252,252,244,252, 60, 60, 60, 61,248,108,252, 0, 0, 61, 60,188, 60, 52,252,252,220,252, 61, 60, 60, 52, 0, 0,192,210, 64,192, 60, 60, 44, 61, 60, 60, 60, 61, 52, 60, 60, 60,192,192, 64,196, 0, 4, 0,
0, 16, 0, 61, 63, 55, 63,192, 64,192,196,192,192,192,200,192,196,192,192, 3, 3, 2, 11, 0, 0, 35, 3, 3, 3, 0, 64, 2, 0,255,255,253,247, 0, 0, 0, 32, 1, 0, 1, 65, 8, 0,189,244,252,236, 3,130, 3, 1, 0, 68, 0, 0, 3, 34,131, 3,252,252,236,252, 0, 32, 17, 1, 1, 0, 0, 32, 0, 2,255,255,127,247, 0, 1, 0, 8, 1, 1, 1, 0, 0, 0, 16, 0, 64, 0,255,191,255,251, 0,129, 0, 2, 32, 0,255,255,239,255, 0, 0, 2, 0, 0, 0, 8, 64, 0, 1, 0, 0, 3, 35, 3, 3, 0, 8, 0,
1, 16, 0,192, 64,194,192, 3, 67, 3, 3, 9, 3, 3, 3, 3, 2, 83, 3,252,252,188,244, 0, 2, 32, 0, 0, 2, 0,144, 0, 0,255,255,237,255, 0, 16, 0, 0, 0, 64, 2, 0,128, 0,255,123,255,255, 60, 52, 60, 60, 60, 60, 60, 60, 44, 60, 56, 60,239,255,126,255, 0, 2, 32, 0, 0, 34, 0, 0, 16, 0,255,255,255,223, 0, 0, 4, 0, 0, 0, 33, 0, 0, 17, 0, 0, 0, 0,255,255,239,255, 0,128, 0, 0, 72, 0,255,253,247,255, 0, 0, 1, 0,144, 0, 4, 0, 32, 0, 0, 2,192,192,192,200, 0, 16, 0,
64, 4, 0, 3, 7, 3, 3, 60, 60, 52,188, 60, 61, 60, 60, 60, 60, 44, 60, 67, 3, 3, 3, 0, 0, 64, 0, 0, 4, 0, 0, 16, 0, 47, 63, 62, 63, 0, 0,132, 0, 0, 0, 0,128, 8, 0,255,255,111,127, 0, 0, 0, 2,128, 0, 0, 0, 64, 4, 0,128,127,127,107,127, 0, 32, 0, 0, 0, 66, 0, 0, 0,136, 55, 63, 61, 63, 0, 0, 0, 2, 0, 64, 0,136, 0, 0, 60, 44,189, 60, 63, 63, 63, 59, 60, 60,172, 60, 0, 64, 3, 2, 3,131, 60, 44, 60, 60, 60, 60,188, 60, 56, 44, 60, 60, 3, 3,131, 2, 0, 32, 2,
};
oled_write_raw_P(raw_logo, sizeof(raw_logo));
}
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
static void render_layer(void) {
led_t led_state = host_keyboard_led_state();
// clang-format off
static const char PROGMEM logo[][3][7] = {
{{0x97, 0x98, 0x99, 0x9A, 0}, {0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0}, {0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0}}, /* l num CB */
{{0xB7, 0xB8, 0xB9, 0xBA, 0}, {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0}, {0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0}}, /* 1 num CB */
{{0xD7, 0xD8, 0xD9, 0xDA, 0}, {0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0}, {0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0}}, /* 1 cap CB */
{{0xF7, 0xF8, 0xF9, 0xFA, 0}, {0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0}, {0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0}}, /* l cap CB */
{{0xB7, 0xC0, 0xC1, 0xBA, 0}, {0xB7, 0xC2, 0xC3, 0xBA, 0}, {0xB7, 0xC4, 0xC5, 0xBA, 0}}, /* 2 3 4 */
{{0xD7, 0xE0, 0xE1, 0xDA, 0}, {0xD7, 0xE2, 0xE3, 0xDA, 0}, {0xD7, 0xE4, 0xE5, 0xDA, 0}}, /* 2 3 4 */
};
// clang-format on
oled_set_cursor(0, 0);
oled_write_P(logo[0][0], false);
oled_set_cursor(0, 3);
oled_write_P(logo[3][0], false);
switch (get_highest_layer(layer_state)) {
case _HOME:
oled_set_cursor(0, 1);
oled_write_P(logo[1][0], false);
oled_set_cursor(0, 2);
oled_write_P(logo[2][0], false);
break;
case _FN2:
oled_set_cursor(0, 1);
oled_write_P(logo[4][0], false);
oled_set_cursor(0, 2);
oled_write_P(logo[5][0], false);
break;
case _FN3:
oled_set_cursor(0, 1);
oled_write_P(logo[4][1], false);
oled_set_cursor(0, 2);
oled_write_P(logo[5][1], false);
break;
case _FN4:
oled_set_cursor(0, 1);
oled_write_P(logo[4][2], false);
oled_set_cursor(0, 2);
oled_write_P(logo[5][2], false);
break;
default:
oled_set_cursor(0, 1);
oled_write_P(PSTR(" "), false);
oled_set_cursor(0, 2);
oled_write_P(PSTR(" "), false);
}
oled_set_cursor(8, 0);
oled_write_P(led_state.num_lock ? logo[0][1] : PSTR(" "), false);
oled_set_cursor(8, 1);
oled_write_P(led_state.num_lock ? logo[1][1] : PSTR(" "), false);
oled_set_cursor(8, 2);
oled_write_P(led_state.caps_lock ? logo[2][1] : PSTR(" "), false);
oled_set_cursor(8, 3);
oled_write_P(led_state.caps_lock ? logo[3][1] : PSTR(" "), false);
oled_set_cursor(16, 0);
oled_write_P(logo[0][2], false);
oled_set_cursor(16, 1);
oled_write_P(logo[1][2], false);
oled_set_cursor(16, 2);
oled_write_P(logo[2][2], false);
oled_set_cursor(16, 3);
oled_write_P(logo[3][2], false);
}
void oled_task_user(void) {
static bool finished_timer = false;
if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) {
render_logo();
} else {
if (!finished_timer) {
oled_clear();
finished_timer = true;
}
render_layer();
}
}
#endif
/* Resets via on eep reset - thank you drashna! */
void eeconfig_init_kb(void) {
via_eeprom_set_valid(false);
via_init();
eeconfig_init_user();
}

View File

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

View File

@@ -0,0 +1,27 @@
# 0xCB Static
Macro keypad
* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns)
* Hardware Supported: https://github.com/0xCB-dev/0xcb-static
* Hardware Availability: Soon on tindie or order your own parts - the hardware in the repo is Open Source :D
* PCB renders :)
![](https://github.com/0xCB-dev/0xcb-static/blob/main/PCB/rev1.0/top.png)
![](https://github.com/0xCB-dev/0xcb-static/blob/main/PCB/rev1.0/bottom.png)
More Pictures [here](https://0xcb.dev/static/)
To go to bootloader press ESC while plugging in or hold the RESET switch, then hold the BOOT switch, release RESET, release BOOT.
The board should now appear in lsusb (or device manager).
Make example for this keyboard (after setting up your build environment):
make 0xcb/static:default
Flashing example for this keyboard:
make 0xcb/static: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).

View File

@@ -0,0 +1,26 @@
# MCU name
MCU = atmega328p
# Bootloader selection
BOOTLOADER = USBasp
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes
LTO_ENABLE = yes
OLED_DRIVER_ENABLE = yes

View File

@@ -0,0 +1,17 @@
/*
Copyright 2021 0xCB - Conor Burns
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 "static.h"

View File

@@ -0,0 +1,48 @@
/*
Copyright 2021 0xCB - Conor Burns
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
/* This a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
// clang-format off
#define LAYOUT( \
K15, \
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \
K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \
K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \
K60, K70, K61, K71, K72, K64, K74, K65, K75 \
) \
{ \
{ K00, K01, K02, K03, K04, K05 }, \
{ K10, K11, K12, K13, K14, K15 }, \
{ K20, K21, K22, K23, K24, K25 }, \
{ K30, K31, K32, K33, K34, K35 }, \
{ K40, K41, K42, K43, K44, K45 }, \
{ KC_NO, K51, K52, K53, K54, K55 }, \
{ K60, K61, KC_NO, KC_NO, K64, K65 }, \
{ K70, K71, K72, KC_NO, K74, K75 }, \
}
// clang-format on

View File

@@ -19,31 +19,31 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
#define LAYOUT_tsangan( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
K400, K401, K402, K406, K410, K411, K412 \
#define LAYOUT_60_tsangan_hhkb( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
K400, K401, K402, K406, K410, K411, K412 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \
{ K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413 } \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \
{ K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413 } \
}
/* HHKB Variant */
#define LAYOUT_60_hhkb( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
K401, K402, K406, K410, K411 \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
K401, K402, K406, K410, K411 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \
{ KC_NO, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413 } \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \
{ KC_NO, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413 } \
}

View File

@@ -1,15 +1,150 @@
{
"keyboard_name": "1up60hte",
"url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/",
"maintainer": "1upkeyboards",
"width": 15,
"height": 5,
"keyboard_name": "1up60hte",
"url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/",
"maintainer": "1upkeyboards",
"width": 15,
"height": 5,
"layout_aliases": {
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
},
"layouts": {
"LAYOUT_tsangan": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Meta", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Meta", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}]
"LAYOUT_60_tsangan_hhkb": {
"layout": [
{"label":"Esc", "x":0, "y":0},
{"label":"!", "x":1, "y":0},
{"label":"@", "x":2, "y":0},
{"label":"#", "x":3, "y":0},
{"label":"$", "x":4, "y":0},
{"label":"%", "x":5, "y":0},
{"label":"^", "x":6, "y":0},
{"label":"&", "x":7, "y":0},
{"label":"*", "x":8, "y":0},
{"label":"(", "x":9, "y":0},
{"label":")", "x":10, "y":0},
{"label":"_", "x":11, "y":0},
{"label":"+", "x":12, "y":0},
{"label":"|", "x":13, "y":0},
{"label":"~", "x":14, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":6.5, "y":1},
{"label":"U", "x":7.5, "y":1},
{"label":"I", "x":8.5, "y":1},
{"label":"O", "x":9.5, "y":1},
{"label":"P", "x":10.5, "y":1},
{"label":"{", "x":11.5, "y":1},
{"label":"}", "x":12.5, "y":1},
{"label":"|", "x":13.5, "y":1, "w":1.5},
{"label":"Control", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":6.75, "y":2},
{"label":"J", "x":7.75, "y":2},
{"label":"K", "x":8.75, "y":2},
{"label":"L", "x":9.75, "y":2},
{"label":":", "x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
{"label":"Shift", "x":0, "y":3, "w":2.25},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":7.25, "y":3},
{"label":"M", "x":8.25, "y":3},
{"label":"<", "x":9.25, "y":3},
{"label":">", "x":10.25, "y":3},
{"label":"?", "x":11.25, "y":3},
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
{"label":"Fn", "x":14, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
{"label":"Alt", "x":1.5, "y":4},
{"label":"Meta", "x":2.5, "y":4, "w":1.5},
{"x":4, "y":4, "w":7},
{"label":"Meta", "x":11, "y":4, "w":1.5},
{"label":"Alt", "x":12.5, "y":4},
{"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
]
},
"LAYOUT_60_hhkb": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Meta", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Meta", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}]
"layout": [
{"label":"Esc", "x":0, "y":0},
{"label":"!", "x":1, "y":0},
{"label":"@", "x":2, "y":0},
{"label":"#", "x":3, "y":0},
{"label":"$", "x":4, "y":0},
{"label":"%", "x":5, "y":0},
{"label":"^", "x":6, "y":0},
{"label":"&", "x":7, "y":0},
{"label":"*", "x":8, "y":0},
{"label":"(", "x":9, "y":0},
{"label":")", "x":10, "y":0},
{"label":"_", "x":11, "y":0},
{"label":"+", "x":12, "y":0},
{"label":"|", "x":13, "y":0},
{"label":"~", "x":14, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":6.5, "y":1},
{"label":"U", "x":7.5, "y":1},
{"label":"I", "x":8.5, "y":1},
{"label":"O", "x":9.5, "y":1},
{"label":"P", "x":10.5, "y":1},
{"label":"{", "x":11.5, "y":1},
{"label":"}", "x":12.5, "y":1},
{"label":"|", "x":13.5, "y":1, "w":1.5},
{"label":"Control", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":6.75, "y":2},
{"label":"J", "x":7.75, "y":2},
{"label":"K", "x":8.75, "y":2},
{"label":"L", "x":9.75, "y":2},
{"label":":", "x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
{"label":"Shift", "x":0, "y":3, "w":2.25},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":7.25, "y":3},
{"label":"M", "x":8.25, "y":3},
{"label":"<", "x":9.25, "y":3},
{"label":">", "x":10.25, "y":3},
{"label":"?", "x":11.25, "y":3},
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
{"label":"Fn", "x":14, "y":3},
{"label":"Alt", "x":1.5, "y":4},
{"label":"Meta", "x":2.5, "y":4, "w":1.5},
{"x":4, "y":4, "w":7},
{"label":"Meta", "x":11, "y":4, "w":1.5},
{"label":"Alt", "x":12.5, "y":4}
]
}
}
}

View File

@@ -17,17 +17,19 @@ 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_tsangan(
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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL),
[0] = LAYOUT_60_tsangan_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
),
[1] = LAYOUT_tsangan(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
[1] = LAYOUT_60_tsangan_hhkb(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_UP, _______, KC_CLR,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -17,17 +17,19 @@ 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_tsangan(
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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_NO, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_NO),
[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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT
),
[1] = LAYOUT_tsangan(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
[1] = LAYOUT_60_hhkb(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_UP, _______, KC_CLR,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______
)
};

View File

@@ -17,31 +17,35 @@ 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_tsangan(
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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL),
[0] = LAYOUT_60_tsangan_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
),
[1] = LAYOUT_tsangan(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[1] = LAYOUT_60_tsangan_hhkb(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_UP, _______, KC_CLR,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_tsangan(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT_60_tsangan_hhkb(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_tsangan(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT_60_tsangan_hhkb(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
),
};

View File

@@ -1,17 +1,19 @@
# 1up60hte (Hot Swap Tsangan Edition)
![1up60hte](https://www.1upkeyboards.com/wp-content/uploads/2019/01/PCB-60-HS-TSA-both.jpg)
A 60% PCB with USB C, RGB underglow, backlighting, hotswappable switches, and a Tsangan layout.
Keyboard Maintainer: [Bubnick](https://github.com/bubnick)
Hardware Supported: 1up60hte 60% PCB
Hardware Availability: [1upkeyboards.com](https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/)
* Keyboard Maintainer: [Bubnick](https://github.com/bubnick)
* Hardware Supported: 1up60hte 60% PCB
* Hardware Availability: [1upkeyboards.com](https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/)
Make example for this keyboard (after setting up your build environment):
make 1upkeyboards/1up60hte:default
Flashing example for this keyboard:
make 1upkeyboards/1up60hte: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).

View File

@@ -2,28 +2,25 @@
MCU = atmega32u4
# Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LTO_ENABLE = yes
LAYOUTS = 60_hhkb
LAYOUTS = 60_hhkb 60_tsangan_hhkb

View File

@@ -1,5 +1,5 @@
{
"keyboard_name": "40percent.club 4x4",
"keyboard_name": "40percent.club 5x5",
"url": "",
"maintainer": "qmk",
"height": 4,

View File

@@ -32,3 +32,5 @@ AUDIO_ENABLE = no # Audio output on port C6
# Enable generic behavior for split boards
SPLIT_KEYBOARD = yes
LAYOUTS = ortho_2x3 ortho_2x6

View File

@@ -40,8 +40,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
// #define MATRIX_ROW_PINS { B0 } // B0 equivalents the ground pin
// #define MATRIX_COL_PINS { E6, D7, C6, D4 }
#define DIRECT_PINS { \
{ D4, C6, D7 }, \
{ E6, B4, B5 } \
@@ -56,6 +54,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_LEVELS 6
#define BACKLIGHT_PINS { F4, F5 } // Top Row, Bottom Row
/* LED Indicators */
#define LED_PIN_ON_STATE 0
#define LED_CAPS_LOCK_PIN B0 // RX Led
#define LED_NUM_LOCK_PIN D5 // TX Led
// #define RGB_DI_PIN B1 // PB1 on expansion connector
// #ifdef RGB_DI_PIN
// #define RGBLED_NUM 16

View File

@@ -1,5 +1,5 @@
{
"keyboard_name": "sixpack",
"keyboard_name": "Six Pack",
"url": "https://www.40percent.club/2017/05/six-pack-11.html",
"maintainer": "qmk",
"width": 3,

View File

@@ -33,9 +33,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
[4] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
[5] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_2x3

View File

@@ -3,19 +3,18 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_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_ENT,
KC_LCTRL, 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, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL),
[1] = LAYOUT_all(
KC_EXEC, 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_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_PENT,
KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_INS,
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______)
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_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_LCTL, 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_RALT, KC_RGUI, KC_RCTL
),
[1] = LAYOUT_all(
KC_EXEC, 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_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______,
KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_INS, KC_PENT,
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______
)
};

View File

@@ -3,32 +3,32 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_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_ENT,
KC_LCTRL, 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, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL),
[1] = LAYOUT_all(
KC_EXEC, 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_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_PENT,
KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_INS,
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______),
[2] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______),
[3] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_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_LCTL, 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_RALT, KC_RGUI, KC_RCTL
),
[1] = LAYOUT_all(
KC_EXEC, 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_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______,
KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_INS, KC_PENT,
_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______
),
[2] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -2,12 +2,25 @@
#include "quantum.h"
/* LAYOUT_all
* ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐
* │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │
* ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
* │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │
* ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐1d │
* │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │
* ├─────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
* │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │
* ├─────┼───┴┬──┴──┬┴───┴───┴─┬─┴─┬─┴───┴───┴┬──┴──┬┴───┬─┴───┤
* │40 │41 │43 │44 │45 │46 │48 │4a │4b │
* └─────┴────┴─────┴──────────┴───┴──────────┴─────┴────┴─────┘
*/
#define LAYOUT_all( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
k40, k41, k43, k44, k45, k46, k48, k4a, k4b \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k1d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
k40, k41, k43, k44, k45, k46, k48, k4a, k4b \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \

View File

@@ -1,28 +1,17 @@
/* Copyright 2017 Ryan Mitchell (@newtmitch)
*
* 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 "acr60.h"
#include "led.h"
void matrix_init_kb(void) {
// Keyboard start-up code goes here
// Runs once when the firmware starts up
matrix_init_user();
led_init_ports();
};
void matrix_scan_kb(void) {
// Looping keyboard code goes here
// This runs every cycle (a lot)
matrix_scan_user();
};
void led_init_ports(void) {
// Set caps lock LED pin as output
DDRB |= (1 << 2);
// Default to off
PORTB |= (1 << 2);
}
void led_set_kb(uint8_t usb_led) {
// Code for caps lock LED as reported by the OS
// Set this per keymap, instead of globally
led_set_user(usb_led);
}

View File

@@ -1,76 +1,93 @@
#ifndef ARC60_H
#define ARC60_H
/* Copyright 2017 Ryan Mitchell (@newtmitch)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
#define LAYOUT( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
#define ___ KC_NO
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
{ K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \
}
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
{ K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \
}
#define LAYOUT_hhkb( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
K401, K403, K406, K411, K413 \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K41, K43, K46, K4B, K4D \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
{ KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, KC_NO, K411, KC_NO, K413, KC_NO } \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
{ ___, K41, ___, K43, ___, ___, K46, ___, ___, ___, ___, K4B, ___, K4D, ___ } \
}
#define LAYOUT_true_hhkb( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
K401, K403, K406, K410, K411 \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K41, K43, K46, K4A, K4B \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
{ KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, KC_NO, KC_NO } \
}
#define LAYOUT_2_shifts( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
{ ___, K41, ___, K43, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, ___, ___ } \
}
#define LAYOUT_directional( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \
K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, ___, K3C, K3D, K3E }, \
{ K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \
}
/* Mitch's keymap, "MitchSplit":
@@ -78,30 +95,28 @@
* Split shift is 2.75u + 1.25u + 2.25u (total of 6.25u). Might not work with other orientations.
*/
/*
* ,-----------------------------------------------------------------------------------------.
* |K000 |K001 |K002 |K003 |K004 |K005 |K006 |K007 |K008 |K009 |K010 |K011 |K012 | K014 |
* |-----------------------------------------------------------------------------------------+
* | K100 |K102 |K103 |K104 |K105 |K106 |K107 |K108 |K109 |K110 |K111 |K112 |K113 | K114 |
* |-----------------------------------------------------------------------------------------+
* | K200 |K202 |K203 |K204 |K205 |K206 |K207 |K208 |K209 |K210 |K211 |K212 | K213 |
* |-----------------------------------------------------------------------------------------+
* | K300 |K302 |K303 |K304 |K305 |K306 |K307 |K308 |K309 |K310 |K311 | K313 |K314 |
* |-----------------------------------------------------------------------------------------+
* | K400 | K401 | K403 | K404 | K406 | K408 | K410 | K411 | K413 | K414 |
* `-----------------------------------------------------------------------------------------'
* ,-----------------------------------------------------------.
* |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0A |0B |0C |0E |
* |-----------------------------------------------------------|
* |10 |12 |13 |14 |15 |16 |17 |18 |19 |1A |1B |1C |1D |1E |
* |-----------------------------------------------------------|
* |20 |22 |23 |24 |25 |26 |27 |28 |29 |2A |2B |2C |2D |
* |-----------------------------------------------------------|
* |30 |32 |33 |34 |35 |36 |37 |38 |39 |3A |3B |3D |3E |
* |-----------------------------------------------------------|
* |40 |41 |43 |44 |46 |48 |4A |4B |4D |4E |
* `-----------------------------------------------------------'
*/
#define LAYOUT_mitchsplit( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
K400, K401, K403, K404, K406, K408, K410, K411, K413, K414 \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K40, K41, K43, K44, K46, K48, K4A, K4B, K4D, K4E \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, KC_NO, K413, K414 } \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E }, \
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
{ K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
{ K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, ___, K4D, K4E } \
}
#endif

View File

@@ -1,5 +1,20 @@
#ifndef CONFIG_H
#define CONFIG_H
/* Copyright 2017 Ryan Mitchell (@newtmitch)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
@@ -22,6 +37,9 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define LED_CAPS_LOCK_PIN B2
#define LED_PIN_ON_STATE 0
/* number of backlight levels */
#define BACKLIGHT_PIN B6
#define BACKLIGHT_LEVELS 5
@@ -41,5 +59,3 @@
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif

View File

@@ -1,33 +1,448 @@
{
"keyboard_name": "ACR60",
"url": "",
"maintainer": "qmk",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT": {
"key_count": 67,
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.25}, {"label":"K406", "x":6, "y":4, "w":1.25}, {"label":"K408", "x":7.25, "y":4, "w":2.75}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}]
"keyboard_name": "ACR60",
"url": "",
"maintainer": "qmk",
"width": 15,
"height": 5,
"layout_aliases": {
"LAYOUT_2_shifts": "LAYOUT_all"
},
"LAYOUT_hhkb": {
"key_count": 61,
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K401", "x":1.5, "y":4}, {"label":"K403", "x":2.5, "y":4, "w":1.5}, {"label":"K406", "x":4, "y":4, "w":7}, {"label":"K411", "x":11, "y":4, "w":1.5}, {"label":"K413", "x":12.5, "y":4}]
},
"LAYOUT_true_hhkb": {
"key_count": 61,
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K401", "x":1.5, "y":4}, {"label":"K403", "x":2.5, "y":4, "w":1.5}, {"label":"K406", "x":4, "y":4, "w":6}, {"label":"K410", "x":10, "y":4, "w":1.5}, {"label":"K411", "x":11.5, "y":4}]
},
"LAYOUT_2_shifts": {
"key_count": 68,
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3}, {"label":"K301", "x":1, "y":3}, {"label":"K302", "x":2, "y":3}, {"label":"K303", "x":3, "y":3}, {"label":"K304", "x":4, "y":3}, {"label":"K305", "x":5, "y":3}, {"label":"K306", "x":6, "y":3}, {"label":"K307", "x":7, "y":3}, {"label":"K308", "x":8, "y":3}, {"label":"K309", "x":9, "y":3}, {"label":"K310", "x":10, "y":3}, {"label":"K311", "x":11, "y":3}, {"label":"K312", "x":12, "y":3}, {"label":"K313", "x":13, "y":3}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.25}, {"label":"K406", "x":6, "y":4, "w":1.25}, {"label":"K408", "x":7.25, "y":4, "w":2.75}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}]
},
"LAYOUT_directional": {
"key_count": 67,
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K312", "x":11.25, "y":3, "w":1.75}, {"label":"K313", "x":13, "y":3}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.25}, {"label":"K406", "x":6, "y":4, "w":1.25}, {"label":"K408", "x":7.25, "y":4, "w":2.75}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}]
},
"LAYOUT_mitchsplit": {
"key_count": 64,
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K014", "x":13, "y":0, "w":2}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":2.25}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.75}, {"label":"K406", "x":6.5, "y":4, "w":1.25}, {"label":"K408", "x":7.75, "y":4, "w":2.25}, {"label":"K410", "x":10, "y":4, "w":1.25}, {"label":"K411", "x":11.25, "y":4, "w":1.25}, {"label":"K413", "x":12.5, "y":4, "w":1.25}, {"label":"K414", "x":13.75, "y":4, "w":1.25}]
"layouts": {
"LAYOUT_all": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":1, "y":0},
{"label":"K02", "x":2, "y":0},
{"label":"K03", "x":3, "y":0},
{"label":"K04", "x":4, "y":0},
{"label":"K05", "x":5, "y":0},
{"label":"K06", "x":6, "y":0},
{"label":"K07", "x":7, "y":0},
{"label":"K08", "x":8, "y":0},
{"label":"K09", "x":9, "y":0},
{"label":"K0A", "x":10, "y":0},
{"label":"K0B", "x":11, "y":0},
{"label":"K0C", "x":12, "y":0},
{"label":"K0D", "x":13, "y":0},
{"label":"K0E", "x":14, "y":0},
{"label":"K10", "x":0, "y":1, "w":1.5},
{"label":"K12", "x":1.5, "y":1},
{"label":"K13", "x":2.5, "y":1},
{"label":"K14", "x":3.5, "y":1},
{"label":"K15", "x":4.5, "y":1},
{"label":"K16", "x":5.5, "y":1},
{"label":"K17", "x":6.5, "y":1},
{"label":"K18", "x":7.5, "y":1},
{"label":"K19", "x":8.5, "y":1},
{"label":"K1A", "x":9.5, "y":1},
{"label":"K1B", "x":10.5, "y":1},
{"label":"K1C", "x":11.5, "y":1},
{"label":"K1D", "x":12.5, "y":1},
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
{"label":"K20", "x":0, "y":2, "w":1.75},
{"label":"K22", "x":1.75, "y":2},
{"label":"K23", "x":2.75, "y":2},
{"label":"K24", "x":3.75, "y":2},
{"label":"K25", "x":4.75, "y":2},
{"label":"K26", "x":5.75, "y":2},
{"label":"K27", "x":6.75, "y":2},
{"label":"K28", "x":7.75, "y":2},
{"label":"K29", "x":8.75, "y":2},
{"label":"K2A", "x":9.75, "y":2},
{"label":"K2B", "x":10.75, "y":2},
{"label":"K2C", "x":11.75, "y":2},
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
{"label":"K30", "x":0, "y":3},
{"label":"K31", "x":1, "y":3},
{"label":"K32", "x":2, "y":3},
{"label":"K33", "x":3, "y":3},
{"label":"K34", "x":4, "y":3},
{"label":"K35", "x":5, "y":3},
{"label":"K36", "x":6, "y":3},
{"label":"K37", "x":7, "y":3},
{"label":"K38", "x":8, "y":3},
{"label":"K39", "x":9, "y":3},
{"label":"K3A", "x":10, "y":3},
{"label":"K3B", "x":11, "y":3},
{"label":"K3C", "x":12, "y":3},
{"label":"K3D", "x":13, "y":3},
{"label":"K3E", "x":14, "y":3},
{"label":"K40", "x":0, "y":4, "w":1.25},
{"label":"K41", "x":1.25, "y":4, "w":1.25},
{"label":"K43", "x":2.5, "y":4, "w":1.25},
{"label":"K44", "x":3.75, "y":4, "w":2.25},
{"label":"K46", "x":6, "y":4, "w":1.25},
{"label":"K48", "x":7.25, "y":4, "w":2.75},
{"label":"K4A", "x":10, "y":4},
{"label":"K4B", "x":11, "y":4},
{"label":"K4C", "x":12, "y":4},
{"label":"K4D", "x":13, "y":4},
{"label":"K4E", "x":14, "y":4}
]
},
"LAYOUT": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":1, "y":0},
{"label":"K02", "x":2, "y":0},
{"label":"K03", "x":3, "y":0},
{"label":"K04", "x":4, "y":0},
{"label":"K05", "x":5, "y":0},
{"label":"K06", "x":6, "y":0},
{"label":"K07", "x":7, "y":0},
{"label":"K08", "x":8, "y":0},
{"label":"K09", "x":9, "y":0},
{"label":"K0A", "x":10, "y":0},
{"label":"K0B", "x":11, "y":0},
{"label":"K0C", "x":12, "y":0},
{"label":"K0D", "x":13, "y":0},
{"label":"K0E", "x":14, "y":0},
{"label":"K10", "x":0, "y":1, "w":1.5},
{"label":"K12", "x":1.5, "y":1},
{"label":"K13", "x":2.5, "y":1},
{"label":"K14", "x":3.5, "y":1},
{"label":"K15", "x":4.5, "y":1},
{"label":"K16", "x":5.5, "y":1},
{"label":"K17", "x":6.5, "y":1},
{"label":"K18", "x":7.5, "y":1},
{"label":"K19", "x":8.5, "y":1},
{"label":"K1A", "x":9.5, "y":1},
{"label":"K1B", "x":10.5, "y":1},
{"label":"K1C", "x":11.5, "y":1},
{"label":"K1D", "x":12.5, "y":1},
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
{"label":"K20", "x":0, "y":2, "w":1.75},
{"label":"K22", "x":1.75, "y":2},
{"label":"K23", "x":2.75, "y":2},
{"label":"K24", "x":3.75, "y":2},
{"label":"K25", "x":4.75, "y":2},
{"label":"K26", "x":5.75, "y":2},
{"label":"K27", "x":6.75, "y":2},
{"label":"K28", "x":7.75, "y":2},
{"label":"K29", "x":8.75, "y":2},
{"label":"K2A", "x":9.75, "y":2},
{"label":"K2B", "x":10.75, "y":2},
{"label":"K2C", "x":11.75, "y":2},
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
{"label":"K30", "x":0, "y":3, "w":1.25},
{"label":"K31", "x":1.25, "y":3},
{"label":"K32", "x":2.25, "y":3},
{"label":"K33", "x":3.25, "y":3},
{"label":"K34", "x":4.25, "y":3},
{"label":"K35", "x":5.25, "y":3},
{"label":"K36", "x":6.25, "y":3},
{"label":"K37", "x":7.25, "y":3},
{"label":"K38", "x":8.25, "y":3},
{"label":"K39", "x":9.25, "y":3},
{"label":"K3A", "x":10.25, "y":3},
{"label":"K3B", "x":11.25, "y":3},
{"label":"K3D", "x":12.25, "y":3, "w":1.75},
{"label":"K3E", "x":14, "y":3},
{"label":"K40", "x":0, "y":4, "w":1.25},
{"label":"K41", "x":1.25, "y":4, "w":1.25},
{"label":"K43", "x":2.5, "y":4, "w":1.25},
{"label":"K44", "x":3.75, "y":4, "w":2.25},
{"label":"K46", "x":6, "y":4, "w":1.25},
{"label":"K48", "x":7.25, "y":4, "w":2.75},
{"label":"K4A", "x":10, "y":4},
{"label":"K4B", "x":11, "y":4},
{"label":"K4C", "x":12, "y":4},
{"label":"K4D", "x":13, "y":4},
{"label":"K4E", "x":14, "y":4}
]
},
"LAYOUT_hhkb": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":1, "y":0},
{"label":"K02", "x":2, "y":0},
{"label":"K03", "x":3, "y":0},
{"label":"K04", "x":4, "y":0},
{"label":"K05", "x":5, "y":0},
{"label":"K06", "x":6, "y":0},
{"label":"K07", "x":7, "y":0},
{"label":"K08", "x":8, "y":0},
{"label":"K09", "x":9, "y":0},
{"label":"K0A", "x":10, "y":0},
{"label":"K0B", "x":11, "y":0},
{"label":"K0C", "x":12, "y":0},
{"label":"K0D", "x":13, "y":0},
{"label":"K0E", "x":14, "y":0},
{"label":"K10", "x":0, "y":1, "w":1.5},
{"label":"K12", "x":1.5, "y":1},
{"label":"K13", "x":2.5, "y":1},
{"label":"K14", "x":3.5, "y":1},
{"label":"K15", "x":4.5, "y":1},
{"label":"K16", "x":5.5, "y":1},
{"label":"K17", "x":6.5, "y":1},
{"label":"K18", "x":7.5, "y":1},
{"label":"K19", "x":8.5, "y":1},
{"label":"K1A", "x":9.5, "y":1},
{"label":"K1B", "x":10.5, "y":1},
{"label":"K1C", "x":11.5, "y":1},
{"label":"K1D", "x":12.5, "y":1},
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
{"label":"K20", "x":0, "y":2, "w":1.75},
{"label":"K22", "x":1.75, "y":2},
{"label":"K23", "x":2.75, "y":2},
{"label":"K24", "x":3.75, "y":2},
{"label":"K25", "x":4.75, "y":2},
{"label":"K26", "x":5.75, "y":2},
{"label":"K27", "x":6.75, "y":2},
{"label":"K28", "x":7.75, "y":2},
{"label":"K29", "x":8.75, "y":2},
{"label":"K2A", "x":9.75, "y":2},
{"label":"K2B", "x":10.75, "y":2},
{"label":"K2C", "x":11.75, "y":2},
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
{"label":"K30", "x":0, "y":3, "w":1.25},
{"label":"K31", "x":1.25, "y":3},
{"label":"K32", "x":2.25, "y":3},
{"label":"K33", "x":3.25, "y":3},
{"label":"K34", "x":4.25, "y":3},
{"label":"K35", "x":5.25, "y":3},
{"label":"K36", "x":6.25, "y":3},
{"label":"K37", "x":7.25, "y":3},
{"label":"K38", "x":8.25, "y":3},
{"label":"K39", "x":9.25, "y":3},
{"label":"K3A", "x":10.25, "y":3},
{"label":"K3B", "x":11.25, "y":3},
{"label":"K3D", "x":12.25, "y":3, "w":1.75},
{"label":"K3E", "x":14, "y":3},
{"label":"K41", "x":1.5, "y":4},
{"label":"K43", "x":2.5, "y":4, "w":1.5},
{"label":"K46", "x":4, "y":4, "w":7},
{"label":"K4B", "x":11, "y":4, "w":1.5},
{"label":"K4D", "x":12.5, "y":4}
]
},
"LAYOUT_true_hhkb": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":1, "y":0},
{"label":"K02", "x":2, "y":0},
{"label":"K03", "x":3, "y":0},
{"label":"K04", "x":4, "y":0},
{"label":"K05", "x":5, "y":0},
{"label":"K06", "x":6, "y":0},
{"label":"K07", "x":7, "y":0},
{"label":"K08", "x":8, "y":0},
{"label":"K09", "x":9, "y":0},
{"label":"K0A", "x":10, "y":0},
{"label":"K0B", "x":11, "y":0},
{"label":"K0C", "x":12, "y":0},
{"label":"K0D", "x":13, "y":0},
{"label":"K0E", "x":14, "y":0},
{"label":"K10", "x":0, "y":1, "w":1.5},
{"label":"K12", "x":1.5, "y":1},
{"label":"K13", "x":2.5, "y":1},
{"label":"K14", "x":3.5, "y":1},
{"label":"K15", "x":4.5, "y":1},
{"label":"K16", "x":5.5, "y":1},
{"label":"K17", "x":6.5, "y":1},
{"label":"K18", "x":7.5, "y":1},
{"label":"K19", "x":8.5, "y":1},
{"label":"K1A", "x":9.5, "y":1},
{"label":"K1B", "x":10.5, "y":1},
{"label":"K1C", "x":11.5, "y":1},
{"label":"K1D", "x":12.5, "y":1},
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
{"label":"K20", "x":0, "y":2, "w":1.75},
{"label":"K22", "x":1.75, "y":2},
{"label":"K23", "x":2.75, "y":2},
{"label":"K24", "x":3.75, "y":2},
{"label":"K25", "x":4.75, "y":2},
{"label":"K26", "x":5.75, "y":2},
{"label":"K27", "x":6.75, "y":2},
{"label":"K28", "x":7.75, "y":2},
{"label":"K29", "x":8.75, "y":2},
{"label":"K2A", "x":9.75, "y":2},
{"label":"K2B", "x":10.75, "y":2},
{"label":"K2C", "x":11.75, "y":2},
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
{"label":"K30", "x":0, "y":3, "w":1.25},
{"label":"K31", "x":1.25, "y":3},
{"label":"K32", "x":2.25, "y":3},
{"label":"K33", "x":3.25, "y":3},
{"label":"K34", "x":4.25, "y":3},
{"label":"K35", "x":5.25, "y":3},
{"label":"K36", "x":6.25, "y":3},
{"label":"K37", "x":7.25, "y":3},
{"label":"K38", "x":8.25, "y":3},
{"label":"K39", "x":9.25, "y":3},
{"label":"K3A", "x":10.25, "y":3},
{"label":"K3B", "x":11.25, "y":3},
{"label":"K3D", "x":12.25, "y":3, "w":1.75},
{"label":"K3E", "x":14, "y":3},
{"label":"K41", "x":1.5, "y":4},
{"label":"K43", "x":2.5, "y":4, "w":1.5},
{"label":"K46", "x":4, "y":4, "w":6},
{"label":"K4A", "x":10, "y":4, "w":1.5},
{"label":"K4B", "x":11.5, "y":4}
]
},
"LAYOUT_directional": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":1, "y":0},
{"label":"K02", "x":2, "y":0},
{"label":"K03", "x":3, "y":0},
{"label":"K04", "x":4, "y":0},
{"label":"K05", "x":5, "y":0},
{"label":"K06", "x":6, "y":0},
{"label":"K07", "x":7, "y":0},
{"label":"K08", "x":8, "y":0},
{"label":"K09", "x":9, "y":0},
{"label":"K0A", "x":10, "y":0},
{"label":"K0B", "x":11, "y":0},
{"label":"K0C", "x":12, "y":0},
{"label":"K0D", "x":13, "y":0},
{"label":"K0E", "x":14, "y":0},
{"label":"K10", "x":0, "y":1, "w":1.5},
{"label":"K12", "x":1.5, "y":1},
{"label":"K13", "x":2.5, "y":1},
{"label":"K14", "x":3.5, "y":1},
{"label":"K15", "x":4.5, "y":1},
{"label":"K16", "x":5.5, "y":1},
{"label":"K17", "x":6.5, "y":1},
{"label":"K18", "x":7.5, "y":1},
{"label":"K19", "x":8.5, "y":1},
{"label":"K1A", "x":9.5, "y":1},
{"label":"K1B", "x":10.5, "y":1},
{"label":"K1C", "x":11.5, "y":1},
{"label":"K1D", "x":12.5, "y":1},
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
{"label":"K20", "x":0, "y":2, "w":1.75},
{"label":"K22", "x":1.75, "y":2},
{"label":"K23", "x":2.75, "y":2},
{"label":"K24", "x":3.75, "y":2},
{"label":"K25", "x":4.75, "y":2},
{"label":"K26", "x":5.75, "y":2},
{"label":"K27", "x":6.75, "y":2},
{"label":"K28", "x":7.75, "y":2},
{"label":"K29", "x":8.75, "y":2},
{"label":"K2A", "x":9.75, "y":2},
{"label":"K2B", "x":10.75, "y":2},
{"label":"K2C", "x":11.75, "y":2},
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
{"label":"K30", "x":0, "y":3, "w":1.25},
{"label":"K31", "x":1.25, "y":3},
{"label":"K32", "x":2.25, "y":3},
{"label":"K33", "x":3.25, "y":3},
{"label":"K34", "x":4.25, "y":3},
{"label":"K35", "x":5.25, "y":3},
{"label":"K36", "x":6.25, "y":3},
{"label":"K37", "x":7.25, "y":3},
{"label":"K38", "x":8.25, "y":3},
{"label":"K39", "x":9.25, "y":3},
{"label":"K3A", "x":10.25, "y":3},
{"label":"K3C", "x":11.25, "y":3, "w":1.75},
{"label":"K3D", "x":13, "y":3},
{"label":"K3E", "x":14, "y":3},
{"label":"K40", "x":0, "y":4, "w":1.25},
{"label":"K41", "x":1.25, "y":4, "w":1.25},
{"label":"K43", "x":2.5, "y":4, "w":1.25},
{"label":"K44", "x":3.75, "y":4, "w":2.25},
{"label":"K46", "x":6, "y":4, "w":1.25},
{"label":"K48", "x":7.25, "y":4, "w":2.75},
{"label":"K4A", "x":10, "y":4},
{"label":"K4B", "x":11, "y":4},
{"label":"K4C", "x":12, "y":4},
{"label":"K4D", "x":13, "y":4},
{"label":"K4E", "x":14, "y":4}
]
},
"LAYOUT_mitchsplit": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":1, "y":0},
{"label":"K02", "x":2, "y":0},
{"label":"K03", "x":3, "y":0},
{"label":"K04", "x":4, "y":0},
{"label":"K05", "x":5, "y":0},
{"label":"K06", "x":6, "y":0},
{"label":"K07", "x":7, "y":0},
{"label":"K08", "x":8, "y":0},
{"label":"K09", "x":9, "y":0},
{"label":"K0A", "x":10, "y":0},
{"label":"K0B", "x":11, "y":0},
{"label":"K0C", "x":12, "y":0},
{"label":"K0E", "x":13, "y":0, "w":2},
{"label":"K10", "x":0, "y":1, "w":1.5},
{"label":"K12", "x":1.5, "y":1},
{"label":"K13", "x":2.5, "y":1},
{"label":"K14", "x":3.5, "y":1},
{"label":"K15", "x":4.5, "y":1},
{"label":"K16", "x":5.5, "y":1},
{"label":"K17", "x":6.5, "y":1},
{"label":"K18", "x":7.5, "y":1},
{"label":"K19", "x":8.5, "y":1},
{"label":"K1A", "x":9.5, "y":1},
{"label":"K1B", "x":10.5, "y":1},
{"label":"K1C", "x":11.5, "y":1},
{"label":"K1D", "x":12.5, "y":1},
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
{"label":"K20", "x":0, "y":2, "w":1.75},
{"label":"K22", "x":1.75, "y":2},
{"label":"K23", "x":2.75, "y":2},
{"label":"K24", "x":3.75, "y":2},
{"label":"K25", "x":4.75, "y":2},
{"label":"K26", "x":5.75, "y":2},
{"label":"K27", "x":6.75, "y":2},
{"label":"K28", "x":7.75, "y":2},
{"label":"K29", "x":8.75, "y":2},
{"label":"K2A", "x":9.75, "y":2},
{"label":"K2B", "x":10.75, "y":2},
{"label":"K2C", "x":11.75, "y":2},
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
{"label":"K30", "x":0, "y":3, "w":2.25},
{"label":"K32", "x":2.25, "y":3},
{"label":"K33", "x":3.25, "y":3},
{"label":"K34", "x":4.25, "y":3},
{"label":"K35", "x":5.25, "y":3},
{"label":"K36", "x":6.25, "y":3},
{"label":"K37", "x":7.25, "y":3},
{"label":"K38", "x":8.25, "y":3},
{"label":"K39", "x":9.25, "y":3},
{"label":"K3A", "x":10.25, "y":3},
{"label":"K3B", "x":11.25, "y":3},
{"label":"K3D", "x":12.25, "y":3, "w":1.75},
{"label":"K3E", "x":14, "y":3},
{"label":"K40", "x":0, "y":4, "w":1.25},
{"label":"K41", "x":1.25, "y":4, "w":1.25},
{"label":"K43", "x":2.5, "y":4, "w":1.25},
{"label":"K44", "x":3.75, "y":4, "w":2.75},
{"label":"K46", "x":6.5, "y":4, "w":1.25},
{"label":"K48", "x":7.75, "y":4, "w":2.25},
{"label":"K4A", "x":10, "y":4, "w":1.25},
{"label":"K4B", "x":11.25, "y":4, "w":1.25},
{"label":"K4D", "x":12.5, "y":4, "w":1.25},
{"label":"K4E", "x":13.75, "y":4, "w":1.25}
]
}
}
}
}

View File

@@ -1,67 +1,38 @@
/* Copyright 2017 Ryan Mitchell (@newtmitch)
* 2021 James Young for QMK (@noroadsleft)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
enum custom_keycodes {
SFT_ESC = SAFE_RANGE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* Default keymap with standard 60% layout. Split space possible but entirely optional with this layout, as this
* layout covers all three split space keys as space keycodes. This also has alt right next to the space bar
* on both sides (Windows keyboard layout), no right-side system/GUI key, and momentary layer switching on
* the right modifiers into the 3rd (macro) and 2nd (function/sfx) layers, respectively. This also has the grave
* accent key set up on the 2nd layer, although on the first layer it includes grave key (tilde) when shift is held down,
* via the function actions code at the bottom.
*/
LAYOUT(
SFT_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_NO, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), KC_NO, MO(1), KC_RCTL),
[0] = LAYOUT_all(
KC_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, XXXXXXX, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
LAYOUT(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[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,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
LAYOUT(
KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFT_ESC:
if (record->event.pressed) {
if (get_mods() & MODS_SHIFT_MASK) {
add_key(KC_GRV);
send_keyboard_report();
} else {
add_key(KC_ESC);
send_keyboard_report();
}
} else {
if (get_mods() & MODS_SHIFT_MASK) {
del_key(KC_GRV);
send_keyboard_report();
} else {
del_key(KC_ESC);
send_keyboard_report();
}
}
return false;
default:
return true;
}
}

View File

@@ -1,18 +1,24 @@
ACR60
=====
# ACR60
![acr60](https://cdn.shopify.com/s/files/1/1697/5323/products/20170522001035_1024x1024.jpg?v=1504725199)
A customizable 60% keyboard made and sold by mechkeys.ca [More info on MECHKEYS](https://mechkeys.ca)
Keyboard Maintainer: [TurboMech](https://github.com/TurboMech)
Hardware Supported: ACR60
Hardware Availability: [MECHKEYS](https://mechkeys.ca/products/acr60)
* Keyboard Maintainer: [TurboMech](https://github.com/TurboMech)
* Hardware Supported: ACR60
* Hardware Availability: [~~MECHKEYS~~](https://mechkeys.ca/products/acr60) (no longer available)
Make example for this keyboard (after setting up your build environment):
make acr60:default
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
Flashing example for this keyboard:
make acr60:default:flash
To reset the board into bootloader mode, do one of the following:
* Tap the Reset switch mounted on the bottom side of the PCB
* Hold Space+B while connecting the USB cable
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).`

View File

@@ -31,7 +31,7 @@
/* key matrix pins */
#define MATRIX_ROW_PINS { B15, A14, A2, B13, B14 }
#define MATRIX_COL_PINS { B12, H0, C15, C14, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3 }
#define MATRIX_COL_PINS { B12, A1, H0, C15, C14, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */

View File

@@ -1 +1,17 @@
/* Copyright 2016 Toni (@toneman77)
*
* 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 "amj60.h"

View File

@@ -1,5 +1,21 @@
#ifndef AMJ60_H
#define AMJ60_H
/* Copyright 2016 Toni (@toneman77)
* 2021 James Young for QMK (@noroadsleft)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
@@ -7,23 +23,43 @@
#define XXX KC_NO
/* AMJ60 layout to the best of my knowledge matrix layout
* ,-----------------------------------------------------------.
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49|
* |-----------------------------------------------------------|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
* |-----------------------------------------------------------|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
* |-----------------------------------------------------------|
* | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c | 3d |
* |-----------------------------------------------------------|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
* `-----------------------------------------------------------'
*
* I scoured the internet researching this PCB, which near as I know was
* discontinued around 2017. Fortunately, the wiring seems to be based on the
* GH60, and I own a KC60, which is also based on the GH60. I traced my KC60
* (which I already had apart!) and worked out the right shift can be split
* 1.75/1 (HHKB style) or 1/1.75 (JIS/ABNT2). With either split, the 1u key
* was on column C, so I used that here.
*
* - noroadsleft
*
* ┌───────┐
* 2u Backspace │0d │
* └───────┘
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │49 │ ┌─────┐
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ │ │
* │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ ┌──┴┐ │ ISO Enter
* 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ │2c │2d │
* LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ └───┴────┘
* ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌──────────┐
* │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3c │ │3d │ 2.75u RShift
* └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘
* │40 │41 │42 │ 45 │4a │4b │4c │4d │ ┌───┬──────┐
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ │3c │3d │ JIS RShift
* ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ └───┴──────┘
* Tsangan │40 │41 │42 │ 45 │4b │4c │4d │
* └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
* ┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐
* Topre-style │40 │41 │42 │ 45 │4a │4b │4c │4d │
* └─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘
*
*/
#define LAYOUT( \
#define LAYOUT_all( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
@@ -34,20 +70,6 @@
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
}
/*
* ANSI
* ,-----------------------------------------------------------.
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
* |-----------------------------------------------------------|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
* |-----------------------------------------------------------|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
* |-----------------------------------------------------------|
* | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
* |-----------------------------------------------------------|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
* `-----------------------------------------------------------'
*/
#define LAYOUT_60_ansi( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
@@ -63,24 +85,40 @@
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
}
/* AMJ60 HHKB matrix layout
* ,------------------------------------------------------------.
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 |
* |------------------------------------------------------------|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
* |------------------------------------------------------------|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
* |------------------------------------------------------------|
* | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
* |------------------------------------------------------------|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
* `------------------------------------------------------------'
*/
#define LAYOUT_hhkb( \
#define LAYOUT_60_hhkb( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
k41, k42, k45, k4b, k4c \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
{XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, XXX, k4b, k4c, XXX} \
}
#define LAYOUT_60_iso( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
}
#define LAYOUT_60_ansi_split_bs_rshift( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
@@ -91,79 +129,3 @@
{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
}
/* ISO
* ,-----------------------------------------------------------.
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
* |-----------------------------------------------------------|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
* |-----------------------------------------------------------|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
* |-----------------------------------------------------------|
* | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
* |-----------------------------------------------------------|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
* `-----------------------------------------------------------'
*/
#define LAYOUT_iso( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
}
/* ISO w/ split right shift key matrix layout
* ,-----------------------------------------------------------.
* | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
* |-----------------------------------------------------------|
* | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
* |-----------------------------------------------------------|
* | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
* |-----------------------------------------------------------|
* | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
* |-----------------------------------------------------------|
* | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
* `-----------------------------------------------------------'
*/
#define LAYOUT_iso_splitrshift( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
}
#define LAYOUT_max( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
}
void matrix_init_user(void);
void matrix_scan_user(void);
#endif

View File

@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_H
#define CONFIG_H
#pragma once
#include "config_common.h"
@@ -31,46 +30,69 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
// ROWS: Top to bottom, COLS: Left to right
#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5}
#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3}
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5 }
#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define LED_CAPS_LOCK_PIN B2
#define LED_PIN_ON_STATE 0
#define BACKLIGHT_PIN B6
#define BACKLIGHT_LEVELS 4
#define BACKLIGHT_BREATHING
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
# define RGBLED_NUM 8
# define RGBLIGHT_HUE_STEP 10
# define RGBLIGHT_SAT_STEP 17
# define RGBLIGHT_VAL_STEP 17
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
# define RGBLIGHT_ANIMATIONS
/*== or choose animations ==*/
//# 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
/*== customize breathing effect ==*/
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
/*==== use exp() and sin() ====*/
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
#endif
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* Set 0 if debouncing isn't needed */
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* Backlight configuration
*/
#define BACKLIGHT_LEVELS 4
/* Underlight configuration
*/
#define RGB_DI_PIN E2
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 8 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
/*
* Feature disable options
* These options are also useful to firmware size reduction.
@@ -86,7 +108,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#endif
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0

View File

@@ -1,27 +1,360 @@
{
"keyboard_name": "AMJ60",
"url": "",
"maintainer": "qmk",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT": {
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3c", "x":12.25, "y":3, "w":1.75}, {"label":"k3d", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_60_ansi": {
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":2.25}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":2.75}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_hhkb": {
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":2.25}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_iso": {
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":2.75}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_iso_splitrshift": {
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_max": {
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
"keyboard_name": "AMJ60",
"url": "",
"maintainer": "qmk",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0},
{"label":"k49", "x":14, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1d", "x":13.5, "y":1, "w":1.5},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":2, "w":1.25},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3d", "x":12.25, "y":3, "w":1.75},
{"label":"k3c", "x":14, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k45", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":12.5, "y":4, "w":1.25},
{"label":"k4d", "x":13.75, "y":4, "w":1.25}
]
},
"LAYOUT_60_ansi": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1d", "x":13.5, "y":1, "w":1.5},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3d", "x":12.25, "y":3, "w":2.75},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k45", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":12.5, "y":4, "w":1.25},
{"label":"k4d", "x":13.75, "y":4, "w":1.25}
]
},
"LAYOUT_60_hhkb": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0},
{"label":"k49", "x":14, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1d", "x":13.5, "y":1, "w":1.5},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3d", "x":12.25, "y":3, "w":1.75},
{"label":"k3c", "x":14, "y":3},
{"label":"k41", "x":1.5, "y":4},
{"label":"k42", "x":2.5, "y":4, "w":1.5},
{"label":"k45", "x":4, "y":4, "w":7},
{"label":"k4b", "x":11, "y":4, "w":1.5},
{"label":"k4c", "x":12.5, "y":4}
]
},
"LAYOUT_60_iso": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3d", "x":12.25, "y":3, "w":2.75},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k45", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":12.5, "y":4, "w":1.25},
{"label":"k4d", "x":13.75, "y":4, "w":1.25}
]
},
"LAYOUT_60_ansi_split_bs_rshift": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0},
{"label":"k49", "x":14, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1d", "x":13.5, "y":1, "w":1.5},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3d", "x":12.25, "y":3, "w":1.75},
{"label":"k3c", "x":14, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k45", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":12.5, "y":4, "w":1.25},
{"label":"k4d", "x":13.75, "y":4, "w":1.25}
]
}
}
}
}

View File

@@ -1,55 +1,72 @@
/* Copyright 2016 Toni (@toneman77)
* 2021 James Young for QMK (@noroadsleft)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _DEF 0
#define _SPC 1
enum layer_names {
_DEF,
_FN,
};
// dual-role shortcuts
#define SPACEDUAL LT(_SPC, KC_SPACE)
#define FN_SPC LT(_FN, KC_SPC)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _DEF: Default Layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ |
* |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ~ |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| bspc|
* |Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bspc|
* |-----------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '| Return |
* |Caps | A | S | D | F | G | H | J | K | L | ; | ' | Return |
* |-----------------------------------------------------------|
* |Sft | Fn0| Z| X| C| V| B| N| M| ,| .| /| Sft |Fn2|
* |Sft | \ | Z | X | C | V | B | N | M | , | . | / |Shift |Fn |
* |-----------------------------------------------------------|
* |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl|
* |Ctrl|GUI |Alt | Space/Fn |Alt |GUI | Fn |RCtl|
* `-----------------------------------------------------------'
*/
[_DEF] = LAYOUT_max(
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, F(0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, F(1), \
KC_LCTL, KC_LALT, KC_LGUI, SPACEDUAL, KC_RGUI, KC_RALT, KC_RCTL, F(2)),
[_DEF] = 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, FN_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
),
/* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
* ,-----------------------------------------------------------.
* |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | |
* |PSc|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| | |
* |-----------------------------------------------------------|
* | |Paus| Up| [ | ] | | | | ( | ) | | | | Del |
* | |Pau| Up| | | | | | ( | ) | | | | Del |
* |-----------------------------------------------------------|
* | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
* | |Lft|Dwn|Rgt| | |Lft|Dwn|Up |Rgh| | | Play |
* |-----------------------------------------------------------|
* | | | | | < | > | |M0 | | | | | Vol+ | |
* | | | | | | |Spc| | | | | | Vol+ | |
* |-----------------------------------------------------------|
* | | | | |Alt |Prev|Vol-|Next|
* | | | | | |Prev|Vol-|Next|
* `-----------------------------------------------------------'
*/
[_SPC] = LAYOUT_max(
KC_PSCR, 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_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, \
_______, _______, _______, _______, _______, _______, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
[_FN] = LAYOUT_all(
KC_PSCR, 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_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY,
_______, _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______, KC_VOLU, _______,
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
),
};

View File

@@ -1,42 +0,0 @@
#!/bin/bash
# adjust for cpu
# -j 16 gave best result on a hyperthreaded quad core core i7
LIMIT=10
THREADS="-j 16"
KMAP=iso_split_rshift
echo "We need sudo later"
sudo ls 2>&1 /dev/null
function wait_bootloader {
echo "Waiting for Bootloader..."
local STARTTIME=$(date +"%s")
local REMIND=0
local EXEC=dfu-programmer
local TARGET=atmega32u4
while true
do
sudo $EXEC $TARGET get > /dev/null 2>&1
[ $? -eq 0 ] && break
ENDTIME=$(date +"%s")
DURATION=$(($ENDTIME-$STARTTIME))
if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ]
then
echo "Did you forget to press the reset button?"
REMIND=1
fi
sleep 1
done
}
make clean
make KEYMAP=${KMAP} ${THREADS}
if [[ $? -eq 0 ]]
then
echo "please trigger flashing!"
wait_bootloader
sudo make KEYMAP=${KMAP} dfu ${THREADS}
else
echo "make failed"
exit 77
fi

View File

@@ -1,113 +0,0 @@
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _DEF 0
#define _SPC 1
#define _TAB 2
#define _SFX 3
// dual-role shortcuts
#define TABDUAL LT(_TAB, KC_TAB)
#define CAPSDUAL CTL_T(KC_ESC)
#define SPACEDUAL LT(_SPC, KC_SPACE)
#define ENTERDUAL CTL_T(KC_ENT)
// arrow cluster duality bottom right corner
#define ARRLEFT ALT_T(KC_LEFT)
#define ARRDOWN GUI_T(KC_DOWN)
#define ARRUP SFT_T(KC_UP)
#define ARRRIGHT CTL_T(KC_RIGHT)
// german brackets
#define GER_CUR_L RALT(KC_7) // [
#define GER_CUR_R RALT(KC_0) // ]
#define GER_PAR_L LSFT(KC_8) // (
#define GER_PAR_R LSFT(KC_9) // )
#define GER_ANG_L KC_NUBS // <
#define GER_ANG_R LSFT(KC_NUBS) // >
#define GER_BRC_L RALT(KC_8) // [
#define GER_BRC_R RALT(KC_9) // ]
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _DEF: Default Layer
* ,-----------------------------------------------------------.
* |Grv| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | Tab is Fn1
* |-----------------------------------------------------------|
* |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Return |
* |-----------------------------------------------------------|
* |Sft | < | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn2| RShift is UP
* |-----------------------------------------------------------|
* |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| Gui Menu, RCtrl is
* `-----------------------------------------------------------' LEFT DWN RIGHT
*/
[_DEF] = LAYOUT_iso_splitrshift(
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, \
TABDUAL, 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, \
CAPSDUAL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, ENTERDUAL, \
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ARRUP, TG(_SFX), \
KC_LCTL, KC_LGUI, KC_LALT, SPACEDUAL, KC_RALT, ARRLEFT, ARRDOWN, ARRRIGHT),
/* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
* ,-----------------------------------------------------------.
* |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete|
* |-----------------------------------------------------------|
* | |Paus| Up| [ | ] | | | | ( | ) | | | | |
* |-----------------------------------------------------------|
* | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
* |-----------------------------------------------------------|
* | | | | | < | > | |M0 | | | | | Vol+ | |
* |-----------------------------------------------------------|
* | | | | |Alt |Prev|Vol-|Next|
* `-----------------------------------------------------------'
*/
[_SPC] = LAYOUT_iso_splitrshift(
KC_PSCR, 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_PAUS, KC_UP, GER_BRC_L, GER_BRC_R, _______, _______, GER_PAR_L, GER_PAR_R, _______, _______, _______, _______, _______, \
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY, \
_______, _______, _______, _______, GER_ANG_L, GER_ANG_R, KC_SPACE, RALT(KC_SPC),_______, _______, _______, _______, KC_VOLU, _______, \
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
/* Keymap 2: Tab Layer w/ vim pageup, modified with Tab (by holding tab)
* ,-----------------------------------------------------------.
* |WAKE| | | | | | | | | | | | |Insert| TAB+GRC = WAKE
* |-----------------------------------------------------------|
* | | | | | | | | | { | } | | | | |
* |-----------------------------------------------------------|
* | | | | | | |Pos1|PgDn|PgUp|End| | |Retrn |
* |-----------------------------------------------------------|
* | | | | | | | |AF2| | | | | PgUp | |
* |-----------------------------------------------------------|
* | | | | |Alt |Pos1|PgDn|End |
* `-----------------------------------------------------------'
*/
[_TAB] = LAYOUT_iso_splitrshift(
KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, \
_______, _______, _______, _______, _______, _______, _______, GER_CUR_L, GER_CUR_R, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_ENT, \
_______, _______, _______, _______, _______, _______, _______, A(KC_F2), _______, _______, _______, _______, KC_PGUP, _______, \
_______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
/* Keymap 3: Split right shift Numpad toggle Layer (by tapping the split rshift key)
* ,-----------------------------------------------------------.
* |RSET| | | | | | | 7| 8| 9| | | |Backsp |
* |-----------------------------------------------------------|
* | | | | | | | | 4 | 5 | 6 | | | | \ |
* |-----------------------------------------------------------|
* | | L | L | | | | | 1 | 2 | 3 | | | Return |
* |-----------------------------------------------------------|
* | | | L | L | L | L | L | L | | 0 | | /| Up | | All "L"s represent
* |-----------------------------------------------------------| LED controlling
* |Ctrl|Win |Alt | |Alt |Left|Down|Right|
* `-----------------------------------------------------------'
*/
[_SFX] = LAYOUT_iso_splitrshift(
RESET, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, KC_BSPC, \
_______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, KC_BSLS, \
_______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, XXXXXXX, KC_ENT, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_0, _______, KC_SLSH, KC_UP, _______, \
_______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT),
};

View File

@@ -1,30 +0,0 @@
toneman77's custom spacefn Layout
=====================
##Quantum MK Firmware
For the full Quantum feature list, see the parent readme.md.
# Features
* heavily modified ISO (!) layout with split right shift key
* spaceFn
* Dual-Role keys:
*
| Original key | when tapped | when held |
| ---------------- | ------------- | ------------- |
| Space | Space | layer change |
| Caps lock | Escape | Control |
| Tab | Tab | layer change |
| Enter | Enter | Control |
* vim-style arrow keys on hjkl (spacefn layer)
* corresponding Home/PgDn/PgUp/End on hjkl (tab layer)
* bonus arrow keys in the bottom right corner on Alt/Win/Menu/rCtrl/Shift
* more bonus arrow keys on wasd (spacefn layer)
* media keys prev/next/play/vol+/vol- (spacefn layer)
* firmware bootloader button
* additional brackets that only work in german layout due to horrible placement
in the default qwertz layout
### Additional Credits
* visualization of the layers [here](http://www.keyboard-layout-editor.com/#/gists/aba4e4396459ede85bc66a22cee88e48) (without the LED keys)

View File

@@ -1,20 +0,0 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View File

@@ -1,4 +0,0 @@
#!/bin/bash
git checkout amj60 # gets you on branch amj60
git fetch origin # gets you up to date with origin
git merge origin/master

View File

@@ -1,55 +0,0 @@
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _DEF 0
#define _SPC 1
// dual-role shortcuts
#define SPACEDUAL LT(_SPC, KC_SPACE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _DEF: Default Layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| bspc|
* |-----------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '| Return |
* |-----------------------------------------------------------|
* |Sft | Fn0| Z| X| C| V| B| N| M| ,| .| /| Sft |Fn2|
* |-----------------------------------------------------------|
* |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl|
* `-----------------------------------------------------------'
*/
[_DEF] = LAYOUT_max(
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, F(0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, F(1), \
KC_LCTL, KC_LALT, KC_LGUI, SPACEDUAL, KC_RGUI, KC_RALT, KC_RCTL, F(2)),
/* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
* ,-----------------------------------------------------------.
* |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | |
* |-----------------------------------------------------------|
* | |Paus| Up| [ | ] | | | | ( | ) | | | | Del |
* |-----------------------------------------------------------|
* | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY |
* |-----------------------------------------------------------|
* | | | | | < | > | |M0 | | | | | Vol+ | |
* |-----------------------------------------------------------|
* | | | | |Alt |Prev|Vol-|Next|
* `-----------------------------------------------------------'
*/
[_SPC] = LAYOUT_max(
KC_PSCR, 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_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, \
_______, _______, _______, _______, _______, _______, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \
_______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
};

View File

@@ -1,14 +1,22 @@
AMJ60
===
# AMJ60
![AMJ60](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/amj60/s-l1200_640.jpg)
A 60% keyboard.
Keyboard Maintainer: QMK Community
Hardware Supported: AMJ60
Hardware Availability: https://geekhack.org/index.php?topic=77636.0
* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
* Hardware Supported: AMJ60
* Hardware Availability: [~~Taobao~~](http://item.taobao.com/item.htm?id=43500549469) (no longer available)
* References: [Geekhack](https://geekhack.org/index.php?topic=77636.0)
Make example for this keyboard (after setting up your build environment):
make amj60:maximized
make amj60:default
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
Flashing example for this keyboard:
make amj60:default:flash
To reset the board into bootloader mode, tap the Reset switch mounted on the bottom side of the PCB.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -2,29 +2,23 @@
MCU = atmega32u4
# Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = 60_ansi
LAYOUTS = 60_ansi 60_hhkb 60_iso 60_ansi_split_bs_rshift

View File

@@ -0,0 +1,17 @@
/* Copyright 2021 Lfgberg
*
* 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 "a65i.h"

View File

@@ -0,0 +1,101 @@
/* Copyright 2021 Lfgberg
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
/* This a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
}
#define LAYOUT_ansi( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, K2F }, \
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
}
#define LAYOUT_ansi_splitbs( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, K2F }, \
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
}
#define LAYOUT_iso( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, KC_NO, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
}
#define LAYOUT_iso_splitbs( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, KC_NO, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
}

View File

@@ -0,0 +1,46 @@
/*
Copyright 2021 Lfgberg
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4C47
#define PRODUCT_ID 0x0004
#define DEVICE_VER 0x0001
#define MANUFACTURER AnomalyKB
#define PRODUCT AnomalyKB A65I
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 16
#define MATRIX_ROW_PINS { B3, B2, B1, B0, B5 }
#define MATRIX_COL_PINS { D7, D6, D4, B4, B6, E6, F1, B7, C6, C7, D5, D3, D2, F0, D1, D0 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

View File

@@ -0,0 +1,20 @@
{
"keyboard_name": "A65I",
"maintainer": "Lfgberg",
"width": 16,
"height": 5,
"layouts": {
"LAYOUT_ansi": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
},
"LAYOUT_ansi_splitbs": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
},
"LAYOUT_iso": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
},
"LAYOUT_iso_splitbs": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
}
}
}

View File

@@ -0,0 +1,61 @@
/* Copyright 2021 Lfgberg
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default Layer
* ,----------------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|~ |Back|Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
* |----------------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[0] = LAYOUT_ansi_splitbs(
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_GRV, KC_BSPC, KC_PSCR,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Layer One
* ,----------------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
* |----------------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[1] = LAYOUT_ansi_splitbs(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1,61 @@
/* Copyright 2021 Lfgberg
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default Layer
* ,----------------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
* |----------------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[0] = LAYOUT_ansi(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Layer One
* ,----------------------------------------------------------------.
* |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12|Backsp |Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
* |----------------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[1] = LAYOUT_ansi(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1,61 @@
/* Copyright 2021 Lfgberg
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default Layer
* ,----------------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Delete|Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp|
* |-----------------------------------------------------| N |----|
* |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[0] = LAYOUT_iso(
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_PSCR,
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_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Layer One
* ,----------------------------------------------------------------.
* |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Delete|Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp|
* |-----------------------------------------------------| N |----|
* |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[1] = LAYOUT_iso(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1,61 @@
/* Copyright 2021 Lfgberg
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default Layer
* ,----------------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|~ |Back|Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp|
* |-----------------------------------------------------| N |----|
* |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[0] = LAYOUT_iso_splitbs(
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_GRV, KC_BSPC, KC_PSCR,
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_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Layer One
* ,----------------------------------------------------------------.
* |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|~ |Back|Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp|
* |-----------------------------------------------------| N |----|
* |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[1] = LAYOUT_iso_splitbs(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

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

View File

@@ -0,0 +1,61 @@
/* Copyright 2021 Lfgberg
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default Layer
* ,----------------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
* |----------------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[0] = LAYOUT_ansi(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Layer One
* ,----------------------------------------------------------------.
* |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12|Backsp |Home|
* |----------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
* |----------------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
* |----------------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
* |----------------------------------------------------------------|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
* `----------------------------------------------------------------'
*/
[1] = LAYOUT_ansi(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1,17 @@
# a65i
![a65i](https://i.imgur.com/J4fzVVth.jpg)
PCB designed by Lfgberg for the AnomalyKB a65i.
To enter bootloader mode, either utilize the reset button near the MCU, or short the ESC key for bootmagic lite.
* Keyboard Maintainer: [Lfgberg](https://github.com/lfgberg)
* Hardware Supported: A65I PCB
* Hardware Availability: [AnomalyKB](anomalykb.co)
Make example for this keyboard (after setting up your build environment):
make anomalykb/a65i:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,22 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output

View File

@@ -0,0 +1,22 @@
// Copyright 2019 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define XXX KC_NO
#define LAYOUT_miryoku(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
LAYOUT(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\
XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX\
)

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