Compare commits

...

130 Commits

Author SHA1 Message Date
Joel Challis
047ef3cd12 VUSB - Use correct endpoint poll for VIA (#16691) 2022-03-19 17:40:47 +00:00
leviport
3502bbbd16 Fix typo in docs/ref_functions.md (#16690) 2022-03-19 16:37:35 +00:00
Ryan
e354cbe782 device_ver -> device_version for some more boards (#16685) 2022-03-19 11:52:40 +00:00
stanrc85
06b6729b16 [Keymap] Update some code and keyboard rules (#16680) 2022-03-18 23:52:33 -07:00
Drashna Jaelre
61c644f6d0 [Keyboard] Update Tractyl Manuform config files (#16684) 2022-03-18 11:49:22 -07:00
Florian
773242503c annepro2: Add more LED functionalities to default-layer-indicators (#16676) 2022-03-18 17:24:43 +00:00
Joel Challis
ed773ab73c Relocate CLI git interactions (#16682) 2022-03-18 16:02:24 +00:00
Joel Challis
e5823b5650 [CLI] Add common util for dumping generated content (#16674) 2022-03-18 01:09:29 +00:00
Joel Challis
417f089115 Print out generated files during build (#16672) 2022-03-17 10:45:06 +11:00
Jay Greco
193dd01f4e [Keyboard] Add nullbits TIDBIT (#15182) 2022-03-16 08:34:16 -07:00
Ryan
d5d2a01db2 gboards/butterstick: move steno rules config to keymap level (#16666) 2022-03-16 04:08:52 +00:00
Ryan
8c5779f768 Fix m3n3van and minim keyboard names in keymap JSON (#16665) 2022-03-16 03:57:47 +00:00
Yakbats
a867cfc26d Update the AL1 Vender ID (#16660)
* Add via to AL1

* Updated number of rows and columns, and applied suggestions from code review

* Update Vender ID

Change the Vender ID for Triangle Lab to comply with the via PR checklist.
2022-03-16 03:14:31 +00:00
AnthonyNguyen168
fded67f1a9 [MB-65S] Change layout to follow change request from OEM (#16663) 2022-03-16 03:13:14 +00:00
an_achronism
f6f4d85aa5 yugo_m enhancement: include all available key positions (#16216)
* yugo_m enhancement to include all available key positions in matrix
2022-03-15 17:06:27 -07:00
Joel Challis
8bffc61959 Ensure dependent CI workflows run (#16662) 2022-03-15 23:27:55 +00:00
Moritz
77aafd8056 [Keyboard] Add Dolice keyboard (#16186) 2022-03-15 15:58:16 -07:00
Tom Konidas
a808c29726 [Keymap] Planck Keymap: tomkonidas (#15869) 2022-03-15 15:48:13 -07:00
Ryan
764dc18a81 Remove NO_ACTION_MACRO and NO_ACTION_FUNCTION from keyboard config.h (#16655) 2022-03-15 13:56:58 +00:00
Joel Challis
46e85ded47 Add merge workflow for XAP branch (#16652)
* Add merge workflow for XAP branch

* uncomment
2022-03-15 12:49:23 +00:00
jack
e9bf95e0f2 [Keyboard] Fix westm/westm68 compliation errors (#16657) 2022-03-15 02:35:17 -07:00
jpuerto96
e94c2df3f3 [Keyboard] Io mini1800 (#16115)
* First commit

* first commit

* 2x3u layout functional

* 625u layout

* rotary encoder

* Modifications to keymaps

* Remove ingrained from io_mini branch

* Update readme

* Update info.json

* change hardware availability

* Change rules.mk wording to match other PR

* Update keyboards/io_mini1800/rules.mk

* Update keyboards/io_mini1800/keymaps/default/keymap.c

* Update keyboards/io_mini1800/keymaps/2x3u/keymap.c

* Update keyboards/io_mini1800/io_mini1800.c

* Update keyboards/io_mini1800/keymaps/2x3u/readme.md

* Update keyboards/io_mini1800/readme.md
2022-03-15 01:35:11 -07:00
Albert Y
9aaf4a5a9b Add split keyboard example for Bootmagic Lite (#16349)
* Add split keyboard example for bootmagic lite

* Add handedness link

* Edit sentence structure

* Apply suggested language correction
2022-03-15 01:31:17 -07:00
PaperCraneKeyboards
92a9e7c50b [Keyboard] Adding Gerald65 (#15872)
* Gerald65 new keyboard files

* removing initial population of pck

* Initial Gerald65 Keyboard files

* Changed diode direction

* added fn layer, added picture to readme

* directed mo keycode to fn layer

* Changes to vendor id and bootloader instructions

* Changed to direct image reference

* Update keyboards/papercranekeyboards/gerald65/readme.md

* Remove no longer used features
2022-03-15 01:29:35 -07:00
thompson-ele
87bb1a3890 [Keyboard] Add Bacca70 keyboard (#16626)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-15 00:28:21 -07:00
jack
1ef4e305e3 Fix evancookaudio/sleepingdinosaur (#16654) 2022-03-15 15:02:49 +11:00
jack
36ddb567cc [Keyboard] Fix mechlovin/kay65 (#16653) 2022-03-14 21:00:57 -07:00
Pear
5e5047f071 [Keyboard westm68 rev1 and fine tune westm boards (#16528)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-14 20:55:33 -07:00
evanmcook
04826d1aa1 [Keyboard] evancookaudio sleepingdinosaur v2 (#16625) 2022-03-14 18:56:27 -07:00
mechlovin
7fde309799 [Keyboard] Add Kay65 PCB by Team Mechlovin' (#15565)
* add kay65 PCB

* update

* update

* Update readme.md

* Update keyboards/mechlovin/kay65/rev1/rules.mk

* Update keyboards/mechlovin/olly/jf/rules.mk

* Update keyboards/mechlovin/kay65/rev1/rules.mk

* Update keyboards/mechlovin/kay65/rev1/info.json

* Update keymap.c

* update

* Update keyboards/mechlovin/kay65/rev1/rev1.h

* Update keyboards/mechlovin/kay65/rev1/info.json

* Update keyboards/mechlovin/kay65/rev1/info.json

* Update keyboards/mechlovin/kay65/rev1/rules.mk

* Update keymap.c

* Update readme.md

* Update keyboards/mechlovin/olly/jf/readme.md

* Update keyboards/mechlovin/kay65/rev1/config.h
2022-03-14 17:23:57 -07:00
ethsol
a939adb55c Sentence correction (#16650) 2022-03-14 22:20:50 +00:00
Yakbats
6c11579876 [Keyboard] Add via keymap to AL1 (#16499) 2022-03-14 15:05:39 -07:00
Danny
a12d58c6c9 [Keyboard] Add BAMFK-1 (#16409)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-14 11:08:10 -07:00
Ryan
6a6a333c75 Disable RGB matrix pixel animations for some boards (#16643)
* idobao/id87/v2: disable RGB matrix pixel animations

* Same for two more boards
2022-03-14 13:58:05 +00:00
Ryan
5fb269b2b4 keebio/iris: Add ifdefs to encoder callbacks (#16642) 2022-03-14 13:57:44 +00:00
Joel Challis
c17323b0f5 bolsa/damapad - Fix missing layout macro (#16639) 2022-03-13 18:56:52 -07:00
jack
8d90cf36f1 Fix 40percentclub USB descriptors (#16638) 2022-03-14 12:04:11 +11:00
Ryan
dde4120a1e ISP flashing guide: add instructions for flashing STM32duino bootloader (#16568) 2022-03-13 23:55:47 +00:00
Ryan
c0f4179117 Move keyboard USB IDs and strings to data driven: 0-9 (#16481) 2022-03-13 23:54:49 +00:00
Ryan
df3770551a USB-USB converter cleanup (#16618) 2022-03-13 23:46:13 +00:00
Spencer Peterson
8fe3864fe7 [Keyboard] Add "Uno" rev2 (#14071)
* [Keyboard] Add "Uno" rev2

Adds support for the second revision of Uno, courtesy of @Snipeye.

* Update keyboards/uno/rev2/rules.mk

* Update keyboards/uno/rev1/rules.mk

* Update keyboards/uno/uno.h

* Update keyboards/uno/rev2/rules.mk

* Update keyboards/uno/rev1/rules.mk

* Update keyboards/uno/keymaps/demo/keymap.c

* Update keyboards/uno/keymaps/demo/keymap.c

* Update keyboards/uno/keymaps/demo/keymap.c

* Update keyboards/uno/rev2/rules.mk

* Update keyboards/uno/rev1/rules.mk

* Align rules.mk comments

* Update keyboards/uno/info.json

* Update keyboards/uno/rev1/config.h

* Update keyboards/uno/rev2/config.h

* Update keyboards/uno/rev2/config.h

* Update keyboards/uno/rev2/config.h

* Update keyboards/uno/rev1/config.h
2022-03-13 14:49:47 -07:00
jels
109c60feeb [Keyboard] Add support for Jels60 (#16605)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-13 10:30:55 -07:00
Takeshi ISHII
b906af0073 helix:edvorakjp keymap change to use split_common (#16532) 2022-03-13 13:56:56 +00:00
jpe230
1f63dbfb8e [Keymap] Update personal crkbd keymap (#16624) 2022-03-13 03:09:36 -07:00
jack
08794fef4e [Keyboard] add missing endif in glitch keyboard (#16629) 2022-03-13 03:08:33 -07:00
Matthew Dias
dccb5711c7 [Keyboard] Add damapad (#16443)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-12 23:37:22 -08:00
Matthew Dias
20424fd37f [Keyboard] Add Glitch (#16444)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-12 23:36:12 -08:00
Thomas Kriechbaumer
86b123141b docs: fix code sample (#16623) 2022-03-12 12:42:25 +00:00
James Young
3f79708095 Acheron Elongate Delta: add info.json (#16615) 2022-03-11 13:26:15 +00:00
James Young
74b24e410b DZ64RGB: add info.json (#16616) 2022-03-11 13:25:31 +00:00
mechlovin
003231aaf2 [Keyboard] Add Mechlovin Infinity87.5 PCB (#15163)
* add infinity87.5

* Update readme.md

* Update keyboards/mechlovin/infinity875/config.h

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/config.h

* Enable RGB matrix effect

* update keymap default

* undef RGB matrix effect

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/readme.md

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/info.json
2022-03-10 21:02:40 -08:00
Rocco Meli
ee71362f99 Personal user space and CRKBD R2G keymap (#15888)
* r2g folder groundwork

* Default mb keymap featuring mb logos

* Migrate Oled to keyboard folder

* Move rules configs to support config better

* update readmes

* Liscnece update

* Update config and fix issues caused by redef errs

* funciton name adjusts, define specific rgb modes

* move default oled font to postconfig

* update oled in line with develop merge

* fix return value

* Add some default rgb matrix defines

* del ugfx

* remove #include <stdio.h>

* create personal keymap for r2g

* reduce firmware size

* change keymap to follow physical layout

* remove RGBlight config lines to make both sides work (@Dasky on MechboardsUK Discord)

* strip down configuration, similar to crkbd/r2g:mb_via

* remove wrong oled code overwriting the r2g one

* broken code with RGB matrix (briks right side)

* remove high max brightness limit

* caps lock tap dance and RGB indicator for active caps lock

* fix caps lock led on right side

* add test macro

* remove latex macro which is too slow

* move caps lock tap dance to RALT and add space cadet shift

* switch CTL with ALT in first layer

* add tap dance for ESC/DEL

* space cadet tap dance with caps lock; shift works by needs a short pause

* add space cadet tap dance with caps lock on the right; shift works by needs a short pause and does not hold

* make more keys transparent

* enable auto shift and use logo on both oleds

* add user oled logo, slows down linking considerably

* oled name

* add arrow keys in usual configuration and add linear configuration to symbol layer

* add unicoede support

* add accents

* update to latest version

* add colemak dh layer

* report auto shift timeout

* define layer name shorcuts correctly

* disable VIA to enable more layers

* enable NKRO

* move some rules and unicode to user space

* move oled and tap dances to user space

* move tap dances fully out of keymap

* expand unicode map

* fix unicode code

* revert changes to r2g, make it equal to merged code

* revert changes to r2g, make it equal to merged code

* clang-format userspace

* clang-format config file

* Update keyboards/crkbd/keymaps/rmeli/keymap.c

* replace define with enum

* add licenses
2022-03-10 15:27:37 -08:00
Erovia
b75f6691a1 CLI: Fix 'cd' subcommand on Windows (#16610)
The 'cd' subcommand was failing as the current shell's Windows path was
mangled while milc processed it.
Using 'subprocess' directly avoids this issue and an extra layer of
subshell.
2022-03-10 21:33:41 +00:00
WJH
6c40b6856b [Docs] Include ASCII diagram to explain tap-hold modes (#15873)
* [Docs] Include ASCII diagram to explain tap-hold modes

* [Docs]: add examples for Default mode for Tap Hold

* [Docs] fix some wrong explanation in tap_hold.md
2022-03-10 12:48:33 -08:00
Christian Hofstede
b33fdc299c add chofstede keymap for gmmk/pro/iso (#16045)
Add new keymap for GMMK with some additional mappings and led indicator for caps lock

* add chofstede keymap

* fix formatting

* fix formatting

* add readme

* Update keyboards/gmmk/pro/iso/keymaps/chofstede/keymap.c
2022-03-10 12:41:30 -08:00
Liashenko Volodymyr
fc7a41fdce [Keyboard] lily58/glow_enc (#16101)
Add rgb-light and encoder for lily58 mod

* add support for lily58 encoders (one per size) and rgb-light.

The pcb and details here https://github.com/orvisevans/Lily58-Glow-Enc

* add support for lily58 encoders (one per size) and rgb-light.

The pcb and details here https://github.com/orvisevans/Lily58-Glow-Enc

* Update keyboards/lily58/glowEnc/config.h

* add GPL License to growEnc.h

* rename folder according to requirement to lower case
2022-03-10 12:21:55 -08:00
Era James
98da119293 era1112 keymap for preonic (#16064)
Added the keymap I have been using as a daily driver for the last month.

* good firmware 26 jan, best clicky mode stability so far

* modified to reflect master branch coding style

* further modified to reflect master branch coding style

* improving clicky stability, tuned down clicky delay duration

* changed name of keymap folder to use lowercase letters
2022-03-10 12:07:37 -08:00
kopibeng
61a8a60dfb [Keyboard] Add MNK65 (#16400)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-10 11:10:34 -08:00
makenova
265b96a12c [Keyboard] Add omega4 (#16464) 2022-03-10 11:10:05 -08:00
Ryan
bd70f5261c Remove matrix_key_count() (#16603)
* Remove `matrix_key_count()`

* Remove `matrix_bitpop()`
2022-03-10 12:18:07 +00:00
Hao Xiang Liew
dc8db6551d [KEYBOARD] keyboardio/atreus: VIA support (#16604) 2022-03-09 23:35:54 -08:00
Takeshi Nishio
9d0153dc70 [keyboard]Add v1 to jones keyboard (#14405)
* Change for latest information.

* Update from v03_1 to v1.

* Add v1 files.

* Remove finished todo comment.

* Fix COLUMN number, from "a" to "9".

* Formatting

* Update keyboards/jones/v1/rules.mk

* Add license header.

https://github.com/qmk/qmk_firmware/pull/14405#discussion_r710752035

* Implement better way to handle keycode for encoder.

Use "action_exec" instead of "tap_code16"
https://github.com/qmk/qmk_firmware/pull/14405#discussion_r710752924

* Move External EEPROM config  to keyboard level

* Move the lest of DYNAMIC_KEYMAP config  to keyboard level

https://github.com/qmk/qmk_firmware/pull/14405#discussion_r711668094

* Move the rest of DYNAMIC_KEYMAP config  to keyboard level

https://github.com/qmk/qmk_firmware/pull/14405#discussion_r711668094

* Update keyboards/jones/v1/rules.mk

* Update keyboards/jones/v1/rules.mk

* Update keyboards/jones/v1/rules.mk
2022-03-09 20:14:53 -08:00
maherma-adg
8bcb77cb9a Personalizacion del teclado de AdG (#15738)
* Personalizacion del teclado de AdG

Update layout description

fix symbol layer

* fix doc Colemak

* explicitly define enabled animations

* Change keymap folder name
2022-03-09 19:56:42 -08:00
jack
708b3f9192 [Keyboard] Size reduction for kbdfans/kbd67/mkiirgb_iso (#16601) 2022-03-09 19:46:30 -08:00
Hansol Kim
caeb213400 Add macOS-friendly keymap for GMMK Pro (ANSI) (#14333)
* Add macOS keymap for GMMK Pro (ANSI)

* Change macOS keymap directory name to lowercase

* Add toggleable layer with alternative keymap for function row

* Update readme
2022-03-09 14:04:41 -08:00
Tony Grosinger
db16271a72 Add Gergoplex keymap for tgrosinger (#15148)
* Add Gergoplex keymap for tgrosinger

* Add improved shortcuts for PopOS

* Add license
2022-03-09 13:47:57 -08:00
jpe230
dc67fd9b87 Various improvements for the AnnePro2 (#16579) 2022-03-09 16:49:29 +11:00
jpe230
6ab5a7d048 [Keymap] Personal keymap for crkbd (#16546) 2022-03-08 17:35:33 -08:00
Salicylic-acid3
c5c5d37e08 [Keymap] Added RGB_Matrix effect mode for naked48/j73gl (#16578) 2022-03-08 17:34:37 -08:00
Joel Challis
ed169a6b30 Correct order of takashicompany/dogtag info.json (#16591) 2022-03-09 01:24:59 +00:00
jack
5244b13173 Fix yandrstudio/zhou65 (#16589)
* initial cleanup and hotfix for rgb....

* remove /f401
2022-03-09 00:37:40 +00:00
Danny
022e1fdac8 Add Big Switch Seat (#16524)
* Add Big Switch Seat

* Update keyboards/keebio/bigswitchseat/rules.mk

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

* Update keyboards/keebio/bigswitchseat/rules.mk

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 22:08:02 +00:00
Ryan
3347b63d83 handwired/misterdeck refactor (#16572)
* handwired/misterdeck refactor

* Forgot to remove this
2022-03-08 22:07:02 +00:00
Jason Barnachea
d38696a493 [Keyboard] Add Rama Works M4-A (#16570)
* Initial commit

Add Rama Works M4-A keyboard.

* Update default keymap.c

* Update keyboards/machine_industries/m4_a/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 21:24:06 +00:00
Ryan
b593cfccbd qmk info: Nicer rendering of big-ass enter (#16541)
* `qmk info`: Nicer rendering of big-ass enter

* Formatting...
2022-03-08 20:45:47 +00:00
drewpyun
65eb0f939f [keymap] Add via support for Iskar (#16575)
* iskar initial commit

* testing

* added info.json to iskar

* Updated read.me

* updated info.json removed unnessary keymap folders, fixed rules.mk, added second layer to default layout, added vendor/product id, tested and compiled

* Update readme.md

* Update readme.md

* updated info.json, formatted files according to PR checklist

* Update keyboards/drewkeys/iskar/rules.mk

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

* Update keyboards/drewkeys/iskar/readme.md

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

* added keymaps onto iskar.h that was referenced in info.json

* changed filename to lowercase to match guidelines

* initial commit of VIA files

* edited via keymap

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 18:56:48 +00:00
JX
40d6766576 [Keyboard] Add Y&R Studio zhou65 keyboard (#14192)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 09:03:05 -08:00
Callum Hart
d92994be71 [Keyboard] Add Novus 60% keyboard (#16473)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 08:47:57 -08:00
jack
fe8b7619d3 [Keyboard] Fix late9/rev1 (#16576) 2022-03-07 21:48:56 -08:00
Ryan
89a515913f Oddball: set default pointing device driver (#16574) 2022-03-08 16:30:37 +11:00
drewpyun
403536986d [Keyboard] Add Iskar (#16562)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 20:23:53 -08:00
Matthew Dias
4d2ae22690 [Keyboard] Add mini winni (#15341)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 20:23:06 -08:00
Ryan Baker
996880a1da [Keyboard] Add rb69 (#16526) 2022-03-07 20:19:45 -08:00
yiancar
4493f31f80 Add HS version of Nebula65b due to different number of per-key-RGB (#16514)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-03-07 20:18:41 -08:00
ZiTe
0880850b15 [Bug] Rename has_mouse_report_changed parameters (#16417)
Fixes compilation issues when bluetooth is enabled, due to issues 
with cpp used by bluetooth code. 

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 20:16:35 -08:00
Albert Y
8f70adc0b6 [Keyboard] Update encoder code for macro3 (#16005) 2022-03-07 20:09:54 -08:00
rookiebwoy
87c2f97def [Keyboard] Add LATE-9 keyboard (#13966) 2022-03-07 19:59:50 -08:00
peepeetee
eb35f58a6e [Keyboard] Idobao ID87 v2 (#15875)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 19:45:54 -08:00
Sergey Vlasov
249bc3a5c5 [Keyboard] Add Winry315 keyboard (#15894) 2022-03-07 19:45:30 -08:00
Beanaccle
86966fce69 [Keyboard] Add KB58 (#15896)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 19:40:46 -08:00
TerryMathews
ec3df85f08 [Keyboard] TKC Portico68 v2 (#15916)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 19:39:33 -08:00
Uthol
b2fdb072e5 [Keyboard] Uthol (#16393)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 19:01:47 -08:00
Matthew Dias
869ede8e4a [Keyboard] Add parallel 65 (#16445)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 19:00:35 -08:00
peepeetee
8014fb14b6 Fix in-page links in reference_info_json.md (#16487) 2022-03-07 18:50:03 -08:00
Nabos
8e888794fa [Keymap] Add nabos keymap to dactyl_manuform (5x6) (#16547)
Co-authored-by: Nicolas Ballet <balletn@igbmc.fr>
2022-03-07 18:46:54 -08:00
Salicylic-acid3
c84d361e95 [Keyboard] Change maximum LED brightness for naked48 (#16564) 2022-03-07 18:45:28 -08:00
Umberto Baldi
f0d27e22aa [Keyboard] Change vendor ID for sick68 keyboard (#16563) 2022-03-07 18:44:49 -08:00
Steven Karrmann
8bcac1c8f7 [Keyboard] Add Morizon (#16549)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 18:39:58 -08:00
yiancar
6928bce461 [Keyboard] Add Cassini keyboard (#16522)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-03-07 18:28:26 -08:00
FearlessSpiff
5995432202 [Keymap] add mouse controls to Mechwilds Mercutio FearlessSpiff (#16566) 2022-03-07 18:17:30 -08:00
bwisn
893d86cb89 Add Anne Pro 2 keyboard (#14385)
* [keyboard] Initial support for Anne Pro 2

* [keyboard][AnnePro2] Keymap:update to a reasonable keymap with caps+hjkl => arrow

* :(

* changed to use HSI

* support for annepro2 c18

* keyboard/annepro2: Very stupid matrix scan bug fix.

* typo

* swap COL14/13

* keyboard/annepro2: startup secondary LED MCU

* keyboard/annepro2: typo fix

* Add IO Values

* Disable Combo feature

* Update default keymap to Anne Pro 2 Official Keymap

* keyboard/annepro2: keymap layer name changes

* keyboard/annepro2 BLE Support

* Fix keymap comment

FN1 ESC was listed as ~ instead of `

* keyboard/annepro2: Bluetooth path

* Keyboard annepro2 bidir led comms (#5)

* Added bidirectional shine comms and moved led functionality to new file

* Added bidirectional shine comms and moved led functionality to new file

* Restore original functionality to existing keymaps using new shine commands

* Fix dangling bracketless if statements

* PR cleanup

* add custom keycodes to switch led profiles

* Optimize code

* switch to prev profile before turning leds off

* Add persistent led support with eeprom (#9)

* adding HT32 support to chibios SPI master driver

* add support for W25X20CL SPI eeprom

* add makefile flag for eeprom feature

* add spi support to keyboard startup and config

* example keymap using eeprom profile loading

* Cleanup to fix C15 eeprom/spi build errors (#11)

* Cleanup to fix C15 eeprom/spi build errors

* add newline at eof

* LED Masking support for Shine

Introduce companion update to ledSetMask and ledClearMask.
In keymap `codetector` there is example of how to map caps_lock
to the caps_lock key light on the keyboard.

* [AnnePro2]: update bluetooth connection

* Merge the custom keys enums on annepro2.h (#13)

* Keyboard annepro2 ble caps lock (#12)

* Move matrix_scan_kb out of board.c to annepro2.c

* add buffer clear after init and caplock polling

* Add support for LED intensity (#15)

* Improve logic for switching off and on of LEDs (#16)

* Implement animation speed (#17)

* Include logic to send solid colors as foreground to shine and add sample profiles (#14)

Include the logic to send a solid color from qmk to shine. That solid color will act as a foreground (will override the current profile) until reset (witch will reactivate the current profile).
This functionality depends on changes made for shine as well.

Include 3 new profiles:

    default-full-caps -> same as default, but with the logic of using the red foreground color on caps lock.
    default-layer-indicators -> same as default, but with the logic of red foreground on caps lock, green foreground on FN1 and blue foreground on FN2.
    thomazmoura -> my own profile as a sample of an over-engineered advanced case scenario.

* Implement reactive lighting effects (#18)

* Added multiarrow keymap (#19)

* Add LED documentation (#26)

* add LED documentation

* add LED documentation to other default profiles

* Implement QMK's IAP default keybind (#29)

* Add keymap for going into IAP

* switch to default QMK keybind for IAP mode

* implement bluetooth IAP mode

* Make default config more like Obins stock default (#30)

* Add new message type for resetting foreground color (#31)

* annepro2(bluetooth): add media keys support (#41)

* Asynchronous, robust serial protocol. (#39)

* bla personal ap2-c18 keymap.

* Bidirectional, asynchronous message-based communication with Shine.

- Requires a matching Shine version.
- Protocol is resiliant to loosing bytes during communication, chips won't lock
  waiting for bytes that aren't coming.
- Chips resynchronize in event of loosing a byte using a AA0D header.

Regressions:
- Key masking/locking doesn't work right now. (did it work before?)
- Not all user keymaps build against it.

* Clang-format + code to ease reducing speed of LED UART.

- Did clang-format --style=file -i on multiple files according to
  coding_conventions_c.md

- Added separate serial speed for IAP boot and Led communication, it's possible
  that reducing this to 9600 helped someone with faulty HW. With this code they
  can do it with simple replacing of a value.

* Main chip can set/clear foreground using a mask mechanism.

- Some preparations for selective colouring.

* Selective mask works - tested on capslock.

- Migrated personal keymaps to new status API.

* Clear the foreground colors to show profile when it's modified.

- Show example of achieving selective caps-lock painting + foreground painting
  for layers.
- annepro2LedMaskSetRow is implemented, but still requires testing.

* Implement the QMK side of led blinking to indicate the command was received.

- This stupidly blinks the key when user presses one of the bluetooth commands
to let the user know that the command was received and forwarded to the BT chip.

- TODO: Row/col key positions are hardcoded and not taken from the keymap.

* Reduce memory footprint.

Applying code review suggestions. Moved msgId to globals - preparing for
transmission without copying payload when no retries are necessary.

Added empty readme.md files - required by QMK lint.

Co-authored-by: Tomasz bla Fortuna <bla@thera.be>

* Let the LED chip settle a bit before waking it from the bootloader. (#42)

At least for one person that helps to reliably get the LEDs working without
disconnecting/reconnecting the power to the board multiple times.

Co-authored-by: Tomasz bla Fortuna <bla@thera.be>

* annepro2: rename KEYMAP to LAYOUT, as required by new version of QMK

* annepro2: update ChibiOS configuration files

* annepro2: fix undefined reference to dprint and timer_read32

* annepro2: update ChibiOS MCU name

* update spi driver, fix bad merging with master

* annepro2: add readme and info.json

* annepro2: make code compatible with QMK coding conventions

* tmk_core: temporary fix to allow HT32 based keyboards to work without patched ChibiOS-contrib (AnnePro2)

* AnnePro2: removed core changes

* AnnePro2: Leave only default keymaps

Missing keymaps will be restored in another PR

* annepro2: add licence information

* annepro2: satisfy qmk lint

* annepro2: fix drashna's suggestions

* annepro2: fix matrix

* annepro2: apply code review suggestions

* annepro2: apply remaining code review suggestions

* annepro2: update info.json

* annepro2: remove include

* annepro2: rename keymap to layout

* annepro2: fix typing

* annepro2: apply suggestions from tzarc's code review

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

* annepro2: more fixes

* annepro2: apply suggestions from code review

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

* annepro2: rename file

* more fixes

* Apply suggestions from @tzarc code review

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

* Update keyboards/annepro2/protocol.h

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

* Update keyboards/annepro2/chconf.h

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

* apply CR suggestions

* upgrade readme

* IAP

* update IAP comments, defines

* led fix

* init fix

* annepro2: GPIO cleanup

* annepro2: ioline

* change waiting time

* Start develop for 2022q2

* [Core] Squeeze AVR some more with `-mrelax` and `-mcall-prologues` (#16269)

* Rework generate-api CLI command to use .build directory (#16441)

* Remove `send_unicode_hex_string()` (#16518)

* Change data driven "str" type to represent a quoted string literal (#16516)

* Change data driven "str" type to represent a quoted string literal

* Update docs

* Map data driven `DESCRIPTION` as string literal (#16523)

* update bootloader

* Revert "Merge pull request #2 from qmk/develop"

This reverts commit 9c76065188, reversing
changes made to 240745dc05.

* Revert "update bootloader"

This reverts commit 240745dc05.

* fix rules.mk

* change PROGRAM_CMD

Co-authored-by: codetector <codetector@codetector.cn>
Co-authored-by: Fagl4 <18francisco18@gmail.com>
Co-authored-by: Jakob Gillich <jakob@gillich.me>
Co-authored-by: tech2077 <tech2077@gmail.com>
Co-authored-by: jcdeA <31413538+JcdeA@users.noreply.github.com>
Co-authored-by: Thomaz Moura <5599621+thomazmoura@users.noreply.github.com>
Co-authored-by: Darkhan <darkhanu@gmail.com>
Co-authored-by: Paco <70448173+packorf@users.noreply.github.com>
Co-authored-by: jmarmstrong1207 <32995055+jmarmstrong1207@users.noreply.github.com>
Co-authored-by: 1Conan <7620342+1Conan@users.noreply.github.com>
Co-authored-by: Tomasz bla Fortuna <blagh@thera.be>
Co-authored-by: Tomasz bla Fortuna <bla@thera.be>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: QMK Bot <hello@qmk.fm>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 12:12:53 +11:00
Matthew Bautista
2ff646c642 [Keyboard] LFK78 VIA support and Update (#16502) 2022-03-07 09:05:41 -08:00
jack
d953aa730e new lines at eof's (#16558) 2022-03-07 11:23:15 +00:00
Will McGloughlin
4b4f1c6edb [Keymap] Add encoder showcase keymap (#16544) 2022-03-06 23:16:50 -08:00
takashicompany
41fb9120d0 [Keyboard] Update DogTag Macro Pad (#16446)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-06 23:02:52 -08:00
peepeetee
6e61126e08 [Keyboard] BM68HSRGB/rev2 (#16454)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-06 23:02:31 -08:00
jels
9dea8a7d86 [Keyboard] Update Jels88 (#16486) 2022-03-06 22:59:30 -08:00
Koobaczech
b26217414c [Keyboard] Delete duplicate pandora directory (#16496) 2022-03-06 22:58:38 -08:00
Koobaczech
2d8266bd7b [Keyboard] Tidy Up pearlboards (#16497) 2022-03-06 22:58:06 -08:00
fOmey
bbd47fcaa2 [Keyboard] Atlantis ak81_ve encoder behaviour enhancement & fixes (#16503) 2022-03-06 22:55:56 -08:00
xiao
1a1b22ef07 [Keyboard] Sick68 VIA keymap (#16508)
Co-authored-by: xia0 <xiao@morgan.net.au>
2022-03-06 22:52:49 -08:00
owlab-git
0978dca728 [Keyboard] add qk65 files by qwertykeys studio (#16491) 2022-03-06 22:41:16 -08:00
Drashna Jaelre
ff6c70415c [Keymap] Drashna Mouse keys and oled updates (#16556) 2022-03-06 22:12:17 -08:00
QMK Bot
d8971d707e Format code according to conventions (#16554) 2022-03-06 20:55:08 -08:00
kopibeng
0e08fad5c5 [Keyboard] Add support for Typ65+ (#16399)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-06 19:36:22 -08:00
Felix Jen
dcfa4712fb [Keyboard] Add Kyuu Hotswap (#16360)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-06 19:30:13 -08:00
Takuya Urakawa
5de86a05c3 [Keyboard] Add Lain keyboard (#16345)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-06 19:27:41 -08:00
Andrew Garver
de10757f05 [Keyboard] fourier via keymap (#16335) 2022-03-06 19:27:08 -08:00
npspears
b77d51f41a [Keyboard] add support for Quark_Plus (#16324)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-06 19:26:23 -08:00
Takeshi ISHII
9d6cea070e [Keymap] Change helix:five_rows_jis keymap to use split_common (#16538) 2022-03-06 19:02:40 -08:00
Takeshi ISHII
4cae7becb1 [Keymap] Change helix:fraanrosi keymap to use split_common (#16533) 2022-03-06 19:02:00 -08:00
Joel Challis
30209de9fd merge/uma - Resolve configurator issues (#16551) 2022-03-06 21:58:08 +00:00
Takeshi ISHII
16cd1d9bf7 Change helix:five_rows keymap to use QMK standerd oled driver (#16539) 2022-03-06 10:18:41 +09:00
Ryan
8e9d45d270 qmk info: nicer rendering of ISO enter (#16466) 2022-03-05 22:54:32 +00:00
Joel Challis
b202e59322 Update info.json (#16540) 2022-03-06 07:59:54 +11:00
kiilerix
da6d6ce2e1 Some docs improvements (#15845)
* docs: clarify in "Keymap Overview" what LAYOUT is and isn't

It is not strictly necessary to use LAYOUT macros in keyboard.c, but it
is a convenient abstraction of hardware internals, allowing focus on the
physical keyboard layout.

From the C source point of view LAYOUT is macro with a parameter list,
which expands to a array of rows that each is an array with a keyboard
scancode for each column. A macro parameter list is not an array, and
even less a single array.

Perhaps no big deal, but also no reason to give incorrect hints.

* docs: update "Understanding QMK's Code" to current code structure introduced in 96e2b13d1d

This part of the documentation was no longer correct. I tried updating
it, mainly copy editing and using github links to latest release.

This is not trying to fix all problems, but just trying to fix some
problems while reusing much of the old phrases and structure.

* Update docs to use "qmk format-python"
2022-03-05 15:58:50 +11:00
yulei
82dd84e257 support more leds (#15840) 2022-03-05 15:57:19 +11:00
Kyle McCreery
0be7345640 [Keyboard] BDE Rev2 (#15877)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-04 10:10:32 -08:00
Joel Challis
c0185116d7 More validation of declared LAYOUT macro names (#16520) 2022-03-04 18:06:15 +01:00
Ryan
34ba7f1c18 Bug report template: require qmk doctor output (#16517) 2022-03-03 20:43:55 -08:00
1820 changed files with 33158 additions and 5475 deletions

View File

@@ -18,19 +18,18 @@ assignees: ''
## System Information
- Keyboard:
- Revision (if applicable):
- Operating system:
- AVR GCC version:
<!-- Run `avr-gcc --version` to find this out. -->
- ARM GCC version:
<!-- Run `arm-none-eabi-gcc --version` to find this out. -->
- QMK Firmware version:
<!-- Run `git describe --abbrev=0 --tags` to find this out. -->
- Any keyboard related software installed?
- [ ] AutoHotKey
- [ ] Karabiner
- [ ] Other:
**Keyboard:**
**Revision (if applicable):**
**Operating system:**
**`qmk doctor` output:**
```
(Paste output here)
```
**Any keyboard related software installed?**
- [ ] AutoHotKey (Windows)
- [ ] Karabiner (macOS)
- [ ] Other:
## Additional Context

View File

@@ -5,7 +5,6 @@ on:
branches:
- master
jobs:
develop_update:
runs-on: ubuntu-latest
@@ -15,6 +14,7 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Checkout develop
@@ -22,14 +22,7 @@ jobs:
git fetch origin master develop
git checkout develop
- name: Check if branch locked
id: check_locked
uses: andstor/file-existence-action@v1
with:
files: ".locked"
- name: Update develop from master
if: steps.check_locked.outputs.files_exists == 'false'
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"

View File

@@ -0,0 +1,35 @@
name: Update feature branches after develop merge
on:
push:
branches:
- develop
jobs:
feature_branch_update:
runs-on: ubuntu-latest
if: github.repository == 'qmk/qmk_firmware'
strategy:
matrix:
branch:
- xap
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Checkout branch
run: |
git fetch origin develop ${{ matrix.branch }}
git checkout ${{ matrix.branch }}
- name: Update branch from develop
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"
git merge origin/develop
git push origin ${{ matrix.branch }}

View File

@@ -159,10 +159,14 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
# Add rules to generate the keymap files - indentation here is important
$(KEYMAP_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON))
@$(BUILD_CMD)
$(KEYMAP_OUTPUT)/src/config.h: $(KEYMAP_JSON)
$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H))
@$(BUILD_CMD)
generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c
@@ -326,13 +330,19 @@ endif
CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h
$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h)
@$(BUILD_CMD)
$(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h)
@$(BUILD_CMD)
$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h)
@$(BUILD_CMD)
generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.h $(KEYBOARD_OUTPUT)/src/layouts.h

View File

@@ -63,6 +63,7 @@ MSG_COMPILING_CXX = Compiling:
MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
MSG_CREATING_LIBRARY = Creating library:
MSG_GENERATING = Generating:
MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR) Some git submodules are out of date or modified.\n\
Please consider running $(BOLD)make git-submodule$(NO_COLOR).\n\n
MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, please install diffutils\n$(NO_COLOR)

View File

@@ -33,7 +33,33 @@
"oneOf": [
{
"type": "string",
"enum": ["LAYOUT", "LAYOUT_planck_1x2uC"]
"enum": [
"LAYOUT",
"LAYOUT_1x2uC",
"LAYOUT_1x2uL",
"LAYOUT_1x2uR",
"LAYOUT_2x2uC",
"LAYOUT_2x3uC",
"LAYOUT_625uC",
"LAYOUT_ANSI_DEFAULT",
"LAYOUT_JP",
"LAYOUT_ortho_3x12_1x2uC",
"LAYOUT_ortho_4x12_1x2uC",
"LAYOUT_ortho_4x12_1x2uL",
"LAYOUT_ortho_4x12_1x2uR",
"LAYOUT_ortho_5x12_1x2uC",
"LAYOUT_ortho_5x12_2x2uC",
"LAYOUT_ortho_5x14_1x2uC",
"LAYOUT_ortho_5x14_1x2uL",
"LAYOUT_ortho_5x14_1x2uR",
"LAYOUT_planck_1x2uC",
"LAYOUT_planck_1x2uL",
"LAYOUT_planck_1x2uR",
"LAYOUT_preonic_1x2uC",
"LAYOUT_preonic_1x2uL",
"LAYOUT_preonic_1x2uR",
"LAYOUT_reviung34_2uL"
]
},
{
"type": "string",

View File

@@ -109,6 +109,7 @@
},
"layouts": {
"type": "object",
"propertyNames": {"$ref": "qmk.definitions.v1#/layout_macro"},
"additionalProperties": {
"type": "object",
"additionalProperties": false,

View File

@@ -15,11 +15,11 @@
"device_version": "1.0.0"
},
"features": {
"bootmagic_lite": true,
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
}
}
}

View File

@@ -188,7 +188,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
# Testing, and Linting, and Formatting (oh my!)
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-py` subcommands to run these tests:
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-python` subcommands to run these tests:
### Testing and Linting
@@ -196,7 +196,7 @@ We use nose2, flake8, and yapf to test, lint, and format code. You can use the `
### Formatting
qmk format-py
qmk format-python
## Formatting Details

View File

@@ -23,14 +23,35 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard
## Split Keyboards
When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. To do so, add these entries to your `config.h` file:
When [handedness](feature_split_keyboard.md#setting-handedness) is predetermined via options like `SPLIT_HAND_PIN` or `EE_HANDS`, you might need to configure a different key between halves. To identify the correct key for the right half, examine the split key matrix defined in the `<keyboard>.h` file, e.g.:
```c
#define LAYOUT_split_3x5_2( \
L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
L16, L17, R16, R17 \
) \
{ \
{ L01, L02, L03, L04, L05 }, \
{ L06, L07, L08, L09, L10 }, \
{ L11, L12, L13, L14, L15 }, \
{ L16, L17, KC_NO, KC_NO, KC_NO }, \
{ R01, R02, R03, R04, R05 }, \
{ R06, R07, R08, R09, R10 }, \
{ R11, R12, R13, R14, R15 }, \
{ R16, R17, KC_NO, KC_NO, KC_NO } \
}
```
If you pick the top right key for the right half, it is `R05` on the top layout. Within the key matrix below, `R05` is located on row 4 columnn 4. To use that key as the right half's Bootmagic Lite trigger, add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 1
#define BOOTMAGIC_LITE_COLUMN_RIGHT 4
```
By default, these values are not set.
?> These values are not set by default.
## Advanced Bootmagic Lite
@@ -51,7 +72,7 @@ void bootmagic_lite(void) {
}
```
You can additional feature here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic Lite. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
You can define additional logic here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic Lite. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
## Addenda

View File

@@ -245,7 +245,7 @@ The following configuration options are only available when using `SPLIT_POINTIN
| `pointing_device_get_report(void)` | Returns the current mouse report (as a `mouse_report_t` data structure). |
| `pointing_device_set_report(mouse_report)` | Sets the mouse report to the assigned `mouse_report_t` data structured passed to the function. |
| `pointing_device_send(void)` | Sends the current mouse report to the host system. Function can be replaced. |
| `has_mouse_report_changed(old, new)` | Compares the old and new `mouse_report_t` data and returns true only if it has changed. |
| `has_mouse_report_changed(new_report, old_report)` | Compares the old and new `mouse_report_t` data and returns true only if it has changed. |
| `pointing_device_adjust_by_defines(mouse_report)` | Applies rotations and invert configurations to a raw mouse report. |
@@ -276,14 +276,14 @@ The report_mouse_t (here "mouseReport") has the following properties:
To manually manipulate the mouse reports outside of the `pointing_device_task_*` functions, you can use:
* `pointing_device_get_report()` - Returns the current report_mouse_t that represents the information sent to the host computer
* `pointing_device_set_report(report_mouse_t newMouseReport)` - Overrides and saves the report_mouse_t to be sent to the host computer
* `pointing_device_set_report(report_mouse_t mouse_report)` - Overrides and saves the report_mouse_t to be sent to the host computer
* `pointing_device_send()` - Sends the mouse report to the host and zeroes out the report.
When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in `pointing_device_send()`, which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden.
Additionally, by default, `pointing_device_send()` will only send a report when the report has actually changed. This prevents it from continuously sending mouse reports, which will keep the host system awake. This behavior can be changed by creating your own `pointing_device_send()` function.
Also, you use the `has_mouse_report_changed(new, old)` function to check to see if the report has changed.
Also, you use the `has_mouse_report_changed(new_report, old_report)` function to check to see if the report has changed.
## Examples
@@ -325,7 +325,8 @@ report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
if (set_scrolling) {
mouse_report.h = mouse_report.x;
mouse_report.v = mouse_report.y;
mouse_report.x = mouse_report.y = 0
mouse_report.x = 0;
mouse_report.y = 0;
}
return mouse_report;
}

View File

@@ -4,7 +4,7 @@ In order to flash a microcontroller over USB, it needs something called a bootlo
However, it can sometimes happen that the bootloader becomes corrupted and needs reflashing, or you may want to change the bootloader to another one. It's not possible to do this with the existing bootloader, because, of course, it is already running, and cannot overwrite itself. Instead, you will need to ISP flash the microcontroller.
There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed.
There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed. The one current exception is the [STM32F103](#flashing-stm32duino-bootloader).
## Hardware
@@ -260,3 +260,93 @@ For mass production purposes, it is possible to join the bootloader and QMK firm
4. Save it as a new file, for example `<keyboard>_<keymap>_production.hex`.
You can then ISP flash this combined firmware instead, which allows you to skip the extra step of flashing the QMK firmware over USB.
## Flashing STM32Duino Bootloader
As mentioned above, *most* supported STM32 devices already possess a USB DFU bootloader which cannot be overwritten, however the ROM bootloader in the STM32F103 used on the Bluepill is not USB capable. In this case an ST-Link V2 dongle is required to upload the STM32Duino bootloader to the device. These can be readily purchased for relatively cheap on eBay and other places.
This bootloader is a descendant of the Maple bootloader by Leaflabs, and is compatible with dfu-util.
### Software
To communicate with the ST-Link, you must install the following packages:
* **macOS:** `brew install stlink openocd`
* **Windows (MSYS2):** `pacman -S mingw-w64-x86_64-stlink mingw-w64-x86_64-openocd`
* **Linux:** will vary by distribution, but will likely be `stlink` and `openocd` through your particular package manager
Additionally, you may need to update the ST-Link's firmware with the [`STSW-LINK007`](https://www.st.com/en/development-tools/stsw-link007.html) application. Note you will be asked to provide your name and email address if you do not have an ST.com account (this does not create one).
Finally, the bootloader binary itself can be downloaded from [here](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/bootloader_only_binaries/generic_boot20_pc13.bin).
### Wiring
Connect the four-pin header on the end of the Bluepill to the matching pins on the ST-Link (the pinout will usually be printed on the side):
|ST-Link |Bluepill|
|-------------|--------|
|`GND` (6) |`GND` |
|`SWCLK` (2) |`DCLK` |
|`SWDIO` (4) |`DIO` |
|`3.3V` (8) |`3.3` |
### Flashing
Firstly, make sure both jumpers on the Bluepill are set to 0.
Check that the ST-Link can talk to the Bluepill by running `st-info --probe`:
```
Found 1 stlink programmers
version: V2J37S7
serial: 2C1219002B135937334D4E00
flash: 65536 (pagesize: 1024)
sram: 20480
chipid: 0x0410
descr: F1xx Medium-density
```
If the reported `chipid` is `0x0410`, everything is working. If it is `0x0000`, check your wiring, and try swapping the `SWDIO` and `SWCLK` pins, as some ST-Link dongles may have incorrect pinouts.
Next, run the following command:
```
st-flash --reset --format binary write <path-to-bootloader> 0x08000000
```
where `<path-to-bootloader>` is the path to the bootloader `.bin` file above. You can run this command from the directory you downloaded it to, so that you can simply pass in the filename.
If all goes well, you should get output similar to the following:
```
st-flash 1.7.0
2022-03-08T12:16:30 INFO common.c: F1xx Medium-density: 20 KiB SRAM, 64 KiB flash in at least 1 KiB pages.
file generic_boot20_pc13.bin md5 checksum: 333c30605e739ce9bedee5999fdaf81b, stlink checksum: 0x0008e534
2022-03-08T12:16:30 INFO common.c: Attempting to write 7172 (0x1c04) bytes to stm32 address: 134217728 (0x8000000)
2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000000 erased
2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000400 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000800 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000c00 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001000 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001400 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001800 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001c00 erased
2022-03-08T12:16:31 INFO common.c: Finished erasing 8 pages of 1024 (0x400) bytes
2022-03-08T12:16:31 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL
2022-03-08T12:16:31 INFO flash_loader.c: Successfully loaded flash loader in sram
2022-03-08T12:16:31 INFO flash_loader.c: Clear DFSR
8/ 8 pages written
2022-03-08T12:16:31 INFO common.c: Starting verification of write complete
2022-03-08T12:16:31 INFO common.c: Flash written and verified! jolly good!
2022-03-08T12:16:31 WARN common.c: NRST is not connected
```
Otherwise, if you receive an `Unknown memory region` error, run the following command to unlock the STM32F103:
```
openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "init; reset halt; stm32f1x unlock 0; reset halt; exit"
```
Then re-plug the ST-Link and try again.
After all of this, unplug the Bluepill from the ST-Link and connect it to USB. It should now be ready to flash using dfu-util, the QMK CLI or Toolbox.

View File

@@ -275,14 +275,14 @@ $ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk format-py`
## `qmk format-python`
このコマンドは `qmk_firmware` 内の python コードを整形します。
**使用法**:
```
qmk format-py
qmk format-python
```
## `qmk pytest`

View File

@@ -192,7 +192,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
# テスト、リントおよびフォーマット
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest``format-py` サブコマンドを使うことができます。
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest``format-python` サブコマンドを使うことができます。
### テストとリント
@@ -200,7 +200,7 @@ nose2、flake8 および yapf を使ってコードをテスト、リントお
### フォーマット
qmk format-py
qmk format-python
## フォーマットの詳細

View File

@@ -16,7 +16,7 @@ POINTING_DEVICE_ENABLE = yes
マウスレポートを操作するために、以下の関数を使うことができます:
* `pointing_device_get_report()` - ホストコンピュータに送信された情報を表す現在の report_mouse_t を返します。
* `pointing_device_set_report(report_mouse_t newMouseReport)` - ホストコンピュータに送信される report_mouse_t を上書き保存します。
* `pointing_device_set_report(report_mouse_t mouse_report)` - ホストコンピュータに送信される report_mouse_t を上書き保存します。
report_mouse_t (ここでは "mouseReport") が以下のプロパティを持つことを覚えておいてください:
@@ -34,7 +34,7 @@ report_mouse_t (ここでは "mouseReport") が以下のプロパティを持つ
さらに、デフォルトでは、`pointing_device_send()` はレポートが実際に変更された場合のみレポートを送信します。これにより、マウスレポートが継続的に送信されてホストシステムが起動されたままになることを防ぎます。この動作は、独自の `pointing_device_send()` 関数を作成することで変更できます。
また、`has_mouse_report_changed(new, old)` 関数を使って、レポートが変更されたかどうかを確認できます。(訳注:独自の `pointing_device_send()` 関数を作成する場合でも、その中で `has_mouse_report_changed(new, old)` 関数でチェックして、デフォルトの `pointing_device_send()` と類似の無駄なレポートの抑制をして、ホストシステムがスリープ状態に入れる余地を残すようにしておくのが良いでしょう。)
また、`has_mouse_report_changed(new_report, old_report)` 関数を使って、レポートが変更されたかどうかを確認できます。(訳注:独自の `pointing_device_send()` 関数を作成する場合でも、その中で `has_mouse_report_changed(new_report, old_report)` 関数でチェックして、デフォルトの `pointing_device_send()` と類似の無駄なレポートの抑制をして、ホストシステムがスリープ状態に入れる余地を残すようにしておくのが良いでしょう。)
以下の例では、カスタムキーを使ってマウスをクリックし垂直および水平方向に127単位スクロールし、リリースされた時にそれを全て元に戻します - なぜならこれは完全に便利な機能だからです。いいですか、以下はひとつの例です:

View File

@@ -132,7 +132,7 @@ The main part of this file is the `keymaps[]` definition. This is where you list
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
After this you'll find a list of LAYOUT() macros. A LAYOUT() is simply a list of keys to define a single layer. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer.
After this you'll find the layer definitions. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer.
`keymaps[][MATRIX_ROWS][MATRIX_COLS]` in QMK holds the 16 bit action code (sometimes referred as the quantum keycode) in it. For the keycode representing typical keys, its high byte is 0 and its low byte is the USB HID usage ID for keyboard.
@@ -153,7 +153,9 @@ Here is an example of the Clueboard's base layer:
Some interesting things to note about this:
* From a C source point of view it's only a single array, but we have embedded whitespace to more easily visualize where each key is on the physical device.
* The layer is defined using the LAYOUT macro, traditionally defined in the keyboard's `.h` file.
* The LAYOUT macro takes a single list of keycodes, but we have written it in the C source using embedded whitespace and newlines to visualize where each key is on the physical device.
* The LAYOUT macro hides and handles the mapping to the hardware's key scan matrix.
* Plain keyboard scancodes are prefixed with KC_, while "special" keys are not.
* The upper left key activates custom function 0 (`F(0)`)
* The "Fn" key is defined with `MO(_FL)`, which moves to the `_FL` layer while that key is being held down.

View File

@@ -1,6 +1,6 @@
# List of Useful Core Functions To Make Your Keyboard Better
There are a lot of hidden functions in QMK that are incredible useful, or may add a bit of functionality that you've been wanting. Functions that are specific to certain features are not included here, as those will be on their respective feature page.
There are a lot of hidden functions in QMK that are incredibly useful, or may add a bit of functionality that you've been wanting. Functions that are specific to certain features are not included here, as those will be on their respective feature page.
## (OLKB) Tri Layers :id=olkb-tri-layers

View File

@@ -28,11 +28,11 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai
* `layout_aliases`
* A dictionary containing layout aliases. The key is the alias and the value is a layout in `layouts` it maps to.
* `layouts`
* Physical Layout representations. See the [Layout Format](#layout_format) section for more detail.
* Physical Layout representations. See the [Layout Format](#layout-format) section for more detail.
* `matrix_pins`
* Configure the pins corresponding to columns and rows, or direct pins. See the [Matrix Pins](#matrix_pins) section for more detail.
* Configure the pins corresponding to columns and rows, or direct pins. See the [Matrix Pins](#matrix-pins) section for more detail.
* `rgblight`
* Configure the [RGB Lighting feature](feature_rgblight.md). See the [RGB Lighting](#rgb_lighting) section for more detail.
* Configure the [RGB Lighting feature](feature_rgblight.md). See the [RGB Lighting](#rgb-lighting) section for more detail.
* `usb`
* Configure USB VID, PID, and other parameters. See the [USB](#USB) section for more detail.

View File

@@ -126,6 +126,61 @@ The code which decides between the tap and hold actions of dual-role keys suppor
Note that until the tap-or-hold decision completes (which happens when either the dual-role key is released, or the tapping term has expired, or the extra condition for the selected decision mode is satisfied), key events are delayed and not transmitted to the host immediately. The default mode gives the most delay (if the dual-role key is held down, this mode always waits for the whole tapping term), and the other modes may give less delay when other keys are pressed, because the hold action may be selected earlier.
### Default Mode
Example sequence 1 (the `L` key is also mapped to `KC_RGHT` on layer 2):
```
TAPPING_TERM
+---------------|--------------------+
| +-------------|-------+ |
| | LT(2, KC_A) | | |
| +-------------|-------+ |
| | +--------------+ |
| | | KC_L | |
| | +--------------+ |
+---------------|--------------------+
```
The above sequence would send a `KC_RGHT`, since `LT(2, KC_A)` is held longer than the `TAPPING_TERM`.
---
Example sequence 2 (the `L` key is also mapped to `KC_RGHT` on layer 2):
```
TAPPING_TERM
+-----------------------------|------+
| +---------------+ | |
| | LT(2, KC_A) | | |
| +---------------+ | |
| +--------------+ | |
| | KC_L | | |
| +--------------+ | |
+-----------------------------|------+
```
The above sequence will not send `KC_RGHT` but `KC_A` `KC_L` instead, since `LT(2, KC_A)` is not held longer than the `TAPPING_TERM`.
---
Example sequence 3 (Mod Tap):
```
TAPPING_TERM
+---------------------------|--------+
| +-------------+ | |
| | SFT_T(KC_A) | | |
| +-------------+ | |
| +--------------+ | |
| | KC_X | | |
| +--------------+ | |
+---------------------------|--------+
```
Based previous examples, you might have expected the output of the above sequence to be `KC_A` `KC_X`
since `SFT_T(KC_A)` is NOT held longer than the `TAPPING_TERM`.
However, the actual output would be capital `X` (`SHIFT` + `x`) due to reasons
explained under [Ignore Mod Tap Interrupt](#ignore-mod-tap-interrupt).
### Permissive Hold
The “permissive hold” mode can be enabled for all dual-role keys by adding the corresponding option to `config.h`:
@@ -145,6 +200,18 @@ An example of a sequence which is affected by the “permissive hold” mode:
- `KC_L` Up
- `LT(2, KC_A)` Up
```
TAPPING_TERM
+---------------------------|--------+
| +----------------------+ | |
| | LT(2, KC_A) | | |
| +----------------------+ | |
| +--------------+ | |
| | KC_L | | |
| +--------------+ | |
+---------------------------|--------+
```
Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `PERMISSIVE_HOLD` option enabled, the Layer Tap key is considered as a layer switch if another key is tapped, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2). We could describe this sequence as a “nested press” (the modified key's key down and key up events are “nested” between the dual-role key's key down and key up events).
However, this slightly different sequence will not be affected by the “permissive hold” mode:
@@ -154,6 +221,18 @@ However, this slightly different sequence will not be affected by the “permiss
- `LT(2, KC_A)` Up
- `KC_L` Up
```
TAPPING_TERM
+---------------------------|--------+
| +-------------+ | |
| | LT(2, KC_A) | | |
| +-------------+ | |
| +--------------+ | |
| | KC_L | | |
| +--------------+ | |
+---------------------------|--------+
```
In the sequence above the dual-role key is released before the other key is released, and if that happens within the tapping term, the “permissive hold” mode will still choose the tap action for the dual-role key, and the sequence will be registered as `al` by the host. We could describe this as a “rolling press” (the two keys' key down and key up events behave as if you were rolling a ball across the two keys, first pressing each key down in sequence and then releasing them in the same order).
?> The `PERMISSIVE_HOLD` option also affects Mod Tap keys, but this may not be noticeable if you do not also enable the `IGNORE_MOD_TAP_INTERRUPT` option for those keys, because the default handler for Mod Tap keys also considers both the “nested press” and “rolling press” sequences like shown above as a modifier hold, not the tap action. If you do not enable `IGNORE_MOD_TAP_INTERRUPT`, the effect of `PERMISSIVE_HOLD` on Mod Tap keys would be limited to reducing the delay before the key events are made visible to the host.
@@ -198,6 +277,18 @@ An example of a sequence which is affected by the “hold on other key press”
- `LT(2, KC_A)` Up
- `KC_L` Up
```
TAPPING_TERM
+---------------------------|--------+
| +-------------+ | |
| | LT(2, KC_A) | | |
| +-------------+ | |
| +--------------+ | |
| | KC_L | | |
| +--------------+ | |
+---------------------------|--------+
```
Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `HOLD_ON_OTHER_KEY_PRESS` option enabled, the Layer Tap key is considered as a layer switch if another key is pressed, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2).
?> The `HOLD_ON_OTHER_KEY_PRESS` option also affects Mod Tap keys, but this may not be noticeable if you do not also enable the `IGNORE_MOD_TAP_INTERRUPT` option for those keys, because the default handler for Mod Tap keys also considers the “rolling press” sequence like shown above as a modifier hold, not the tap action. If you do not enable `IGNORE_MOD_TAP_INTERRUPT`, the effect of `HOLD_ON_OTHER_KEY_PRESS` on Mod Tap keys would be limited to reducing the delay before the key events are made visible to the host.
@@ -245,6 +336,18 @@ An example of a sequence which will be affected by the `IGNORE_MOD_TAP_INTERRUPT
- `SFT_T(KC_A)` Up
- `KC_X` Up
```
TAPPING_TERM
+---------------------------|--------+
| +-------------+ | |
| | SFT_T(KC_A) | | |
| +-------------+ | |
| +--------------+ | |
| | KC_X | | |
| +--------------+ | |
+---------------------------|--------+
```
Normally, this would send a capital `X` (`SHIFT`+`x`), even if the sequence is performed faster than the `TAPPING_TERM`. However, if the `IGNORE_MOD_TAP_INTERRUPT` option is enabled, the `SFT_T(KC_A)` key must be held longer than the `TAPPING_TERM` to register the hold action. A quick tap will output `ax` in this case, while a hold will still output a capital `X` (`SHIFT`+`x`).
However, if the `HOLD_ON_OTHER_KEY_PRESS` option is enabled in addition to `IGNORE_MOD_TAP_INTERRUPT`, the above sequence will again send a capital `X` (`SHIFT`+`x`) even if performed faster that the `TAPPING_TERM`. The difference from the default configuration is that by default the host will receive the key events only after the `SFT_T(KC_A)` key is released, but with the `HOLD_ON_OTHER_KEY_PRESS` option the host will start receiving key events when the `KC_X` key is pressed.
@@ -327,6 +430,18 @@ Holding and releasing a dual function key without pressing another key will resu
For instance, holding and releasing `LT(2, KC_SPC)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPC` instead.
```
TAPPING_TERM
+-----------------|------------------+
| +---------------|-------+ |
| | LT(2, KC_SPC) | | |
| +---------------|-------+ |
| | |
| | |
| | |
+-----------------|------------------+
```
For more granular control of this feature, you can add the following to your `config.h`:
```c

View File

@@ -8,27 +8,22 @@ This document attempts to explain how the QMK firmware works from a very high le
## Startup
You can think of QMK as no different from any other computer program. It is started, performs its tasks, and then ends. The entry point for the program is the `main()` function, just like it is on any other C program. However, for a newcomer to QMK it can be confusing because the `main()` function appears in multiple places, and it can be hard to tell which one to look at.
You can think of QMK as no different from any other computer program. It is started and performs its tasks, but this program never finishes. Like other C programs, the entry point is the `main()` function. For QMK, the `main()` function is found in [`quantum/main.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/main.c#L55).
The reason for this is the different platforms that QMK supports. The most common platform is `lufa`, which runs on AVR processors such at the atmega32u4. We also support `chibios` and `vusb`.
If you browse through the `main()` function you'll find that it starts by initializing any hardware that has been configured (including USB to the host). The most common platform for QMK is `lufa`, which runs on AVR processors such as the atmega32u4. When compiled for that platform, it will invoke for example `platform_setup()` in [`platforms/avr/platform.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/platforms/avr/platform.c#L19) and `protocol_setup()` in [`tmk_core/protocol/lufa/lufa.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/tmk_core/protocol/lufa/lufa.c#L1066). It will use other implementations when compiled for other platforms like `chibios` and `vusb`. At first glance, it can look like a lot of functionality but most of the time the code will be disabled by `#define`s.
We'll focus on AVR processors for the moment, which use the `lufa` platform. You can find the `main()` function in [tmk_core/protocol/lufa/lufa.c](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/protocol/lufa/lufa.c#L1028). If you browse through that function you'll find that it initializes any hardware that has been configured (including USB to the host) and then it starts the core part of the program with a [`while(1)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/protocol/lufa/lufa.c#L1069). This is [The Main Loop](#the-main-loop).
The `main()` function will then start the core part of the program with a [`while (true)`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/main.c#L63). This is [The Main Loop](#the-main-loop).
## The Main Loop
This section of code is called "The Main Loop" because it's responsible for looping over the same set of instructions forever. This is where QMK dispatches out to the functions responsible for making the keyboard do everything it is supposed to do. At first glance it can look like a lot of functionality but most of the time the code will be disabled by `#define`'s.
This section of code is called "The Main Loop" because it's responsible for looping over the same set of instructions forever, without ever reaching the end. This is where QMK dispatches out to the functions responsible for making the keyboard do everything it is supposed to do.
```
keyboard_task();
```
This is where all the keyboard specific functionality is dispatched. The source code for `keyboard_task()` can be found in [tmk_core/common/keyboard.c](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/common/keyboard.c#L216), and it is responsible for detecting changes in the matrix and turning status LEDs on and off.
The main loop will call [`protocol_task()`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/main.c#L38), which in turn will call `keyboard_task()` in [`quantum/keyboard.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/keyboard.c#L377). This is where all the keyboard specific functionality is dispatched, and it is responsible for detecting changes in the matrix and turning status LEDs on and off.
Within `keyboard_task()` you'll find code to handle:
* [Matrix Scanning](#matrix-scanning)
* Mouse Handling
* Serial Link(s)
* Keyboard status LEDs (Caps Lock, Num Lock, Scroll Lock)
#### Matrix Scanning

View File

@@ -64,5 +64,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -58,5 +58,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xE117
#define PRODUCT_ID 0x6161
#define DEVICE_VER 0x0001
#define MANUFACTURER 0xC7
#define PRODUCT 61Key
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
@@ -143,10 +136,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
/* 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
//#define BOOTMAGIC_LITE_COLUMN 0

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "61Key",
"manufacturer": "0xC7",
"url": "",
"maintainer": "RealEmanGaming",
"usb": {
"vid": "0xE117",
"pid": "0x6161",
"device_version": "0.0.1"
},
"layout_aliases": {
"LAYOUT": "LAYOUT_60_ansi"
},

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
// clang-format off
/* USB Device descriptor parameter */
#define VENDOR_ID 0xCB00
#define PRODUCT_ID 0x1337
#define DEVICE_VER 0x0001
#define MANUFACTURER 0xCB
#define PRODUCT 1337
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 3

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "0xCB 1337",
"keyboard_name": "1337",
"manufacturer": "0xCB",
"url": "https://0xCB.dev",
"maintainer": "Conor-Burns",
"usb": {
"vid": "0xCB00",
"pid": "0x1337",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [

View File

@@ -18,12 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "0xCB Static",
"keyboard_name": "Static",
"manufacturer": "0xCB",
"url": "https://0xCB.dev",
"maintainer": "Conor-Burns",
"usb": {
"vid": "0xCB00",
"pid": "0xA455",
"device_version": "0.0.1"
},
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},

View File

@@ -17,11 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.*/
#pragma once
#include "config_common.h"
#define VENDOR_ID 0x7C88 // "hw" = haierwangwei2005
#define PRODUCT_ID 0x7C99 // "10b" = 10bleoledhub
#define DEVICE_VER 0x0001
#define MANUFACTURER haierwangwei2005
#define PRODUCT 10bleoledhub
/* key matrix size */
#define MATRIX_ROWS 4

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "10bleoledhub",
"manufacturer": "haierwangwei2005",
"url": "https://github.com/haierwangwei2005/10BLE-OLED-HUB",
"maintainer": "haierwangwei2005",
"usb": {
"vid": "0x7C88",
"pid": "0x7C99",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x6F75 // OU
#define PRODUCT_ID 0x6873
#define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards
#define PRODUCT 1up60hse
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
@@ -115,5 +108,3 @@ 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

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "1up60hse",
"manufacturer": "1upkeyboards",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x6F75",
"pid": "0x6873",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [{"label":"~", "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":"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":"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":"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":2.75}, {"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":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]

View File

@@ -20,13 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x6F75 // OU
#define PRODUCT_ID 0x6874 // HT
#define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards
#define PRODUCT 1up60hte
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "1up60hte",
"manufacturer": "1upkeyboards",
"url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/",
"maintainer": "1upkeyboards",
"usb": {
"vid": "0x6F75",
"pid": "0x6874",
"device_version": "0.0.1"
},
"layout_aliases": {
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
},

View File

@@ -2,13 +2,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x6F75 // OU
#define PRODUCT_ID 0x7267 // RG
#define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards
#define PRODUCT 1UP RGB Underglow PCB
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "1up60rgb",
"keyboard_name": "1UP RGB Underglow PCB",
"manufacturer": "1upkeyboards",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x6F75",
"pid": "0x7267",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_all": {
"layout": [

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x6F75 // "ou"
#define PRODUCT_ID 0x5516 // "U" 16
#define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards
#define PRODUCT super16
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 4
@@ -188,8 +181,6 @@ 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
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "super16",
"manufacturer": "1upkeyboards",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x6F75",
"pid": "0x5516",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]

View File

@@ -18,13 +18,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x6F75 // OU
#define PRODUCT_ID 0x5517
#define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards
#define PRODUCT super16v2
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 4
@@ -142,10 +135,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
/* 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,10 +1,16 @@
{
"keyboard_name": "super16v2",
"manufacturer": "1upkeyboards",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x6F75",
"pid": "0x5517",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]
}
}
}
}

View File

@@ -76,7 +76,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

View File

@@ -19,14 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0xCA42
#define DEVICE_VER 0x0001
#define MANUFACTURER monksoffunk
#define PRODUCT cassette42
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 6

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "cassette42",
"url": "http://www.sho-k.co.uk/tech/1246.html",
"maintainer": "monksoffunk",
"keyboard_name": "cassette42",
"manufacturer": "monksoffunk",
"url": "http://www.sho-k.co.uk/tech/1246.html",
"maintainer": "monksoffunk",
"usb": {
"vid": "0xFEED",
"pid": "0xCA42",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [{"x":0.5, "y":0.75}, {"x":2.5, "y":0.75}, {"x":0, "y":1.75}, {"x":1, "y":1.75}, {"x":2, "y":1.75}, {"x":3, "y":1.75}]

View File

@@ -73,5 +73,3 @@ 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

View File

@@ -73,5 +73,3 @@ 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

View File

@@ -2,13 +2,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6090
#define DEVICE_VER 0x0002
#define MANUFACTURER WoodKeys.click
#define PRODUCT 2Key2Crawl
/* key matrix size */
#define MATRIX_ROWS 2
#define MATRIX_COLS 7

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "2Key2CrawlPad",
"keyboard_name": "2Key2Crawl",
"manufacturer": "WoodKeys.click",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0xFEED",
"pid": "0x6090",
"device_version": "0.0.2"
},
"layouts": {
"LAYOUT": {
"layout": [

View File

@@ -2,13 +2,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x1234
#define PRODUCT_ID 0x5678
#define DEVICE_VER 0x0000
#define MANUFACTURER 8o7wer
#define PRODUCT 30wer
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 13

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "30wer",
"url": "",
"maintainer": "qmk",
"keyboard_name": "30wer",
"manufacturer": "8o7wer",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x1234",
"pid": "0x5678",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [

View File

@@ -18,13 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x1209
#define PRODUCT_ID 0x3304
#define DEVICE_VER 0x0001
#define MANUFACTURER 3-Key-Ecosystem
#define PRODUCT 2key2
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 2
@@ -98,7 +91,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "3-Key-Ecosystem 2key2: 2x1 macro-keyboard",
"keyboard_name": "2key2",
"manufacturer": "3-Key-Ecosystem",
"url": "https://github.com/softplus/3keyecosystem/tree/main/2key2",
"maintainer": "softplus",
"usb": {
"vid": "0x1209",
"pid": "0x3304",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [

View File

@@ -56,8 +56,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

View File

@@ -56,8 +56,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

View File

@@ -18,13 +18,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x0F25
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT The 5x5 Keyboard
#define USE_SERIAL
/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0
@@ -123,5 +116,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "foobar",
"keyboard_name": "The 5x5 Keyboard",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x0F25",
"device_version": "1.0.0"
},
"layouts": {
"LAYOUT_ortho_5x5": {
"layout": [

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x0000
#define DEVICE_VER 0x0001
#define MANUFACTURER 40percentclub
#define PRODUCT 4pack
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 4
@@ -144,8 +137,6 @@ 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
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "4pack",
"url": "",
"maintainer": "qmk",
"keyboard_name": "4pack",
"manufacturer": "40percentclub",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x0000",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}]

View File

@@ -4,13 +4,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 //"40 %", since 0x3430 is already registered.
#define PRODUCT_ID 0x0A0C
#define DEVICE_VER 0x4444
#define MANUFACTURER di0ib
#define PRODUCT The 4x4 Keyboard
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 16
@@ -90,5 +83,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "40percent.club 4x4",
"keyboard_name": "The 4x4 Keyboard",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x0A0C",
"device_version": "44.4.4"
},
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [

View File

@@ -4,13 +4,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x05B5
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT The 5x5 Keyboard
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
@@ -99,5 +92,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "40percent.club 5x5",
"keyboard_name": "The 5x5 Keyboard",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x05B5",
"device_version": "1.0.0"
},
"layouts": {
"LAYOUT_ortho_5x5": {
"layout": [

View File

@@ -18,13 +18,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x0F61
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT The 6lit Macropad
#define USE_SERIAL
/* serial.c configuration for split keyboard */
@@ -124,5 +117,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "6lit",
"keyboard_name": "The 6lit Macropad",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x0F61",
"device_version": "1.0.0"
},
"layouts": {
"LAYOUT_ortho_2x3": {
"layout": [

View File

@@ -18,13 +18,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x0F00
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT The foobar Keyboard
#define USE_SERIAL
/* serial.c configuration for split keyboard */
@@ -124,5 +117,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "foobar",
"keyboard_name": "The foobar Keyboard",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x0F00",
"device_version": "1.0.0"
},
"layouts": {
"LAYOUT_ortho_3x5": {
"layout": [

View File

@@ -2,13 +2,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 //"40 %", since 0x3430 is already registered.
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER 40 Percent Club
#define PRODUCT Gherkin
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 6

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "Gherkin",
"manufacturer": "40 Percent Club",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x6060",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_ortho_3x10": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "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":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}]

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 // 40%
#define PRODUCT_ID 0x4A1F
#define DEVICE_VER 0x0100
#define MANUFACTURER di0ib
#define PRODUCT half_n_half
/* key matrix size */
#define MATRIX_ROWS 4*2
#define MATRIX_COLS 7
@@ -133,8 +126,6 @@ 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
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "half_n_half",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x4A1F",
"device_version": "1.0.0"
},
"layouts": {
"LAYOUT": {
"layout": [

View File

@@ -18,13 +18,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x0A0C
#define DEVICE_VER 0x0175
#define MANUFACTURER di0ib
#define PRODUCT i75
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
@@ -79,8 +72,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "i75",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x0A0C",
"device_version": "1.7.5"
},
"layouts": {
"LAYOUT_ortho_5x15": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "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":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]

View File

@@ -2,13 +2,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 // "40%", changed since 0x3430 is already officially registered
#define PRODUCT_ID 0x4C55 // "LU"
#define DEVICE_VER 0x1001
#define MANUFACTURER di0ib
#define PRODUCT Luddite
/* key matrix size */
#define MATRIX_ROWS 8
#define MATRIX_COLS 8

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "Luddite",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x4C55",
"device_version": "10.0.1"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 // "40%", changed since 0x3430 is already officially registered
#define PRODUCT_ID 0x4D68 // "M68"
#define DEVICE_VER 0x0101
#define MANUFACTURER di0ib
#define PRODUCT MF68
/* key matrix size */
#define MATRIX_ROWS 8
#define MATRIX_COLS 9
@@ -122,5 +115,3 @@ 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

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "MF68",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x4D68",
"device_version": "1.0.1"
},
"layouts": {
"LAYOUT_68_ansi": {
"layout": [{"label":"~", "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}, {"x":15.25, "y":0}, {"x":16.25, "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}, {"x":15.25, "y":1}, {"x":16.25, "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":"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":2.75}, {"x":15.25, "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":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"x":14.25, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}]

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 //"40 %", to make it consistent with other 40percent.club boards.
#define PRODUCT_ID 0x0007
#define DEVICE_VER 0x0001
#define MANUFACTURER di0ib
#define PRODUCT Nano
/* key matrix size */
#define MATRIX_ROWS 2
#define MATRIX_COLS 4

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "Nano",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x0007",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_ortho_2x4": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}]

View File

@@ -18,13 +18,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 // "40%", changed since 0x3430 is already officially registered
#define PRODUCT_ID 0x9999
#define DEVICE_VER 0x9999
#define MANUFACTURER di0ib
#define PRODUCT The nein Keyboard
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 3
@@ -128,8 +121,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "nein",
"keyboard_name": "The nein Keyboard",
"manufacturer": "di0ib",
"url": "http://www.40percent.club/2019/04/nein.html",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x9999",
"device_version": "99.9.9"
},
"layouts": {
"LAYOUT_ortho_3x3": {
"layout": [

View File

@@ -18,13 +18,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x0A0C
#define DEVICE_VER 0x0444
#define MANUFACTURER di0ib
#define PRODUCT The nori Keyboard
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 12
@@ -112,5 +105,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "nori",
"keyboard_name": "The nori Keyboard",
"manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x0A0C",
"device_version": "4.4.4"
},
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [

View File

@@ -18,13 +18,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER di0ib
#define PRODUCT Polypad
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
@@ -82,8 +75,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "Polyandry",
"keyboard_name": "Polypad",
"manufacturer": "di0ib",
"url": "",
"maintainer": "QMK",
"usb": {
"vid": "0x4025",
"pid": "0x6060",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025 //"40 %", since 0x3430 is already registered.
#define PRODUCT_ID 0x5350 // "SP"
#define DEVICE_VER 0x1001
#define MANUFACTURER di0ib
#define PRODUCT Six Pack
/* key matrix size */
#define MATRIX_ROWS 2
#define MATRIX_COLS 3

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "Six Pack",
"manufacturer": "di0ib",
"url": "https://www.40percent.club/2017/05/six-pack-11.html",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x5350",
"device_version": "10.0.1"
},
"layouts": {
"LAYOUT_ortho_2x3": {
"layout": [

View File

@@ -2,13 +2,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x546F //"To", was duplicate with polyandry
#define DEVICE_VER 0x0001
#define MANUFACTURER 40 Percent Club
#define PRODUCT Tomato
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 6

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "Tomato",
"manufacturer": "40 Percent Club",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x546F",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_ortho_3x10": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "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":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}]

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4025
#define PRODUCT_ID 0x7574 //"ut"
#define DEVICE_VER 0x0001
#define MANUFACTURER 40percent.club
#define PRODUCT ut47
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 12

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "UT47",
"keyboard_name": "ut47",
"manufacturer": "40percent.club",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
"pid": "0x7574",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Backspace", "x":11, "y":0, "w":1.5}, {"label":"LT(3) / Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"\"", "x":11.25, "y":1, "w":1.25}, {"label":"Shift", "x":0, "y":2, "w":1.5}, {"label":"Z", "x":1.5, "y":2}, {"label":"X", "x":2.5, "y":2}, {"label":"C", "x":3.5, "y":2}, {"label":"V", "x":4.5, "y":2}, {"label":"B", "x":5.5, "y":2}, {"label":"N", "x":6.5, "y":2}, {"label":"M", "x":7.5, "y":2}, {"label":"<", "x":8.5, "y":2}, {"label":">", "x":9.5, "y":2}, {"label":"?", "x":10.5, "y":2}, {"label":"Shift / Enter", "x":11.5, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Alt", "x":1, "y":3}, {"label":"GUI", "x":2, "y":3}, {"label":"Menu", "x":3, "y":3}, {"label":"MO(2)", "x":4, "y":3, "w":1.25}, {"x":5.25, "y":3, "w":2}, {"label":"MO(1)", "x":7.25, "y":3, "w":1.25}, {"label":"\u2190", "x":8.5, "y":3}, {"label":"\u2193", "x":9.5, "y":3}, {"label":"\u2191", "x":10.5, "y":3}, {"label":"\u2192", "x":11.5, "y":3}]

View File

@@ -118,15 +118,6 @@ void matrix_print(void)
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
count += bitpop16(matrix[i]);
}
return count;
}
/* Column pin configuration
* col: 0 1 2 3 4 5 6 7 8 9 10 11
* pin: D7 E6 B4 B5 B6 B2 B3 B1 F7 F6 F5 F4

View File

@@ -20,13 +20,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xAB13
#define PRODUCT_ID 0x4511
#define DEVICE_VER 0x0001
#define MANUFACTURER Abec13
#define PRODUCT 45ATS
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 14

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "45-ATS",
"keyboard_name": "45ATS",
"manufacturer": "Abec13",
"url": "",
"maintainer": "The-Royal",
"usb": {
"vid": "0xAB13",
"pid": "0x4511",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_split_space": {
"layout": [

View File

@@ -2,13 +2,6 @@
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xEEEE
#define PRODUCT_ID 0x2019
#define DEVICE_VER 0x0001
#define MANUFACTURER Elias Sjögreen
#define PRODUCT 4by3
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 4

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "4by3",
"manufacturer": "Elias Sjögreen",
"url": "https://github.com/eliassjogreen/4by3",
"maintainer": "eliassjogreen",
"usb": {
"vid": "0xEEEE",
"pid": "0x2019",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_horizontal": {
"layout": [

View File

@@ -17,12 +17,6 @@
#pragma once
#include "config_common.h"
#define VENDOR_ID 0x77C8
#define PRODUCT_ID 0x0001
#define DEVICE_VER 0x0000
#define MANUFACTURER 7c8
#define PRODUCT Framework
#define MATRIX_ROWS 10
#define MATRIX_COLS 6

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "Framework",
"manufacturer": "7c8",
"url": "",
"maintainer": "stevennguyen",
"usb": {
"vid": "0x77C8",
"pid": "0x0001",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [

View File

@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0007
#define DEVICE_VER 0x0001
#define MANUFACTURER Bishop Keyboards
#define PRODUCT 9Key
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 3

View File

@@ -1,7 +1,13 @@
{
"keyboard_name": "9key",
"keyboard_name": "9Key",
"manufacturer": "Bishop Keyboards",
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0xFEED",
"pid": "0x0007",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}]

View File

@@ -102,7 +102,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

View File

@@ -127,8 +127,6 @@ 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
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0

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